]>
Commit | Line | Data |
---|---|---|
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 | void SetRemoveBadChannels(Bool_t val) {fRemoveBadChannels=val; } | |
95 | void SetFittingAlgorithm(Int_t val) {fFittingAlgorithm=val; } | |
96 | void SetFALTROUsage(Bool_t val) {fUseFALTRO=val; } | |
97 | ||
98 | /* raw signal getters */ | |
99 | Double_t GetHighLowGainFactor() const {return fHighLowGainFactor;} | |
100 | Int_t GetOrderParameter() const {return fOrderParameter;} | |
101 | Double_t GetTau() const {return fTau;} | |
102 | Int_t GetNoiseThreshold() const {return fNoiseThreshold;} | |
103 | Int_t GetNPedSamples() const {return fNPedSamples;} | |
104 | Bool_t GetRemoveBadChannels() const {return fRemoveBadChannels;} | |
105 | Int_t GetFittingAlgorithm() const {return fFittingAlgorithm; } | |
106 | Bool_t UseFALTRO() const {return fUseFALTRO; } | |
107 | ||
108 | virtual void Print(Option_t * option="") const ; | |
109 | ||
110 | static AliEMCALRecParam* GetDefaultParameters(); | |
111 | static AliEMCALRecParam* GetLowFluxParam(); | |
112 | static AliEMCALRecParam* GetHighFluxParam(); | |
113 | static AliEMCALRecParam* GetCalibParam(); | |
114 | static AliEMCALRecParam* GetCosmicParam(); | |
115 | ||
116 | static const TObjArray* GetMappings(); | |
117 | ||
118 | private: | |
119 | //Clustering | |
120 | Float_t fClusteringThreshold ; // Minimum energy to seed a EC digit in a cluster | |
121 | Float_t fW0 ; // Logarithmic weight for the cluster center of gravity calculation | |
122 | Float_t fMinECut; // Minimum energy for a digit to be a member of a cluster | |
123 | Bool_t fUnfold; // Flag to perform cluster unfolding | |
124 | Float_t fLocMaxCut; // Minimum energy difference to consider local maxima in a cluster | |
125 | Float_t fTimeCut ; // Maximum time of digits in EMC cluster | |
126 | ||
127 | //PID (Guenole) | |
128 | Double_t fGamma[6][6]; // Parameter to Compute PID for photons | |
129 | Double_t fGamma1to10[6][6]; // Parameter to Compute PID not used | |
130 | Double_t fHadron[6][6]; // Parameter to Compute PID for hadrons | |
131 | Double_t fHadron1to10[6][6]; // Parameter to Compute PID for hadrons between 1 and 10 GeV | |
132 | Double_t fHadronEnergyProb[6]; // Parameter to Compute PID for energy ponderation for hadrons | |
133 | Double_t fPiZeroEnergyProb[6]; // Parameter to Compute PID for energy ponderation for Pi0 | |
134 | Double_t fGammaEnergyProb[6]; // Parameter to Compute PID for energy ponderation for gamma | |
135 | Double_t fPiZero[6][6]; // Parameter to Compute PID for pi0 | |
136 | ||
137 | ||
138 | //Track-Matching (Alberto) | |
139 | Double_t fTrkCutX; // X-difference cut for track matching | |
140 | Double_t fTrkCutY; // Y-difference cut for track matching | |
141 | Double_t fTrkCutZ; // Z-difference cut for track matching | |
142 | Double_t fTrkCutR; // cut on allowed track-cluster distance | |
143 | Double_t fTrkCutAlphaMin; // cut on 'alpha' parameter for track matching (min) | |
144 | Double_t fTrkCutAlphaMax; // cut on 'alpha' parameter for track matching (min) | |
145 | Double_t fTrkCutAngle; // cut on relative angle between different track points for track matching | |
146 | Double_t fTrkCutNITS; // Number of ITS hits for track matching | |
147 | Double_t fTrkCutNTPC; // Number of TPC hits for track matching | |
148 | ||
149 | //Raw signal fitting parameters (Jenn) | |
150 | Double_t fHighLowGainFactor; // gain factor to convert between high and low gain | |
151 | Int_t fOrderParameter; // order parameter for raw signal fit | |
152 | Double_t fTau; // decay constant for raw signal fit | |
153 | Int_t fNoiseThreshold; // threshold to consider signal or noise | |
154 | Int_t fNPedSamples; // number of time samples to use in pedestal calculation | |
155 | Bool_t fRemoveBadChannels; // select if bad channels are removed before fitting | |
156 | Int_t fFittingAlgorithm; // select the fitting algorithm | |
157 | Bool_t fUseFALTRO; // get FALTRO (trigger) and put it on trigger digits. | |
158 | ||
159 | static TObjArray* fgkMaps; // ALTRO mappings for RCU0..RCUX | |
160 | ||
161 | ClassDef(AliEMCALRecParam,10) // Reconstruction parameters | |
162 | ||
163 | } ; | |
164 | ||
165 | #endif // ALIEMCALRECPARAM_H | |
166 |