]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliGRPPreprocessor.h
added a data member to avoid a potential mem problem encountered during pass2 reconst...
[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();
e75e6e01 85 UInt_t ProcessDcsFxs(TString partition="", TString detector="");
44e45fac 86 Int_t ProcessDcsDPs(TMap* valueSet, AliGRPObject* grpobj);
39e3007b 87 Int_t ProcessLHCDPs(const TMap* valueSet, AliGRPObject* grpobj);
88 Int_t ProcessL3DPs(const TMap* valueSet, AliGRPObject* grpobj);
89 Int_t ProcessDipoleDPs(const TMap* valueSet, AliGRPObject* grpobj);
44e45fac 90 Int_t ProcessEnvDPs(TMap* valueSet, AliGRPObject* grpobj);
39e3007b 91 Int_t ProcessHPDPs(const TMap* valueSet, AliGRPObject* grpobj);
44e45fac 92 // Int_t ProcessDcsDPs(TMap* valueSet, TMap* grpmap);
3ba92a38 93 AliDCSSensorArray* GetPressureMap(TMap *dcsAliasMap);
39e3007b 94 AliSplineFit* GetSplineFit(const TObjArray *array, const TString& stringID);
44e45fac 95 //AliSplineFit* GetSplineFit(TMap* mapDCS, const TString& stringID);
39e3007b 96 TString ProcessChar(const TObjArray *array);
fe726709 97 Char_t ProcessBool(const TObjArray *array, Bool_t &change);
39e3007b 98 Float_t ProcessInt(const TObjArray *array);
99 Float_t ProcessUInt(const TObjArray *array);
100 Float_t* ProcessFloatAll(const TObjArray* array);
fe726709 101 Float_t* ProcessFloatAllMagnet(const TObjArray* array, Int_t indexDP, Bool_t &isZero);
5fbf7677 102 Bool_t GetDAQStartEndTimeOk() const {return fdaqStartEndTimeOk;}
103 void SetDAQStartEndTimeOk(Bool_t daqStartEndTimeOk) {fdaqStartEndTimeOk = daqStartEndTimeOk;}
44e45fac 104
17984b61 105 private:
e7a6790f 106
e75e6e01 107 static const Int_t fgknDAQLbPar; //! number of DAQ lb parameters for PHYSICS runs
108 static const Int_t fgknDAQLbParReduced; //! number of DAQ lb parameters for non PHYSICS runs
e7a6790f 109 static const Int_t fgknDCSDP; //! number of dcs dps
110 static const char* fgkDCSDataPoints[]; //! names of dcs dps
111 static const char* fgkLHCState[]; //! names of LHC States
39e3007b 112 static const char* fgkDCSDataPointsHallProbes[]; //! names of dcs dps for Hall Probes
113 static const Int_t fgknDCSDPHallProbes; //! names of LHC States for Hall Probes
982f17c2 114
e7a6790f 115 AliDCSSensorArray* fPressure; //pressure array
17984b61 116
fe726709 117 AliGRPPreprocessor(const AliGRPPreprocessor&); // Not implemented
118 AliGRPPreprocessor& operator=(const AliGRPPreprocessor&); // Not implemented
119
120 Float_t fmaxFloat; // maximum float accepted
121 Float_t fminFloat; // minimum float accepted
122 Double_t fmaxDouble; // maximum double accepted
123 Double_t fminDouble; // minimum double accepted
124 Int_t fmaxInt; // maximum int accepted
125 Int_t fminInt; // minimum int accepted
126 UInt_t fmaxUInt; // maximum uint accepted
127 UInt_t fminUInt; // minimum uint accepted
5fbf7677 128 Bool_t fdaqStartEndTimeOk; // flag to set whether the DAQ_time_start/end fields are set
2972d4eb 129
c5340e82 130 TObjArray* ffailedDPs; //TObjArray of failed DPs names
131
08a446c2 132 ClassDef(AliGRPPreprocessor, 0);
3dedb44a 133};
134
135#endif