1 #ifndef ALIGRPPREPROCESSOR_H
2 #define ALIGRPPREPROCESSOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 //-------------------------------------------------------------------------
7 // Class AliGRPPreprocessor
8 // Global Run Parameters (GRP) preprocessor
10 // Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
11 // Modified: Ernesto.Lopez.Torres@cern.ch CEADEN-CERN
12 //-------------------------------------------------------------------------
16 //////////////////////////////////////////////////////////////////////////
18 // AliGRPPreprocessor //
20 // Implementation of the GRP preprocessor //
22 //////////////////////////////////////////////////////////////////////////
24 #include "AliPreprocessor.h"
29 class AliDCSSensorArray;
33 class AliGRPPreprocessor: public AliPreprocessor {
36 enum DP {kLHCState = 0, kL3Polarity, kDipolePolarity, kLHCLuminosity, kBeamIntensity,
37 kL3Current, kDipoleCurrent,
38 kL3bsf17H1, kL3bsf17H2, kL3bsf17H3, kL3bsf17Temperature,
39 kL3bsf4H1, kL3bsf4H2, kL3bsf4H3, kL3bsf4Temperature,
40 kL3bkf17H1, kL3bkf17H2, kL3bkf17H3, kL3bkf17Temperature,
41 kL3bkf4H1, kL3bkf4H2, kL3bkf4H3, kL3bkf4Temperature,
42 kL3bsf13H1, kL3bsf13H2, kL3bsf13H3, kL3bsf13Temperature,
43 kL3bsf8H1, kL3bsf8H2, kL3bsf8H3, kL3bsf8Temperature,
44 kL3bkf13H1, kL3bkf13H2, kL3bkf13H3, kL3bkf13Temperature,
45 kL3bkf8H1, kL3bkf8H2, kL3bkf8H3, kL3bkf8Temperature,
46 kDipoleInsideH1, kDipoleInsideH2, kDipoleInsideH3, kDipoleInsideTemperature,
47 kDipoleOutsideH1, kDipoleOutsideH2, kDipoleOutsideH3, kDipoleOutsideTemperature,
48 kCavernTemperature, kCavernAtmosPressure, kSurfaceAtmosPressure,
49 kCavernAtmosPressure2};
52 khpL3bsf17H1= 0 , khpL3bsf17H2, khpL3bsf17H3, khpL3bsf17Temperature,
53 khpL3bsf4H1, khpL3bsf4H2, khpL3bsf4H3, khpL3bsf4Temperature,
54 khpL3bkf17H1, khpL3bkf17H2, khpL3bkf17H3, khpL3bkf17Temperature,
55 khpL3bkf4H1, khpL3bkf4H2, khpL3bkf4H3, khpL3bkf4Temperature,
56 khpL3bsf13H1, khpL3bsf13H2, khpL3bsf13H3, khpL3bsf13Temperature,
57 khpL3bsf8H1, khpL3bsf8H2, khpL3bsf8H3, khpL3bsf8Temperature,
58 khpL3bkf13H1, khpL3bkf13H2, khpL3bkf13H3, khpL3bkf13Temperature,
59 khpL3bkf8H1, khpL3bkf8H2, khpL3bkf8H3, khpL3bkf8Temperature,
60 khpDipoleInsideH1, khpDipoleInsideH2, khpDipoleInsideH3, khpDipoleInsideTemperature,
61 khpDipoleOutsideH1, khpDipoleOutsideH2, khpDipoleOutsideH3, khpDipoleOutsideTemperature};
63 AliGRPPreprocessor(AliShuttleInterface* shuttle);
64 virtual ~AliGRPPreprocessor();
66 static Int_t ReceivePromptRecoParameters(
79 virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);
81 virtual UInt_t Process(TMap* valueSet);
83 Int_t ProcessDaqLB(AliGRPObject* grpobj);
84 UInt_t ProcessDaqFxs();
85 UInt_t ProcessDcsFxs(TString partition="", TString detector="");
86 Int_t ProcessDcsDPs(TMap* valueSet, AliGRPObject* grpobj);
87 Int_t ProcessLHCDPs(const TMap* valueSet, AliGRPObject* grpobj);
88 Int_t ProcessL3DPs(const TMap* valueSet, AliGRPObject* grpobj);
89 Int_t ProcessDipoleDPs(const TMap* valueSet, AliGRPObject* grpobj);
90 Int_t ProcessEnvDPs(TMap* valueSet, AliGRPObject* grpobj);
91 Int_t ProcessHPDPs(const TMap* valueSet, AliGRPObject* grpobj);
92 // Int_t ProcessDcsDPs(TMap* valueSet, TMap* grpmap);
93 AliDCSSensorArray* GetPressureMap(TMap *dcsAliasMap);
94 AliSplineFit* GetSplineFit(const TObjArray *array, const TString& stringID);
95 //AliSplineFit* GetSplineFit(TMap* mapDCS, const TString& stringID);
96 TString ProcessChar(const TObjArray *array);
97 Char_t ProcessBool(const TObjArray *array, Bool_t &change);
98 Float_t ProcessInt(const TObjArray *array);
99 Float_t ProcessUInt(const TObjArray *array);
100 Float_t* ProcessFloatAll(const TObjArray* array);
101 Float_t* ProcessFloatAllMagnet(const TObjArray* array, Int_t indexDP, Bool_t &isZero);
102 Bool_t GetDAQStartEndTimeOk() const {return fdaqStartEndTimeOk;}
103 void SetDAQStartEndTimeOk(Bool_t daqStartEndTimeOk) {fdaqStartEndTimeOk = daqStartEndTimeOk;}
107 static const Int_t fgknDAQLbPar; //! number of DAQ lb parameters for PHYSICS runs
108 static const Int_t fgknDAQLbParReduced; //! number of DAQ lb parameters for non PHYSICS runs
109 static const Int_t fgknDCSDP; //! number of dcs dps
110 static const char* fgkDCSDataPoints[]; //! names of dcs dps
111 static const char* fgkLHCState[]; //! names of LHC States
112 static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps for Hall Probes
113 static const Int_t fgknDCSDPHallProbes; //! names of LHC States for Hall Probes
115 AliDCSSensorArray* fPressure; //pressure array
117 AliGRPPreprocessor(const AliGRPPreprocessor&); // Not implemented
118 AliGRPPreprocessor& operator=(const AliGRPPreprocessor&); // Not implemented
120 Float_t fmaxFloat; // maximum float accepted
121 Float_t fminFloat; // minimum float accepted
122 Double_t fmaxDouble; // maximum double accepted
123 Double_t fminDouble; // minimum double accepted
124 Int_t fmaxInt; // maximum int accepted
125 Int_t fminInt; // minimum int accepted
126 UInt_t fmaxUInt; // maximum uint accepted
127 UInt_t fminUInt; // minimum uint accepted
128 Bool_t fdaqStartEndTimeOk; // flag to set whether the DAQ_time_start/end fields are set
130 TObjArray* ffailedDPs; //TObjArray of failed DPs names
132 ClassDef(AliGRPPreprocessor, 0);