Revert changes for DCSFEEv2
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibChamberStatus.h
1 #ifndef ALITRDCALIBCHAMBERSTATUS_H
2 #define ALITRDCALIBCHAMBERSTATUS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliTRDCalibChamberStatus.h 34340 2009-08-20 07:48:28Z cblume $ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //  TRD calibration class for online calibration                             //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #ifndef ROOT_THnSparse
15 #include <THnSparse.h>
16 #include <TCanvas.h>
17 #include <TH2.h>
18 #endif
19
20 class AliRawReader;
21
22 class AliTRDCalChamberStatus;
23 class AliRawReader;
24 class AliTRDCalDCS;
25
26
27 struct eventHeaderStruct;
28
29 class AliTRDCalibChamberStatus : public TObject {
30
31 public:
32
33   AliTRDCalibChamberStatus();
34   AliTRDCalibChamberStatus(const AliTRDCalibChamberStatus &ped);
35   virtual ~AliTRDCalibChamberStatus();
36
37   AliTRDCalibChamberStatus& operator = (const  AliTRDCalibChamberStatus &source);
38
39   void ProcessEvent(AliRawReader    *rawReader, Int_t nevents_physics);
40     
41   void Init();
42   void AnalyseHisto();
43   void CheckEORStatus(AliTRDCalDCS *calDCS);
44
45   void Add(AliTRDCalibChamberStatus *calibChamberStatus);
46
47   Int_t GetNumberEventNotEmpty() const { return fCounterEventNotEmpty; };
48   
49   THnSparseI *GetSparseI()       const {return fHnSparseI;};
50   THnSparseI *GetSparseHCM()     const {return fHnSparseHCM;};
51   // for fDebugLevel>0
52   THnSparseI *GetSparseEvtDet()  const {return fHnSparseEvtDet;};
53   THnSparseI *GetSparseDebug()   const {return fHnSparseDebug;};
54   THnSparseI *GetSparseMCM()     const {return fHnSparseMCM;};
55   
56
57   AliTRDCalChamberStatus *GetCalChamberStatus() const {return fCalChamberStatus;};
58
59   void  DumpToFile(const Char_t *filename, const Char_t *dir="", Bool_t append=kFALSE);
60   
61   Bool_t TestEventHisto(Int_t nevent);
62
63   // Plot
64   TH2D *PlotSparseI(Int_t sm, Int_t side);    // Plot fStatus for sm 
65   TH2F *MakeHisto2DSmPlEORStatus(AliTRDCalDCS *calDCS, Int_t sm, Int_t pl);
66   TCanvas *PlotHistos2DSmEORStatus(AliTRDCalDCS *calDCS,Int_t sm, const Char_t *name);
67
68   // Debug
69   void     SetDebugLevel(Short_t level)  { fDebugLevel = level;   }
70
71  private:
72
73   Int_t fDetector;                           //  Current detector
74   Int_t fNumberOfTimeBins;                   //  Current number of time bins
75   Int_t fCounterEventNotEmpty;               //  Counter Events Not Empty
76   
77   AliTRDCalChamberStatus *fCalChamberStatus; //  AliTRDCalChamberStatus result
78   
79   THnSparseI *fHnSparseI;                    //  THnSparse for entries in half chambers
80   THnSparseI *fHnSparseHCM;                  //  THnSparse for DCS half chamber status
81   
82   // for fDebugLevel>0
83   THnSparseI *fHnSparseEvtDet;    //  THnSparse for entries in half chambers per events
84   THnSparseI *fHnSparseDebug;     //  THnSparse for half chambers satuts
85   THnSparseI *fHnSparseMCM;       //  THnSparse for DCS MCM status
86
87   TCanvas *fC1;
88
89   Short_t     fDebugLevel;                   // Flag for debugging
90
91   ClassDef(AliTRDCalibChamberStatus,1)
92     
93 };
94 #endif
95
96