]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALQADataMakerRec.h
From Jiri and Francesco: code to look at TRU L0 info
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALQADataMakerRec.h
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                               */
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
12 */
13
14
15 // --- ROOT system ---
16 class TH1F ; 
17 class TH1I ; 
18 class TObjArray ; 
19
20 // --- Standard library ---
21
22 // --- AliRoot header files ---
23 #include "AliQADataMakerRec.h"
24 class AliCaloRawAnalyzer;
25 class AliCaloRawAnalyzerLMS;
26
27 class AliEMCALQADataMakerRec: public AliQADataMakerRec {
28
29 public:
30   //Histograms for Raw data control
31   enum HRawType_t { 
32     // first normal Low Gain and High Gain info
33     kNsmodLG,kNsmodHG,kTimeLG,kTimeHG,
34     kSigLG,kSigHG,kNtotLG,kNtotHG,kTowerHG,kTowerLG,
35     kPedLG,kPedHG,
36     // then TRU info
37     kNsmodTRU,kTimeTRU,
38     kSigTRU,kNtotTRU,
39     kPedTRU,
40     kNL0TRU, kTimeL0TRU,
41     // and also LED Mon info
42     kNsmodLGLEDMon,kNsmodHGLEDMon,kTimeLGLEDMon,kTimeHGLEDMon,
43     kSigLGLEDMon,kSigHGLEDMon,kNtotLGLEDMon,kNtotHGLEDMon,
44     kPedLGLEDMon,kPedHGLEDMon
45   } ;
46
47   //Histograms for RecPoints  control
48   enum HRPType_t {kRecPE,kRecPM,kRecPDigM};
49
50   //Histograms for ESDs  control
51   enum HESDType_t {kESDCaloClusE,kESDCaloClusM,kESDCaloCellA,kESDCaloCellM} ;
52                  
53
54 public:
55   enum fitAlgorithm {kFastFit=1, kNeuralNet = 2, kLMS = 4, kPeakFinder = 5, kCrude = 6};
56   AliEMCALQADataMakerRec(fitAlgorithm fitAlgo = kNeuralNet) ;          // ctor
57  
58   AliEMCALQADataMakerRec(const AliEMCALQADataMakerRec& qadm) ;   
59   AliEMCALQADataMakerRec& operator = (const AliEMCALQADataMakerRec& qadm) ;
60   virtual ~AliEMCALQADataMakerRec() {;} // dtor
61
62   Int_t GetFittingAlgorithm() const {return fFittingAlgorithm; }
63   void SetFittingAlgorithm(Int_t val);
64   AliCaloRawAnalyzer *GetRawAnalyzer() const { return fRawAnalyzer;}
65   AliCaloRawAnalyzerLMS *GetRawAnalyzerTRU() const { return fRawAnalyzerTRU;}
66
67   void SetSuperModules(int i) {fSuperModules = i;}; //The number of SuperModules
68   int GetSuperModules() const {return fSuperModules;}; //The number of SuperModules
69
70   // for pedestal calculation with raw data
71   void SetFirstPedestalSample(int i) {fFirstPedestalSample = i;}; // first sample 
72   int GetFirstPedestalSample() const {return fFirstPedestalSample;}; // first sample 
73   void SetLastPedestalSample(int i) {fLastPedestalSample = i;}; // last sample 
74   int GetLastPedestalSample() const {return fLastPedestalSample;}; // last sample 
75   void SetFirstPedestalSampleTRU(int i) {fFirstPedestalSampleTRU = i;}; // first sample, TRU 
76   int GetFirstPedestalSampleTRU() const {return fFirstPedestalSampleTRU;}; // first sample, TRU 
77   void SetLastPedestalSampleTRU(int i) {fLastPedestalSampleTRU = i;}; // last sample, TRU 
78   int GetLastPedestalSampleTRU() const {return fLastPedestalSampleTRU;}; // last sample, TRU 
79   
80   // for selection of interesting signal (max-min) range 
81   // Low Gain channels
82   void SetMinSignalLG(int i) {fMinSignalLG = i;}; 
83   int GetMinSignalLG() const {return fMinSignalLG;}; 
84   void SetMaxSignalLG(int i) {fMaxSignalLG = i;}; 
85   int GetMaxSignalLG() const {return fMaxSignalLG;}; 
86   // High Gain channels
87   void SetMinSignalHG(int i) {fMinSignalHG = i;}; 
88   int GetMinSignalHG() const {return fMinSignalHG;}; 
89   void SetMaxSignalHG(int i) {fMaxSignalHG = i;}; 
90   int GetMaxSignalHG() const {return fMaxSignalHG;}; 
91   // TRU channels
92   void SetMinSignalTRU(int i) {fMinSignalTRU = i;}; 
93   int GetMinSignalTRU() const {return fMinSignalTRU;}; 
94   void SetMaxSignalTRU(int i) {fMaxSignalTRU = i;}; 
95   int GetMaxSignalTRU() const {return fMaxSignalTRU;}; 
96   // LEDMon channels
97   void SetMinSignalLGLEDMon(int i) {fMinSignalLGLEDMon = i;}; 
98   int GetMinSignalLGLEDMon() const {return fMinSignalLGLEDMon;}; 
99   void SetMaxSignalLGLEDMon(int i) {fMaxSignalLGLEDMon = i;}; 
100   int GetMaxSignalLGLEDMon() const {return fMaxSignalLGLEDMon;}; 
101   void SetMinSignalHGLEDMon(int i) {fMinSignalHGLEDMon = i;}; 
102   int GetMinSignalHGLEDMon() const {return fMinSignalHGLEDMon;}; 
103   void SetMaxSignalHGLEDMon(int i) {fMaxSignalHGLEDMon = i;}; 
104   int GetMaxSignalHGLEDMon() const {return fMaxSignalHGLEDMon;}; 
105
106   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray ** list) ;
107   virtual void   InitESDs() ; 
108   virtual void   InitDigits() ; 
109   virtual void   InitRecPoints() ; 
110   virtual void   InitRaws() ; 
111   virtual void   MakeESDs(AliESDEvent * esd) ;
112   virtual void   MakeDigits() ;
113   virtual void   MakeDigits(TTree * digTree) ; 
114   virtual void   MakeRecPoints(TTree * recpoTree) ; 
115   virtual void   MakeRaws(AliRawReader* rawReader) ; 
116   virtual void   StartOfDetectorCycle() ; 
117
118 private:
119
120   Int_t fFittingAlgorithm;             // select the fitting algorithm
121   AliCaloRawAnalyzer *fRawAnalyzer;    // for signal fitting
122   AliCaloRawAnalyzerLMS *fRawAnalyzerTRU;    // for signal fitting, for TRU
123
124   int fSuperModules; //The number of SuperModules activated
125   int fFirstPedestalSample; // first sample for pedestal calculation, in bunch
126   int fLastPedestalSample; // last sample for pedestal calculation, in bunch
127   int fFirstPedestalSampleTRU; // first sample for pedestal calculation, in bunch
128   int fLastPedestalSampleTRU; // last sample for pedestal calculation, in bunch
129   int fMinSignalLG; // minimum signal, for Low Gain channels
130   int fMaxSignalLG; // maximum signal, for Low Gain channels
131   int fMinSignalHG; // minimum signal, for High Gain channels
132   int fMaxSignalHG; // maximum signal, for High Gain channels
133   int fMinSignalTRU; // minimum signal, for TRU channels
134   int fMaxSignalTRU; // maximum signal, for TRU channels
135   int fMinSignalLGLEDMon; // minimum signal, for LEDMon channels, low gain
136   int fMaxSignalLGLEDMon; // maximum signal, for LEDMon channels, low gain
137   int fMinSignalHGLEDMon; // minimum signal, for LEDMon channels, high gain
138   int fMaxSignalHGLEDMon; // maximum signal, for LEDMon channels, high gain
139
140
141   ClassDef(AliEMCALQADataMakerRec,5)  // description 
142
143 };
144
145 #endif // AliEMCALQADataMakerRec_H