]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALRecParam.h
2fb0b458e53c8fa13309308da2fed98cb6d3bfc1
[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 "TObject.h" 
21 #include "AliLog.h"
22
23 class AliEMCALRecParam : public TObject
24 {
25 public:
26   
27   AliEMCALRecParam() ;
28   virtual ~AliEMCALRecParam() {}
29  
30   //Clustering (Unfolding : Cynthia)
31   Float_t GetClusteringThreshold() const     {return fClusteringThreshold;}
32   Float_t GetW0                 () const     {return fW0                 ;}
33   Float_t GetMinECut            () const     {return fMinECut            ;}
34   Float_t GetLocMaxCut          () const     {return fLocMaxCut            ;}
35   Bool_t  GetUnfold             () const     {return fUnfold            ;}
36   void SetClusteringThreshold(Float_t thrsh)   {fClusteringThreshold = thrsh;}
37   void SetW0                 (Float_t w0)      {fW0 = w0                    ;}
38   void SetMinECut            (Float_t minEcut) {fMinECut = minEcut          ;}
39   void SetLocMaxCut          (Float_t locMaxCut) {fLocMaxCut = locMaxCut    ;}
40   void SetUnfold             (Bool_t unfold)     {fUnfold = unfold          ; if(fUnfold) AliInfo("Cluster Unfolding ON. Implementing only for eta=0 case!!!");}
41
42   //PID (Guenole)
43   Double_t GetGamma(Int_t i, Int_t j) const    {return fGamma[i][j];} 
44   Double_t GetHadron(Int_t i, Int_t j) const    {return fHadron[i][j];}
45   Double_t GetPiZero5to10(Int_t i, Int_t j) const    {return fPiZero5to10[i][j];}
46   Double_t GetPiZero10to60(Int_t i, Int_t j) const    {return fPiZero10to60[i][j];}
47
48   void SetGamma(Int_t i, Int_t j,Double_t param )   {fGamma[i][j]=param;}
49   void SetHadron(Int_t i, Int_t j,Double_t param )   {fHadron[i][j]=param;}
50   void SetPiZero5to10(Int_t i, Int_t j,Double_t param)   {fPiZero5to10[i][j]=param;}
51   void SetPiZero10to60(Int_t i, Int_t j,Double_t param)   {fPiZero10to60[i][j]=param;}
52
53   //Track Matching (Alberto)
54   /* track matching cut setters */
55   void SetTrkCutX(Double_t value)        {fTrkCutX = value;}
56   void SetTrkCutY(Double_t value)        {fTrkCutY = value;}
57   void SetTrkCutZ(Double_t value)        {fTrkCutZ = value;}
58   void SetTrkCutR(Double_t value)        {fTrkCutR = value;}
59   void SetTrkCutAlphaMin(Double_t value) {fTrkCutAlphaMin = value;}
60   void SetTrkCutAlphaMax(Double_t value) {fTrkCutAlphaMax = value;}
61   void SetTrkCutAngle(Double_t value)    {fTrkCutAngle = value;}
62   /* track matching cut getters */
63   Double_t GetTrkCutX() const        {return fTrkCutX;}
64   Double_t GetTrkCutY() const        {return fTrkCutY;}
65   Double_t GetTrkCutZ() const        {return fTrkCutZ;}
66   Double_t GetTrkCutR() const        {return fTrkCutR;}
67   Double_t GetTrkCutAlphaMin() const {return fTrkCutAlphaMin;}
68   Double_t GetTrkCutAlphaMax() const {return fTrkCutAlphaMax;}
69   Double_t GetTrkCutAngle() const    {return fTrkCutAngle;}
70
71   //Raw signal fitting (Jenn)
72   /* raw signal setters */
73   void SetHighLowGainFactor(Double_t value) {fHighLowGainFactor = value;}
74   void SetOrderParameter(Int_t value)       {fOrderParameter = value;}
75   void SetTau(Double_t value)               {fTau = value;}
76   void SetNoiseThreshold(Int_t value)       {fNoiseThreshold = value;}
77   void SetNPedSamples(Int_t value)          {fNPedSamples = value;}
78   /* raw signal getters */
79   Double_t GetHighLowGainFactor() const {return fHighLowGainFactor;}
80   Int_t    GetOrderParameter()    const {return fOrderParameter;}
81   Double_t GetTau()               const {return fTau;}
82   Int_t    GetNoiseThreshold()    const {return fNoiseThreshold;}
83   Int_t    GetNPedSamples()       const {return fNPedSamples;}
84  
85   virtual void Print(Option_t * option="") const ;
86
87   static const  TObjArray* GetMappings();
88
89 private:
90   //Clustering
91   Float_t fClusteringThreshold ; // minimum energy to seed a EC digit in a cluster
92   Float_t fW0 ;                  // logarithmic weight for the cluster center of gravity calculation
93   Float_t fMinECut;              // Minimum energy for a digit to be a member of a cluster
94   Bool_t fUnfold;               // flag to perform cluster unfolding
95   Float_t fLocMaxCut;            // minimum energy difference to consider local maxima in a cluster
96
97   //PID (Guenole)
98   Double_t fGamma[6][6];        // Parameter to Compute PID      
99   Double_t fHadron[6][6];       // Parameter to Compute PID      
100   Double_t fPiZero5to10[6][6];  // Parameter to Compute PID      
101   Double_t fPiZero10to60[6][6]; // Parameter to Compute PID      
102
103   //Track-Matching (Alberto)
104   Double_t  fTrkCutX;              // X-difference cut for track matching
105   Double_t  fTrkCutY;              // Y-difference cut for track matching
106   Double_t  fTrkCutZ;              // Z-difference cut for track matching
107   Double_t  fTrkCutR;              // cut on allowed track-cluster distance
108   Double_t  fTrkCutAlphaMin;       // cut on 'alpha' parameter for track matching (min)
109   Double_t  fTrkCutAlphaMax;       // cut on 'alpha' parameter for track matching (min)
110   Double_t  fTrkCutAngle;          // cut on relative angle between different track points for track matching
111
112   //Raw signal fitting parameters (Jenn)
113   Double_t fHighLowGainFactor;     //gain factor to convert between high and low gain
114   Int_t    fOrderParameter;        //order parameter for raw signal fit
115   Double_t fTau;                   //decay constant for raw signal fit
116   Int_t    fNoiseThreshold;        //threshold to consider signal or noise
117   Int_t    fNPedSamples;           //number of time samples to use in pedestal calculation
118
119   static TObjArray* fgkMaps;       // ALTRO mappings for RCU0..RCUX
120
121   ClassDef(AliEMCALRecParam,5)   // Reconstruction parameters
122
123 } ;
124
125 #endif //  ALIEMCALRECPARAM_H
126