First implemnetation of the inteface to the GOOFIE
[u/mrichter/AliRoot.git] / TPC / AliTPCGoofieValues.h
1 /*!\class AliTPCGoofieValues\r
2    \brief TPC calibration class for Goofie values \r
3 \r
4    Header: AliTPCGoofieValues.h,v 2.0.\r
5 \r
6    Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.\r
7 \r
8    See cxx source for full Copyright notice \r
9 \r
10    TPC Calibration Class for GOOFIE values. Drift velocity, gas composition and the gain. \r
11 \r
12    The class AliTPCGoofieValues allows the access to GoofieValues. \r
13 \r
14    The only constructor is loading data from ASCI file. \r
15 \r
16    The methods make Tgraphs and TSplines of the time dependence of the values. \r
17 \r
18    One method allows save the the graphs and spline togather with tree of allvalues into file.        \r
19 \r
20 */\r
21 \r
22 \r
23 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
24  * See cxx source for full Copyright notice                               */\r
25 \r
26 \r
27 ///////////////////////////////////////////////////////////////////////////////\r
28 //                                                                           //\r
29 //  TPC calibration class for Goofie values                                  //\r
30 //                                                                           //\r
31 ///////////////////////////////////////////////////////////////////////////////\r
32 \r
33 \r
34 #include "TSystem.h"\r
35 #include "TString.h"\r
36 #include "TChain.h"\r
37 #include "TFile.h"\r
38 #include "TTimeStamp.h"\r
39 #include "TGraph.h"\r
40 #include "TTree.h"\r
41 #include "TSpline.h"\r
42 \r
43 class AliTPCGoofieValues : public TNamed{\r
44 public:\r
45   AliTPCGoofieValues(); ///< default ctor\r
46   //AliTPCGoofieValues(const char *fname); ///< ctor using log file, not implemented\r
47   AliTPCGoofieValues(const char *fname); ///< ctor using an ASCII file\r
48   virtual ~AliTPCGoofieValues();///< default dtor\r
49   \r
50   \r
51   Long64_t GetLinesInFile();///< return lines in ASCII file \r
52   Double_t GetStartTime();///< return StartTime\r
53   Double_t GetEndTime();///< return EndTime\r
54   Double_t GetTimeOfRun();///< return TimeOfRun\r
55   Double_t GetTempGrad(Double_t timeSec);///< return TempGrad\r
56   \r
57   Double_t EvalTempGrad(Double_t timeSec);///< evaluate temperature gradients for a certain time in seconds\r
58   Double_t EvalAverageTemp(Double_t timeSec);///< evaluate average temperatures for a certain time in seconds\r
59   Double_t EvalPress(Double_t timeSec);///< evaluate pressure for a certain time in seconds\r
60   Double_t EvalVdrift(Double_t timeSec);///< evaluate  drift velocities for a certain time in seconds\r
61   Double_t EvalVdriftcor(Double_t timeSec);///< evaluate drift velocities corrected for a certain time in seconds\r
62   Double_t EvalGainF(Double_t timeSec);///< evaluate near gain for a certain time in seconds\r
63   Double_t EvalGainN(Double_t timeSec);///< evaluate far gain for a certain time in seconds\r
64   Double_t EvalCO2(Double_t timeSec);///< evaluate  CO2 content for a certain time in seconds\r
65   Double_t EvalN2(Double_t timeSec);///< evaluate  N2 content for a certain time in seconds\r
66   \r
67   void FillAllGraphs();  ///< fill all the graphs after the tree\r
68   void FillAllSplines();  ///< fill all the graphs after the splines\r
69   \r
70   void FillAverageTempGraph();///<graph of average temperatures \r
71   void FillTempGradGraph();///<graph of temperature gradients\r
72   void FillPressGraph();///<graph of pressures\r
73   void FillVdriftGraph();///<graph of drift velocities\r
74   void FillVdriftcorGraph();///<graph of drift velocities corrected\r
75   void FillGainFGraph();///<graph of near gain\r
76   void FillGainNGraph();///<graph of far gain\r
77   void FillCO2Graph();///<graph of CO2 content\r
78   void FillN2Graph();///<graph of N2 content\r
79   \r
80   void FillAverageTempSpline();///< spline of average temperatures \r
81   void FillTempGradSpline();///<spline of  temperature gradients\r
82   void FillPressSpline();///<spline of pressures\r
83   void FillVdriftSpline();///<spline of drift velocities\r
84   void FillVdriftcorSpline();///<spline of drift velocities corrected\r
85   void FillGainFSpline();///<spline of near gain\r
86   void FillGainNSpline();///<spline of far gain\r
87   void FillCO2Spline();///<spline of CO2 content\r
88   void FillN2Spline();///<spline of  N2 content\r
89   TTree * GetTree(){return fGoofieValues;}\r
90   void PrintTree(); ///< test: print tree values onto screen\r
91   Bool_t    IsFolder() const {return kTRUE;}\r
92 protected:\r
93   Long64_t fLinesInFile;// lines in ASCII file\r
94   Double_t fStartTime;// StartTime\r
95   Double_t fEndTime;// EndTime\r
96   Double_t fTimeOfRun;//TimeOfRun\r
97   Double_t fTempGrad;//TempGrad\r
98   \r
99   TGraph* fAverageTempGraph;//->graph of average temperatures \r
100   TGraph* fTempGradGraph;//->graph of temperature gradients\r
101   TGraph* fPressGraph;//->graph of pressures\r
102   TGraph* fVdriftGraph;//->graph of drift velocities\r
103   TGraph* fVdriftcorGraph;//->graph of drift velocities corrected\r
104   TGraph* fGainFGraph;//->graph of near gain\r
105   TGraph* fGainNGraph;//->graph of far gain\r
106   TGraph* fCO2Graph;//->graph of CO2 content\r
107   TGraph* fN2Graph;//->graph of N2 content\r
108   \r
109   TSpline* fAverageTempSpline;// spline of average temperatures \r
110   TSpline* fTempGradSpline;//spline of  temperature gradients\r
111   TSpline* fPressSpline;//spline of pressures\r
112   TSpline* fVdriftSpline;//spline of drift velocities\r
113   TSpline* fVdriftcorSpline;//spline of drift velocities corrected\r
114   TSpline* fGainFSpline;//spline of near gain\r
115   TSpline* fGainNSpline;//spline of far gain\r
116   TSpline* fCO2Spline;//spline of CO2 content\r
117   TSpline* fN2Spline;//spline of  N2 content\r
118   \r
119 protected:\r
120   TTree *fGoofieValues;   // tree with all Goofie values in branches\r
121   \r
122   ClassDef(AliTPCGoofieValues,1)  //Basic ROOT object\r
123 };\r