]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFDataDCS.h
New version of SPD raw-data reconstruction. The format now correponds to the actual...
[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 AliTOFFormatDCS;
18
19 // AliTOFDataDCS class
20 // main aim is to process DCS data
21 // in order to obtain the data to be stored in the OCDB
22
23 class AliTOFDataDCS : public TObject {
24 public:
25   enum {kNAliases=10442, kNHV=90, kNLV=576, 
26         kNFEEthr=1152, kNFEEt=7776, kNFunctions=0, 
27         kNT=1, kNP=1};
28   
29   AliTOFDataDCS();
30   AliTOFDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime);
31   AliTOFDataDCS(const AliTOFDataDCS & data);
32   AliTOFDataDCS& operator=(const AliTOFDataDCS & data);
33   ~AliTOFDataDCS();
34   
35   void SetRun(Int_t run) {fRun = run;}
36   void SetStartTime(Int_t startTime) {fStartTime = startTime;}
37   void SetEndTime(Int_t endTime) {fEndTime = endTime;}
38   Int_t GetRun() const {return fRun;}
39   Int_t GetStartTime() const {return fStartTime;}
40   Int_t GetEndTime() const {return fEndTime;}
41   
42   void ProcessData(TMap& aliasMap);
43   
44   const char* GetAliasName(Int_t pos) const 
45     {return pos<kNAliases ? fAliasNames[pos].Data() : 0;}
46   
47   
48   Float_t* GetT() const;
49   Float_t* GetP() const;
50   
51   Float_t GetT(Int_t i) const {return fT[i];}
52   Float_t GetP(Int_t i) const {return fP[i];}
53   Float_t GetSlopeT() const {return fT[0];}
54   Float_t GetInterceptT() const {return fT[1];}
55   Float_t GetMaxT()const {return fT[2];}
56   Float_t GetSlopeP() const {return fP[0];}
57   Float_t GetInterceptP() const {return fP[1];}
58   Float_t GetMaxP() const {return fP[2];}
59  
60   void SetSlopeT(Float_t slopeT) {fT[0]=slopeT;}
61   void SetInterceptT(Float_t interceptT) {fT[1]=interceptT;}
62   void SetMaxT(Float_t maxT) {fT[2]=maxT;}
63   void SetSlopeP(Float_t slopeP) {fP[0]=slopeP;}
64   void SetInterceptP(Float_t interceptP) {fP[1]=interceptP;}
65   void SetMaxP(Float_t maxP) {fP[2]=maxP;}
66   
67   void Draw(const Option_t* option);
68   
69   AliTOFFormatDCS* GetHVvpos(Int_t pos) const
70     {return pos<kNHV ? fHVvpos[pos] : 0;}
71   AliTOFFormatDCS* GetHVvneg(Int_t pos) const 
72     {return pos<kNHV ? fHVvneg[pos] : 0;}
73   AliTOFFormatDCS* GetHVcpos(Int_t pos) const 
74     {return pos<kNHV ? fHVcpos[pos] : 0;}
75   AliTOFFormatDCS* GetHVcneg(Int_t pos) const 
76     {return pos<kNHV ? fHVcneg[pos] : 0;}
77   AliTOFFormatDCS* GetLVv(Int_t pos) const 
78     {return pos<kNLV ? fLVv[pos] : 0;}
79   AliTOFFormatDCS* GetLVc(Int_t pos) const 
80     {return pos<kNLV ? fLVc[pos] : 0;}
81   AliTOFFormatDCS* GetFEEthr(Int_t pos) const
82     {return pos<kNFEEthr ? fFEEthr[pos] : 0;}
83   AliTOFFormatDCS* GetFEEt(Int_t pos) const
84     {return pos<kNFEEt ? fFEEt[pos] : 0;}
85
86 private:
87   void Init();
88   void Introduce(UInt_t numAlias, const TObjArray* aliasArr) const;
89   void CreateHisto(int nbin);
90   
91   Int_t fRun;       // Run number
92   Int_t fStartTime; // start time
93   Int_t fEndTime;   // end time
94   
95   
96   TString fAliasNames[kNAliases];     // aliases for DCS data
97   AliTOFFormatDCS *fHVvpos[kNHV];     // HV voltages, positive ch
98   AliTOFFormatDCS *fHVvneg[kNHV];     // HV voltages, negative ch
99   AliTOFFormatDCS *fHVcpos[kNHV];     // HV currents, positive ch
100   AliTOFFormatDCS *fHVcneg[kNHV];     // HV currents, negative ch
101   AliTOFFormatDCS *fLVv[kNLV];        // LV voltages
102   AliTOFFormatDCS *fLVc[kNLV];        // LV currents
103   AliTOFFormatDCS *fFEEthr[kNFEEthr]; // FEE thresholds
104   AliTOFFormatDCS *fFEEt[kNFEEt];     // FEE temperatures
105   Float_t fT[3];                      // environment temperature
106   Float_t fP[3];                      // environment pressure
107   
108   Bool_t fIsProcessed;                // bool to know processing status
109   
110   ClassDef(AliTOFDataDCS, 2);
111 };
112
113 #endif