]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - T0/AliT0Parameters.h
Bugfix: lowercase b should be upper case B for component id: TPCClusterFinder32Bit
[u/mrichter/AliRoot.git] / T0 / AliT0Parameters.h
... / ...
CommitLineData
1#ifndef ALIT0PARAMETERS_H
2#define ALIT0PARAMETERS_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 * reserved.
5 *
6 * Alla Maevskaya INR RAS alla@inr.ru
7 *
8 * See cxx source for full Copyright notice
9 */
10
11//____________________________________________________________________
12//
13// Singleton class to handle various parameters of the
14// T0 - T0
15// Should get data fromm Conditions DB.
16//
17# include <TNamed.h>
18# include <TF1.h>
19# include <TMap.h>
20# include <TGraph.h>
21#include <TObjArray.h>
22class AliT0CalibData;
23class AliCDBEntry;
24class AliT0CalibWalk;
25class AliT0CalibTimeEq;
26
27class AliT0Parameters : public TNamed
28{
29public:
30 static AliT0Parameters* Instance();
31
32 AliT0Parameters();
33 virtual ~AliT0Parameters() {};
34
35 void Init();
36 void InitIfOnline();
37
38 // Set various `Fixed' parameters
39 void SetPh2Mip(Int_t r=300) { fPh2Mip = r; }
40 void SetmV2Mip(Int_t r=50) { fmV2Mip = r; }
41 void SetChannelWidth(Float_t s=24.4) { fChannelWidth = s;}
42 void SetmV2channel(Int_t size=320) { fmV2Channel = size; }
43 void SetQTmin(Int_t qt=13) {fQTmin = qt;}
44 void SetQTmax(Int_t qt=125) {fQTmax = qt;}
45 void SetZposition( Float_t valueC=69.7, Float_t valueA=373) {
46 fT0zPosition[0]=valueC, fT0zPosition[1]=valueA;}
47 void SetPMTeff(Int_t ipmt);
48
49 void SetTimeDelayTVD(Float_t r=150) { fTimeDelayTVD = r; };
50 Float_t GetTimeDelayTVD() const { return fTimeDelayTVD; }
51
52
53 // Get `Fixed' various parameters
54 Int_t GetPh2Mip() const { return fPh2Mip; }
55 Int_t GetmV2Mip() const { return fmV2Mip; }
56 Float_t GetChannelWidth() const { return fChannelWidth; }
57 Int_t GetmV2channel() const { return fmV2Channel; }
58 Int_t GetQTmin() const {return fQTmin;}
59 Int_t GetQTmax() const {return fQTmax;}
60 Double_t GetZposition(Int_t i) const {return fT0zPosition[i];}
61 Double_t GetZPosition(const char* symname) ;
62 Double_t GetZPositionShift(const char* symname);
63
64
65 TGraph * GetPMTeff(Int_t ipmt) const
66 {return (TGraph*)fPMTeff.At(ipmt);}
67 Float_t GetpmtEFF(Int_t ipmt, Float_t lambda) const
68 {return((TGraph*)fPMTeff.At(ipmt))->Eval(lambda);}
69
70
71 TGraph * GetAmpLEDRec(Int_t ipmt) const;
72 TGraph *GetWalk(Int_t ipmt ) const;
73 TGraph *GetQTC(Int_t ipmt) const;
74 TGraph *GetAmpLED(Int_t ipmt) const;
75
76 Float_t GetTimeDelayCFD(Int_t ipmt);
77// Float_t GetTimeV0(Int_t ipmt = 512) {return fTimeV0;}
78
79 void SetMeanT0(Float_t mean=512) { fMeanT0 = mean; };
80 Float_t GetMeanT0 () {return fMeanT0;};
81 void SetMeanVertex(Float_t mean=0) { fMeanVertex = mean; };
82 Float_t GetMeanVertex ();
83
84 TMap * GetMapLookup();
85 Int_t GetChannel(Int_t trm, Int_t tdc, Int_t chain, Int_t channel);
86 Int_t GetNumberOfTRMs();
87 void SetNumberOfTRMs(Int_t ntrms=2) {fNumberOfTRMs = ntrms;}
88
89 protected:
90 static AliT0Parameters* fgInstance; // Static singleton instance
91
92 Bool_t fIsInit; // Whether we've been initialised
93 Float_t fT0zPosition[2] ; // z-position of the two T0s
94 Int_t fPh2Mip; // # photoelectrons per MIP in radiator
95 Int_t fmV2Mip; // # mV per MIP in radiator
96 Float_t fChannelWidth; // channel width in ns
97 Int_t fmV2Channel; // ADC mv 2 channel # (200000ps/(25*25).
98 Int_t fQTmin; //min time for QTC
99 Int_t fQTmax; //max time fro QTC
100 TObjArray fAmpLEDRec; // array of amlitude vs LED-CFD (simulation & reconstruction)
101 TObjArray fPMTeff; //array PMT registration efficiency
102 TObjArray fWalk; //array time-amplitude walk
103 TObjArray fQTC; //array of TGraphs for QTC vs number of MIPs
104 TObjArray fAmpLED; //array of TGraphs for LED-CFD vs number of MIPs
105
106
107 Float_t fTimeDelayCFD; // sum time delay for CFD channel
108 // Float_t fTimeV0; // sum time delay for CFD channel
109 Float_t fTimeDelayTVD; //time delay for TVD (vertex trigger channel)
110 Float_t fMeanT0; //mean of T0distribution with vertex=0;
111 Float_t fMeanVertex; // mean of vertex distribution;
112
113 TMap fLookUp; //lookup table
114 Int_t fNumberOfTRMs; // number of TRMs in setup
115
116
117 static AliT0CalibTimeEq * fgCalibData; // singleton for Calibration data
118 static AliT0CalibData * fgLookUp; // singleton for Calibration data
119 static AliT0CalibWalk * fgSlewCorr; // singleton for Calibration data
120
121 AliCDBEntry* fCalibentry ; // pointer to T0 calibration object
122 AliCDBEntry* fLookUpentry ; // pointer to T0 lokkup table
123 AliCDBEntry* fSlewCorr ; // pointer to slewing correction
124
125 private:
126 AliT0Parameters(const AliT0Parameters&);
127 AliT0Parameters& operator=(const AliT0Parameters&);
128
129 ClassDef(AliT0Parameters,5)
130
131};
132
133#endif
134//____________________________________________________________________
135