temporary fix of bug from Savannah report 54512
[u/mrichter/AliRoot.git] / T0 / AliT0DataDCS.h
1 #ifndef AliT0DataDCS_H
2 #define AliT0DataDCS_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 <TMap.h>
8 #include <TClonesArray.h>
9 #include <TGraph.h>
10
11 // AliT0DataDCS class
12 // fetching T0 data points from DCS, calculating mean values for the run
13 // and storing the result to Reference DB
14
15 class AliT0DataDCS : public TObject {
16 public:
17         enum {kNAliases=191, kHV=12, kLV=2, kCFD=12, kScalers=32, kTRM=10, kDRM=5, kAtten=1}; // 191 T0 aliases
18
19         AliT0DataDCS();
20         AliT0DataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime, UInt_t startTimeDCSQuery, UInt_t endTimeDCSQuery);
21         AliT0DataDCS(const AliT0DataDCS & data);
22         AliT0DataDCS& operator=(const AliT0DataDCS & data);
23         ~AliT0DataDCS();
24
25         void SetRun(Int_t run) {fRun = run;}
26         void SetStartTime(Int_t startTime) {fStartTime = startTime;}
27         void SetEndTime(Int_t endTime) {fEndTime = endTime;}
28         void SetStartTimeDCSQuery(Int_t startTimeDCSQuery) {fStartTimeDCSQuery = startTimeDCSQuery;}
29         void SetEndTimeDCSQuery(Int_t endTimeDCSQuery) {fEndTimeDCSQuery = endTimeDCSQuery;}
30         Int_t GetRun() const {return fRun;}
31         Int_t GetStartTime() const {return fStartTime;}
32         Int_t GetEndTime() const {return fEndTime;}
33         Int_t GetStartTimeDCSQuery() const {return fStartTimeDCSQuery;}
34         Int_t GetEndTimeDCSQuery() const {return fEndTimeDCSQuery;}     
35
36         Bool_t ProcessData(TMap& aliasMap);
37
38         const char* GetAliasName(Int_t pos) const {return pos<kNAliases ? fAliasNames[pos].Data() : 0;}
39 private:
40         void Init();
41         void Introduce(UInt_t numAlias, const TObjArray* aliasArr)const;
42
43         Int_t fRun;                             // Run number
44         UInt_t fStartTime;                      // Start time
45         UInt_t fEndTime;                        // End time
46         Int_t fStartTimeDCSQuery;               // Begin time DCSQuery
47         Int_t fEndTimeDCSQuery;                 // End time DCSQuery
48         Float_t fHViA[kHV];                     // Mean value of HV current in uA on A-side
49         Float_t fHVvA[kHV];                     // Mean value of HV voltage in V on A-side
50         Float_t fLViA[kLV];                     // Mean value of LV current in uA on A-side
51         Float_t fLVvA[kLV];                     // Mean value of LV voltage in V on A-side
52         Float_t fHViC[kHV];                     // Mean value of HV current in uA on C-side
53         Float_t fHVvC[kHV];                     // Mean value of HV voltage in V on C-side
54         Float_t fLViC[kLV];                     // Mean value of LV current in uA on C-side
55         Float_t fLVvC[kLV];                     // Mean value of LV voltage in V on C-side
56         Float_t fCFDtA[kCFD];                   // Mean threshold on CFD in V on A-side 
57         Float_t fCFDwA[kCFD];                   // Mean walk on CFD in V on A-side
58         Float_t fCFDtC[kCFD];                   // Mean threshold on CFD in V on C-side
59         Float_t fCFDwC[kCFD];                   // Mean walk on CFD in V on C-side
60         Float_t fScalerMean[kScalers];          // Mean value of T0 scaler counts from the entire run
61         Float_t fScalerSecMean[kScalers];       // Mean value of T0 scaler counts per second
62         Float_t fTRM[kTRM];                     // Mean temperature on TRM in degrees of Celsius
63         Float_t fDRM[kDRM];                     // Mean temperature on DRM in degrees of Celsius
64         Float_t fAtten;                         // Laser amplitude in MIPs
65         Int_t fMPDcentA;                        // Multiplicity Discriminator central on A-side
66         Int_t fMPDcentC;                        // Multiplicity Discriminator central on C-side
67         Int_t fMPDsemiCentA;                    // Multiplicity Discriminator semi-central on A-side
68         Int_t fMPDsemiCentC;                    // Multiplicity Discriminator semi-central on C-side
69         Int_t fTVDCtop;                         // T0 Vertex Unit top
70         Int_t fTVDCbottom;                      // T0 Vertex Unit bottom
71         Int_t fMPDmode;                       // Multiplicity Discriminator on C-side only, A-side only, or both sides
72         TString fAliasNames[kNAliases];         // T0 data points aliases  
73         Bool_t fIsProcessed;                    // status - was processing data successful
74         ClassDef(AliT0DataDCS, 3);
75
76 protected:
77 };
78
79 #endif