]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDDataDCS.h
Remove obsolete dedx root-file
[u/mrichter/AliRoot.git] / TRD / AliTRDDataDCS.h
1 #ifndef AliTRDDataDCS_H
2 #define AliTRDDAtaDCS_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 ////////////////////////////////////////////////////////////////////////////
10 //                                                                        //
11 // Extracts the DCS information                                           //
12 //                                                                        //
13 ////////////////////////////////////////////////////////////////////////////
14
15 #include <TNamed.h>
16 #include <TObjArray.h>
17 #include <TString.h>
18
19 class TGraph;
20 class AliSplineFit;
21 class TMap;
22
23
24 class AliTRDDataDCS : public TNamed
25 {
26   
27   public :
28     
29     AliTRDDataDCS ();
30   ~AliTRDDataDCS ();
31   
32   Bool_t ExtractDCS (TMap * aliDCS);
33   Bool_t PerformFit ();
34   void   ClearFits ();
35   void   ClearGraphs ();
36   
37   UInt_t        GetNAlias () const {return fNAlias;}
38   TString       GetAmandaStr (UInt_t iAlias) const;
39   UInt_t        GetNChannel (UInt_t iAlias) const; 
40   
41   TGraph *              GetGraph (UInt_t iAlias, UInt_t iChannel = 0) const;
42   AliSplineFit *        GetFit (UInt_t iAlias, UInt_t iChannel = 0) const;
43   
44   // Get TGraph
45   TGraph * GetGraphChamberByteStatus (UInt_t iSensor) const             {return GetGraph (chamberByteStatus, iSensor);}
46   TGraph * GetGraphPreTrigger () const                                  {return GetGraph (preTrigger);}
47   TGraph * GetGraphGoofyHv () const                                     {return GetGraph (goofyHv);}
48   TGraph * GetGraphGoofyPeakPos (UInt_t iSensor) const                  {return GetGraph (goofyPeakPos, iSensor);}
49   TGraph * GetGraphGoofyPeakArea (UInt_t iSensor) const                 {return GetGraph (goofyPeakArea, iSensor);}
50   TGraph * GetGraphGoofyTemp (UInt_t iSensor) const                     {return GetGraph (goofyTemp, iSensor);}
51   TGraph * GetGraphGoofyPressure () const                               {return GetGraph (goofyPressure);}
52   TGraph * GetGraphGoofyVelocity () const                               {return GetGraph (goofyVelocity);}
53   TGraph * GetGraphGoofyGain (UInt_t iSensor) const                     {return GetGraph (goofyGain, iSensor);}
54   TGraph * GetGraphGoofyCO2 ()  const                                   {return GetGraph (goofyCO2);}
55   TGraph * GetGraphGoofyN2 () const                                     {return GetGraph (goofyN2);}
56   TGraph * GetGraphGasO2 () const                                       {return GetGraph (gasO2);}
57   TGraph * GetGraphGasOverpressure () const                             {return GetGraph (gasOverpressure);}
58   TGraph * GetGraphEnvTemp (UInt_t iSensor) const                       {return GetGraph (envTemp, iSensor);}
59   TGraph * GetGraphHvAnodeImon (UInt_t iSensor) const                   {return GetGraph (hvAnodeImon, iSensor);}
60   TGraph * GetGraphHvDriftImon (UInt_t iSensor) const                   {return GetGraph (hvDriftImon, iSensor);}
61   TGraph * GetGraphHvAnodeUmon (UInt_t iSensor) const                   {return GetGraph (hvAnodeUmon, iSensor);}
62   TGraph * GetGraphHvDriftUmon (UInt_t iSensor) const                   {return GetGraph (hvDriftUmon, iSensor);}
63   TGraph * GetGraphAdcClkPhase () const                                 {return GetGraph (adcClkPhase);}
64   TGraph * GetGraphAtmPressure () const                                 {return GetGraph (atmPressure);}
65   TGraph * GetGraphLuminosity () const                                  {return GetGraph (luminosity);}
66   TGraph * GetGraphMagneticField () const                               {return GetGraph (magneticField);}
67   
68   AliSplineFit * GetFitChamberByteStatus (UInt_t iSensor) const         {return GetFit (chamberByteStatus, iSensor);}
69   AliSplineFit * GetFitPreTrigger () const                              {return GetFit (preTrigger);}
70   AliSplineFit * GetFitGoofyHv () const                                 {return GetFit (goofyHv);}
71   AliSplineFit * GetFitGoofyPeakPos (UInt_t iSensor) const              {return GetFit (goofyPeakPos, iSensor);}
72   AliSplineFit * GetFitGoofyPeakArea (UInt_t iSensor) const             {return GetFit (goofyPeakArea, iSensor);}
73   AliSplineFit * GetFitGoofyTemp (UInt_t iSensor) const                 {return GetFit (goofyTemp, iSensor);}
74   AliSplineFit * GetFitGoofyPressure () const                           {return GetFit (goofyPressure);}
75   AliSplineFit * GetFitGoofyVelocity () const                           {return GetFit (goofyVelocity);}
76   AliSplineFit * GetFitGoofyGain (UInt_t iSensor) const                 {return GetFit (goofyGain, iSensor);}
77   AliSplineFit * GetFitGoofyCO2 ()  const                               {return GetFit (goofyCO2);}
78   AliSplineFit * GetFitGoofyN2 () const                                 {return GetFit (goofyN2);}
79   AliSplineFit * GetFitGasO2 () const                                   {return GetFit (gasO2);}
80   AliSplineFit * GetFitGasOverpressure () const                         {return GetFit (gasOverpressure);}
81   AliSplineFit * GetFitEnvTemp (UInt_t iSensor) const                   {return GetFit (envTemp, iSensor);}
82   AliSplineFit * GetFitHvAnodeImon (UInt_t iSensor) const               {return GetFit (hvAnodeImon, iSensor);}
83   AliSplineFit * GetFitHvDriftImon (UInt_t iSensor) const               {return GetFit (hvDriftImon, iSensor);}
84   AliSplineFit * GetFitHvAnodeUmon (UInt_t iSensor) const               {return GetFit (hvAnodeUmon, iSensor);}
85   AliSplineFit * GetFitHvDriftUmon (UInt_t iSensor) const               {return GetFit (hvDriftUmon, iSensor);}
86   AliSplineFit * GetFitAdcClkPhase () const                             {return GetFit (adcClkPhase);}
87   AliSplineFit * GetFitAtmPressure () const                             {return GetFit (atmPressure);}
88   AliSplineFit * GetFitLuminosity () const                              {return GetFit (luminosity);}
89   AliSplineFit * GetFitMagneticField () const                           {return GetFit (magneticField);}
90   
91   void Print (Option_t* option = "") const;
92   
93   
94   public :
95     
96     const UInt_t  chamberByteStatus;
97     const UInt_t  preTrigger;
98     const UInt_t  goofyHv;
99     const UInt_t  goofyPeakPos;
100     const UInt_t  goofyPeakArea;
101     const UInt_t  goofyTemp;
102     const UInt_t  goofyPressure;
103     const UInt_t  goofyVelocity;
104     const UInt_t  goofyGain;
105     const UInt_t  goofyCO2;
106     const UInt_t  goofyN2;
107     const UInt_t  gasO2;
108     const UInt_t  gasOverpressure;
109     const UInt_t  envTemp ;
110     const UInt_t  hvAnodeImon;
111     const UInt_t  hvDriftImon;
112     const UInt_t  hvAnodeUmon;
113     const UInt_t  hvDriftUmon;
114     const UInt_t  adcClkPhase;
115     const UInt_t  atmPressure;
116     const UInt_t  luminosity;
117     const UInt_t  magneticField;
118     const UInt_t  fNAlias;
119     
120     
121     
122     protected :
123       
124       private :
125       
126       TGraph * FindAndMakeGraph (TMap * dcsMap, const char * amandaStr,
127                                  char dataType);
128     AliSplineFit * Fit (TGraph * graph,
129                         Int_t  kMinPoints, Int_t  kIter, 
130                         Double_t  kMaxDelta, Int_t  kFitReq);
131     
132     void Init ();
133     void InitFits ();
134     void InitGraphs ();
135     
136     void SetConf (UInt_t iAlias, const char * amanda, char dataType, UInt_t nChannel, 
137                   Bool_t enableGraph, Bool_t enableFit, Int_t kMinPoints, 
138                   Int_t kIter, Double_t kMaxDelta, Int_t kFitReq);
139     
140     private :
141       
142       Bool_t graphsAreIni;
143       Bool_t fitsAreIni;
144       
145       struct data {
146         TObjArray fit;                  // array of AliSplineFit
147         TObjArray graph;                // array of TGraph
148       };
149       
150       struct conf {
151         TString amanda;                 // amanda string
152         char dataType;                  // 'c' for char, 'f' for float
153         UInt_t nChannel;                // number of channel
154         Bool_t enableGraph;             // will be converted in TGraph
155         Bool_t enableFit;               // will be converted in AliSplineFit
156         Int_t  kMinPoints;              // minimum number of points per knot in fit
157         Int_t  kIter;                   // number of iterations for spline fit
158         Double_t  kMaxDelta;            // precision parameter for spline fit
159         Int_t  kFitReq;                 // fit requirement, 2 = continuous 2nd derivative
160       };
161       
162       data fDatas [22];         
163       conf fConfs [22];                 
164       
165       ClassDef(AliTRDDataDCS,1)         //  TRD calibration class
166         
167         };
168
169 #endif