X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FAliEMCALQADataMakerRec.h;h=517805ccd2cad30b8cfaeb865349886342d0187e;hb=aa113f3d9cb4a8dbbd05cf3dddffe5b2e92c5885;hp=384d6591e580a50169c460c73433ecef44783ecb;hpb=d3b82d58e261bfcd3f4dae56ed14dbb6fba1bd1e;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/AliEMCALQADataMakerRec.h b/EMCAL/AliEMCALQADataMakerRec.h index 384d6591e58..517805ccd2c 100644 --- a/EMCAL/AliEMCALQADataMakerRec.h +++ b/EMCAL/AliEMCALQADataMakerRec.h @@ -1,5 +1,5 @@ -#ifndef ALIEMCALQADataMakerRec_H -#define ALIEMCALQADataMakerRec_H +#ifndef ALIEMCALQADATAMAKERREC_H +#define ALIEMCALQADATAMAKERREC_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ @@ -9,18 +9,36 @@ Based on PHOS code written by Y. Schutz CERN July 2007 + + Created one histogram for QA shifter;-- Yaxian Mao: 11/2009 + The idea:average counts for all the towers should be flat + Change all existing histograms as experts + + Change histograms for DQM shifter: -- Yaxian Mao 04/2010 + Calcuate the amplitude ratio from current run and the LED reference, for QAChecker use + Also calculate the ratio of amplitude from LED Monitor system (current/Reference), to check LED system + */ // --- ROOT system --- class TH1F ; -class TH1I ; +class TH1I ; +class TH2F ; +class TH2 ; +class TLine ; +class TText ; +class TProfile ; class TObjArray ; // --- Standard library --- // --- AliRoot header files --- #include "AliQADataMakerRec.h" +class AliCaloRawAnalyzer; +class AliCaloRawAnalyzerKStandard; +//class AliEMCALGeoParams; +class AliEMCALGeometry; class AliEMCALQADataMakerRec: public AliQADataMakerRec { @@ -29,18 +47,21 @@ public: enum HRawType_t { // first normal Low Gain and High Gain info kNsmodLG,kNsmodHG,kTimeLG,kTimeHG, - kSigLG,kSigHG,kNtotLG,kNtotHG, + kNtotLG,kNtotHG,kSigHG,kSigLG, kPedLG,kPedHG, - kPedRMSLG,kPedRMSHG, + k2DRatioAmp,kRatioDist, kLEDMonRatio, kLEDMonRatioDist, // then TRU info - kNsmodTRU,kTimeTRU, + kNsmodTRU, kSigTRU,kNtotTRU, - kPedTRU,kPedRMSTRU, + kNL0TRU, kTimeL0TRU, + kNL0FirstTRU, kTimeL0FirstTRU, // and also LED Mon info kNsmodLGLEDMon,kNsmodHGLEDMon,kTimeLGLEDMon,kTimeHGLEDMon, kSigLGLEDMon,kSigHGLEDMon,kNtotLGLEDMon,kNtotHGLEDMon, kPedLGLEDMon,kPedHGLEDMon, - kPedRMSLGLEDMon,kPedRMSHGLEDMon + //and STU info + kAmpL1, kGL1, kJL1, + kGL1V0, kJL1V0, kSTUTRU } ; //Histograms for RecPoints control @@ -51,11 +72,18 @@ public: public: - AliEMCALQADataMakerRec() ; // ctor + enum fitAlgorithm {kFastFit=1, kNeuralNet = 2, kLMS = 4, kPeakFinder = 5, kCrude = 6}; + AliEMCALQADataMakerRec(fitAlgorithm fitAlgo = kNeuralNet) ; // ctor + AliEMCALQADataMakerRec(const AliEMCALQADataMakerRec& qadm) ; AliEMCALQADataMakerRec& operator = (const AliEMCALQADataMakerRec& qadm) ; virtual ~AliEMCALQADataMakerRec() {;} // dtor + Int_t GetFittingAlgorithm() const {return fFittingAlgorithm; } + void SetFittingAlgorithm(Int_t val); + AliCaloRawAnalyzer *GetRawAnalyzer() const { return fRawAnalyzer;} + AliCaloRawAnalyzerKStandard *GetRawAnalyzerTRU() const { return fRawAnalyzerTRU;} + void SetSuperModules(int i) {fSuperModules = i;}; //The number of SuperModules int GetSuperModules() const {return fSuperModules;}; //The number of SuperModules @@ -64,8 +92,40 @@ public: int GetFirstPedestalSample() const {return fFirstPedestalSample;}; // first sample void SetLastPedestalSample(int i) {fLastPedestalSample = i;}; // last sample int GetLastPedestalSample() const {return fLastPedestalSample;}; // last sample + void SetFirstPedestalSampleTRU(int i) {fFirstPedestalSampleTRU = i;}; // first sample, TRU + int GetFirstPedestalSampleTRU() const {return fFirstPedestalSampleTRU;}; // first sample, TRU + void SetLastPedestalSampleTRU(int i) {fLastPedestalSampleTRU = i;}; // last sample, TRU + int GetLastPedestalSampleTRU() const {return fLastPedestalSampleTRU;}; // last sample, TRU + + // for selection of interesting signal (max-min) range + // Low Gain channels + void SetMinSignalLG(int i) {fMinSignalLG = i;}; + int GetMinSignalLG() const {return fMinSignalLG;}; + void SetMaxSignalLG(int i) {fMaxSignalLG = i;}; + int GetMaxSignalLG() const {return fMaxSignalLG;}; + // High Gain channels + void SetMinSignalHG(int i) {fMinSignalHG = i;}; + int GetMinSignalHG() const {return fMinSignalHG;}; + void SetMaxSignalHG(int i) {fMaxSignalHG = i;}; + int GetMaxSignalHG() const {return fMaxSignalHG;}; + // TRU channels + void SetMinSignalTRU(int i) {fMinSignalTRU = i;}; + int GetMinSignalTRU() const {return fMinSignalTRU;}; + void SetMaxSignalTRU(int i) {fMaxSignalTRU = i;}; + int GetMaxSignalTRU() const {return fMaxSignalTRU;}; + // LEDMon channels + void SetMinSignalLGLEDMon(int i) {fMinSignalLGLEDMon = i;}; + int GetMinSignalLGLEDMon() const {return fMinSignalLGLEDMon;}; + void SetMaxSignalLGLEDMon(int i) {fMaxSignalLGLEDMon = i;}; + int GetMaxSignalLGLEDMon() const {return fMaxSignalLGLEDMon;}; + void SetMinSignalHGLEDMon(int i) {fMinSignalHGLEDMon = i;}; + int GetMinSignalHGLEDMon() const {return fMinSignalHGLEDMon;}; + void SetMaxSignalHGLEDMon(int i) {fMaxSignalHGLEDMon = i;}; + int GetMaxSignalHGLEDMon() const {return fMaxSignalHGLEDMon;}; virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray ** list) ; + void GetCalibRefFromOCDB() ; + void GetTruChannelPosition( Int_t &globRow, Int_t &globColumn, Int_t module, Int_t ddl, Int_t branch, Int_t column ) const; virtual void InitESDs() ; virtual void InitDigits() ; virtual void InitRecPoints() ; @@ -74,16 +134,45 @@ public: virtual void MakeDigits() ; virtual void MakeDigits(TTree * digTree) ; virtual void MakeRecPoints(TTree * recpoTree) ; - virtual void MakeRaws(AliRawReader* rawReader) ; + virtual void MakeRaws(AliRawReader* rawReader) ; + virtual void MakeRawsSTU(AliRawReader* rawReader); virtual void StartOfDetectorCycle() ; private: - int fSuperModules; //The number of SuperModules activated - int fFirstPedestalSample; // first sample for pedestal calculation - int fLastPedestalSample; // last sample for pedestal calculation + void ConvertProfile2H(TProfile * p, TH2 * histo) ; //change the profile plot to a 2D histogram + + Int_t fFittingAlgorithm; // select the fitting algorithm - ClassDef(AliEMCALQADataMakerRec,3) // description + AliCaloRawAnalyzer *fRawAnalyzer; // for signal fitting + AliCaloRawAnalyzerKStandard *fRawAnalyzerTRU; // for signal fitting, for TRU + AliEMCALGeometry *fGeom; //EMCAL geometry, needed for STU decoding + + int fSuperModules; //The number of SuperModules activated + int fFirstPedestalSample; // first sample for pedestal calculation, in bunch + int fLastPedestalSample; // last sample for pedestal calculation, in bunch + int fFirstPedestalSampleTRU; // first sample for pedestal calculation, in bunch + int fLastPedestalSampleTRU; // last sample for pedestal calculation, in bunch + int fMinSignalLG; // minimum signal, for Low Gain channels + int fMaxSignalLG; // maximum signal, for Low Gain channels + int fMinSignalHG; // minimum signal, for High Gain channels + int fMaxSignalHG; // maximum signal, for High Gain channels + int fMinSignalTRU; // minimum signal, for TRU channels + int fMaxSignalTRU; // maximum signal, for TRU channels + int fMinSignalLGLEDMon; // minimum signal, for LEDMon channels, low gain + int fMaxSignalLGLEDMon; // maximum signal, for LEDMon channels, low gain + int fMinSignalHGLEDMon; // minimum signal, for LEDMon channels, high gain + int fMaxSignalHGLEDMon; // maximum signal, for LEDMon channels, high gain + + TProfile * fCalibRefHistoPro ; // Profile reference histogram from LED run + TH2F * fCalibRefHistoH2F ; // H2F reference histogram from LED run + TProfile * fLEDMonRefHistoPro ; // Profile reference histogram from LED monitor + TH2F * fHighEmcHistoH2F ; // H2F reference histogram from LED run +// TText ** fTextSM ; //! Text info for each SM +// TLine * fLineCol ; //! line to distinguish the different SM side: A side and C side +// TLine * fLineRow ; //! line to distinguish the different SM sector 0 and 1 + + ClassDef(AliEMCALQADataMakerRec,5) // description }; -#endif // AliEMCALQADataMakerRec_H +#endif // AliEMCALQADATAMAKERREC_H