Guide to the high-level LGD reconstruction software
Guide to the high level LGD reconstruction software
Overview
The purpose of this document is to present a step-by-step list of
what to do to reconstruct the data recoreded in the E852
Lead Glass Calorimeter (LGD).
How to reconstruct the LGD data
Initialization
The LGD software has to be initialized before
it can be used to reconstruct data. The initialization
defines the following LGD parameters:
- the LGD geometry (number of LGD channels, mapping of ADC channels to blocks, etc...)
- the LGD energy calibrations (pedestals and calibration constants)
- the LGD position (the LGD transporter can move)
- the LGD depth correction algorithm (which depends on what calibration is used)
Some of these parameters have to be set only once per run, some for every individual event.
Once per run
The following initialization functions should be called once for every run:
- define the LGD geometry and load the calibrations:
#include <lgdUtil.h>
lgd_newRun2(mode,runNo);
here:
-
mode is
- LGDCC_MODE_1 for the old (1994) calibrations,
- LGDCC_MODE_2 for the new (1995) calibrations.
-
runNo is the run number (which is used to load correct calibrations)
- setup the depth correction algorithm:
#include <lgdUtil.h>
addNeutral_setMode(mode);
here:
- mode is
- 0 for no depth correction (SaGen MonteCarlo data),
- 1 (default) for the new (1995) depth correction,
- 2 for the old (1994) depth correction.
Note: the 1994 calibrations should be used with the 1994 depth corrections
and the 1995 calibrations should be used with the 1995 depth correction,
because a depth correction is used to perform calibrations and therefore
these calibrations are only valid when the same depth correction is used
when data is reconstructed.
Once per event
The following initialization functions should be called once for every event:
- locate the LGD transporter:
#include <lgdUtil.h>
lgd_locateTransporter(event);
here:
- event - is the pointer to the event buffer
Note: The LGD transporter position has to be defined on a per-event basis,
to allow data from different runs with different LGD
positions to be freely mixed. The transporter positioning calls cause no loss of
program execution speed.
Reconstruction
The following functions can be called to reconstruct the LGD data:
- find clusters in the LGD:
#include <lgdUtil.h>
#include <lgdCluster.h>
int GenerateLGDClusters(event,eventSize,clusterAlgorithm);
here:
- event is the pointer to the event buffer
- eventSize is the length of the event buffer in bytes.
- clusterAlgorithm is
- INDIANA_ALGORITHM - use the IU clusterizer
- NOTREDAME_ALGORITHM - use the ND clusterized
- tag the hadronic clusters:
tagHadrons(event,radius1,radius2,energy);
here:
- event is the pointer to the event buffer
- radius1 shalt be 18.0 (cm)
- radius2 shalt be 18.0 (cm)
- energy shalt be 0.0 (GeV)
- calculate the photon 4-vectors and place them on the vertex:
#include <lgdUtil.h>
addNeutral(event,eventSize);
here:
- event is the pointer to the event buffer
- eventSize is the length of the event buffer in bytes.
See also
CO 1995-03-23
end file