e3b76f8f4a0cd7b6a80d69c9bb86402d49da0cc4
[u/mrichter/AliRoot.git] / TPC / AliTPCQADataMakerRec.h
1 #ifndef ALITPCQADATAMAKERREC_H
2 #define ALITPCQADATAMAKERREC_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 /* $Id: $ */
8
9 /*
10   Based on AliPHOSQADataMaker
11   Produces the data needed to calculate the quality assurance. 
12   All data must be mergeable objects.
13   P. Christiansen, Lund, January 2008
14 */
15
16
17 // --- ROOT system ---
18 #include <TH1.h> 
19
20 // --- Standard library ---
21
22 // --- AliRoot header files ---
23 #include <AliQADataMakerRec.h>
24 #include <AliRawReader.h>
25 #include <AliTPCAltroMapping.h>
26
27 #include <AliTPCdataQA.h>
28
29 class AliTPCQADataMakerRec: public AliQADataMakerRec {
30
31 public:
32   enum HRawsType_t         {kRawsOccupancy=0, kRawsOccupancyVsSector, kRawsNClustersPerEventVsSector, kRawsQVsSector, kRawsQmaxVsSector, kRawsOccupancyVsEvent, kRawsNclustersVsEvent} ; 
33   enum HDigitType_t        {kDigitsADC=0} ; 
34   enum HRECPOINTsType_t    {KClusters=0, kRatio, kPt} ; 
35   enum HESDsType_t         {kQmaxShort=0, kQmaxMedium, kQmaxLong, kQShort, kQMedium, kQLong, kRow} ; 
36
37   AliTPCQADataMakerRec() ;          // ctor
38   AliTPCQADataMakerRec(const AliTPCQADataMakerRec& qadm) ;   
39   AliTPCQADataMakerRec& operator = (const AliTPCQADataMakerRec& qadm) ;
40   virtual ~AliTPCQADataMakerRec(); 
41   
42   virtual void ResetDetector(AliQAv1::TASKINDEX_t task);
43
44   Int_t  GetRawMaxEvents()      const { return fRawMaxEvents;     }
45   Int_t  GetRawEventsPerBin()   const { return fRawEventsPerBin;  }
46   Int_t  GetRawFirstTimeBin() const { return fRawFirstTimeBin; }
47   Int_t  GetRawLastTimeBin()  const { return fRawLastTimeBin;  }
48
49   void  SetRawMaxEvents   (Int_t value) { fRawMaxEvents = value; }
50   void  SetRawEventsPerBin(Int_t value) { fRawEventsPerBin = value; }
51   void  SetRawRangeTime(Int_t tMin, Int_t tMax){ fRawFirstTimeBin=tMin; fRawLastTimeBin=tMax;}
52
53 private:
54   virtual void   StartOfDetectorCycle() {}; // empty 
55   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray** list) ;
56
57   // ESD QA
58   virtual void   InitESDs() ; 
59   virtual void   MakeESDs(AliESDEvent *esd) ;
60
61   // Raw QA
62   virtual void   InitRaws();
63   virtual void   MakeRaws(AliRawReader* rawReader);
64
65   // Digits QA
66   virtual void   InitDigits();
67   virtual void   MakeDigits()  {return;}
68   virtual void   MakeDigits(TTree *digTree);
69   
70   // RecPoints QA
71   virtual void   InitRecPoints();
72   virtual void   MakeRecPoints(TTree *recTree);
73   
74   virtual void LoadMaps();
75
76   TH1F* CreateEventsHistCopy(const TH1F* hist, const Char_t* copyName);
77
78   AliTPCAltroMapping *fMapping[6]; //! Pointers to ALTRO mapping
79   AliTPCdataQA** fTPCdataQA;//! TPC calibration object for making raw data QA
80
81   Int_t fRawMaxEvents;      //! Max events for RAW QA event histograms
82   Int_t fRawEventsPerBin;   //! Events per bin for RAW QA event histograms
83   Int_t fRawFirstTimeBin;   //! First Time bin needed for RAW QA
84   Int_t fRawLastTimeBin;    //! Last Time bin needed for RAW QA
85
86   ClassDef(AliTPCQADataMakerRec,1)  // TPC Rec Quality Assurance Data Maker 
87 };
88
89 #endif // ALITPCQADATAMAKERREC_H