Reco Param with Latency and Vertex shift
[u/mrichter/AliRoot.git] / T0 / AliT0RecoParam.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16
17 ///////////////////////////////////////////////////////////////////////////////
18 //                                                                           //
19 // Class with T0 reconstruction parameters                                  //
20 //    fMeanAmplitude -
21 //           for low flux time-amplitude correction equalize time to amplitude 1 MIP; 
22 //           for high flux - to 15MIP   
23 //    To have nice time spectra after reconstruction we need to know 
24 //    reference point to write t(i) - RefPoint. 
25 //    It can be apparatus RefPoint or one of PMT                       //  
26 //    fRefPoint - number of channel with RF
27 //
28 //       Alla.Maevskaya@cern.ch
29 /////////////////////////////////////////////////////////////////////////
30
31 #include "AliLog.h"
32  
33 #include "AliT0RecoParam.h"
34 #include "Riostream.h"
35
36 ClassImp(AliT0RecoParam)
37
38
39
40
41 //_____________________________________________________________________________
42 AliT0RecoParam::AliT0RecoParam():
43   AliDetectorRecoParam(),
44    fRefAmp(7),
45    fRefPoint(0),
46    fLatencyL1(0),  
47    fLatencyHPTDC(0),      
48    fVertexShift(0)   
49 {
50   //
51   // constructor
52   //
53   SetName("T0");
54   SetTitle("T0");
55 }
56
57 //_____________________________________________________________________________
58 AliT0RecoParam::~AliT0RecoParam() 
59 {
60   //
61   // destructor
62   //  
63 }
64
65 //_____________________________________________________________________________
66
67 AliT0RecoParam::AliT0RecoParam(const AliT0RecoParam &p):
68   AliDetectorRecoParam(p),       
69   fRefAmp(p.fRefAmp),
70   fRefPoint(p.fRefPoint),
71   fLatencyL1(p.fLatencyL1),  
72   fLatencyHPTDC(p.fLatencyHPTDC),      
73   fVertexShift(p.fVertexShift)   
74 {
75  
76  //copy constructor
77
78 }
79 //_____________________________________________________________________________
80
81 AliT0RecoParam& AliT0RecoParam:: operator=(const AliT0RecoParam &p)
82 {
83   //
84   // assign. operator
85   //
86
87   if (this == &p)
88     return *this;
89   
90   AliDetectorRecoParam::operator=(p);
91   fRefAmp = p.fRefAmp;
92   fRefPoint = p.fRefPoint;
93   fLatencyL1 = p.fLatencyL1;
94   fLatencyHPTDC = p.fLatencyHPTDC;
95   fVertexShift = p.fVertexShift;
96   return *this;
97
98 }
99 //_____________________________________________________________________________
100  
101 AliT0RecoParam *AliT0RecoParam::GetLowFluxParam()
102 {
103   //
104   // make default reconstruction  parameters for low  flux env.
105   //
106   AliT0RecoParam *param = new AliT0RecoParam();
107   param->fRefAmp = 1;
108   param->fRefPoint = 0;
109   param->fLatencyL1 = 7782.01;
110   param->fLatencyHPTDC = 22000;
111   param->fVertexShift = 4.6;
112   for (Int_t i=0; i<500; i++)
113     {
114      param-> fLow[i]=0.;
115      param-> fHigh[i]=10000.;
116     }
117   param->SetName("Low Flux");
118   param->SetTitle("Low Flux");
119   return param;
120 }
121
122 //_____________________________________________________________________________
123
124 AliT0RecoParam *AliT0RecoParam::GetHighFluxParam()
125 {
126   //
127   // make reco parameters for high flux env.
128   //
129
130   AliT0RecoParam *param = new AliT0RecoParam();
131   param->fRefAmp = 5;
132   param->fRefPoint = 0;
133   param->fLatencyL1 = 7782.01;
134   param->fLatencyHPTDC = 22000;
135   param->fVertexShift = 4.6;
136   for (Int_t i=0; i<500; i++)
137     {
138       param-> fLow[i]=0.;
139       param-> fHigh[i]=20000.;
140     }
141   //
142   param->SetName("High Flux");
143   param->SetTitle("High Flux");
144   return param;
145 }
146
147
148 //_____________________________________________________________________________
149
150 AliT0RecoParam *AliT0RecoParam::GetLaserTestParam()
151 {
152   //
153   // special setting for laser
154   //
155   AliT0RecoParam *param = new AliT0RecoParam();
156   param->fRefAmp = 1;
157   param->fRefPoint = 1;
158   param->fLatencyL1 = 7782.01;
159   param->fLatencyHPTDC = 22000;
160   param->fVertexShift = 0;
161   for (Int_t i=0; i<500; i++)
162     {
163      param-> fLow[i]=0.;
164      param-> fHigh[i]=12000.;
165     }
166   //
167   param->SetName("Laser Flux");
168   param->SetTitle("Laser Flux");
169   return param;
170 }
171 //_____________________________________________________________________________
172
173 void AliT0RecoParam::PrintParameters() const
174 {
175   //
176   // Printing of the used T0 reconstruction parameters
177   //
178   AliInfo(Form(" Reference amplitude for walk corerection : %f", fRefAmp));
179   AliInfo(Form(" Reference point in channel  : %i", fRefPoint));
180   AliInfo(Form(" Current latency  : %i ns", fLatencyL1));
181   AliInfo(Form(" HPTDC latency  : %i ns", fLatencyHPTDC));
182   cout<<" AliT0RecoParam::PrintParameters() "<<endl;
183   for (Int_t i=0; i<500; i++) cout<<i<<" "<<fLow[i]<<" "<<fHigh[i]<<endl; 
184 }