- Implementing functions for the GRP preprocessor to retrieve DA output files from...
[u/mrichter/AliRoot.git] / STEER / AliGRPPreprocessor.h
CommitLineData
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 26class TList;
27class TString;
c5340e82 28class TObjArray;
17984b61 29class AliDCSSensorArray;
44e45fac 30class AliGRPObject;
31class AliSplineFit;
17984b61 32
3dedb44a 33class AliGRPPreprocessor: public AliPreprocessor {
34 public:
44e45fac 35
36 enum DP {kLHCState = 0, kL3Polarity, kDipolePolarity, kLHCLuminosity, kBeamIntensity,
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 {
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};
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();
e75e6e01 86 UInt_t ProcessDcsFxs(TString partition="", TString detector="");
44e45fac 87 Int_t ProcessDcsDPs(TMap* valueSet, AliGRPObject* grpobj);
39e3007b 88 Int_t ProcessLHCDPs(const TMap* valueSet, AliGRPObject* grpobj);
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
17984b61 106 private:
e7a6790f 107
e75e6e01 108 static const Int_t fgknDAQLbPar; //! number of DAQ lb parameters for PHYSICS runs
109 static const Int_t fgknDAQLbParReduced; //! number of DAQ lb parameters for non PHYSICS runs
e7a6790f 110 static const Int_t fgknDCSDP; //! number of dcs dps
111 static const char* fgkDCSDataPoints[]; //! names of dcs dps
112 static const char* fgkLHCState[]; //! names of LHC States
39e3007b 113 static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps for Hall Probes
114 static const Int_t fgknDCSDPHallProbes; //! names of LHC States for Hall Probes
982f17c2 115
e7a6790f 116 AliDCSSensorArray* fPressure; //pressure array
17984b61 117
fe726709 118 AliGRPPreprocessor(const AliGRPPreprocessor&); // Not implemented
119 AliGRPPreprocessor& operator=(const AliGRPPreprocessor&); // Not implemented
120
121 Float_t fmaxFloat; // maximum float accepted
122 Float_t fminFloat; // minimum float accepted
123 Double_t fmaxDouble; // maximum double accepted
124 Double_t fminDouble; // minimum double accepted
125 Int_t fmaxInt; // maximum int accepted
126 Int_t fminInt; // minimum int accepted
127 UInt_t fmaxUInt; // maximum uint accepted
128 UInt_t fminUInt; // minimum uint accepted
5fbf7677 129 Bool_t fdaqStartEndTimeOk; // flag to set whether the DAQ_time_start/end fields are set
2972d4eb 130
c5340e82 131 TObjArray* ffailedDPs; //TObjArray of failed DPs names
132
08a446c2 133 ClassDef(AliGRPPreprocessor, 0);
3dedb44a 134};
135
136#endif