calibration classes and DB
[u/mrichter/AliRoot.git] / START / AliSTARTCalibData.h
1 #ifndef AliSTARTCalibData_H
2 #define AliSTARTCalibData_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////
8 //  class for START calibration                 //
9 ////////////////////////////////////////////////
10
11 #include "TNamed.h"
12 #include "TF1.h"
13 #include "AliSTARTCalibData.h"
14 #include "TMap.h"
15 #include "TGraph.h"
16 #include "TString.h"
17 #include "TObjArray.h"
18 #include "AliSTART.h"
19
20 class AliSTARTCalibData: public TNamed {
21
22  public:
23   AliSTARTCalibData();
24   AliSTARTCalibData(const char* name);
25   AliSTARTCalibData(const AliSTARTCalibData &calibda);
26   AliSTARTCalibData& operator= (const AliSTARTCalibData &calibda);
27   virtual ~AliSTARTCalibData();
28   void Reset();
29   
30   virtual void  Print(Option_t* option= "") const; 
31   Float_t  GetTimeDelayCFD(Int_t channel) const {return fTimeDelayCFD[channel];}
32   Float_t* GetTimeDelayCFD()  const  {return(float*) fTimeDelayCFD;}
33   Float_t  GetTimeDelayLED(Int_t channel) const {return fTimeDelayLED[channel];}
34   Float_t* GetTimeDelayLED()  const  {return(float*) fTimeDelayLED;}
35
36   Float_t   GetGain(Int_t channel) const {return fGain[channel];}
37   Float_t*  GetGain()  const {return (float*)fGain;}
38   void     SetGain(Float_t val, Int_t channel)  {fGain[channel]=val;}
39   void     SetGain(Float_t* Gain);
40   
41   Float_t  GetWalk(Int_t ipmt, Float_t mv )  const {return ((TF1*)fWalk.At(ipmt))->Eval(mv);}
42   void SetWalk(Int_t ipmt, const Char_t *filename="calibr/re.root") ;
43
44    TGraph *  GetSlew(Int_t ipmt) const   {return (TGraph*)fSlewingLED.At(ipmt);}
45   Float_t  GetSlewingLED(Int_t ipmt, Float_t mv)  const 
46       {return((TGraph*)fSlewingLED.At(ipmt))->Eval(mv);}
47
48   void SetSlewingLED(Int_t ipmt, const Char_t *filename) ;
49
50   void     SetTimeDelayCFD(Float_t val, Int_t channel) {fTimeDelayCFD[channel]=val;}
51   void     SetTimeDelayCFD(Float_t* TimeDelay);
52   void     SetTimeDelayLED(Float_t val, Int_t channel) {fTimeDelayLED[channel]=val;}
53   void     SetTimeDelayLED(Float_t* TimeDelay);
54
55
56  protected:
57
58   Float_t  fTimeDelayCFD[24]; // Coeff. for time delay (24 different cables & CFD )
59   Float_t  fTimeDelayLED[24]; // Coeff. for time delay (24 different cables & CFD )
60   Float_t  fGain[24]; // Coeff. for gain (24 different cables & CFD )
61   TObjArray fWalk;  //time - amp. walk
62   TObjArray fSlewingLED;  //time - amp. walk
63   //
64   ClassDef(AliSTARTCalibData,1)    // START Sensor Calibration data
65 };
66
67 #endif
68