Add more user oriented options to costumize the tender - Jiri
[u/mrichter/AliRoot.git] / EMCAL / beamtest07 / AliEMCALCalibTestBeam.h
1 #ifndef ALIEMCALCALIBTESTBEAM_H
2 #define ALIEMCALCALIBTESTBEAM_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: AliEMCALCalibTestBeam.h $ */
8
9 ////////////////////////////////////////////////
10 //  class for EMCAL testbeam calibration                 //
11 ////////////////////////////////////////////////
12
13 #include "TGraph.h"
14 #include "TSpline.h"
15
16 class AliEMCALCalibTestBeam {
17
18  public:
19   AliEMCALCalibTestBeam(const int runNumber=186);
20   AliEMCALCalibTestBeam(const AliEMCALCalibTestBeam &calibtb);
21   AliEMCALCalibTestBeam& operator= (const AliEMCALCalibTestBeam &calibtb);
22   virtual ~AliEMCALCalibTestBeam();
23   virtual void Print() const; 
24
25   // simple getters
26   TGraph * GetTemperatureGraph() const { return fTempGraph; } // 
27   TSpline3 * GetTemperatureSpline() const { return fTempSpline; } //
28   int GetTimeStart() const { return fTimeStart; } // 
29   int GetTimeStop() const { return fTimeStop; } // 
30   double GetLengthOfRunInHours() const; // 
31   int GetNEvents() const { return fNEvents; } // 
32
33   int GetNTempVal() const { return fTempGraph->GetN(); } // 
34   double GetMinTemp() const { return fMinTemp; } // 
35   double GetMaxTemp() const { return fMaxTemp; } // 
36   int GetMinTime() const { return fMinTime; } // 
37   int GetMaxTime() const { return fMaxTime; } // 
38   double GetRangeOfTempMeasureInHours() const; // 
39   double GetRangeOfTempMeasureInDegrees() const; // 
40
41   // basic calibration info
42   double GetCorrection(int secSinceRunStart) const; // 
43   double GetTemperature(int secSinceStart) const; //
44   double GetCorrection(double temperature) const; // overloaded; maybe a bit dangerous - be careful with the type of arguments you supply..
45
46  private:
47
48   void Reset();
49   void ResetRunInfo(); 
50   void ResetTempInfo(); 
51   void Init(const int runno);
52   void GetRunTime(const int runno, 
53                   const char *filename="/afs/cern.ch/user/d/dsilverm/www/testbeam07/calib/daqLogbook.root");
54   void GetTemperatureInfo(const char* filename="/afs/cern.ch/user/d/dsilverm/www/testbeam07/calib/temperature-merged-alldays.root");
55   void GetEMCALLogbookInfo(const int runno,             
56                            const char *filename="/afs/cern.ch/user/d/dsilverm/www/testbeam07/calib/EMCAL_Logbook_SPS_and_PS.csv");
57   //
58   TGraph *fTempGraph; // graph of temperature values
59   TSpline3 *fTempSpline; // spline of  temperature values
60   //
61   int fTimeStart; // start time
62   int fTimeStop; // stop time
63   int fNEvents; // number of events
64   double fMinTemp; // minimum time
65   double fMaxTemp; // maximum time
66   int fMinTime; // minimum time
67   int fMaxTime; // maximum time
68   //
69   ClassDef(AliEMCALCalibTestBeam,1)    // EMCAL Calibration data
70 };
71
72 #endif