Raw data update: to read the TOF raw data defined in UNPACKED mode
[u/mrichter/AliRoot.git] / TOF / AliTOFDataDCS.h
1 #ifndef AliTOFDataDCS_H
2 #define AliTOFDataDCS_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 #include "TObject.h" 
10 #include "TString.h"
11
12 class TMap;
13 class TClonesArray;
14 class TH2F;
15 class TGraph;
16 class TF1;
17 //class TString;
18 class AliTOFFormatDCS;
19
20 // AliTOFDataDCS class
21 // main aim is to process DCS data
22 // in order to obtain the data to be stored in the OCDB
23
24 class AliTOFDataDCS : public TObject {
25 public:
26   enum {kNAliases=10514, kNHV=90, kNLV=576, 
27         kNLV33=72, kNLV50=72, kNLV48=72, 
28         kNFEEthr=1152, kNFEEtfeac=576, kNFEEttrm=6840, 
29         kNFunctions=0, kNT=1, kNP=1};
30   
31   AliTOFDataDCS();
32   AliTOFDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime);
33   AliTOFDataDCS(const AliTOFDataDCS & data);
34   AliTOFDataDCS& operator=(const AliTOFDataDCS & data);
35   ~AliTOFDataDCS();
36   
37   void SetRun(Int_t run) {fRun = run;}
38   void SetStartTime(Int_t startTime) {fStartTime = startTime;}
39   void SetEndTime(Int_t endTime) {fEndTime = endTime;}
40   Int_t GetRun() const {return fRun;}
41   Int_t GetStartTime() const {return fStartTime;}
42   Int_t GetEndTime() const {return fEndTime;}
43   
44   Bool_t ProcessData(TMap& aliasMap);
45   
46   const char* GetAliasName(Int_t pos) const 
47     {return pos<kNAliases ? fAliasNames[pos].Data() : 0;}
48   
49   
50   Float_t* GetT() const;
51   Float_t* GetP() const;
52   
53   Float_t GetT(Int_t i) const {return fT[i];}
54   Float_t GetP(Int_t i) const {return fP[i];}
55   Float_t GetSlopeT() const {return fT[0];}
56   Float_t GetInterceptT() const {return fT[1];}
57   Float_t GetMaxT()const {return fT[2];}
58   Float_t GetSlopeP() const {return fP[0];}
59   Float_t GetInterceptP() const {return fP[1];}
60   Float_t GetMaxP() const {return fP[2];}
61  
62   void SetSlopeT(Float_t slopeT) {fT[0]=slopeT;}
63   void SetInterceptT(Float_t interceptT) {fT[1]=interceptT;}
64   void SetMaxT(Float_t maxT) {fT[2]=maxT;}
65   void SetSlopeP(Float_t slopeP) {fP[0]=slopeP;}
66   void SetInterceptP(Float_t interceptP) {fP[1]=interceptP;}
67   void SetMaxP(Float_t maxP) {fP[2]=maxP;}
68   
69   void Draw(const Option_t* option) /*const*/;
70   
71   AliTOFFormatDCS* GetHVvp(Int_t pos) const
72     {return pos<kNHV ? fHVvp[pos] : 0;}
73   AliTOFFormatDCS* GetHVvn(Int_t pos) const 
74     {return pos<kNHV ? fHVvn[pos] : 0;}
75   AliTOFFormatDCS* GetHVip(Int_t pos) const 
76     {return pos<kNHV ? fHVip[pos] : 0;}
77   AliTOFFormatDCS* GetHVin(Int_t pos) const 
78     {return pos<kNHV ? fHVin[pos] : 0;}
79   AliTOFFormatDCS* GetLVv(Int_t pos) const 
80     {return pos<kNLV ? fLVv[pos] : 0;}
81   AliTOFFormatDCS* GetLVi(Int_t pos) const 
82     {return pos<kNLV ? fLVi[pos] : 0;}
83   AliTOFFormatDCS* GetLVv33(Int_t pos) const 
84     {return pos<kNLV ? fLVv33[pos] : 0;}
85   AliTOFFormatDCS* GetLVi33(Int_t pos) const 
86     {return pos<kNLV ? fLVi33[pos] : 0;}
87   AliTOFFormatDCS* GetLVv50(Int_t pos) const 
88     {return pos<kNLV ? fLVv50[pos] : 0;}
89   AliTOFFormatDCS* GetLVi50(Int_t pos) const 
90     {return pos<kNLV ? fLVi50[pos] : 0;}
91   AliTOFFormatDCS* GetLVv48(Int_t pos) const 
92     {return pos<kNLV ? fLVv48[pos] : 0;}
93   AliTOFFormatDCS* GetLVi48(Int_t pos) const 
94     {return pos<kNLV ? fLVi48[pos] : 0;}
95   AliTOFFormatDCS* GetFEEthr(Int_t pos) const
96     {return pos<kNFEEthr ? fFEEthr[pos] : 0;}
97   AliTOFFormatDCS* GetFEEtfeac(Int_t pos) const
98     {return pos<kNFEEtfeac ? fFEEtfeac[pos] : 0;}
99   AliTOFFormatDCS* GetFEEttrm(Int_t pos) const
100     {return pos<kNFEEttrm ? fFEEttrm[pos] : 0;}
101
102 private:
103   void Init();
104   void Introduce(UInt_t numAlias, const TObjArray* aliasArr) const;
105   void CreateHisto(int nbin);
106   
107   Int_t fRun;       // Run number
108   Int_t fStartTime; // start time
109   Int_t fEndTime;   // end time
110   
111   
112   TString fAliasNames[kNAliases];        // aliases for DCS data
113   AliTOFFormatDCS *fHVvp[kNHV];          // HV voltages, positive ch
114   AliTOFFormatDCS *fHVvn[kNHV];          // HV voltages, negative ch
115   AliTOFFormatDCS *fHVip[kNHV];          // HV currents, positive ch
116   AliTOFFormatDCS *fHVin[kNHV];          // HV currents, negative ch
117   AliTOFFormatDCS *fLVv[kNLV];           // LV fea voltages
118   AliTOFFormatDCS *fLVi[kNLV];           // LV fea currents
119   AliTOFFormatDCS *fLVv33[kNLV33];       // LV 3.3 V voltages
120   AliTOFFormatDCS *fLVi33[kNLV33];       // LV 3.3 V currents
121   AliTOFFormatDCS *fLVv50[kNLV50];       // LV 5.0 V voltages
122   AliTOFFormatDCS *fLVi50[kNLV50];       // LV 5.0 V currents
123   AliTOFFormatDCS *fLVv48[kNLV48];       // LV 48 V voltages
124   AliTOFFormatDCS *fLVi48[kNLV48];       // LV 48 V currents
125   AliTOFFormatDCS *fFEEthr[kNFEEthr];    // FEE thresholds
126   AliTOFFormatDCS *fFEEtfeac[kNFEEtfeac];// FEE feac temperatures
127   AliTOFFormatDCS *fFEEttrm[kNFEEttrm];  // FEE trm temperatures
128   Float_t fT[3];                         // environment temperature
129   Float_t fP[3];                         // environment pressure
130   
131   Bool_t fIsProcessed;                   // bool to know processing status
132   
133   ClassDef(AliTOFDataDCS, 2);
134 };
135
136 #endif