]>
Commit | Line | Data |
---|---|---|
3dedb44a | 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 | |
e7a6790f | 11 | // Modified: Ernesto.Lopez.Torres@cern.ch CEADEN-CERN |
3dedb44a | 12 | //------------------------------------------------------------------------- |
13 | ||
14 | ||
15 | ||
16 | ////////////////////////////////////////////////////////////////////////// | |
17 | // // | |
18 | // AliGRPPreprocessor // | |
19 | // // | |
20 | // Implementation of the GRP preprocessor // | |
21 | // // | |
22 | ////////////////////////////////////////////////////////////////////////// | |
23 | ||
24 | #include "AliPreprocessor.h" | |
25 | ||
17984b61 | 26 | class TList; |
27 | class TString; | |
c5340e82 | 28 | class TObjArray; |
17984b61 | 29 | class AliDCSSensorArray; |
44e45fac | 30 | class AliGRPObject; |
31 | class AliSplineFit; | |
8c1f1006 | 32 | class AliLHCClockPhase; |
17984b61 | 33 | |
3dedb44a | 34 | class AliGRPPreprocessor: public AliPreprocessor { |
35 | public: | |
44e45fac | 36 | |
0254e751 | 37 | enum DP {kL3Polarity = 0, kDipolePolarity, |
44e45fac | 38 | kL3Current, kDipoleCurrent, |
39e3007b | 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, | |
ce996d13 | 49 | kCavernTemperature, kCavernAtmosPressure, kSurfaceAtmosPressure, |
50 | kCavernAtmosPressure2}; | |
44e45fac | 51 | |
39e3007b | 52 | enum DPHallProbes { |
4bb7c769 | 53 | khpL3bsf17H1=0, khpL3bsf17H2, khpL3bsf17H3, khpL3bsf17Temperature, |
39e3007b | 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}; | |
44e45fac | 63 | |
e7a6790f | 64 | AliGRPPreprocessor(AliShuttleInterface* shuttle); |
65 | virtual ~AliGRPPreprocessor(); | |
3dedb44a | 66 | |
e7a6790f | 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, | |
03e5ee4f | 74 | const char *cdbRoot, |
75 | TString &gdc | |
e7a6790f | 76 | ); |
1e27bb6b | 77 | |
3dedb44a | 78 | protected: |
79 | ||
e7a6790f | 80 | virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime); |
3dedb44a | 81 | |
e7a6790f | 82 | virtual UInt_t Process(TMap* valueSet); |
17984b61 | 83 | |
e75e6e01 | 84 | Int_t ProcessDaqLB(AliGRPObject* grpobj); |
e7a6790f | 85 | UInt_t ProcessDaqFxs(); |
6a150f83 | 86 | UInt_t ProcessSPDMeanVertex(); |
0254e751 | 87 | UInt_t ProcessLHCData(AliGRPObject* grpobj); |
e75e6e01 | 88 | UInt_t ProcessDcsFxs(TString partition="", TString detector=""); |
44e45fac | 89 | Int_t ProcessDcsDPs(TMap* valueSet, AliGRPObject* grpobj); |
39e3007b | 90 | Int_t ProcessL3DPs(const TMap* valueSet, AliGRPObject* grpobj); |
91 | Int_t ProcessDipoleDPs(const TMap* valueSet, AliGRPObject* grpobj); | |
44e45fac | 92 | Int_t ProcessEnvDPs(TMap* valueSet, AliGRPObject* grpobj); |
39e3007b | 93 | Int_t ProcessHPDPs(const TMap* valueSet, AliGRPObject* grpobj); |
44e45fac | 94 | // Int_t ProcessDcsDPs(TMap* valueSet, TMap* grpmap); |
3ba92a38 | 95 | AliDCSSensorArray* GetPressureMap(TMap *dcsAliasMap); |
39e3007b | 96 | AliSplineFit* GetSplineFit(const TObjArray *array, const TString& stringID); |
44e45fac | 97 | //AliSplineFit* GetSplineFit(TMap* mapDCS, const TString& stringID); |
39e3007b | 98 | TString ProcessChar(const TObjArray *array); |
fe726709 | 99 | Char_t ProcessBool(const TObjArray *array, Bool_t &change); |
39e3007b | 100 | Float_t ProcessInt(const TObjArray *array); |
101 | Float_t ProcessUInt(const TObjArray *array); | |
102 | Float_t* ProcessFloatAll(const TObjArray* array); | |
fe726709 | 103 | Float_t* ProcessFloatAllMagnet(const TObjArray* array, Int_t indexDP, Bool_t &isZero); |
5fbf7677 | 104 | Bool_t GetDAQStartEndTimeOk() const {return fdaqStartEndTimeOk;} |
105 | void SetDAQStartEndTimeOk(Bool_t daqStartEndTimeOk) {fdaqStartEndTimeOk = daqStartEndTimeOk;} | |
44e45fac | 106 | |
0254e751 | 107 | Double_t CalculateMean(TObjArray* lhcObjArray); |
f66d3f72 | 108 | Float_t ProcessEnergy(TObjArray* array, Double_t timeStart); |
8c1f1006 | 109 | AliLHCClockPhase* ProcessLHCClockPhase(TObjArray *beam1phase,TObjArray *beam2phase, |
17fd2848 | 110 | Double_t timeEnd); |
0254e751 | 111 | |
17984b61 | 112 | private: |
e7a6790f | 113 | |
e75e6e01 | 114 | static const Int_t fgknDAQLbPar; //! number of DAQ lb parameters for PHYSICS runs |
e7a6790f | 115 | static const Int_t fgknDCSDP; //! number of dcs dps |
116 | static const char* fgkDCSDataPoints[]; //! names of dcs dps | |
39e3007b | 117 | static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps for Hall Probes |
4bb7c769 | 118 | static const Int_t fgknDCSDPHallProbes; //! number of Hall Probes |
982f17c2 | 119 | |
e7a6790f | 120 | AliDCSSensorArray* fPressure; //pressure array |
17984b61 | 121 | |
fe726709 | 122 | AliGRPPreprocessor(const AliGRPPreprocessor&); // Not implemented |
123 | AliGRPPreprocessor& operator=(const AliGRPPreprocessor&); // Not implemented | |
124 | ||
125 | Float_t fmaxFloat; // maximum float accepted | |
126 | Float_t fminFloat; // minimum float accepted | |
127 | Double_t fmaxDouble; // maximum double accepted | |
128 | Double_t fminDouble; // minimum double accepted | |
129 | Int_t fmaxInt; // maximum int accepted | |
130 | Int_t fminInt; // minimum int accepted | |
131 | UInt_t fmaxUInt; // maximum uint accepted | |
132 | UInt_t fminUInt; // minimum uint accepted | |
5fbf7677 | 133 | Bool_t fdaqStartEndTimeOk; // flag to set whether the DAQ_time_start/end fields are set |
2972d4eb | 134 | |
c5340e82 | 135 | TObjArray* ffailedDPs; //TObjArray of failed DPs names |
136 | ||
0254e751 | 137 | static const Int_t fgknLHCDP; //! number of lhc dps |
138 | static const char* fgkLHCDataPoints[]; //! names of lhc dps | |
4bb7c769 | 139 | static const Int_t fgkDCSDPHallTopShift; //! shift from the top to the Hall Probes from the list of DCS DPs names |
9fae6417 | 140 | static const Int_t fgkDCSDPNonWorking; //! Number of non working DCS DPs |
0254e751 | 141 | |
08a446c2 | 142 | ClassDef(AliGRPPreprocessor, 0); |
3dedb44a | 143 | }; |
144 | ||
145 | #endif |