]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - STEER/STEER/AliGRPPreprocessor.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / STEER / STEER / AliGRPPreprocessor.h
... / ...
CommitLineData
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
26class TList;
27class TString;
28class TObjArray;
29class AliDCSSensorArray;
30class AliGRPObject;
31class AliSplineFit;
32class AliLHCClockPhase;
33
34class 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