This page contains the description of the ALICE offline reconstruction parameters framework.
The basic requirements are:
1. Have the possibility to steer the reconstruction according to the global running conditions of ALICE and the machine.
2. Have the possibility to select different reconstruction parameters on event-by-event basis taking into account the trigger information and the event type.
3. All the reconstruction parameters are fully contained in the Offline Conditions DB (OCDB) for all the runs that are being reconstructed.
Here is a brief description of the current AliRoot implementation:
1. AliRunInfo class - a container class used to collect all the available global run parameters:
- TString fLHCState; // state of the machine as provided by DCS and DAQ log-book (per run)
- TString fBeamType; // beam type (per run)
- Float_t fBeamEnergy; // beam energy in GeV (per run)
- TString fRunType; // run type accoring to ECS (per run)
- TString fActiveDetectors;// list of active detectors (per run)
The parameters are read from the GRP OCDB entry during the initialization of the reconstruction.
AliEventInfo class - a container class for basic event properties:
- UInt_t fEventType; // event type as defined by DAQ (start_of_*,calibration,physics etc) (per event)
- TString fTriggerClasses; // list of fired trigger classes (per event)
- ULong64_t fTriggerMask; // trigger mask as received from DAQ or CTP raw-data payload (per event)
- TString fTriggerCluster; // list of detectors that have been read out (per event)
- TString fHLTDecision; // HLT decision (per event)
These parameters are updated on event-by-event basis taking into account the trigger pattern and DAQ event type.
2. AliDetectorRecoParam class - a base class for an event reconstruction parameters according to a given AliRunInfo & AliEventInfo. All the detectors derive from it their
own classes for different run and event types. The format of the parameters is not restricted, however the preference is to use basic types and simple structure.
It is important that these objects are 'readable' even by an inexperienced AliRoot user. AliDetectorRecoParam class contains a special 'enum' member
representing the event specie for which the object is valid. The event specie should be always one among the following: COSMIC, LOWMULT,
HIGHMULT and CALIB. In case an additional event specie is needed, it shall be discussed and eventually implemented.
3. AliRecoParam class - a container class in STEER module. It consists of arrays (one array per detector) of individual AliDetectorRecoParam objects. The class
implements the method which gets an AliEventInfo object as an argument and returns an AliDetectorRecoParam object per detector. The detectors have to specify
always one and only default AliDetectorRecoParam that will be loaded in case of missing or unsuficient information in AliEventInfo or in case the obtained event type is not
found among the AliDetectorRecoParam objects provided by the detector.
The implementation of the method to determine the event type and load the corresponding AliDetectorRecoParam's will be based on all the information found in
AliRunInfo & AliEventInfo objects. The call to this method will be inside AliReconstruction. For example, if we find that the fired trigger class was 'LSR', we will determine
the event type as calibration one and load the TPC AliDetectorRecoParam object marked as 'CALIB' which in case fo TPC will contain the reconstruction parameters
need to reconstruction a TPC laser event. Or, if we find that the trigger class starts with 'A' (ACORDE) we will determine the event type as 'COSMIC' and load
cosmic AliDetectorRecoParams for all the detectors.
Each detector will have to put in the OCDB one array of AliDetectorRecoParam's (or AliDetectorRecoParam in case of only one set of parameters) object.
The detectors will have to provide also macro or set of macros for filling of the proper objects into the OCDB.
4. Additions to AliReconstructor: An AliDetectorRecoParam member and simple setter/getter methods will be provided at the level of the AliReconstructor
base class. They will be used by AliReconstruction (see below) in order to instruct the reconstructors which parameters to use on event-by-event basis. The same scheme
will be implemented also for QA and AliQADataMakerRec's.
AliReconstruction execution and data flow:
1. Initialization:
- Read the GRP entries from CDB, create an AliRunInfo and fill the global (per run) parameters into it.
- Read all the detector's arrays of AliDetectorRecoParam objects from OCDB and keep them in the memory. In the case a detector provides
a single AliDetectorRecoParam object, it will be considered as a default one and used for all the events in the run.
2. Inside the event loop:
- The event-based fields in the AliEventInfo object are filled using the information from the trigger and event header.
- The AliEventInfo object is sent to the instance of AliRecoParam (owned by AliReconstruction). The obtained AliDetectorRecoParam objects will be then provided
to the corresponding AliReconstructor objects and used in the reconstruction of the event.
Note: The choise of AliDetectorRecoParam name is a bit misleading. For the moment this name has been kept in order to provide a
backward compatibility. In the future we are planning to change it to AliDetEventRecoParam. The change will be
announced in due time.
Note: At the moment the structure of the AliRecoParam class and its functionality are under development. We are discussing with the
Physics Board and CPT team the trigger-classes naming conventions and some related issues. The class will be updated according to the outcome
of these discussions.