]>
Commit | Line | Data |
---|---|---|
afae9650 | 1 | #ifndef ALIEMCALQADATAMAKERREC_H |
2 | #define ALIEMCALQADATAMAKERREC_H | |
9e47432c | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* | |
7 | Produces the data needed to calculate the quality assurance. | |
8 | All data must be mergeable objects. | |
9 | ||
10 | Based on PHOS code written by | |
11 | Y. Schutz CERN July 2007 | |
38986b78 | 12 | |
13 | Created one histogram for QA shifter;-- Yaxian Mao: 11/2009 | |
14 | The idea:average counts for all the towers should be flat | |
15 | Change all existing histograms as experts | |
16 | ||
17 | Change histograms for DQM shifter: -- Yaxian Mao 04/2010 | |
18 | Calcuate the amplitude ratio from current run and the LED reference, for QAChecker use | |
19 | Also calculate the ratio of amplitude from LED Monitor system (current/Reference), to check LED system | |
20 | ||
9e47432c | 21 | */ |
22 | ||
9e47432c | 23 | // --- ROOT system --- |
24 | class TH1F ; | |
38986b78 | 25 | class TH1I ; |
26 | class TH2F ; | |
27 | class TH2 ; | |
28 | class TLine ; | |
29 | class TText ; | |
30 | class TProfile ; | |
9e47432c | 31 | class TObjArray ; |
32 | ||
9e47432c | 33 | // --- AliRoot header files --- |
34 | #include "AliQADataMakerRec.h" | |
def665cb | 35 | class AliCaloRawAnalyzer; |
9f966f11 | 36 | class AliCaloRawAnalyzerKStandard; |
3d66fb5e | 37 | class AliEMCALGeometry; |
d0a23357 | 38 | #include "AliCaloConstants.h" |
39 | ||
9e47432c | 40 | class AliEMCALQADataMakerRec: public AliQADataMakerRec { |
41 | ||
42 | public: | |
d0a23357 | 43 | |
9e47432c | 44 | //Histograms for Raw data control |
45 | enum HRawType_t { | |
46 | // first normal Low Gain and High Gain info | |
47 | kNsmodLG,kNsmodHG,kTimeLG,kTimeHG, | |
00957c37 | 48 | kNtotLG,kNtotHG,kSigHG,kSigLG, |
9e47432c | 49 | kPedLG,kPedHG, |
38986b78 | 50 | k2DRatioAmp,kRatioDist, kLEDMonRatio, kLEDMonRatioDist, |
9e47432c | 51 | // then TRU info |
e4a4c62f | 52 | kNsmodTRU, |
9e47432c | 53 | kSigTRU,kNtotTRU, |
5c6517c3 | 54 | kNL0TRU, kTimeL0TRU, |
e4a4c62f | 55 | kNL0FirstTRU, kTimeL0FirstTRU, |
9e47432c | 56 | // and also LED Mon info |
57 | kNsmodLGLEDMon,kNsmodHGLEDMon,kTimeLGLEDMon,kTimeHGLEDMon, | |
58 | kSigLGLEDMon,kSigHGLEDMon,kNtotLGLEDMon,kNtotHGLEDMon, | |
3d66fb5e | 59 | kPedLGLEDMon,kPedHGLEDMon, |
60 | //and STU info | |
61 | kAmpL1, kGL1, kJL1, | |
62 | kGL1V0, kJL1V0, kSTUTRU | |
9e47432c | 63 | } ; |
64 | ||
65 | //Histograms for RecPoints control | |
66 | enum HRPType_t {kRecPE,kRecPM,kRecPDigM}; | |
67 | ||
68 | //Histograms for ESDs control | |
69 | enum HESDType_t {kESDCaloClusE,kESDCaloClusM,kESDCaloCellA,kESDCaloCellM} ; | |
d0a23357 | 70 | |
9e47432c | 71 | public: |
d0a23357 | 72 | |
a56549da | 73 | AliEMCALQADataMakerRec(Int_t fitAlgo = Algo::kStandard) ; // ctor |
74 | // Default fitter is kStandard=0 (see AliCaloConstants) | |
c1b3e790 | 75 | |
9e47432c | 76 | AliEMCALQADataMakerRec(const AliEMCALQADataMakerRec& qadm) ; |
77 | AliEMCALQADataMakerRec& operator = (const AliEMCALQADataMakerRec& qadm) ; | |
78 | virtual ~AliEMCALQADataMakerRec() {;} // dtor | |
79 | ||
def665cb | 80 | Int_t GetFittingAlgorithm() const {return fFittingAlgorithm; } |
d0a23357 | 81 | void SetFittingAlgorithm(Int_t val); |
2a5a8fbe | 82 | |
def665cb | 83 | AliCaloRawAnalyzer *GetRawAnalyzer() const { return fRawAnalyzer;} |
9f966f11 | 84 | AliCaloRawAnalyzerKStandard *GetRawAnalyzerTRU() const { return fRawAnalyzerTRU;} |
def665cb | 85 | |
9e47432c | 86 | void SetSuperModules(int i) {fSuperModules = i;}; //The number of SuperModules |
87 | int GetSuperModules() const {return fSuperModules;}; //The number of SuperModules | |
88 | ||
89 | // for pedestal calculation with raw data | |
a56549da | 90 | void SetFirstPedestalSample(int i) {fFirstPedestalSample = i;} // first sample |
d0a23357 | 91 | int GetFirstPedestalSample() const {return fFirstPedestalSample;} // first sample |
a56549da | 92 | void SetLastPedestalSample(int i) {fLastPedestalSample = i;} // last sample |
93 | int GetLastPedestalSample() const {return fLastPedestalSample;} // last sample | |
d0a23357 | 94 | |
a56549da | 95 | void SetFirstPedestalSampleTRU(int i) {fFirstPedestalSampleTRU = i;} // first sample, TRU |
d0a23357 | 96 | int GetFirstPedestalSampleTRU() const {return fFirstPedestalSampleTRU;} // first sample, TRU |
a56549da | 97 | void SetLastPedestalSampleTRU(int i) {fLastPedestalSampleTRU = i;} // last sample, TRU |
98 | int GetLastPedestalSampleTRU() const {return fLastPedestalSampleTRU;} // last sample, TRU | |
def665cb | 99 | |
100 | // for selection of interesting signal (max-min) range | |
101 | // Low Gain channels | |
a56549da | 102 | void SetMinSignalLG(int i) {fMinSignalLG = i;} |
d0a23357 | 103 | int GetMinSignalLG() const {return fMinSignalLG;} |
a56549da | 104 | void SetMaxSignalLG(int i) {fMaxSignalLG = i;} |
d0a23357 | 105 | int GetMaxSignalLG() const {return fMaxSignalLG;} |
106 | ||
def665cb | 107 | // High Gain channels |
a56549da | 108 | void SetMinSignalHG(int i) {fMinSignalHG = i;} |
d0a23357 | 109 | int GetMinSignalHG() const {return fMinSignalHG;} |
a56549da | 110 | void SetMaxSignalHG(int i) {fMaxSignalHG = i;} |
d0a23357 | 111 | int GetMaxSignalHG() const {return fMaxSignalHG;} |
112 | ||
def665cb | 113 | // TRU channels |
d0a23357 | 114 | void SetMinSignalTRU(int i) {fMinSignalTRU = i;} |
115 | int GetMinSignalTRU() const {return fMinSignalTRU;} | |
116 | void SetMaxSignalTRU(int i) {fMaxSignalTRU = i;} | |
117 | int GetMaxSignalTRU() const {return fMaxSignalTRU;} | |
118 | ||
def665cb | 119 | // LEDMon channels |
d0a23357 | 120 | void SetMinSignalLGLEDMon(int i) {fMinSignalLGLEDMon = i;} |
121 | int GetMinSignalLGLEDMon() const {return fMinSignalLGLEDMon;} | |
122 | void SetMaxSignalLGLEDMon(int i) {fMaxSignalLGLEDMon = i;} | |
123 | int GetMaxSignalLGLEDMon() const {return fMaxSignalLGLEDMon;} | |
124 | void SetMinSignalHGLEDMon(int i) {fMinSignalHGLEDMon = i;} | |
125 | int GetMinSignalHGLEDMon() const {return fMinSignalHGLEDMon;} | |
126 | void SetMaxSignalHGLEDMon(int i) {fMaxSignalHGLEDMon = i;} | |
127 | int GetMaxSignalHGLEDMon() const {return fMaxSignalHGLEDMon;} | |
9e47432c | 128 | |
129 | virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray ** list) ; | |
38986b78 | 130 | void GetCalibRefFromOCDB() ; |
d0a23357 | 131 | void GetTruChannelPosition( Int_t &globRow, Int_t &globColumn, Int_t module, Int_t ddl, Int_t branch, Int_t column ) const; |
9e47432c | 132 | virtual void InitESDs() ; |
133 | virtual void InitDigits() ; | |
134 | virtual void InitRecPoints() ; | |
135 | virtual void InitRaws() ; | |
136 | virtual void MakeESDs(AliESDEvent * esd) ; | |
137 | virtual void MakeDigits() ; | |
138 | virtual void MakeDigits(TTree * digTree) ; | |
139 | virtual void MakeRecPoints(TTree * recpoTree) ; | |
3d66fb5e | 140 | virtual void MakeRaws(AliRawReader* rawReader) ; |
afae9650 | 141 | virtual void MakeRawsSTU(AliRawReader* rawReader); |
9e47432c | 142 | virtual void StartOfDetectorCycle() ; |
143 | ||
144 | private: | |
38986b78 | 145 | |
d0a23357 | 146 | void ConvertProfile2H(TProfile * p, TH2 * histo) ; //change the profile plot to a 2D histogram |
147 | ||
2a5a8fbe | 148 | Int_t fFittingAlgorithm; // select the fitting algorithm, not really used, remove? |
92d9f317 | 149 | |
d0a23357 | 150 | AliCaloRawAnalyzer *fRawAnalyzer; // for signal fitting |
151 | AliCaloRawAnalyzerKStandard *fRawAnalyzerTRU; // for TRU signal fitting | |
152 | AliEMCALGeometry *fGeom; // EMCAL geometry, needed for STU decoding | |
def665cb | 153 | |
d0a23357 | 154 | int fSuperModules; // The number of SuperModules activated |
155 | int fFirstPedestalSample; // first sample for pedestal calculation, in bunch | |
156 | int fLastPedestalSample; // last sample for pedestal calculation, in bunch | |
def665cb | 157 | int fFirstPedestalSampleTRU; // first sample for pedestal calculation, in bunch |
d0a23357 | 158 | int fLastPedestalSampleTRU; // last sample for pedestal calculation, in bunch |
159 | int fMinSignalLG; // minimum signal, for Low Gain channels | |
160 | int fMaxSignalLG; // maximum signal, for Low Gain channels | |
161 | int fMinSignalHG; // minimum signal, for High Gain channels | |
162 | int fMaxSignalHG; // maximum signal, for High Gain channels | |
163 | int fMinSignalTRU; // minimum signal, for TRU channels | |
164 | int fMaxSignalTRU; // maximum signal, for TRU channels | |
def665cb | 165 | int fMinSignalLGLEDMon; // minimum signal, for LEDMon channels, low gain |
166 | int fMaxSignalLGLEDMon; // maximum signal, for LEDMon channels, low gain | |
167 | int fMinSignalHGLEDMon; // minimum signal, for LEDMon channels, high gain | |
168 | int fMaxSignalHGLEDMon; // maximum signal, for LEDMon channels, high gain | |
169 | ||
38986b78 | 170 | TProfile * fCalibRefHistoPro ; // Profile reference histogram from LED run |
171 | TH2F * fCalibRefHistoH2F ; // H2F reference histogram from LED run | |
d0a23357 | 172 | TProfile * fLEDMonRefHistoPro; // Profile reference histogram from LED monitor |
173 | TH2F * fHighEmcHistoH2F ; // H2F reference histogram from LED run | |
38986b78 | 174 | // TText ** fTextSM ; //! Text info for each SM |
175 | // TLine * fLineCol ; //! line to distinguish the different SM side: A side and C side | |
176 | // TLine * fLineRow ; //! line to distinguish the different SM sector 0 and 1 | |
9e47432c | 177 | |
def665cb | 178 | ClassDef(AliEMCALQADataMakerRec,5) // description |
9e47432c | 179 | |
180 | }; | |
181 | ||
afae9650 | 182 | #endif // AliEMCALQADATAMAKERREC_H |