free arrays before of return in PropagateBack
[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 #include "AliTOFRawStream.h"
21 class AliCDBManager;
22 class AliCDBEntry;
23 class AliCDBStorage;
24 class AliTOFChannelOnlineStatusArray;
25 class AliTOFDecoderSummaryData;
26
27 class AliTOFQADataMakerRec: public AliQADataMakerRec {
28
29 public:
30   AliTOFQADataMakerRec() ;          // ctor
31   AliTOFQADataMakerRec(const AliTOFQADataMakerRec& qadm) ;   
32   AliTOFQADataMakerRec& operator = (const AliTOFQADataMakerRec& qadm) ;
33   AliTOFChannelOnlineStatusArray *GetCalibData() ;
34   virtual ~AliTOFQADataMakerRec(); // dtor
35   
36   void   GetGeo2LTMIndex(const Int_t * const detind, Int_t *indexLTM);
37   void   GetGeo2CTTMIndex(Int_t *detind, Int_t *indexCTTM);
38   void   GetCTTMIndex(Int_t *equipid, Int_t *indexCTTM);
39   void ReadHistogramRangeFromFile(const Char_t * filename);
40   void SetDefaultHistogramRange();
41   void SetDefaultMultiHistogramRange();
42   void SetDefaultTimeHistogramRange();
43   void SetDefaultCutNmaxFiredMacropad();
44   Float_t GetRangeMinTime(){return fgRangeMinTime;}//range min in time plot
45   Float_t GetRangeMaxTime(){return fgRangeMaxTime;}; //range max in time plot
46
47 protected: 
48   AliTOFChannelOnlineStatusArray * fCalibData;        //! calibration data
49   
50 private:
51   virtual void   InitESDs() ; 
52   virtual void   InitRecPoints() ; 
53   virtual void   InitRaws() ; 
54   virtual void   MakeESDs(AliESDEvent * const esd) ;
55   virtual void   MakeRecPoints(TTree * recTree) ; 
56   virtual void   MakeRaws(AliRawReader* rawReader) ; 
57   virtual void   StartOfDetectorCycle() ; 
58   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) ;
59   virtual void   GetMapIndeces(const Int_t * const in, Int_t *out) ; 
60           Int_t  GetStripIndex(const Int_t * const in);
61   virtual void   EnableNoiseFiltering(Bool_t enable){fEnableNoiseFiltering = enable;};
62   virtual void   EnableDqmShifterOpt(Bool_t enable){ fEnableDqmShifterOpt = enable;};
63           Bool_t CheckVolumeID(const Int_t * const equipmentID); 
64           Bool_t CheckEquipID( const Int_t * const equipmentID); 
65           Bool_t FilterLTMData(const Int_t * const equipmentID) const ; 
66           Bool_t FilterSpare(  const Int_t * const equipmentID) const ;
67           Int_t  GetNumberOfFiredMacropad(AliRawReader * rawReader);
68   static void SetNbinsMultiplicityHisto(Int_t value){fgNbinsMultiplicity=value; return;}; 
69   static void SetMultiplicityHistoRange (Int_t valueMin, Int_t valueMax){fgRangeMinMultiplicity=valueMin; fgRangeMaxMultiplicity=valueMax; return;}
70   static void SetNbinsTimeHisto(Int_t value){fgNbinsTime=value; return;};
71   static void SetTimeHistoRange (Float_t valueMin, Float_t valueMax){fgRangeMinTime=valueMin; fgRangeMaxTime=valueMax; return;};
72   static void SetCutNmaxFiredMacropad(Int_t value){fgCutNmaxFiredMacropad=value;return;};
73
74           // void   ResetAllTRMcounters();
75           Bool_t fEnableNoiseFiltering; //the choice is not implemented so far
76           Bool_t fEnableDqmShifterOpt;  // draw option flag to help
77                                         // DQM shifter in the
78                                         // interpretation of the TOF
79                                         // raw QA histograms
80           Bool_t fIsSOC;  //flag for StartOfCycle operations
81           //lines for the DQM GUI
82           TLine* fLineExpTimeMin;
83           TLine* fLineExpTimeMax;
84           TLine* fLineExpTotMin;
85           TLine* fLineExpTotMax;
86           /* TLine* fLineSMid[17]; */
87           /* TLine* fLineLTMid[71]; */
88           /* TLine* fLineLTMbitId[22]; */
89
90           AliTOFRawStream fTOFRawStream; // AliTOFRawStream variable 
91           AliTOFDecoderSummaryData * fDecoderSummary; //pointer to decoder summary data object
92           Int_t fRunNumber; //run number
93           static Int_t fgNbinsMultiplicity;//number of bins in multiplicity plot
94           static Int_t fgRangeMinMultiplicity;//min range in multiplicity plot
95           static Int_t fgRangeMaxMultiplicity;//max range in multiplicity plot
96           static Int_t fgNbinsTime;//number of bins in time plot
97           static const Float_t fgkNbinsWidthTime;//width of bins in time plot
98           static Float_t fgRangeMinTime;//range min in time plot
99           static Float_t fgRangeMaxTime; //range max in time plot
100           static Int_t fgCutNmaxFiredMacropad; //cut on max number of fired macropad 
101           static const Int_t fgkFiredMacropadLimit; //limit on cut on number of fired macropad 
102           AliTOFcalib fCalib;//calibration object
103
104           ClassDef(AliTOFQADataMakerRec,8)  // description          
105 };
106
107 #endif // ALITOFQADATAMAKERREC_H