]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliGRPObject.h
Quick fix for bug 71658
[u/mrichter/AliRoot.git] / STEER / AliGRPObject.h
index b5208993cf59042e61f3ac434d9f7adc3260db97..e2f7e18f8a56064687048e9a91da795e4144a923 100644 (file)
@@ -13,6 +13,7 @@
 // \r
 \r
 #include <time.h>\r
+#include <TString.h>\r
 \r
 class TMap;\r
 \r
@@ -24,6 +25,8 @@ class AliGRPObject : public TObject {
  public:\r
 \r
        enum Stats {kMean = 0, kTruncMean = 1, kMedian = 2, kSDMean = 3, kSDMedian = 4};\r
+       \r
+       enum StatusBits {kPolConvLHC = BIT(14), kUniformBMap = BIT(15),kConvSqrtSHalfGeV = BIT(16)};\r
 \r
        enum DP_HallProbes { \r
                 khpL3bsf17H1= 0 , khpL3bsf17H2, khpL3bsf17H3, khpL3bsf17Temperature, \r
@@ -44,22 +47,21 @@ class AliGRPObject : public TObject {
        ~AliGRPObject();\r
 \r
        // getters\r
-\r
+       Bool_t    IsBeamEnergyIsSqrtSHalfGeV() const {return TestBit(kConvSqrtSHalfGeV);}\r
+       Bool_t    IsPolarityConventionLHC() const {return TestBit(kPolConvLHC);}\r
+       Bool_t    IsUniformBMap() const {return TestBit(kUniformBMap);}\r
        time_t    GetTimeStart() const {return fTimeStart;}\r
        time_t    GetTimeEnd() const {return fTimeEnd;}\r
-       Float_t   GetBeamEnergy() const {return fBeamEnergy;}\r
+       Float_t   GetBeamEnergy() const {return IsBeamEnergyIsSqrtSHalfGeV() ? fBeamEnergy : fBeamEnergy/2;}\r
        TString   GetBeamType() const {return fBeamType;}\r
        Char_t    GetNumberOfDetectors() const {return fNumberOfDetectors;}\r
        UInt_t    GetDetectorMask() const {return fDetectorMask;}\r
        TString   GetLHCPeriod() const {return fLHCPeriod;}\r
        TString   GetRunType() const {return fRunType;}\r
        TString   GetLHCState() const {return fLHCState;}\r
-       Float_t*  GetLHCLuminosity() const {return fLHCLuminosity;}\r
-       Float_t   GetLHCLuminosity(Stats stat) const {return fLHCLuminosity[stat];}\r
-       AliSplineFit*  GetLHCLuminositySplineFit() const {return fLHCLuminositySplineFit;}\r
-       Float_t*  GetBeamIntensity() const {return fBeamIntensity;}\r
-       Float_t   GetBeamIntensity(Stats stat) const {return fBeamIntensity[stat];}\r
-       AliSplineFit*  GetBeamIntensitySplineFit() const {return fBeamIntensitySplineFit;}\r
+       TString   GetMachineMode() const {return fMachineMode;}\r
+       TObjArray*   GetLHCStateArray() const {return fLHCStateArray;}\r
+       TObjArray*   GetMachineModeArray() const {return fMachineModeArray;}\r
        Char_t    GetL3Polarity() const {return fL3Polarity;}\r
        Char_t    GetDipolePolarity() const {return fDipolePolarity;}\r
        Float_t*  GetL3Current() const {return fL3Current;}\r
@@ -69,17 +71,22 @@ class AliGRPObject : public TObject {
        Float_t*  GetCavernTemperature() const {return fCavernTemperature;}\r
        Float_t   GetCavernTemperature(Stats stat) const {return fCavernTemperature[stat];}\r
        AliDCSSensor*   GetCavernAtmosPressure() const {return fCavernAtmosPressure;}\r
+       AliDCSSensor*   GetCavernAtmosPressure2() const {return fCavernAtmosPressure2;}\r
        AliDCSSensor*   GetSurfaceAtmosPressure() const {return fSurfaceAtmosPressure;}\r
 \r
-       Float_t*  GetHallProbes(DP_HallProbes hp) const;\r
+       Float_t*  GetHallProbesArray(DP_HallProbes hp) const;\r
        Float_t   GetHallProbes(Int_t hp) const {return fHallProbes[hp];}\r
        Float_t   GetHallProbes(DP_HallProbes hp, Stats stat) const {return fHallProbes[hp*fPoints+stat];}\r
 \r
        Int_t    GetPoints() const {return fPoints;}\r
        Int_t    GetDimension() const {return fDimension;}\r
 \r
-       // setters\r
+       Double_t GetMaxTimeLHCValidity() const {return fMaxTimeLHCValidity;}\r
 \r
+       // setters\r
+       void SetBeamEnergyIsSqrtSHalfGeV(Bool_t v=kTRUE) {SetBit(kConvSqrtSHalfGeV,v);}\r
+       void SetPolarityConventionLHC(Bool_t v=kTRUE) {return SetBit(kPolConvLHC,v);}\r
+       void SetUniformBMap(Bool_t v=kTRUE) {return SetBit(kUniformBMap,v);}\r
        void SetTimeStart(time_t timeStart)  {fTimeStart = timeStart;}\r
        void SetTimeEnd(time_t timeEnd)  {fTimeEnd = timeEnd;}\r
        void SetBeamEnergy(Float_t beamEnergy)  {fBeamEnergy = beamEnergy;}\r
@@ -89,16 +96,9 @@ class AliGRPObject : public TObject {
        void SetLHCPeriod(TString lhcPeriod)  {fLHCPeriod = lhcPeriod;}\r
        void SetRunType(TString runType)  {fRunType = runType;}\r
        void SetLHCState(TString lhcState)  {fLHCState = lhcState;}\r
-       void SetLHCLuminosity(const Float_t* lhcLuminosity)  {\r
-               for (Int_t i = 0;i<fPoints;i++) fLHCLuminosity[i] = lhcLuminosity[i];\r
-       }\r
-       void SetLHCLuminosity(Float_t lhcLuminosity, Stats stat)  {fLHCLuminosity[stat] = lhcLuminosity;}\r
-       void SetLHCLuminositySplineFit(AliSplineFit* const lhcLuminositySplineFit)  {fLHCLuminositySplineFit = lhcLuminositySplineFit;}\r
-       void SetBeamIntensity(const Float_t* beamIntensity)  {\r
-               for (Int_t i = 0;i<fPoints;i++) fBeamIntensity[i] = beamIntensity[i];\r
-       }\r
-       void SetBeamIntensity(Float_t beamIntensity, Stats stat)  {fBeamIntensity[stat] = beamIntensity;}\r
-       void SetBeamIntensitySplineFit(AliSplineFit* const beamIntensitySplineFit)  {fBeamIntensitySplineFit = beamIntensitySplineFit;}\r
+       void SetMachineMode(TString machineMode)  {fMachineMode = machineMode;}\r
+       void SetLHCStateArray(TObjArray* lhcStateArray)  {fLHCStateArray = lhcStateArray;}\r
+       void SetMachineModeArray(TObjArray* machineModeArray)  {fMachineModeArray = machineModeArray;}\r
        void SetL3Polarity(Char_t l3Polarity)  {fL3Polarity = l3Polarity;}\r
        void SetDipolePolarity(Char_t dipolePolarity)  {fDipolePolarity = dipolePolarity;}\r
        void SetL3Current(const Float_t* l3Current)  {\r
@@ -114,6 +114,7 @@ class AliGRPObject : public TObject {
        }\r
        void SetCavernTemperature(Float_t cavernTemperature, Stats stat)  {fCavernTemperature[stat] = cavernTemperature;}\r
        void SetCavernAtmosPressure(AliDCSSensor* const cavernAtmosPressure)  {fCavernAtmosPressure = cavernAtmosPressure;}\r
+       void SetCavernAtmosPressure2(AliDCSSensor* const cavernAtmosPressure)  {fCavernAtmosPressure2 = cavernAtmosPressure;}\r
        void SetSurfaceAtmosPressure(AliDCSSensor* const surfacePressure)  {fSurfaceAtmosPressure = surfacePressure;}\r
 \r
        void SetHallProbes(DP_HallProbes hp, Float_t hall_probe, Stats stat)  {fHallProbes[hp*fPoints+stat] = hall_probe;}\r
@@ -123,6 +124,7 @@ class AliGRPObject : public TObject {
        void SetHallProbes(DP_HallProbes hp, const Float_t* hall_probe);  \r
        void SetPoints(Int_t points) {fPoints = points;}\r
        void SetDimension(Int_t dimension) {fDimension = dimension;}\r
+       void SetMaxTimeLHCValidity(Double_t maxTimeLHCValidity) {fMaxTimeLHCValidity = maxTimeLHCValidity;}\r
 \r
        // getters for "invalid" flags\r
 \r
@@ -160,12 +162,6 @@ class AliGRPObject : public TObject {
        TString  fLHCPeriod;              // LHCperiod entry from DAQ logbook \r
        TString  fRunType;                // RunType entry from DAQ logbook \r
        TString  fLHCState;               // LHCState entry from DCS DB\r
-       Float_t*  fLHCLuminosity;         // [fPoints]\r
-                                         // LHCLuminosity entry from DCS DB\r
-       AliSplineFit*  fLHCLuminositySplineFit;       // LHCLuminosity SplineFit from DCS DB\r
-       Float_t*  fBeamIntensity   ;      // [fPoints]\r
-                                         // BeamIntensity entry from DCS DB\r
-       AliSplineFit*  fBeamIntensitySplineFit;       // BeamIntensity SplineFit from DCS DB\r
        Char_t    fL3Polarity;            // L3Polarity entry from DCS DB\r
        Char_t    fDipolePolarity;        // DipolePolarity entry from DCS DB                                     \r
        Float_t*  fL3Current;             // [fPoints]\r
@@ -175,6 +171,7 @@ class AliGRPObject : public TObject {
        Float_t*  fCavernTemperature;     // [fPoints]\r
                                           // CavernTemperature entry from DCS DB\r
        AliDCSSensor*  fCavernAtmosPressure;    // CavernAtmosPressure entry from DCS DB\r
+       AliDCSSensor*  fCavernAtmosPressure2;    // CavernAtmosPressure2 entry from DCS DB\r
        AliDCSSensor*  fSurfaceAtmosPressure;   // SurfaceAtmosPressure entry from DCS DB\r
 \r
        // Hall Probes\r
@@ -182,7 +179,14 @@ class AliGRPObject : public TObject {
        Float_t* fHallProbes;       //[fDimension] \r
                                    // array containg the values for the Hall Probes\r
 \r
-       ClassDef(AliGRPObject,2)\r
+       TString  fMachineMode;      // Machine Mode from LHC\r
+\r
+       TObjArray* fLHCStateArray;     // Array of values for the LHC State\r
+       TObjArray* fMachineModeArray;  // Array of values for the LHC State\r
+\r
+       Double_t fMaxTimeLHCValidity;    // time until which the LHC Data Machine Mode and Beam Mode didn't change \r
+\r
+       ClassDef(AliGRPObject,6)\r
 \r
 };\r
 \r