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