]>
Commit | Line | Data |
---|---|---|
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 */ | |
5 | ||
6 | //------------------------------------------------------------------------- | |
7 | // Class AliGRPPreprocessor | |
8 | // Global Run Parameters (GRP) preprocessor | |
9 | // | |
10 | // Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch | |
11 | // Modified: Ernesto.Lopez.Torres@cern.ch CEADEN-CERN | |
12 | //------------------------------------------------------------------------- | |
13 | ||
14 | ||
15 | ||
16 | ////////////////////////////////////////////////////////////////////////// | |
17 | // // | |
18 | // AliGRPPreprocessor // | |
19 | // // | |
20 | // Implementation of the GRP preprocessor // | |
21 | // // | |
22 | ////////////////////////////////////////////////////////////////////////// | |
23 | ||
24 | #include "AliPreprocessor.h" | |
25 | ||
26 | class TList; | |
27 | class TString; | |
28 | class TObjArray; | |
29 | class AliDCSSensorArray; | |
30 | class AliGRPObject; | |
31 | class AliSplineFit; | |
32 | class AliLHCClockPhase; | |
33 | ||
34 | class AliGRPPreprocessor: public AliPreprocessor { | |
35 | public: | |
36 | ||
37 | enum DP {kL3Polarity = 0, kDipolePolarity, | |
38 | kL3Current, kDipoleCurrent, | |
39 | kL3bsf17H1, kL3bsf17H2, kL3bsf17H3, kL3bsf17Temperature, | |
40 | kL3bsf4H1, kL3bsf4H2, kL3bsf4H3, kL3bsf4Temperature, | |
41 | kL3bkf17H1, kL3bkf17H2, kL3bkf17H3, kL3bkf17Temperature, | |
42 | kL3bkf4H1, kL3bkf4H2, kL3bkf4H3, kL3bkf4Temperature, | |
43 | kL3bsf13H1, kL3bsf13H2, kL3bsf13H3, kL3bsf13Temperature, | |
44 | kL3bsf8H1, kL3bsf8H2, kL3bsf8H3, kL3bsf8Temperature, | |
45 | kL3bkf13H1, kL3bkf13H2, kL3bkf13H3, kL3bkf13Temperature, | |
46 | kL3bkf8H1, kL3bkf8H2, kL3bkf8H3, kL3bkf8Temperature, | |
47 | kDipoleInsideH1, kDipoleInsideH2, kDipoleInsideH3, kDipoleInsideTemperature, | |
48 | kDipoleOutsideH1, kDipoleOutsideH2, kDipoleOutsideH3, kDipoleOutsideTemperature, | |
49 | kCavernTemperature, kCavernAtmosPressure, kSurfaceAtmosPressure, | |
50 | kCavernAtmosPressure2}; | |
51 | ||
52 | enum DPHallProbes { | |
53 | khpL3bsf17H1=0, khpL3bsf17H2, khpL3bsf17H3, khpL3bsf17Temperature, | |
54 | khpL3bsf4H1, khpL3bsf4H2, khpL3bsf4H3, khpL3bsf4Temperature, | |
55 | khpL3bkf17H1, khpL3bkf17H2, khpL3bkf17H3, khpL3bkf17Temperature, | |
56 | khpL3bkf4H1, khpL3bkf4H2, khpL3bkf4H3, khpL3bkf4Temperature, | |
57 | khpL3bsf13H1, khpL3bsf13H2, khpL3bsf13H3, khpL3bsf13Temperature, | |
58 | khpL3bsf8H1, khpL3bsf8H2, khpL3bsf8H3, khpL3bsf8Temperature, | |
59 | khpL3bkf13H1, khpL3bkf13H2, khpL3bkf13H3, khpL3bkf13Temperature, | |
60 | khpL3bkf8H1, khpL3bkf8H2, khpL3bkf8H3, khpL3bkf8Temperature, | |
61 | khpDipoleInsideH1, khpDipoleInsideH2, khpDipoleInsideH3, khpDipoleInsideTemperature, | |
62 | khpDipoleOutsideH1, khpDipoleOutsideH2, khpDipoleOutsideH3, khpDipoleOutsideTemperature}; | |
63 | ||
64 | AliGRPPreprocessor(AliShuttleInterface* shuttle); | |
65 | virtual ~AliGRPPreprocessor(); | |
66 | ||
67 | static Int_t ReceivePromptRecoParameters( | |
68 | UInt_t run, | |
69 | const char* dbHost, | |
70 | Int_t dbPort, | |
71 | const char* dbName, | |
72 | const char* user, | |
73 | const char* password, | |
74 | const char *cdbRoot, | |
75 | TString &gdc | |
76 | ); | |
77 | static THashList* ProcessAliases(const char* aliasesFile); | |
78 | ||
79 | protected: | |
80 | ||
81 | virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime); | |
82 | ||
83 | virtual UInt_t Process(TMap* valueSet); | |
84 | ||
85 | Int_t ProcessDaqLB(AliGRPObject* grpobj); | |
86 | UInt_t ProcessDaqFxs(); | |
87 | UInt_t ProcessDqmFxs(); | |
88 | UInt_t ProcessSPDMeanVertex(); | |
89 | UInt_t ProcessLHCData(AliGRPObject* grpobj); | |
90 | UInt_t ProcessDcsFxs(TString partition="", TString detector=""); | |
91 | Int_t ProcessDcsDPs(TMap* valueSet, AliGRPObject* grpobj); | |
92 | Int_t ProcessL3DPs(const TMap* valueSet, AliGRPObject* grpobj); | |
93 | Int_t ProcessDipoleDPs(const TMap* valueSet, AliGRPObject* grpobj); | |
94 | Int_t ProcessEnvDPs(TMap* valueSet, AliGRPObject* grpobj); | |
95 | Int_t ProcessHPDPs(const TMap* valueSet, AliGRPObject* grpobj); | |
96 | // Int_t ProcessDcsDPs(TMap* valueSet, TMap* grpmap); | |
97 | AliDCSSensorArray* GetPressureMap(TMap *dcsAliasMap); | |
98 | AliSplineFit* GetSplineFit(const TObjArray *array, const TString& stringID); | |
99 | //AliSplineFit* GetSplineFit(TMap* mapDCS, const TString& stringID); | |
100 | TString ProcessChar(const TObjArray *array); | |
101 | Char_t ProcessBool(const TObjArray *array, Bool_t &change); | |
102 | Float_t ProcessInt(const TObjArray *array); | |
103 | Float_t ProcessUInt(const TObjArray *array); | |
104 | Float_t* ProcessFloatAll(const TObjArray* array); | |
105 | Float_t* ProcessFloatAllMagnet(const TObjArray* array, Int_t indexDP, Bool_t &isZero); | |
106 | Bool_t GetDAQStartEndTimeOk() const {return fdaqStartEndTimeOk;} | |
107 | void SetDAQStartEndTimeOk(Bool_t daqStartEndTimeOk) {fdaqStartEndTimeOk = daqStartEndTimeOk;} | |
108 | ||
109 | Float_t ProcessEnergy(TObjArray* array, Double_t timeStart); | |
110 | AliLHCClockPhase* ProcessLHCClockPhase(TObjArray *beam1phase,TObjArray *beam2phase, | |
111 | Double_t timeEnd); | |
112 | TString ParseBeamTypeString(TString beamType, Int_t iBeamType); | |
113 | Bool_t CheckFileRecords (const char* fileName) const; | |
114 | ||
115 | private: | |
116 | ||
117 | static const Int_t fgknDAQLbPar; //! number of DAQ lb parameters for PHYSICS runs | |
118 | static const Int_t fgknDCSDP; //! number of dcs dps | |
119 | static const char* fgkDCSDataPoints[]; //! names of dcs dps | |
120 | static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps for Hall Probes | |
121 | static const Int_t fgknDCSDPHallProbes; //! number of Hall Probes | |
122 | ||
123 | AliDCSSensorArray* fPressure; //pressure array | |
124 | ||
125 | AliGRPPreprocessor(const AliGRPPreprocessor&); // Not implemented | |
126 | AliGRPPreprocessor& operator=(const AliGRPPreprocessor&); // Not implemented | |
127 | ||
128 | Float_t fmaxFloat; // maximum float accepted | |
129 | Float_t fminFloat; // minimum float accepted | |
130 | Double_t fmaxDouble; // maximum double accepted | |
131 | Double_t fminDouble; // minimum double accepted | |
132 | Int_t fmaxInt; // maximum int accepted | |
133 | Int_t fminInt; // minimum int accepted | |
134 | UInt_t fmaxUInt; // maximum uint accepted | |
135 | UInt_t fminUInt; // minimum uint accepted | |
136 | Bool_t fdaqStartEndTimeOk; // flag to set whether the DAQ_time_start/end fields are set | |
137 | ||
138 | TObjArray* ffailedDPs; //TObjArray of failed DPs names | |
139 | ||
140 | static const Int_t fgknLHCDP; //! number of lhc dps | |
141 | static const char* fgkLHCDataPoints[]; //! names of lhc dps | |
142 | static const Int_t fgkDCSDPHallTopShift; //! shift from the top to the Hall Probes from the list of DCS DPs names | |
143 | static const Int_t fgkDCSDPNonWorking; //! Number of non working DCS DPs | |
144 | ||
145 | ClassDef(AliGRPPreprocessor, 0); | |
146 | }; | |
147 | ||
148 | #endif |