class TList;
class TString;
+class TObjArray;
class AliDCSSensorArray;
class AliGRPObject;
class AliSplineFit;
+class AliLHCClockPhase;
class AliGRPPreprocessor: public AliPreprocessor {
public:
- enum DP {kLHCState = 0, kL3Polarity, kDipolePolarity, kLHCLuminosity, kBeamIntensity,
+ enum DP {kL3Polarity = 0, kDipolePolarity,
kL3Current, kDipoleCurrent,
- kL3_BSF17_H1, kL3_BSF17_H2, kL3_BSF17_H3, kL3_BSF17_Temperature,
- kL3_BSF4_H1, kL3_BSF4_H2, kL3_BSF4_H3, kL3_BSF4_Temperature,
- kL3_BKF17_H1, kL3_BKF17_H2, kL3_BKF17_H3, kL3_BKF17_Temperature,
- kL3_BKF4_H1, kL3_BKF4_H2, kL3_BKF4_H3, kL3_BKF4_Temperature,
- kL3_BSF13_H1, kL3_BSF13_H2, kL3_BSF13_H3, kL3_BSF13_Temperature,
- kL3_BSF8_H1, kL3_BSF8_H2, kL3_BSF8_H3, kL3_BSF8_Temperature,
- kL3_BKF13_H1, kL3_BKF13_H2, kL3_BKF13_H3, kL3_BKF13_Temperature,
- kL3_BKF8_H1, kL3_BKF8_H2, kL3_BKF8_H3, kL3_BKF8_Temperature,
- kDipole_Inside_H1, kDipole_Inside_H2, kDipole_Inside_H3, kDipole_Inside_Temperature,
- kDipole_Outside_H1, kDipole_Outside_H2, kDipole_Outside_H3, kDipole_Outside_Temperature,
- kCavernTemperature, kCavernAtmosPressure, kSurfaceAtmosPressure};
-
- enum DP_HallProbes {
- k_HP_L3_BSF17_H1= 0 , k_HP_L3_BSF17_H2, k_HP_L3_BSF17_H3, k_HP_L3_BSF17_Temperature,
- k_HP_L3_BSF4_H1, k_HP_L3_BSF4_H2, k_HP_L3_BSF4_H3, k_HP_L3_BSF4_Temperature,
- k_HP_L3_BKF17_H1, k_HP_L3_BKF17_H2, k_HP_L3_BKF17_H3, k_HP_L3_BKF17_Temperature,
- k_HP_L3_BKF4_H1, k_HP_L3_BKF4_H2, k_HP_L3_BKF4_H3, k_HP_L3_BKF4_Temperature,
- k_HP_L3_BSF13_H1, k_HP_L3_BSF13_H2, k_HP_L3_BSF13_H3, k_HP_L3_BSF13_Temperature,
- k_HP_L3_BSF8_H1, k_HP_L3_BSF8_H2, k_HP_L3_BSF8_H3, k_HP_L3_BSF8_Temperature,
- k_HP_L3_BKF13_H1, k_HP_L3_BKF13_H2, k_HP_L3_BKF13_H3, k_HP_L3_BKF13_Temperature,
- k_HP_L3_BKF8_H1, k_HP_L3_BKF8_H2, k_HP_L3_BKF8_H3, k_HP_L3_BKF8_Temperature,
- k_HP_Dipole_Inside_H1, k_HP_Dipole_Inside_H2, k_HP_Dipole_Inside_H3, k_HP_Dipole_Inside_Temperature,
- k_HP_Dipole_Outside_H1, k_HP_Dipole_Outside_H2, k_HP_Dipole_Outside_H3, k_HP_Dipole_Outside_Temperature};
+ kL3bsf17H1, kL3bsf17H2, kL3bsf17H3, kL3bsf17Temperature,
+ kL3bsf4H1, kL3bsf4H2, kL3bsf4H3, kL3bsf4Temperature,
+ kL3bkf17H1, kL3bkf17H2, kL3bkf17H3, kL3bkf17Temperature,
+ kL3bkf4H1, kL3bkf4H2, kL3bkf4H3, kL3bkf4Temperature,
+ kL3bsf13H1, kL3bsf13H2, kL3bsf13H3, kL3bsf13Temperature,
+ kL3bsf8H1, kL3bsf8H2, kL3bsf8H3, kL3bsf8Temperature,
+ kL3bkf13H1, kL3bkf13H2, kL3bkf13H3, kL3bkf13Temperature,
+ kL3bkf8H1, kL3bkf8H2, kL3bkf8H3, kL3bkf8Temperature,
+ kDipoleInsideH1, kDipoleInsideH2, kDipoleInsideH3, kDipoleInsideTemperature,
+ kDipoleOutsideH1, kDipoleOutsideH2, kDipoleOutsideH3, kDipoleOutsideTemperature,
+ kCavernTemperature, kCavernAtmosPressure, kSurfaceAtmosPressure,
+ kCavernAtmosPressure2};
+
+ enum DPHallProbes {
+ khpL3bsf17H1=0, khpL3bsf17H2, khpL3bsf17H3, khpL3bsf17Temperature,
+ khpL3bsf4H1, khpL3bsf4H2, khpL3bsf4H3, khpL3bsf4Temperature,
+ khpL3bkf17H1, khpL3bkf17H2, khpL3bkf17H3, khpL3bkf17Temperature,
+ khpL3bkf4H1, khpL3bkf4H2, khpL3bkf4H3, khpL3bkf4Temperature,
+ khpL3bsf13H1, khpL3bsf13H2, khpL3bsf13H3, khpL3bsf13Temperature,
+ khpL3bsf8H1, khpL3bsf8H2, khpL3bsf8H3, khpL3bsf8Temperature,
+ khpL3bkf13H1, khpL3bkf13H2, khpL3bkf13H3, khpL3bkf13Temperature,
+ khpL3bkf8H1, khpL3bkf8H2, khpL3bkf8H3, khpL3bkf8Temperature,
+ khpDipoleInsideH1, khpDipoleInsideH2, khpDipoleInsideH3, khpDipoleInsideTemperature,
+ khpDipoleOutsideH1, khpDipoleOutsideH2, khpDipoleOutsideH3, khpDipoleOutsideTemperature};
AliGRPPreprocessor(AliShuttleInterface* shuttle);
virtual ~AliGRPPreprocessor();
const char* dbName,
const char* user,
const char* password,
- const char *cdbRoot
+ const char *cdbRoot,
+ TString &gdc
);
protected:
virtual UInt_t Process(TMap* valueSet);
- AliGRPObject* ProcessDaqLB();
+ Int_t ProcessDaqLB(AliGRPObject* grpobj);
UInt_t ProcessDaqFxs();
- UInt_t ProcessDcsFxs();
+ UInt_t ProcessSPDMeanVertex();
+ UInt_t ProcessLHCData(AliGRPObject* grpobj);
+ UInt_t ProcessDcsFxs(TString partition="", TString detector="");
Int_t ProcessDcsDPs(TMap* valueSet, AliGRPObject* grpobj);
- Int_t ProcessLHCDPs(TMap* valueSet, AliGRPObject* grpobj);
- Int_t ProcessL3DPs(TMap* valueSet, AliGRPObject* grpobj);
- Int_t ProcessDipoleDPs(TMap* valueSet, AliGRPObject* grpobj);
+ Int_t ProcessL3DPs(const TMap* valueSet, AliGRPObject* grpobj);
+ Int_t ProcessDipoleDPs(const TMap* valueSet, AliGRPObject* grpobj);
Int_t ProcessEnvDPs(TMap* valueSet, AliGRPObject* grpobj);
- Int_t ProcessHPDPs(TMap* valueSet, AliGRPObject* grpobj);
+ Int_t ProcessHPDPs(const TMap* valueSet, AliGRPObject* grpobj);
// Int_t ProcessDcsDPs(TMap* valueSet, TMap* grpmap);
AliDCSSensorArray* GetPressureMap(TMap *dcsAliasMap);
- AliSplineFit* GetSplineFit(TObjArray *array, const TString& stringID);
+ AliSplineFit* GetSplineFit(const TObjArray *array, const TString& stringID);
//AliSplineFit* GetSplineFit(TMap* mapDCS, const TString& stringID);
- TString ProcessChar(TObjArray *array);
- Char_t ProcessBool(TObjArray *array);
- Float_t ProcessInt(TObjArray *array);
- Float_t ProcessUInt(TObjArray *array);
- Float_t* ProcessFloatAll(TObjArray* array);
+ TString ProcessChar(const TObjArray *array);
+ Char_t ProcessBool(const TObjArray *array, Bool_t &change);
+ Float_t ProcessInt(const TObjArray *array);
+ Float_t ProcessUInt(const TObjArray *array);
+ Float_t* ProcessFloatAll(const TObjArray* array);
+ Float_t* ProcessFloatAllMagnet(const TObjArray* array, Int_t indexDP, Bool_t &isZero);
+ Bool_t GetDAQStartEndTimeOk() const {return fdaqStartEndTimeOk;}
+ void SetDAQStartEndTimeOk(Bool_t daqStartEndTimeOk) {fdaqStartEndTimeOk = daqStartEndTimeOk;}
+
+ Float_t ProcessEnergy(TObjArray* array, Double_t timeStart);
+ AliLHCClockPhase* ProcessLHCClockPhase(TObjArray *beam1phase,TObjArray *beam2phase,
+ Double_t timeEnd);
private:
- static const Int_t fgknDAQLbPar; //! number of DAQ lb parameters
+ static const Int_t fgknDAQLbPar; //! number of DAQ lb parameters for PHYSICS runs
static const Int_t fgknDCSDP; //! number of dcs dps
static const char* fgkDCSDataPoints[]; //! names of dcs dps
- static const char* fgkLHCState[]; //! names of LHC States
- static const char* fgkDCSDataPoints_HallProbes[]; //! names of dcs dps for Hall Probes
- static const Int_t fgknDCSDP_HallProbes; //! names of LHC States for Hall Probes
+ static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps for Hall Probes
+ static const Int_t fgknDCSDPHallProbes; //! number of Hall Probes
AliDCSSensorArray* fPressure; //pressure array
- AliGRPPreprocessor(const AliGRPPreprocessor&); // Not implemented
- AliGRPPreprocessor& operator=(const AliGRPPreprocessor&); // Not implemented
+ AliGRPPreprocessor(const AliGRPPreprocessor&); // Not implemented
+ AliGRPPreprocessor& operator=(const AliGRPPreprocessor&); // Not implemented
+
+ Float_t fmaxFloat; // maximum float accepted
+ Float_t fminFloat; // minimum float accepted
+ Double_t fmaxDouble; // maximum double accepted
+ Double_t fminDouble; // minimum double accepted
+ Int_t fmaxInt; // maximum int accepted
+ Int_t fminInt; // minimum int accepted
+ UInt_t fmaxUInt; // maximum uint accepted
+ UInt_t fminUInt; // minimum uint accepted
+ Bool_t fdaqStartEndTimeOk; // flag to set whether the DAQ_time_start/end fields are set
+
+ TObjArray* ffailedDPs; //TObjArray of failed DPs names
+
+ static const Int_t fgknLHCDP; //! number of lhc dps
+ static const char* fgkLHCDataPoints[]; //! names of lhc dps
+ static const Int_t fgkDCSDPHallTopShift; //! shift from the top to the Hall Probes from the list of DCS DPs names
+ static const Int_t fgkDCSDPNonWorking; //! Number of non working DCS DPs
ClassDef(AliGRPPreprocessor, 0);
};