1 #ifndef ALIT0PARAMETERS_H
2 #define ALIT0PARAMETERS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
6 * Alla Maevskaya INR RAS alla@inr.ru
8 * See cxx source for full Copyright notice
11 //____________________________________________________________________
13 // Singleton class to handle various parameters of the
15 // Should get data fromm Conditions DB.
21 #include <TObjArray.h>
25 class AliT0Parameters : public TNamed
28 static AliT0Parameters* Instance();
31 virtual ~AliT0Parameters() {};
36 // Set various `Fixed' parameters
37 void SetPh2Mip(Int_t r=300) { fPh2Mip = r; }
38 void SetmV2Mip(Int_t r=50) { fmV2Mip = r; }
39 void SetChannelWidth(Float_t s=24.4) { fChannelWidth = s;}
40 void SetmV2channel(Int_t size=320) { fmV2Channel = size; }
41 void SetQTmin(Int_t qt=13) {fQTmin = qt;}
42 void SetQTmax(Int_t qt=125) {fQTmax = qt;}
43 void SetZposition( Float_t valueC=69.7, Float_t valueA=373) {
44 fT0zPosition[0]=valueC, fT0zPosition[1]=valueA;}
45 void SetPMTeff(Int_t ipmt);
47 void SetTimeDelayTVD(Float_t r=150) { fTimeDelayTVD = r; };
48 Float_t GetTimeDelayTVD() { return fTimeDelayTVD; }
51 // Get `Fixed' various parameters
52 Int_t GetPh2Mip() const { return fPh2Mip; }
53 Int_t GetmV2Mip() const { return fmV2Mip; }
54 Float_t GetChannelWidth() const { return fChannelWidth; }
55 Int_t GetmV2channel() const { return fmV2Channel; }
56 Int_t GetQTmin() const {return fQTmin;}
57 Int_t GetQTmax() const {return fQTmax;}
58 Double_t GetZposition(Int_t i) const {return fT0zPosition[i];}
59 Double_t GetZPosition(const char* symname) ;
60 Double_t GetZPositionShift(const char* symname);
63 TGraph * GetPMTeff(Int_t ipmt) const
64 {return (TGraph*)fPMTeff.At(ipmt);}
65 Float_t GetpmtEFF(Int_t ipmt, Float_t lambda) const
66 {return((TGraph*)fPMTeff.At(ipmt))->Eval(lambda);}
69 TGraph * GetAmpLEDRec(Int_t ipmt) const;
71 TGraph *GetWalk(Int_t ipmt ) const;
72 Float_t GetWalkVal(Int_t ipmt, Float_t mv ) const ;
74 Float_t GetTimeDelayCFD(Int_t ipmt);
75 Float_t GetTimeDelayDA(Int_t ipmt);
77 // void SetMeanT0(Int_t mean=500) { fMeanT0 = mean; };
78 Int_t GetMeanT0 (); //{return fMeanT0;};
80 TMap * GetMapLookup();
81 Int_t GetChannel(Int_t trm, Int_t tdc, Int_t chain, Int_t channel);
82 Int_t GetNumberOfTRMs();
83 void SetNumberOfTRMs(Int_t ntrms=2) {fNumberOfTRMs = ntrms;}
86 static AliT0Parameters* fgInstance; // Static singleton instance
88 Bool_t fIsInit; // Whether we've been initialised
89 Float_t fT0zPosition[2] ; // z-position of the two T0s
90 Int_t fPh2Mip; // # photoelectrons per MIP in radiator
91 Int_t fmV2Mip; // # mV per MIP in radiator
92 Float_t fChannelWidth; // channel width in ns
93 Int_t fmV2Channel; // ADC mv 2 channel # (200000ps/(25*25).
94 Int_t fQTmin; //min time for QTC
95 Int_t fQTmax; //max time fro QTC
96 TObjArray fAmpLEDRec; // array of amlitude vs LED-CFD (simulation & reconstruction)
97 TObjArray fPMTeff; //array PMT registration efficiency
98 TObjArray fWalk; //array time-amplitude walk
100 Float_t fTimeDelayDA; // sum time delay for LED channel
101 Float_t fTimeDelayCFD; // sum time delay for CFD channel
102 Float_t fTimeDelayTVD; //time delay for TVD (vertex trigger channel)
103 Int_t fMeanT0; //mean of T0distribution with vertex=0;
105 TMap fLookUp; //lookup table
106 Int_t fNumberOfTRMs; // number of TRMs in setup
109 static AliT0CalibData * fgCalibData; // singleton for Calibration data
110 static AliT0CalibData * fgLookUp; // singleton for Calibration data
111 static AliT0CalibData * fgSlewCorr; // singleton for Calibration data
113 AliCDBEntry* fCalibentry ; // pointer to T0 calibration object
114 AliCDBEntry* fLookUpentry ; // pointer to T0 lokkup table
115 AliCDBEntry* fSlewCorr ; // pointer to slewing correction
118 AliT0Parameters(const AliT0Parameters&);
119 AliT0Parameters& operator=(const AliT0Parameters&);
121 ClassDef(AliT0Parameters,4)
126 //____________________________________________________________________