39e3007b |
1 | #ifndef ALIGRPOBJECT_H\r |
2 | #define ALIGRPOBJECT_H\r |
3 | \r |
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r |
5 | * See cxx source for full Copyright notice */\r |
6 | \r |
7 | /* $Id$ */\r |
8 | \r |
9 | //\r |
10 | // AliGRPObject\r |
11 | // class to store the information\r |
12 | // coming from the GRP preprocessor\r |
13 | // \r |
14 | \r |
195fcf27 |
15 | #include <time.h>\r |
16 | \r |
39e3007b |
17 | class TMap;\r |
18 | \r |
19 | class AliDCSSensor;\r |
20 | class AliSplineFit;\r |
21 | class AliLog;\r |
22 | \r |
23 | class AliGRPObject : public TObject {\r |
24 | public:\r |
25 | \r |
26 | enum Stats {kMean = 0, kTruncMean = 1, kMedian = 2, kSDMean = 3, kSDMedian = 4};\r |
27 | \r |
28 | enum DP_HallProbes { \r |
29 | khpL3bsf17H1= 0 , khpL3bsf17H2, khpL3bsf17H3, khpL3bsf17Temperature, \r |
30 | khpL3bsf4H1, khpL3bsf4H2, khpL3bsf4H3, khpL3bsf4Temperature, \r |
31 | khpL3bkf17H1, khpL3bkf17H2, khpL3bkf17H3, khpL3bkf17Temperature, \r |
32 | khpL3bkf4H1, khpL3bkf4H2, khpL3bkf4H3, khpL3bkf4Temperature, \r |
33 | khpL3bsf13H1, khpL3bsf13H2, khpL3bsf13H3, khpL3bsf13Temperature,\r |
34 | khpL3bsf8H1, khpL3bsf8H2, khpL3bsf8H3, khpL3bsfy8Temperature,\r |
35 | khpL3bkf13H1, khpL3bkf13H2, khpL3bkf13H3, khpL3bkf13Temperature,\r |
36 | khpL3bkf8H1, khpL3bkf8H2, khpL3bkf8H3, khpL3bkf8Temperature,\r |
37 | khpDipoleInsideH1, khpDipoleInsideH2, khpDipoleInsideH3, khpDipoleInsideTemperature,\r |
38 | khpDipoleOutsideH1, khpDipoleOutsideH2, khpDipoleOutsideH3, khpDipoleOutsideTemperature};\r |
39 | \r |
40 | \r |
41 | AliGRPObject();\r |
42 | AliGRPObject(const AliGRPObject & obj);\r |
43 | AliGRPObject& operator=(const AliGRPObject & obj);\r |
44 | ~AliGRPObject();\r |
45 | \r |
46 | // getters\r |
47 | \r |
48 | time_t GetTimeStart() const {return fTimeStart;}\r |
49 | time_t GetTimeEnd() const {return fTimeEnd;}\r |
50 | Float_t GetBeamEnergy() const {return fBeamEnergy;}\r |
51 | TString GetBeamType() const {return fBeamType;}\r |
52 | Char_t GetNumberOfDetectors() const {return fNumberOfDetectors;}\r |
53 | UInt_t GetDetectorMask() const {return fDetectorMask;}\r |
54 | TString GetLHCPeriod() const {return fLHCPeriod;}\r |
55 | TString GetRunType() const {return fRunType;}\r |
56 | TString GetLHCState() const {return fLHCState;}\r |
57 | Float_t* GetLHCLuminosity() const {return fLHCLuminosity;}\r |
58 | Float_t GetLHCLuminosity(Stats stat) const {return fLHCLuminosity[stat];}\r |
59 | AliSplineFit* GetLHCLuminositySplineFit() const {return fLHCLuminositySplineFit;}\r |
60 | Float_t* GetBeamIntensity() const {return fBeamIntensity;}\r |
61 | Float_t GetBeamIntensity(Stats stat) const {return fBeamIntensity[stat];}\r |
62 | AliSplineFit* GetBeamIntensitySplineFit() const {return fBeamIntensitySplineFit;}\r |
63 | Char_t GetL3Polarity() const {return fL3Polarity;}\r |
64 | Char_t GetDipolePolarity() const {return fDipolePolarity;}\r |
65 | Float_t* GetL3Current() const {return fL3Current;}\r |
66 | Float_t GetL3Current(Stats stat) const {return fL3Current[stat];}\r |
67 | Float_t* GetDipoleCurrent() const {return fDipoleCurrent;}\r |
68 | Float_t GetDipoleCurrent(Stats stat) const {return fDipoleCurrent[stat];}\r |
69 | Float_t* GetCavernTemperature() const {return fCavernTemperature;}\r |
70 | Float_t GetCavernTemperature(Stats stat) const {return fCavernTemperature[stat];}\r |
71 | // Float_t* GetCavernAtmosPressure() {return fCavernAtmosPressure;}\r |
72 | //Float_t GetCavernAtmosPressure(Stats stat) const {return fCavernAtmosPressure[stat];}\r |
73 | AliDCSSensor* GetCavernAtmosPressure() const {return fCavernAtmosPressure;}\r |
74 | AliDCSSensor* GetSurfaceAtmosPressure() const {return fSurfaceAtmosPressure;}\r |
75 | \r |
76 | Float_t* GetHallProbes(DP_HallProbes hp) const;\r |
77 | Float_t GetHallProbes(Int_t hp) const {return fHallProbes[hp];}\r |
78 | Float_t GetHallProbes(DP_HallProbes hp, Stats stat) const {return fHallProbes[hp*fPoints+stat];}\r |
79 | \r |
80 | Int_t GetPoints() const {return fPoints;}\r |
81 | Int_t GetDimension() const {return fDimension;}\r |
82 | \r |
83 | // setters\r |
84 | \r |
85 | void SetTimeStart(time_t timeStart) {fTimeStart = timeStart;}\r |
86 | void SetTimeEnd(time_t timeEnd) {fTimeEnd = timeEnd;}\r |
87 | void SetBeamEnergy(Float_t beamEnergy) {fBeamEnergy = beamEnergy;}\r |
88 | void SetBeamType(TString beamType) {fBeamType = beamType;}\r |
89 | void SetNumberOfDetectors(Char_t numberOfDetectors) {fNumberOfDetectors = numberOfDetectors;}\r |
90 | void SetDetectorMask(UInt_t detectorMask) {fDetectorMask = detectorMask;}\r |
91 | void SetLHCPeriod(TString lhcPeriod) {fLHCPeriod = lhcPeriod;}\r |
92 | void SetRunType(TString runType) {fRunType = runType;}\r |
93 | void SetLHCState(TString lhcState) {fLHCState = lhcState;}\r |
94 | void SetLHCLuminosity(const Float_t* lhcLuminosity) {\r |
95 | for (Int_t i = 0;i<fPoints;i++) fLHCLuminosity[i] = lhcLuminosity[i];\r |
96 | }\r |
97 | void SetLHCLuminosity(Float_t lhcLuminosity, Stats stat) {fLHCLuminosity[stat] = lhcLuminosity;}\r |
98 | void SetLHCLuminositySplineFit(AliSplineFit* const lhcLuminositySplineFit) {fLHCLuminositySplineFit = lhcLuminositySplineFit;}\r |
99 | void SetBeamIntensity(const Float_t* beamIntensity) {\r |
100 | for (Int_t i = 0;i<fPoints;i++) fBeamIntensity[i] = beamIntensity[i];\r |
101 | }\r |
102 | void SetBeamIntensity(Float_t beamIntensity, Stats stat) {fBeamIntensity[stat] = beamIntensity;}\r |
103 | void SetBeamIntensitySplineFit(AliSplineFit* const beamIntensitySplineFit) {fBeamIntensitySplineFit = beamIntensitySplineFit;}\r |
104 | void SetL3Polarity(Char_t l3Polarity) {fL3Polarity = l3Polarity;}\r |
105 | void SetDipolePolarity(Char_t dipolePolarity) {fDipolePolarity = dipolePolarity;}\r |
106 | void SetL3Current(const Float_t* l3Current) {\r |
107 | for (Int_t i = 0;i<fPoints;i++) fL3Current[i] = l3Current[i];\r |
108 | }\r |
109 | void SetL3Current(Float_t l3Current, Stats stat) {fL3Current[stat] = l3Current;}\r |
110 | void SetDipoleCurrent(const Float_t* dipoleCurrent) {\r |
111 | for (Int_t i = 0;i<fPoints;i++) fDipoleCurrent[i] = dipoleCurrent[i];\r |
112 | }\r |
113 | void SetDipoleCurrent(Float_t dipoleCurrent, Stats stat) {fDipoleCurrent[stat] = dipoleCurrent;}\r |
114 | void SetCavernTemperature(const Float_t* cavernTemperature) {\r |
115 | for (Int_t i = 0;i<fPoints;i++) fCavernTemperature[i] = cavernTemperature[i];\r |
116 | }\r |
117 | void SetCavernTemperature(Float_t cavernTemperature, Stats stat) {fCavernTemperature[stat] = cavernTemperature;}\r |
118 | // void SetCavernAtmosPressure(Float_t* cavernAtmosPressure) {\r |
119 | // for (Int_t i = 0;i<fPoints;i++) fCavernAtmosPressure[i] = cavernAtmosPressure[i];\r |
120 | //}\r |
121 | // void SetCavernAtmosPressure(Float_t cavernAtmosPressure, Stats stat) {fCavernAtmosPressure[stat] = cavernAtmosPressure;}\r |
122 | void SetCavernAtmosPressure(AliDCSSensor* const cavernAtmosPressure) {fCavernAtmosPressure = cavernAtmosPressure;}\r |
123 | void SetSurfaceAtmosPressure(AliDCSSensor* const surfacePressure) {fSurfaceAtmosPressure = surfacePressure;}\r |
124 | \r |
125 | void SetHallProbes(DP_HallProbes hp, Float_t hall_probe, Stats stat) {fHallProbes[hp*fPoints+stat] = hall_probe;}\r |
126 | void SetHallProbes(const Float_t* hall_probe){\r |
127 | for (Int_t i = 0; i< fDimension; i++) fHallProbes[i] = hall_probe[i];}\r |
128 | \r |
129 | void SetHallProbes(DP_HallProbes hp, const Float_t* hall_probe); \r |
130 | void SetPoints(Int_t points) {fPoints = points;}\r |
131 | void SetDimension(Int_t dimension) {fDimension = dimension;}\r |
132 | \r |
133 | // getters for "invalid" flags\r |
134 | \r |
135 | static Float_t GetInvalidFloat() {return fgkInvalidFloat;}\r |
136 | static TString GetInvalidString() {return fgkInvalidString;}\r |
137 | static Int_t GetInvalidInt() {return fgkInvalidInt;}\r |
138 | static Int_t GetInvalidUInt() {return fgkInvalidUInt;}\r |
139 | static Char_t GetInvalidChar() {return fgkInvalidChar;}\r |
140 | static Int_t GetNumberOfHP() {return fgknDCSDPHallProbes;}\r |
141 | static const char* GetHPDP(Int_t indexHP) {return fgkDCSDataPointsHallProbes[indexHP];}\r |
142 | \r |
143 | // to read old GRP object in TMap format\r |
144 | \r |
145 | void ReadValuesFromMap(const TMap* map); \r |
146 | \r |
147 | private:\r |
148 | \r |
149 | static const Float_t fgkInvalidFloat; // value to identify invalid data - float\r |
150 | static const TString fgkInvalidString; // value to identify invalid data - string\r |
151 | static const Char_t fgkInvalidChar; // value to identify invalid data - char\r |
152 | static const Int_t fgkInvalidInt; // value to identify invalid data - int\r |
153 | static const Int_t fgkInvalidUInt; // value to identify invalid data - uint\r |
154 | static const Int_t fgknDCSDPHallProbes; //! number of dcs dps\r |
155 | static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps\r |
156 | \r |
157 | Int_t fPoints; // number of statistical quantities to be stored\r |
158 | Int_t fDimension; // dimension of Hall Probes array\r |
159 | \r |
160 | time_t fTimeStart; // DAQ_time_start entry from DAQ logbook\r |
161 | time_t fTimeEnd; // DAQ_time_end entry from DAQ logbook\r |
162 | Float_t fBeamEnergy; // beamEnergy entry from DAQ logbook\r |
163 | TString fBeamType; // beamType entry from DAQ logbook\r |
164 | Char_t fNumberOfDetectors; // numberOfDetectors entry from DAQ logbook\r |
165 | UInt_t fDetectorMask; // detectorMask entry from DAQ logbook\r |
166 | TString fLHCPeriod; // LHCperiod entry from DAQ logbook \r |
167 | TString fRunType; // RunType entry from DAQ logbook \r |
168 | TString fLHCState; // LHCState entry from DCS DB\r |
169 | Float_t* fLHCLuminosity; // [fPoints]\r |
170 | // LHCLuminosity entry from DCS DB\r |
171 | AliSplineFit* fLHCLuminositySplineFit; // LHCLuminosity SplineFit from DCS DB\r |
172 | Float_t* fBeamIntensity ; // [fPoints]\r |
173 | // BeamIntensity entry from DCS DB\r |
174 | AliSplineFit* fBeamIntensitySplineFit; // BeamIntensity SplineFit from DCS DB\r |
175 | Char_t fL3Polarity; // L3Polarity entry from DCS DB\r |
176 | Char_t fDipolePolarity; // DipolePolarity entry from DCS DB \r |
177 | Float_t* fL3Current; // [fPoints]\r |
178 | // L3Current entry from DCS DB\r |
179 | Float_t* fDipoleCurrent; // [fPoints]\r |
180 | // DipoleCurrent entry from DCS DB\r |
181 | Float_t* fCavernTemperature; // [fPoints]\r |
182 | // CavernTemperature entry from DCS DB\r |
183 | // Float_t* fCavernAtmosPressure; // [fPoints]\r |
184 | // CavernAtmosPressure entry from DCS DB\r |
185 | AliDCSSensor* fCavernAtmosPressure; // CavernAtmosPressure entry from DCS DB\r |
186 | AliDCSSensor* fSurfaceAtmosPressure; // SurfaceAtmosPressure entry from DCS DB\r |
187 | \r |
188 | // Hall Probes\r |
189 | \r |
190 | Float_t* fHallProbes; //[fDimension] \r |
191 | // array containg the values for the Hall Probes\r |
192 | \r |
193 | ClassDef(AliGRPObject,2)\r |
194 | \r |
195 | };\r |
196 | \r |
197 | #endif\r |