]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALRecParam.h
Move AliWarning and AliInfo to AliDebug to reduce prints during reconstruction
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRecParam.h
1 #ifndef ALIEMCALRECPARAM_H
2 #define ALIEMCALRECPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-----------------------------------------------------------------------------
9 // Container of EMCAL reconstruction parameters
10 // The purpose of this object is to store it to OCDB
11 // and retrieve it in AliEMCALClusterizerv1, AliEMCALPID,
12 // AliEMCALTracker and use it to configure AliEMCALRawUtils
13 // 
14 // 
15 // Author: Yuri Kharlov
16 //-----------------------------------------------------------------------------
17
18 // --- ROOT system ---
19
20 #include "AliDetectorRecoParam.h" 
21 #include "AliLog.h"
22
23 class AliEMCALRecParam : public AliDetectorRecoParam
24 {
25  public:
26   
27   AliEMCALRecParam() ;
28   AliEMCALRecParam(const AliEMCALRecParam& recParam);
29   AliEMCALRecParam& operator = (const AliEMCALRecParam& recParam);
30   virtual ~AliEMCALRecParam() {}
31   
32   //Clustering (Unfolding : Cynthia)
33   Float_t GetClusteringThreshold() const     {return fClusteringThreshold ;}
34   Float_t GetW0                 () const     {return fW0                  ;}
35   Float_t GetMinECut            () const     {return fMinECut             ;}
36   Float_t GetLocMaxCut          () const     {return fLocMaxCut           ;}
37   Float_t GetTimeCut            () const     {return fTimeCut             ;}
38   Bool_t  GetUnfold             () const     {return fUnfold              ;}
39   void SetClusteringThreshold(Float_t thrsh)     {fClusteringThreshold = thrsh;}
40   void SetW0                 (Float_t w0)        {fW0 = w0                ;}
41   void SetMinECut            (Float_t minEcut)   {fMinECut = minEcut      ;}
42   void SetLocMaxCut          (Float_t locMaxCut) {fLocMaxCut = locMaxCut  ;}
43   void SetTimeCut            (Float_t timeCut)   {fTimeCut = timeCut  ;}
44   void SetUnfold             (Bool_t unfold)     {fUnfold = unfold ; if(fUnfold) AliWarning("Cluster Unfolding ON. Implementing only for eta=0 case!!!");}
45   
46   //PID (Guenole)
47   Double_t GetGamma(Int_t i, Int_t j) const       {return fGamma[i][j];} 
48   Double_t GetGammaEnergyProb(Int_t i) const      {return fGammaEnergyProb[i];} 
49   Double_t GetGamma1to10(Int_t i, Int_t j) const  {return fGamma1to10[i][j];}   // not used
50   Double_t GetHadron(Int_t i, Int_t j) const      {return fHadron[i][j];}
51   Double_t GetHadron1to10(Int_t i, Int_t j) const {return fHadron1to10[i][j];}   // not used
52   Double_t GetHadronEnergyProb(Int_t i) const     {return fHadronEnergyProb[i];}
53   Double_t GetPiZero(Int_t i, Int_t j) const      {return fPiZero[i][j];}
54   Double_t GetPiZeroEnergyProb(Int_t i) const     {return fPiZeroEnergyProb[i];}
55   
56   void SetGamma(Int_t i, Int_t j,Double_t param )       {fGamma[i][j]=param;}
57   void SetGammaEnergyProb(Int_t i, Double_t param )     {fGammaEnergyProb[i]=param;}
58   void SetGamma1to10(Int_t i, Int_t j,Double_t param )  {fGamma1to10[i][j]=param;}
59   void SetHadron(Int_t i, Int_t j,Double_t param )      {fHadron[i][j]=param;}
60   void SetHadron1to10(Int_t i, Int_t j,Double_t param ) {fHadron1to10[i][j]=param;}
61   void SetHadronEnergyProb(Int_t i,Double_t param )     {fHadronEnergyProb[i]=param;}
62   void SetPiZero(Int_t i, Int_t j,Double_t param)       {fPiZero[i][j]=param;}
63   void SetPiZeroEnergyProb(Int_t i,Double_t param)      {fPiZeroEnergyProb[i]=param;}
64   
65   //Track Matching (Alberto)
66   /* track matching cut setters */
67   void SetTrkCutX(Double_t value)        {fTrkCutX = value;}
68   void SetTrkCutY(Double_t value)        {fTrkCutY = value;}
69   void SetTrkCutZ(Double_t value)        {fTrkCutZ = value;}
70   void SetTrkCutR(Double_t value)        {fTrkCutR = value;}
71   void SetTrkCutAlphaMin(Double_t value) {fTrkCutAlphaMin = value;}
72   void SetTrkCutAlphaMax(Double_t value) {fTrkCutAlphaMax = value;}
73   void SetTrkCutAngle(Double_t value)    {fTrkCutAngle = value;}
74   void SetTrkCutNITS(Double_t value)     {fTrkCutNITS = value;}
75   void SetTrkCutNTPC(Double_t value)     {fTrkCutNTPC = value;}
76   /* track matching cut getters */
77   Double_t GetTrkCutX() const        {return fTrkCutX;}
78   Double_t GetTrkCutY() const        {return fTrkCutY;}
79   Double_t GetTrkCutZ() const        {return fTrkCutZ;}
80   Double_t GetTrkCutR() const        {return fTrkCutR;}
81   Double_t GetTrkCutAlphaMin() const {return fTrkCutAlphaMin;}
82   Double_t GetTrkCutAlphaMax() const {return fTrkCutAlphaMax;}
83   Double_t GetTrkCutAngle() const    {return fTrkCutAngle;}
84   Double_t GetTrkCutNITS() const     {return fTrkCutNITS;}
85   Double_t GetTrkCutNTPC() const     {return fTrkCutNTPC;}
86   
87   //Raw signal fitting (Jenn)
88   /* raw signal setters */
89   void SetHighLowGainFactor(Double_t value) {fHighLowGainFactor = value;}
90   void SetOrderParameter(Int_t value)       {fOrderParameter = value;}
91   void SetTau(Double_t value)               {fTau = value;}
92   void SetNoiseThreshold(Int_t value)       {fNoiseThreshold = value;}
93   void SetNPedSamples(Int_t value)          {fNPedSamples = value;}
94   /* raw signal getters */
95   Double_t GetHighLowGainFactor() const {return fHighLowGainFactor;}
96   Int_t    GetOrderParameter()    const {return fOrderParameter;}
97   Double_t GetTau()               const {return fTau;}
98   Int_t    GetNoiseThreshold()    const {return fNoiseThreshold;}
99   Int_t    GetNPedSamples()       const {return fNPedSamples;}
100   
101   virtual void Print(Option_t * option="") const ;
102   
103   static AliEMCALRecParam* GetDefaultParameters();
104   static AliEMCALRecParam* GetLowFluxParam();
105   static AliEMCALRecParam* GetHighFluxParam();
106   static AliEMCALRecParam* GetCalibParam();
107   static AliEMCALRecParam* GetCosmicParam();
108   
109   static const  TObjArray* GetMappings();
110   
111  private:
112   //Clustering
113   Float_t fClusteringThreshold ; // Minimum energy to seed a EC digit in a cluster
114   Float_t fW0 ;                  // Logarithmic weight for the cluster center of gravity calculation
115   Float_t fMinECut;              // Minimum energy for a digit to be a member of a cluster
116   Bool_t  fUnfold;               // Flag to perform cluster unfolding
117   Float_t fLocMaxCut;            // Minimum energy difference to consider local maxima in a cluster
118   Float_t fTimeCut ;             // Maximum time of digits in EMC cluster
119
120   //PID (Guenole)
121   Double_t fGamma[6][6];         // Parameter to Compute PID for photons     
122   Double_t fGamma1to10[6][6];    // Parameter to Compute PID not used
123   Double_t fHadron[6][6];            // Parameter to Compute PID for hadrons     
124   Double_t fHadron1to10[6][6];   // Parameter to Compute PID for hadrons between 1 and 10 GeV    
125   Double_t fHadronEnergyProb[6]; // Parameter to Compute PID for energy ponderation for hadrons          
126   Double_t fPiZeroEnergyProb[6]; // Parameter to Compute PID for energy ponderation for Pi0      
127   Double_t fGammaEnergyProb[6];  // Parameter to Compute PID for energy ponderation for gamma    
128   Double_t fPiZero[6][6];        // Parameter to Compute PID for pi0     
129   
130   
131   //Track-Matching (Alberto)
132   Double_t  fTrkCutX;              // X-difference cut for track matching
133   Double_t  fTrkCutY;              // Y-difference cut for track matching
134   Double_t  fTrkCutZ;              // Z-difference cut for track matching
135   Double_t  fTrkCutR;              // cut on allowed track-cluster distance
136   Double_t  fTrkCutAlphaMin;       // cut on 'alpha' parameter for track matching (min)
137   Double_t  fTrkCutAlphaMax;       // cut on 'alpha' parameter for track matching (min)
138   Double_t  fTrkCutAngle;          // cut on relative angle between different track points for track matching
139   Double_t  fTrkCutNITS;           // Number of ITS hits for track matching
140   Double_t  fTrkCutNTPC;           // Number of TPC hits for track matching
141   
142   //Raw signal fitting parameters (Jenn)
143   Double_t fHighLowGainFactor;     //gain factor to convert between high and low gain
144   Int_t    fOrderParameter;        //order parameter for raw signal fit
145   Double_t fTau;                   //decay constant for raw signal fit
146   Int_t    fNoiseThreshold;        //threshold to consider signal or noise
147   Int_t    fNPedSamples;           //number of time samples to use in pedestal calculation
148   
149   static TObjArray* fgkMaps;       // ALTRO mappings for RCU0..RCUX
150   
151   ClassDef(AliEMCALRecParam,8)     // Reconstruction parameters
152     
153     } ;
154
155 #endif //  ALIEMCALRECPARAM_H
156