Skip navigation.
Home

EMCAL OCDB

 

EMCAL OCDB

 

The offline condition data base, OCDB, contains the different parameters used for simulation or reconstruction of the detectors or even the LHC machine parameters that might change for the different run conditions.

The EMCAL OCDB (and other detectors OCDB) is divided in 3 directories that can be found in

$ALICE_ROOT/OCDB/EMCAL:

  • Calib: Very different type of information, from hardware mapping to calibration parameters. 
  • Align: Survey misplacements in geometry.
  • Config: Detector configuration: Temperatures

Inside these directories you will find other subdirectories with more specific type of parameters. Each of the directories contains a file named in this way:

Run(FirstRun)_(LastRun)_v(version)_s(version).root

being the default and what you will find in the trunk:

Run0_999999999_v0_s0.root

What is actually used for the real data reconstruction can be found in alien here:

/alice/data/20XX/OCDB/EMCAL

There are different repositories for different years (20XX). For the simulation productions, there is another repository on the grid:

/alice/simulation/2008/v4-15-Release/XXX/EMCAL

but there you will find 3 options, XXX=Ideal, Full and Residual. Each one is meant to reproduce the detector with different precision. For EMCAL, right now these 3 repositories contain the same parameters.

In the next lines, what is stored, how to read it and how to fill it, is explained.

 

How to use a different OCDB

In your simulation/reconstruction macro you have to specify a default OCDB, if it is different from $ALICE_ROOT/OCDB. When running on the grid you are forced to do it, so you have to set for example in a reconstruction of simulated data:

 simu_or_reco.SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Residual/");

If you have modified one of the OCDB files or several which are not in the default storage OCDB, you have to put in the simulation or reconstruction macro:

 simu_or_reco.SetSpecificStorage("EMCAL/Calib/Pedestals","local://your/modified/local/OCDB");

In this example, you will have to put in /your/modified/local/OCDB/EMCAL/Calib/Data the modified file with the calibration coefficients.

If you modify more of the OCDB files, you can do it like this:

 simu_or_reco.SetSpecificStorage("EMCAL/Calib/","local:/your/modified/local/OCDB");

in this example you will have to put in /your/modified/local/OCDB/EMCAL/Calib/ all the directories inside EMCAL/Calib with its corresponding files.

 

EMCAL/Calib

Calibration Coefficients: EMCAL/Calib/Data

Storage for the tower calibration coefficients. What is stored is an object of the class AliEMCALCalibData which is a container of gains and pedestals per tower. These coefficients are used in:

  • Simulation:  during the digitization, in AliEMCALDigitizer::Digitizer(), when calling AliEMCALDigitizer::DigitizeEnergy(), to transform the deposited energy into ADC counts. 
  • Reconstruction: in AliEMCALClusterizerv1::Calibrate() called in AliEMCALClusterizer::MakeClusters(), when forming the cluster, to get the final cluster energy.

The macro $ALICE_ROOT/EMCAL/macros/CalibrationDB/AliEMCALSetCDB.C, is an example on how to set the calibration coefficients per channel, or how to read them from the OCDB file. This macro can set all channels with the same selected value or with random values given a uniform or gaussian smearing of a selected input value. A simple example that shows how to print the parameters is PrintEMCALCalibData.C (trunk)

All channels in simulation have the same value for the gains and pedestals, gains are 0.0153 GeV/ADC counts and pedestal are set to 0 since the calorimeter works with Zero Suppressed data.

 

Bad channels: EMCAL/Calib/Pedestals

Storage for the bad channels map found in hardware. What is stored is an object of the class AliCaloCalibPedestal, class used for monitoring the towers calibration and functionality. This class has the data member TObjArray *fDeadMap  which consists of an array of 12 TH2I (as many as Super Modules), and each TH2I has the dimension of 24x48 (number of towers in phi x eta direction), each bin corresponds to a tower. The content of each entry in the histogram is an integer which represents the possible status:

enum kDeadMapEntry{kAlive = 0, kDead,  kHot, kWarning, kResurrected, kRecentlyDeceased, kNumDeadMapStates};

Right now only the status kAlive, kDead, kHot and soon kWarning (soon, not yet) are set but, the code is basically skipping all the channels that are  kDead and kHot. The bad channel map is used in the reconstruction code in 3 places:

  • AliEMCALRawUtils::Raw2Digits() : Before the raw data time sample is fitted, the status of the tower is checked, and if bad (kHot or kDead), the fit is not done. This avoids trying to fit ill shaped samples. This step is optional though, right now default is to skip the bad channels here. With the RecParam OCDB we can select to use it or not.
  • AliEMCALClusterizerv1::Calibrate(): once the cluster is formed, to get the cluster energy from its cells.
  • AliEMCALRecPoint::EvalDistanceToBadChannels(): Evaluate the distance of a cluster to the closest bad channel. During the analysis we may want to skip clusters close to a bad channel. This time a bad channel is whatever is not kAlive.

The macro $ALICE_ROOT/EMCAL/macros/PedestalDB/AliEMCALPedestalCDB.C, is an example on how to set the bad channel map and how to read it from a file. When executed it displays a menu that allows to set randomly as bad a given % of the towers, also it allows to set the map from an input txt file, with the format like  $ALICE_ROOT/EMCAL/macros/PedestalDB/map.txt, (this map file is the one used in the last mapping in the raw OCDB). It also can read the OCDB file and display the 12 TH2I histograms on screen.

