Add a protection to fitter->Eval
[u/mrichter/AliRoot.git] / STEER / AliGRPObject.h
CommitLineData
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 17class TMap;\r
18\r
19class AliDCSSensor;\r
20class AliSplineFit;\r
21class AliLog;\r
22\r
23class 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
95eb6639 53 UInt_t GetDetectorMask() const {return fDetectorMask;}\r
39e3007b 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
39e3007b 71 AliDCSSensor* GetCavernAtmosPressure() const {return fCavernAtmosPressure;}\r
72 AliDCSSensor* GetSurfaceAtmosPressure() const {return fSurfaceAtmosPressure;}\r
73\r
a861a1ce 74 Float_t* GetHallProbesArray(DP_HallProbes hp) const;\r
39e3007b 75 Float_t GetHallProbes(Int_t hp) const {return fHallProbes[hp];}\r
76 Float_t GetHallProbes(DP_HallProbes hp, Stats stat) const {return fHallProbes[hp*fPoints+stat];}\r
77\r
78 Int_t GetPoints() const {return fPoints;}\r
79 Int_t GetDimension() const {return fDimension;}\r
80\r
81 // setters\r
82\r
83 void SetTimeStart(time_t timeStart) {fTimeStart = timeStart;}\r
84 void SetTimeEnd(time_t timeEnd) {fTimeEnd = timeEnd;}\r
85 void SetBeamEnergy(Float_t beamEnergy) {fBeamEnergy = beamEnergy;}\r
86 void SetBeamType(TString beamType) {fBeamType = beamType;}\r
87 void SetNumberOfDetectors(Char_t numberOfDetectors) {fNumberOfDetectors = numberOfDetectors;}\r
88 void SetDetectorMask(UInt_t detectorMask) {fDetectorMask = detectorMask;}\r
89 void SetLHCPeriod(TString lhcPeriod) {fLHCPeriod = lhcPeriod;}\r
90 void SetRunType(TString runType) {fRunType = runType;}\r
91 void SetLHCState(TString lhcState) {fLHCState = lhcState;}\r
92 void SetLHCLuminosity(const Float_t* lhcLuminosity) {\r
93 for (Int_t i = 0;i<fPoints;i++) fLHCLuminosity[i] = lhcLuminosity[i];\r
94 }\r
95 void SetLHCLuminosity(Float_t lhcLuminosity, Stats stat) {fLHCLuminosity[stat] = lhcLuminosity;}\r
96 void SetLHCLuminositySplineFit(AliSplineFit* const lhcLuminositySplineFit) {fLHCLuminositySplineFit = lhcLuminositySplineFit;}\r
97 void SetBeamIntensity(const Float_t* beamIntensity) {\r
98 for (Int_t i = 0;i<fPoints;i++) fBeamIntensity[i] = beamIntensity[i];\r
99 }\r
100 void SetBeamIntensity(Float_t beamIntensity, Stats stat) {fBeamIntensity[stat] = beamIntensity;}\r
101 void SetBeamIntensitySplineFit(AliSplineFit* const beamIntensitySplineFit) {fBeamIntensitySplineFit = beamIntensitySplineFit;}\r
102 void SetL3Polarity(Char_t l3Polarity) {fL3Polarity = l3Polarity;}\r
103 void SetDipolePolarity(Char_t dipolePolarity) {fDipolePolarity = dipolePolarity;}\r
104 void SetL3Current(const Float_t* l3Current) {\r
105 for (Int_t i = 0;i<fPoints;i++) fL3Current[i] = l3Current[i];\r
106 }\r
107 void SetL3Current(Float_t l3Current, Stats stat) {fL3Current[stat] = l3Current;}\r
108 void SetDipoleCurrent(const Float_t* dipoleCurrent) {\r
109 for (Int_t i = 0;i<fPoints;i++) fDipoleCurrent[i] = dipoleCurrent[i];\r
110 }\r
111 void SetDipoleCurrent(Float_t dipoleCurrent, Stats stat) {fDipoleCurrent[stat] = dipoleCurrent;}\r
112 void SetCavernTemperature(const Float_t* cavernTemperature) {\r
113 for (Int_t i = 0;i<fPoints;i++) fCavernTemperature[i] = cavernTemperature[i];\r
114 }\r
115 void SetCavernTemperature(Float_t cavernTemperature, Stats stat) {fCavernTemperature[stat] = cavernTemperature;}\r
39e3007b 116 void SetCavernAtmosPressure(AliDCSSensor* const cavernAtmosPressure) {fCavernAtmosPressure = cavernAtmosPressure;}\r
117 void SetSurfaceAtmosPressure(AliDCSSensor* const surfacePressure) {fSurfaceAtmosPressure = surfacePressure;}\r
118\r
119 void SetHallProbes(DP_HallProbes hp, Float_t hall_probe, Stats stat) {fHallProbes[hp*fPoints+stat] = hall_probe;}\r
120 void SetHallProbes(const Float_t* hall_probe){\r
121 for (Int_t i = 0; i< fDimension; i++) fHallProbes[i] = hall_probe[i];}\r
122\r
123 void SetHallProbes(DP_HallProbes hp, const Float_t* hall_probe); \r
124 void SetPoints(Int_t points) {fPoints = points;}\r
125 void SetDimension(Int_t dimension) {fDimension = dimension;}\r
126\r
127 // getters for "invalid" flags\r
128\r
129 static Float_t GetInvalidFloat() {return fgkInvalidFloat;}\r
130 static TString GetInvalidString() {return fgkInvalidString;}\r
131 static Int_t GetInvalidInt() {return fgkInvalidInt;}\r
132 static Int_t GetInvalidUInt() {return fgkInvalidUInt;}\r
133 static Char_t GetInvalidChar() {return fgkInvalidChar;}\r
134 static Int_t GetNumberOfHP() {return fgknDCSDPHallProbes;}\r
135 static const char* GetHPDP(Int_t indexHP) {return fgkDCSDataPointsHallProbes[indexHP];}\r
136\r
137 // to read old GRP object in TMap format\r
138\r
139 void ReadValuesFromMap(const TMap* map); \r
140\r
141 private:\r
142\r
143 static const Float_t fgkInvalidFloat; // value to identify invalid data - float\r
144 static const TString fgkInvalidString; // value to identify invalid data - string\r
145 static const Char_t fgkInvalidChar; // value to identify invalid data - char\r
146 static const Int_t fgkInvalidInt; // value to identify invalid data - int\r
147 static const Int_t fgkInvalidUInt; // value to identify invalid data - uint\r
148 static const Int_t fgknDCSDPHallProbes; //! number of dcs dps\r
149 static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps\r
150\r
151 Int_t fPoints; // number of statistical quantities to be stored\r
152 Int_t fDimension; // dimension of Hall Probes array\r
153\r
154 time_t fTimeStart; // DAQ_time_start entry from DAQ logbook\r
155 time_t fTimeEnd; // DAQ_time_end entry from DAQ logbook\r
156 Float_t fBeamEnergy; // beamEnergy entry from DAQ logbook\r
157 TString fBeamType; // beamType entry from DAQ logbook\r
158 Char_t fNumberOfDetectors; // numberOfDetectors entry from DAQ logbook\r
159 UInt_t fDetectorMask; // detectorMask entry from DAQ logbook\r
160 TString fLHCPeriod; // LHCperiod entry from DAQ logbook \r
161 TString fRunType; // RunType entry from DAQ logbook \r
162 TString fLHCState; // LHCState entry from DCS DB\r
163 Float_t* fLHCLuminosity; // [fPoints]\r
164 // LHCLuminosity entry from DCS DB\r
165 AliSplineFit* fLHCLuminositySplineFit; // LHCLuminosity SplineFit from DCS DB\r
166 Float_t* fBeamIntensity ; // [fPoints]\r
167 // BeamIntensity entry from DCS DB\r
168 AliSplineFit* fBeamIntensitySplineFit; // BeamIntensity SplineFit from DCS DB\r
169 Char_t fL3Polarity; // L3Polarity entry from DCS DB\r
170 Char_t fDipolePolarity; // DipolePolarity entry from DCS DB \r
171 Float_t* fL3Current; // [fPoints]\r
172 // L3Current entry from DCS DB\r
173 Float_t* fDipoleCurrent; // [fPoints]\r
174 // DipoleCurrent entry from DCS DB\r
175 Float_t* fCavernTemperature; // [fPoints]\r
176 // CavernTemperature entry from DCS DB\r
39e3007b 177 AliDCSSensor* fCavernAtmosPressure; // CavernAtmosPressure entry from DCS DB\r
178 AliDCSSensor* fSurfaceAtmosPressure; // SurfaceAtmosPressure entry from DCS DB\r
179\r
180 // Hall Probes\r
181\r
182 Float_t* fHallProbes; //[fDimension] \r
183 // array containg the values for the Hall Probes\r
184\r
185 ClassDef(AliGRPObject,2)\r
186\r
187};\r
188\r
189#endif\r