From e852soft-l@bnl.gov Thu Feb 24 23:21:11 1994 Received: from bnl.gov by lemond.phy.bnl.gov via SMTP (920330.SGI/920502.SGI) id AA03905; Thu, 24 Feb 94 23:21:11 -0500 Received: by bnl.gov (5.57/Ultrix3.0-C) id AA26908; Thu, 24 Feb 94 23:21:12 -0500 Date: Thu, 24 Feb 94 23:21:12 -0500 Message-Id: <9402250419.AA11877@weygand.phy.bnl.gov> Comment: e852 software information Originator: e852soft-l@bnl.gov Errors-To: meehan@weygand Reply-To:Sender: e852soft-l@bnl.gov Version: 5.5 -- Copyright (c) 1991/92, Anastasios Kotsikonas From: olchansk@weygand (Konstantin Olchanski) To: Multiple recipients of list Subject: LGD calibrations + map manager = friends I took upon my humble self the hard task of squeezing the LGD calibrations into the map manager. In the program, the lgd calibrations are stored in the 'lgd_calibration' array of lgd_calibration_t structures: typedef struct { int channel; int threshold; /* no hits with adc less than 'thershold' will be used */ float adc0; /* adc to energy conversion is: energy = energy0 + slope * (adc - adc0); */ float energy0; float slope; } lgd_calibration_t; Here- channel- is the logical block channel (as defined by the lgdGeom package) threshold- adc threshold- hits below this threshold are ignored. adc0, energy0, slope- define the adc to energy conversion in the most general way- energy = energy0 + slope * (adc - adc0); slope- is the slope, adc0- is the average adc value energy0- is energy corresponding to adc = adc0. A straight line could have been defined by only two numbers, intercept and slope, however these two parameters are correlated (when slope changes, the intercept also has to change). The three proposed parameters are independant. ------------------------------------------------------ In the map manager- because we have a number of different LGD's with different number of blocks, the simplest thing I could think about to handle it is to have a separate map manager file for each one (i.e. P3 9x9 and full LGD). The map file name is: $E852_CONFIG/maps/lgdNNNN.map, where NNNN is the number of channels. The subsystem is 'calibration' The items are- 'channel' - array os channel values in the lgd_calibration_t structure, 'threshold' - array of thresholds 'energy0', 'adc0' and 'slope' store adc0, energy0 and slope for each channel. ------------------------------------------------------- The code implementing stuff described above is already written and is beign tested. Those interested can find it in SCCS: subsystem 'libanalyzer', file 'lgdglue.c'. I would like very much to hear opinions of everybody concerned before I will start to fill the map files with data and starting to use this code in the production version of our 'a1' analyzer. Const Olchanski
end file