]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliGRPPreprocessor.h
Corrected raw->sdigits method. Using default altro raw-data reader class. Avoid alloc...
[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
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