1 #ifndef ALIEMCALQADATAMAKERREC_H
2 #define ALIEMCALQADATAMAKERREC_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 Produces the data needed to calculate the quality assurance.
8 All data must be mergeable objects.
10 Based on PHOS code written by
11 Y. Schutz CERN July 2007
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
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
23 // --- ROOT system ---
33 // --- AliRoot header files ---
34 #include "AliQADataMakerRec.h"
35 class AliCaloRawAnalyzer;
36 class AliEMCALGeometry;
37 #include "AliCaloConstants.h"
39 class AliEMCALQADataMakerRec: public AliQADataMakerRec {
43 //Histograms for Raw data control
45 // first normal Low Gain and High Gain info
46 kNsmodLG,kNsmodHG,kTimeLG,kTimeHG,
47 kNtotLG,kNtotHG,kSigHG,kSigLG,
49 k2DRatioAmp,kRatioDist, kLEDMonRatio, kLEDMonRatioDist,
54 kNL0FirstTRU, kTimeL0FirstTRU,
55 // and also LED Mon info
56 kNsmodLGLEDMon,kNsmodHGLEDMon,kTimeLGLEDMon,kTimeHGLEDMon,
57 kSigLGLEDMon,kSigHGLEDMon,kNtotLGLEDMon,kNtotHGLEDMon,
58 kPedLGLEDMon,kPedHGLEDMon,
61 kGL1V0, kJL1V0, kSTUTRU
64 //Histograms for RecPoints control
65 enum HRPType_t {kRecPE,kRecPM,kRecPDigM};
67 //Histograms for ESDs control
68 enum HESDType_t {kESDCaloClusE,kESDCaloClusM,kESDCaloCellA,kESDCaloCellM} ;
72 AliEMCALQADataMakerRec(Int_t fitAlgo = Algo::kStandard) ; // ctor
73 // Default fitter is kStandard=0 (see AliCaloConstants)
75 AliEMCALQADataMakerRec(const AliEMCALQADataMakerRec& qadm) ;
76 AliEMCALQADataMakerRec& operator = (const AliEMCALQADataMakerRec& qadm) ;
77 virtual ~AliEMCALQADataMakerRec() {;} // dtor
79 Int_t GetFittingAlgorithm() const {return fFittingAlgorithm;}
80 void SetFittingAlgorithm(Int_t val);
82 AliCaloRawAnalyzer *GetRawAnalyzer() const {return fRawAnalyzer ;}
83 AliCaloRawAnalyzer *GetRawAnalyzerTRU() const {return fRawAnalyzerTRU;}
85 void SetSuperModules(int i) {fSuperModules = i;}; //The number of SuperModules
86 int GetSuperModules() const {return fSuperModules;}; //The number of SuperModules
88 // for pedestal calculation with raw data
89 void SetFirstPedestalSample(int i) {fFirstPedestalSample = i;} // first sample
90 int GetFirstPedestalSample() const {return fFirstPedestalSample;} // first sample
91 void SetLastPedestalSample(int i) {fLastPedestalSample = i;} // last sample
92 int GetLastPedestalSample() const {return fLastPedestalSample;} // last sample
94 void SetFirstPedestalSampleTRU(int i) {fFirstPedestalSampleTRU = i;} // first sample, TRU
95 int GetFirstPedestalSampleTRU() const {return fFirstPedestalSampleTRU;} // first sample, TRU
96 void SetLastPedestalSampleTRU(int i) {fLastPedestalSampleTRU = i;} // last sample, TRU
97 int GetLastPedestalSampleTRU() const {return fLastPedestalSampleTRU;} // last sample, TRU
99 // for selection of interesting signal (max-min) range
101 void SetMinSignalLG(int i) {fMinSignalLG = i;}
102 int GetMinSignalLG() const {return fMinSignalLG;}
103 void SetMaxSignalLG(int i) {fMaxSignalLG = i;}
104 int GetMaxSignalLG() const {return fMaxSignalLG;}
106 // High Gain channels
107 void SetMinSignalHG(int i) {fMinSignalHG = i;}
108 int GetMinSignalHG() const {return fMinSignalHG;}
109 void SetMaxSignalHG(int i) {fMaxSignalHG = i;}
110 int GetMaxSignalHG() const {return fMaxSignalHG;}
113 void SetMinSignalTRU(int i) {fMinSignalTRU = i;}
114 int GetMinSignalTRU() const {return fMinSignalTRU;}
115 void SetMaxSignalTRU(int i) {fMaxSignalTRU = i;}
116 int GetMaxSignalTRU() const {return fMaxSignalTRU;}
119 void SetMinSignalLGLEDMon(int i) {fMinSignalLGLEDMon = i;}
120 int GetMinSignalLGLEDMon() const {return fMinSignalLGLEDMon;}
121 void SetMaxSignalLGLEDMon(int i) {fMaxSignalLGLEDMon = i;}
122 int GetMaxSignalLGLEDMon() const {return fMaxSignalLGLEDMon;}
123 void SetMinSignalHGLEDMon(int i) {fMinSignalHGLEDMon = i;}
124 int GetMinSignalHGLEDMon() const {return fMinSignalHGLEDMon;}
125 void SetMaxSignalHGLEDMon(int i) {fMaxSignalHGLEDMon = i;}
126 int GetMaxSignalHGLEDMon() const {return fMaxSignalHGLEDMon;}
128 virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray ** list) ;
129 void GetCalibRefFromOCDB() ;
130 void GetTruChannelPosition( Int_t &globRow, Int_t &globColumn, Int_t module, Int_t ddl, Int_t branch, Int_t column ) const;
131 virtual void InitESDs() ;
132 virtual void InitDigits() ;
133 virtual void InitRecPoints() ;
134 virtual void InitRaws() ;
135 virtual void MakeESDs(AliESDEvent * esd) ;
136 virtual void MakeDigits() ;
137 virtual void MakeDigits(TTree * digTree) ;
138 virtual void MakeRecPoints(TTree * recpoTree) ;
139 virtual void MakeRaws(AliRawReader* rawReader) ;
140 virtual void MakeRawsSTU(AliRawReader* rawReader);
141 virtual void StartOfDetectorCycle() ;
145 void ConvertProfile2H(TProfile * p, TH2 * histo) ; //change the profile plot to a 2D histogram
147 Int_t fFittingAlgorithm; // select the fitting algorithm, only used in copy ctor ...
149 AliCaloRawAnalyzer *fRawAnalyzer; // for signal fitting
150 AliCaloRawAnalyzer *fRawAnalyzerTRU; // for TRU signal fitting
151 AliEMCALGeometry *fGeom; // EMCAL geometry, needed for STU decoding
153 int fSuperModules; // The number of SuperModules activated
154 int fFirstPedestalSample; // first sample for pedestal calculation, in bunch
155 int fLastPedestalSample; // last sample for pedestal calculation, in bunch
156 int fFirstPedestalSampleTRU; // first sample for pedestal calculation, in bunch
157 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
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
170 TProfile * fCalibRefHistoPro ; // Profile reference histogram from LED run
171 TH2F * fCalibRefHistoH2F ; // H2F reference histogram from LED run
172 TProfile * fLEDMonRefHistoPro; // Profile reference histogram from LED monitor
173 TH2F * fHighEmcHistoH2F ; // H2F reference histogram from LED run
175 // TText ** fTextSM ; //! Text info for each SM
176 // TLine * fLineCol ; //! line to distinguish the different SM side: A side and C side
177 // TLine * fLineRow ; //! line to distinguish the different SM sector 0 and 1
179 ClassDef(AliEMCALQADataMakerRec,6) // description
183 #endif // AliEMCALQADATAMAKERREC_H