Change of range (max value) of HV histos used to extract HV mean values
[u/mrichter/AliRoot.git] / VZERO / AliVZERODataDCS.h
1 #ifndef AliVZERODataDCS_H
2 #define AliVZERODataDCS_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 // AliVZERODataDCS 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 AliVZERODataDCS : public TObject {
22 public:
23   enum {kNAliases=80,kNGraphs=64,kNHvChannel=64,kNLvChannel=16,kNCIUBoards = 8};
24   enum {kHvMin=0, kHvMax=3000};
25   
26   AliVZERODataDCS();
27   AliVZERODataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime);
28   ~AliVZERODataDCS();
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   Int_t GetRun() const {return fRun;}
34   Int_t GetStartTime() const {return fStartTime;}
35   Int_t GetEndTime() const {return fEndTime;}
36   
37   void ProcessData(TMap& aliasMap);
38   
39   const char* GetAliasName(Int_t pos) const 
40     {return pos<kNAliases ? fAliasNames[pos].Data() : 0;}
41   
42   void Draw(const Option_t* option);
43   
44   Float_t* GetMeanHV()    const {return (float*)fMeanHV;}
45   Float_t* GetWidthHV()   const {return (float*)fWidthHV;}
46   Bool_t * GetDeadMap()   const {return (bool*)fDeadChannel;}
47   TMap * GetFEEParameters() const {return fFEEParameters;};
48   
49 // Getter of Offline Channel number as used in aliroot (defined by aliroot 
50 // numbering convention) from DCS Channel number
51
52     Int_t      GetOfflineChannel(Int_t channel)  const
53       { Int_t  fOfflineChannel[64] = {32, 33, 34, 35, 36, 37, 38, 39, 
54                                       40, 41, 42, 43, 44, 45, 46, 47, 
55                                       48, 49, 50, 51, 52, 53, 54, 55, 
56                                       56, 57, 58, 59, 60, 61, 62, 63,
57                                        0,  1,  2,  3,  4,  5,  6,  7, 
58                                        8,  9, 10, 11, 12, 13, 14, 15,
59                                       16, 17, 18, 19, 20, 21, 22, 23, 
60                                       24, 25, 26, 27, 28, 29, 30, 31};
61                return fOfflineChannel[channel]; }
62
63 private:
64   AliVZERODataDCS(const AliVZERODataDCS&); // Not implemented
65   AliVZERODataDCS& operator=(const AliVZERODataDCS&); // Not implemented
66
67   void Init();
68   void Introduce(UInt_t numAlias, const TObjArray* aliasArr) const;
69   void CreateGraph(int i, int dim, const Double_t *x, const Double_t *y);
70     
71   Int_t fRun;       // Run number
72   Int_t fStartTime; // start time
73   Int_t fEndTime;   // end time
74   
75   
76   TString fAliasNames[kNAliases];        // aliases for DCS data
77   TClonesArray fGraphs;                  // Array containing  graphics
78   TH1F *fHv[kNHvChannel];                  // High Voltage histograms
79   Float_t fMeanHV[kNHvChannel];            // High Voltage mean values
80   Float_t fWidthHV[kNHvChannel];           // High Voltage widths
81   Bool_t  fDeadChannel[kNHvChannel];       // Dead Map 
82   TMap * fFEEParameters;  // TMap holding the FEE parameters of Time Resolution
83     
84   Bool_t fIsProcessed;                   // bool to know processing status
85   
86   ClassDef(AliVZERODataDCS, 4);
87 };
88
89 #endif