]> git.uio.no Git - u/mrichter/AliRoot.git/blame - START/AliSTARTParameters.h
Updated default value (Alla)
[u/mrichter/AliRoot.git] / START / AliSTARTParameters.h
CommitLineData
5ac84465 1#ifndef ALISTARTPARAMETERS_H
2#define ALISTARTPARAMETERS_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 * reserved.
5 *
6 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7 *
8 * See cxx source for full Copyright notice
9 */
10
11//____________________________________________________________________
12//
13// Singleton class to handle various parameters of the
14// START - T0
15// Should get data fromm Conditions DB.
16//
17# include <TNamed.h>
18# include <TF1.h>
19# include <TGraph.h>
20#include <TObjArray.h>
21class AliSTARTCalibData;
22class AliSTARTAlignData;
23class AliCDBEntry;
24
25class AliSTARTParameters : public TNamed
26{
27public:
28 static AliSTARTParameters* Instance();
29
30 void Init();
31 // Set various `Fixed' parameters
7ad3cb84 32 void SetPh2Mip(Int_t r=300) { fPh2Mip = r; }
4c7da157 33 void SetmV2Mip(Int_t r=50) { fmV2Mip = r; }
5ac84465 34 void SetChannelWidth(Int_t s=25) { fChannelWidth = s;}
35 void SetmV2channel(Int_t size=320) { fmV2Channel = size; }
36 void SetQTmin(Int_t qt=13) {fQTmin = qt;}
37 void SetQTmax(Int_t qt=125) {fQTmax = qt;}
38 void SetGain(Int_t size=50) { fFixedGain = size; }
39 void SetZposition( Float_t valueC=69.7, Float_t valueA=373) {
40 fSTARTzPosition[0]=valueC, fSTARTzPosition[1]=valueA;}
41 void SetPMTeff(Int_t ipmt);
42
43 // Set various variable parameter defaults
44 void SetTimeDelayCablesCFD(Int_t ipmt,Float_t r=150)
45 { fTimeDelayCablesCFD[ipmt] = r;}
46 void SetTimeDelayCablesLED(Int_t ipmt,Float_t r=150)
47 { fTimeDelayCablesLED[ipmt] = r;}
48 void SetTimeDelayPMT(Int_t ipmt,Float_t r=5)
49 { fTimeDelayPMT[ipmt] = r;}
50 void SetTimeDelayElectronicCFD(Int_t ipmt,Float_t r=8)
51 { fTimeDelayElectronicCFD[ipmt] = r;}
52 void SetTimeDelayElectronicLED(Int_t ipmt,Float_t r=10)
53 { fTimeDelayElectronicLED[ipmt] = r;}
54 void SetVariableDelayLine(Int_t ipmt, Int_t v=0)
55 { fVariableDelayLine[ipmt] = v;}
56 void SetSlewingLED(Int_t ipmt);
57
58
59 // Get `Fixed' various parameters
60 Int_t GetPh2Mip() const { return fPh2Mip; }
4c7da157 61 Int_t GetmV2Mip() const { return fmV2Mip; }
5ac84465 62 Int_t GetChannelWidth() const { return fChannelWidth; }
63 Int_t GetmV2channel() const { return fmV2Channel; }
64 Int_t GetQTmin() const {return fQTmin;}
65 Int_t GetQTmax() const {return fQTmax;}
66 Float_t GetGain(Int_t ipmt) const;
67 Float_t GetZposition(Int_t i) const {return fSTARTzPosition[i];}
68 TGraph * GetPMTeff(Int_t ipmt) const
69 {return (TGraph*)fPMTeff.At(ipmt);}
70 Float_t GetpmtEFF(Int_t ipmt, Float_t lambda) const
71 {return((TGraph*)fPMTeff.At(ipmt))->Eval(lambda);}
72
73 Float_t GetTimeDelayCablesCFD(Int_t ipmt) const
74 {return fTimeDelayCablesCFD[ipmt]; }
75 Float_t GetTimeDelayCablesLED(Int_t ipmt) const
76 {return fTimeDelayCablesLED[ipmt]; } ;
77
78 Float_t GetTimeDelayElectronicLED(Int_t ipmt) const
79 {return fTimeDelayElectronicLED[ipmt]; } ;
80 Float_t GetTimeDelayElectronicCFD(Int_t ipmt) const
81 {return fTimeDelayElectronicCFD[ipmt]; } ;
82 Int_t GetVariableDelayLine(Int_t ipmt) const
83 {return fVariableDelayLine[ipmt];}
84
85 Float_t GetSlewingLED(Int_t ipmt, Float_t mv) const
86 {return((TGraph*)fSlewingLED.At(ipmt))->Eval(mv);}
87 TGraph * GetSlew(Int_t ipmt) const
88 {return (TGraph*)fSlewingLED.At(ipmt);}
89
90 Float_t GetTimeDelayCFD(Int_t ipmt);
91 Float_t GetTimeDelayLED(Int_t ipmt);
92
93protected:
94 AliSTARTParameters();
95 virtual ~AliSTARTParameters() {}
96 static AliSTARTParameters* fgInstance; // Static singleton instance
97
98 Bool_t fIsInit;
99 Float_t fSTARTzPosition[2] ; // z-position of the two STARTs
100 Int_t fPh2Mip; // # photoelectrons per MIP in radiator
4c7da157 101 Int_t fmV2Mip; // # mV per MIP in radiator
5ac84465 102 Int_t fChannelWidth; // channel width in ns
103 Int_t fmV2Channel; // ADC mv 2 channel # (200000ps/(25*25).
104 Int_t fQTmin; //min time for QTC
105 Int_t fQTmax; //max time fro QTC
106 Int_t fFixedGain; //
107 Float_t fTimeDelayCablesCFD[24]; //! time delay in cables
108 Float_t fTimeDelayCablesLED[24]; //! time delay in cables
109 Float_t fTimeDelayElectronicCFD[24]; //! time delay in electronic
110 Float_t fTimeDelayElectronicLED[24]; //! time delay in electronic
111 Float_t fTimeDelayPMT[24]; //! time delay in PMT
112 Int_t fVariableDelayLine[24]; //time delay in VDL for trigger equvalizing
113 TObjArray fSlewingLED; //array of slewing correction for each PMT
114 TObjArray fPMTeff; //array PMT registration efficiency
115
116 Float_t fTimeDelayLED; // sum time delay for LED channel
117 Float_t fTimeDelayCFD; // sum time delay for CFD channel
118
119 static AliSTARTAlignData * fgAlignData; // singleton for Calibration data
120 static AliSTARTCalibData * fgCalibData; // singleton for Calibration data
121
122 AliCDBEntry* fAlignentry ; //pointer to START align object
123 AliCDBEntry* fCalibentry ; // pointer to START calibration object
124
125 ClassDef(AliSTARTParameters,1)
126};
127
128#endif
129//____________________________________________________________________
130