Reconstruction Parameters: EMCAL/Calib/RecoParam

Storage for the parameters used in reconstruction. What is stored is an object of the class AliEMCALRecParam which is a container for all the parameters used. There are different kind of parameters, we can distinguish them depending on which step of the reconstruction are used:

  • Raw data fitting and mapping

  Double_t fHighLowGainFactor;  // gain factor to convert between high and low gain

  Int_t    fOrderParameter;        // order parameter for raw signal fit

  Double_t fTau;                       // decay constant for raw signal fit

  Int_t    fNoiseThreshold;          // threshold to consider signal or noise

  Int_t    fNPedSamples;            // number of time samples to use in pedestal calculation

  Bool_t   fRemoveBadChannels; // select if bad channels are removed before fitting

  Int_t    fFittingAlgorithm;         // select the fitting algorithm

  static TObjArray* fgkMaps;      // ALTRO mappings for RCU0..RCUX

  • Clusterization :

  Float_t fClusteringThreshold ; // Minimum energy to seed a EC digit in a cluster

  Float_t fW0 ;                       // Logarithmic weight for the cluster center of gravity calculation

  Float_t fMinECut;                  // Minimum energy for a digit to be a member of a cluster

  Bool_t  fUnfold;                   // Flag to perform cluster unfolding

  Float_t fLocMaxCut;              // Minimum energy difference to consider local maxima in a cluster

  Float_t fTimeCut ;                // Maximum difference time of digits in EMC cluster

  Float_t fTimeMin ;                // Minimum time of digits

  Float_t fTimeMax ;               // Maximum time of digits

  • Track Matching

  Double_t  fTrkCutX;              // X-difference cut for track matching

  Double_t  fTrkCutY;              // Y-difference cut for track matching

  Double_t  fTrkCutZ;              // Z-difference cut for track matching

  Double_t  fTrkCutR;              // cut on allowed track-cluster distance

  Double_t  fTrkCutAlphaMin;    // cut on 'alpha' parameter for track matching (min)

  Double_t  fTrkCutAlphaMax;   // cut on 'alpha' parameter for track matching (min)

  Double_t  fTrkCutAngle;        // cut on relative angle between different track points for track matching

  Double_t  fTrkCutNITS;         // Number of ITS hits for track matching

  Double_t  fTrkCutNTPC;         // Number of TPC hits for track matching

  •  PID

  Double_t fGamma[6][6];              // Parameter to Compute PID for photons     

  Double_t fGamma1to10[6][6];      // Parameter to Compute PID not used

  Double_t fHadron[6][6];               // Parameter to Compute PID for hadrons     

  Double_t fHadron1to10[6][6];       // Parameter to Compute PID for hadrons between 1 and 10 GeV    

  Double_t fHadronEnergyProb[6];   // Parameter to Compute PID for energy ponderation for hadrons          

  Double_t fPiZeroEnergyProb[6];    // Parameter to Compute PID for energy ponderation for Pi0      

  Double_t fGammaEnergyProb[6];  // Parameter to Compute PID for energy ponderation for gamma    

  Double_t fPiZero[6][6];                // Parameter to Compute PID for pi0     

 

The macro $ALICE_ROOT/EMCAL/macros/RecParamDB/AliEMCALSetRecParamCDB.C, is an example on how to set the parameters. There are different event types that we might record, and each event type might require different reconstruction parameters. The event types that are now defined in STEER/AliRecoParam.h are:

  enum EventSpecie_t {kDefault = 1, kLowMult = 2, kHighMult = 4, kCosmic = 8, kCalib = 16};

The default event species that we have is kLowMult (low multiplicity). For AliRoot versions smaller than release 4.17 it was set to be kHighMult (high multiplicity). Right now in what EMCAL concerns, kDefault=kLowMult=kCosmic=kCalib. kHighMult differs only from the rest in 2 clusterization parameters, for low multiplicity they are fMinECut=10 MeV and fClusteringThreshold=100 MeV and for high multiplicity they are fMinECut=0.45 GeV and fClusteringThreshold=0.5 GeV.

A simple example that shows how to print the parameters for the different event species is PrintEMCALRecParam.C 

 

Simulation Parameters: EMCAL/Calib/SimParam

Storage for the parameters used in simulation. What is stored is an object of the class AliEMCALSimParam which is a container of all the parameters used. There are different kind of parameters, we can distinguish them depending on which step of the simulation they are used:

  • SDigitization

        Float_t fA ;                      // Pedestal parameter

        Float_t fB ;                      // Slope Digitizition parameters

        Float_t fECPrimThreshold ; // To store primary if Shower Energy loss > threshold

 

  • Digitization 

        Int_t   fDigitThreshold  ;        // Threshold for storing digits in EMC = 3 ADC counts

        Int_t   fMeanPhotonElectron ; // number of photon electrons per GeV deposited energy = 4400 MeV/photon 

        Float_t fPinNoise ;                // Electronics noise in EMC = 12 MeV

        Double_t fTimeResolution ;    // Time resolution of FEE electronics = 600 ns

        Int_t   fNADCEC ;                 // number of channels in EC section ADC = 

  • Trigger Emulation (not available yet)

 

The macro $ALICE_ROOT/EMCAL/macros/SimParamDB/AliEMCALSetSimParamCDB.C, is an example on how to set the parameters. A simple example that shows how to print the parameters is PrintEMCALSimParam.C