Fix for #87900: Request to port changes is AliTOFQADataMakerRec code into release...
[u/mrichter/AliRoot.git] / TOF / AliTOFQADataMakerRec.h
1 #ifndef ALITOFQADATAMAKERREC_H
2 #define ALITOFQADATAMAKERREC_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ////////////////////////////////////////////////////////////////////
7 //                                                                // 
8 //  Produces the data needed to calculate the quality assurance.  //
9 //    All data must be mergeable objects.                         //
10 //    S. Arcelli                                                  //
11 //                                                                //
12 //    /* last modified by F. Bellini on 25/02/2010 */             // 
13 ////////////////////////////////////////////////////////////////////
14
15 #include <TLine.h>
16 #include "AliQADataMakerRec.h"
17 #include "AliQAv1.h"
18 #include "AliTOFcalib.h"
19 #include "AliTOFTrigger.h"
20 class AliCDBManager;
21 class AliCDBEntry;
22 class AliCDBStorage;
23 class AliTOFChannelOnlineStatusArray;
24 class AliTOFDecoderSummaryData;
25
26 class AliTOFQADataMakerRec: public AliQADataMakerRec {
27
28 public:
29   AliTOFQADataMakerRec() ;          // ctor
30   AliTOFQADataMakerRec(const AliTOFQADataMakerRec& qadm) ;   
31   AliTOFQADataMakerRec& operator = (const AliTOFQADataMakerRec& qadm) ;
32   AliTOFChannelOnlineStatusArray *GetCalibData() ;
33   virtual ~AliTOFQADataMakerRec(); // dtor
34   
35   void   GetGeo2LTMIndex(const Int_t * const detind, Int_t *indexLTM);
36   void   GetGeo2CTTMIndex(Int_t *detind, Int_t *indexCTTM);
37   void   GetCTTMIndex(Int_t *equipid, Int_t *indexCTTM);
38   void ReadHistogramRangeFromFile(const Char_t * filename);
39   void SetDefaultHistogramRange();
40   void SetDefaultMultiHistogramRange();
41   void SetDefaultTimeHistogramRange();
42   void SetDefaultCutNmaxFiredMacropad();
43
44 protected: 
45   AliTOFChannelOnlineStatusArray * fCalibData;        //! calibration data
46   
47 private:
48   virtual void   InitESDs() ; 
49   virtual void   InitRecPoints() ; 
50   virtual void   InitRaws() ; 
51   virtual void   MakeESDs(AliESDEvent * const esd) ;
52   virtual void   MakeRecPoints(TTree * recTree) ; 
53   virtual void   MakeRaws(AliRawReader* rawReader) ; 
54   virtual void   StartOfDetectorCycle() ; 
55   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) ;
56   virtual void   GetMapIndeces(const Int_t * const in, Int_t *out) ; 
57           Int_t  GetStripIndex(const Int_t * const in);
58   virtual void   EnableNoiseFiltering(Bool_t enable){fEnableNoiseFiltering = enable;};
59   virtual void   EnableDqmShifterOpt(Bool_t enable){ fEnableDqmShifterOpt = enable;};
60           Bool_t CheckVolumeID(const Int_t * const equipmentID); 
61           Bool_t CheckEquipID( const Int_t * const equipmentID); 
62           Bool_t FilterLTMData(const Int_t * const equipmentID) const ; 
63           Bool_t FilterSpare(  const Int_t * const equipmentID) const ;
64           Int_t  GetNumberOfFiredMacropad(AliRawReader * rawReader);
65   static void SetNbinsMultiplicityHisto(Int_t value){fgNbinsMultiplicity=value; return;}; 
66   static void SetMultiplicityHistoRange (Int_t valueMin, Int_t valueMax){fgRangeMinMultiplicity=valueMin; fgRangeMaxMultiplicity=valueMax; return;}
67   static void SetNbinsTimeHisto(Int_t value){fgNbinsTime=value; return;};
68   static void SetTimeHistoRange (Float_t valueMin, Float_t valueMax){fgRangeMinTime=valueMin; fgRangeMaxTime=valueMax; return;};
69   static void SetCutNmaxFiredMacropad(Int_t value){fgCutNmaxFiredMacropad=value;return;};
70
71           // void   ResetAllTRMcounters();
72           Bool_t fEnableNoiseFiltering; //the choice is not implemented so far
73           Bool_t fEnableDqmShifterOpt;  // draw option flag to help
74                                         // DQM shifter in the
75                                         // interpretation of the TOF
76                                         // raw QA histograms
77           Bool_t fIsSOC;  //flag for StartOfCycle operations
78           //lines for the DQM GUI
79           TLine* fLineExpTimeMin;
80           TLine* fLineExpTimeMax;
81           TLine* fLineExpTotMin;
82           TLine* fLineExpTotMax;
83           TLine* fLineSMid[17];
84           TLine* fLineLTMid[71];
85           TLine* fLineLTMbitId[22];
86
87           AliTOFRawStream fTOFRawStream; // AliTOFRawStream variable 
88           AliTOFDecoderSummaryData * fDecoderSummary; //pointer to decoder summary data object
89           Int_t fRunNumber; //run number
90           static Int_t fgNbinsMultiplicity;//number of bins in multiplicity plot
91           static Int_t fgRangeMinMultiplicity;//min range in multiplicity plot
92           static Int_t fgRangeMaxMultiplicity;//max range in multiplicity plot
93           static Int_t fgNbinsTime;//number of bins in time plot
94           static const Float_t fgkNbinsWidthTime;//width of bins in time plot
95           static Float_t fgRangeMinTime;//range min in time plot
96           static Float_t fgRangeMaxTime; //range max in time plot
97           static Int_t fgCutNmaxFiredMacropad; //cut on max number of fired macropad 
98           static const Int_t fgkFiredMacropadLimit; //limit on cut on number of fired macropad 
99           AliTOFcalib fCalib;//calibration object
100
101           ClassDef(AliTOFQADataMakerRec,8)  // description          
102 };
103
104 #endif // ALITOFQADATAMAKERREC_H