// \r
\r
#include <time.h>\r
+#include <TString.h>\r
+#include <TTimeStamp.h>\r
\r
class TMap;\r
\r
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
~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;\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
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
+ AliDCSSensor* GetBestCavernAtmosPressure() const ;\r
+ AliDCSSensor* GetBestCavernAtmosPressure(const TTimeStamp& time) const;\r
+ static AliDCSSensor* GetBestCavernAtmosPressure(AliDCSSensor* cavern1, \r
+ AliDCSSensor* cavern2, AliDCSSensor* surface, const TTimeStamp& time);\r
+\r
\r
Float_t* GetHallProbesArray(DP_HallProbes hp) const;\r
Float_t GetHallProbes(Int_t hp) const {return fHallProbes[hp];}\r
Int_t GetPoints() const {return fPoints;}\r
Int_t GetDimension() const {return fDimension;}\r
\r
+ Double_t GetMaxTimeLHCValidity() const {return fMaxTimeLHCValidity;}\r
+ //\r
+ TObjArray* GetQATrigClasses() const {return (TObjArray*)fQATrigClasses;}\r
+ TObjArray* GetQACloningRequest() const {return (TObjArray*)fQACloningRequest;}\r
+ //\r
// setters\r
-\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
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
}\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
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
-\r
+ void SetMaxTimeLHCValidity(Double_t maxTimeLHCValidity) {fMaxTimeLHCValidity = maxTimeLHCValidity;}\r
+ //\r
+ void SetQATrigClasses(TObjArray* arr) {fQATrigClasses = arr;}\r
+ void SetQACloningRequest(TObjArray* arr) {fQACloningRequest = arr;}\r
+ //\r
// getters for "invalid" flags\r
\r
static Float_t GetInvalidFloat() {return fgkInvalidFloat;}\r
static Int_t GetNumberOfHP() {return fgknDCSDPHallProbes;}\r
static const char* GetHPDP(Int_t indexHP) {return fgkDCSDataPointsHallProbes[indexHP];}\r
\r
+ Double_t EvalCavernPressure(const TTimeStamp& time, Bool_t& inside) const;\r
+ static Double_t EvalCavernPressure(AliDCSSensor* cavern1, \r
+ AliDCSSensor* cavern2, AliDCSSensor* surface, \r
+ const TTimeStamp& time, Bool_t& inside);\r
+\r
// to read old GRP object in TMap format\r
\r
void ReadValuesFromMap(const TMap* map); \r
\r
+ void SetSingleBeamType(Int_t ibeamType, TString beamType) {fSeparateBeamType[ibeamType] = beamType;}\r
+ TString GetSingleBeamType(Int_t ibeamType) const {return fBeamType[ibeamType];}\r
+\r
private:\r
\r
static const Float_t fgkInvalidFloat; // value to identify invalid data - float\r
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
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
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
+ TObjArray* fLHCStateArray; // Array of values for the LHC State\r
+ TObjArray* fMachineModeArray; // Array of values for the LHC State\r
+ TObjArray* fQATrigClasses; // RS: Array of trigger class to watch in QA\r
+ TObjArray* fQACloningRequest; // RS: Array of cloning requests for QA histos\r
+ Double_t fMaxTimeLHCValidity; // time until which the LHC Data Machine Mode and Beam Mode didn't change \r
+ TString fSeparateBeamType[2]; // separate beam Types from LHC\r
+\r
+ ClassDef(AliGRPObject,8)\r
\r
};\r
\r