Fixing file after rebasing master
[u/mrichter/AliRoot.git] / AD / ADbase / AliADDataDCS.h
1 #ifndef AliADDataDCS_H
2 #define AliADDataDCS_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include <TObject.h> 
8 #include <TClonesArray.h>
9
10 class TMap;
11 class TH2F;
12 class TGraph;
13 class TF1;
14 class TString;
15 class TH1F;
16
17 // AliADDataDCS class
18 // main aim is to process DCS data
19 // in order to obtain the data to be stored in the OCDB
20
21 class AliADDataDCS : public TObject {
22 public:
23   enum {kNAliases=60,kNGraphs=16,kNHvChannel=16,kNLvChannel=4,kNCIUBoards = 2};
24   enum {kHvMin=0, kHvMax=3000};
25   
26   AliADDataDCS();
27   AliADDataDCS(Int_t nRun, UInt_t timeCreated, UInt_t timeCompleted, UInt_t daqStart, UInt_t daqEnd, UInt_t ctpStart, UInt_t ctpEnd);
28   ~AliADDataDCS();
29   
30   void SetRun(Int_t run) {fRun = run;}
31   void SetStartTime(Int_t startTime) {fStartTime = startTime;}
32   void SetEndTime(Int_t endTime) {fEndTime = endTime;}
33   void SetDaqStartTime(Int_t startTime) {fDaqStartTime = startTime;}
34   void SetDaqEndTime(Int_t endTime) {fDaqEndTime = endTime;}
35   Int_t GetRun() const {return fRun;}
36   Int_t GetStartTime() const {return fStartTime;}
37   Int_t GetEndTime() const {return fEndTime;}
38   Int_t GetDaqStartTime() const {return fDaqStartTime;}
39   Int_t GetDaqEndTime() const {return fDaqEndTime;}
40   
41   Bool_t ProcessData(TMap& aliasMap);
42   
43   const char* GetAliasName(Int_t pos) const 
44     {return pos<kNAliases ? fAliasNames[pos].Data() : 0;}
45   
46   void Draw(const Option_t* option);
47   
48   Float_t* GetMeanHV()    const {return (float*)fMeanHV;}
49   Float_t* GetWidthHV()   const {return (float*)fWidthHV;}
50   Bool_t * GetDeadMap()   const {return (bool*)fDeadChannel;}
51   TMap * GetFEEParameters() const {return fFEEParameters;};
52   
53 // Getter of Offline Channel number as used in aliroot (defined by aliroot 
54 // numbering convention) from DCS Channel number
55
56     Int_t      GetOfflineChannel(Int_t channel)  const
57       { Int_t  fOfflineChannel[16] = {0,  1,  2,  3,  4,  5,  6,  7, 
58                                       8,  9, 10, 11, 12, 13, 14, 15};
59                return fOfflineChannel[channel]; }
60
61 private:
62   AliADDataDCS(const AliADDataDCS&); // Not implemented
63   AliADDataDCS& operator=(const AliADDataDCS&); // Not implemented
64
65   void Init();
66   void Introduce(UInt_t numAlias, const TObjArray* aliasArr) const;
67   void CreateGraph(int i, int dim, const Double_t *x, const Double_t *y);
68     
69   Int_t fRun;       // Run number
70   Int_t fStartTime; // start time (time created)
71   Int_t fEndTime;   // end time (time completed)
72   UInt_t fDaqStartTime; // DAQ start time
73   UInt_t fDaqEndTime;   // DAQ end time
74   UInt_t fCtpStartTime; // CTP start time
75   UInt_t fCtpEndTime;   // CTP end time
76   
77   TString fAliasNames[kNAliases];        // aliases for DCS data
78   TClonesArray fGraphs;                  // Array containing  graphics
79   TH1F *fHv[kNHvChannel];                  // High Voltage histograms
80   Float_t fMeanHV[kNHvChannel];            // High Voltage mean values
81   Float_t fWidthHV[kNHvChannel];           // High Voltage widths
82   Bool_t  fDeadChannel[kNHvChannel];       // Dead Map 
83   TMap * fFEEParameters;  // TMap holding the FEE parameters of Time Resolution
84     
85   Bool_t fIsProcessed;                   // bool to know processing status
86   
87   ClassDef(AliADDataDCS, 7);
88 };
89
90 #endif