fc4ef23acbd9000e0692e9260d80670a3858ea31
[u/mrichter/AliRoot.git] / STEER / AliGRPRecoParam.cxx
1 /**************************************************************************
2  * Copyright(c) 2007-2009, 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 #include "AliGRPRecoParam.h"
17
18 ///////////////////////////////////////////////////////////////////////////////
19 //                                                                           //
20 // Class with GRP reconstruction parameters                                  //
21 // Origin: andrea.dainese@lnl.infn.it                                        //
22 //                                                                           //
23 ///////////////////////////////////////////////////////////////////////////////
24
25
26
27 ClassImp(AliGRPRecoParam)
28
29 //_____________________________________________________________________________
30 AliGRPRecoParam::AliGRPRecoParam() : AliDetectorRecoParam(),
31 fMostProbablePt(0.350),
32 fVertexerTracksNCuts(10),
33 fVertexerTracksITSdcacut(0.1),
34 fVertexerTracksITSdcacutIter0(0.1),
35 fVertexerTracksITSmaxd0z0(0.5),
36 fVertexerTracksITSminCls(5),
37 fVertexerTracksITSmintrks(1),
38 fVertexerTracksITSnsigma(3.),
39 fVertexerTracksITSnindetfitter(100.),
40 fVertexerTracksITSmaxtgl(1000.), 
41 fVertexerTracksITSfidR(3.),
42 fVertexerTracksITSfidZ(30.),
43 fVertexerTracksTPCdcacut(0.1),
44 fVertexerTracksTPCdcacutIter0(1.0),
45 fVertexerTracksTPCmaxd0z0(5.),
46 fVertexerTracksTPCminCls(10),
47 fVertexerTracksTPCmintrks(1),
48 fVertexerTracksTPCnsigma(3.),
49 fVertexerTracksTPCnindetfitter(0.1),
50 fVertexerTracksTPCmaxtgl(1.5), 
51 fVertexerTracksTPCfidR(3.),
52 fVertexerTracksTPCfidZ(30.)
53 {
54   //
55   // constructor
56   //
57   SetName("GRP");
58   SetTitle("GRP");
59 }
60
61 //_____________________________________________________________________________
62 AliGRPRecoParam::~AliGRPRecoParam() 
63 {
64   //
65   // destructor
66   //  
67 }
68
69 AliGRPRecoParam::AliGRPRecoParam(const AliGRPRecoParam& par) :
70   AliDetectorRecoParam(par),
71   fMostProbablePt(par.fMostProbablePt),
72   fVertexerTracksNCuts(par.fVertexerTracksNCuts),
73   fVertexerTracksITSdcacut(par.fVertexerTracksITSdcacut),
74   fVertexerTracksITSdcacutIter0(par.fVertexerTracksITSdcacutIter0),
75   fVertexerTracksITSmaxd0z0(par.fVertexerTracksITSmaxd0z0),
76   fVertexerTracksITSminCls(par.fVertexerTracksITSminCls),
77   fVertexerTracksITSmintrks(par.fVertexerTracksITSmintrks),
78   fVertexerTracksITSnsigma(par.fVertexerTracksITSnsigma),
79   fVertexerTracksITSnindetfitter(par.fVertexerTracksITSnindetfitter),
80   fVertexerTracksITSmaxtgl(par.fVertexerTracksITSmaxtgl), 
81   fVertexerTracksITSfidR(par.fVertexerTracksITSfidR),
82   fVertexerTracksITSfidZ(par.fVertexerTracksITSfidZ),
83   fVertexerTracksTPCdcacut(par.fVertexerTracksTPCdcacut),
84   fVertexerTracksTPCdcacutIter0(par.fVertexerTracksTPCdcacutIter0),
85   fVertexerTracksTPCmaxd0z0(par.fVertexerTracksTPCmaxd0z0),
86   fVertexerTracksTPCminCls(par.fVertexerTracksTPCminCls),
87   fVertexerTracksTPCmintrks(par.fVertexerTracksTPCmintrks),
88   fVertexerTracksTPCnsigma(par.fVertexerTracksTPCnsigma),
89   fVertexerTracksTPCnindetfitter(par.fVertexerTracksTPCnindetfitter),
90   fVertexerTracksTPCmaxtgl(par.fVertexerTracksTPCmaxtgl), 
91   fVertexerTracksTPCfidR(par.fVertexerTracksTPCfidR),
92   fVertexerTracksTPCfidZ(par.fVertexerTracksTPCfidZ)
93 {
94   // copy constructor
95 }
96
97 //_____________________________________________________________________________
98 AliGRPRecoParam& AliGRPRecoParam::operator = (const AliGRPRecoParam& par)
99 {
100   // assignment operator
101
102   if(&par == this) return *this;
103
104   this->~AliGRPRecoParam();
105   new(this) AliGRPRecoParam(par);
106   return *this;
107 }
108
109 //_____________________________________________________________________________
110 AliGRPRecoParam *AliGRPRecoParam::GetHighFluxParam() 
111 {
112   //
113   // make default reconstruction  parameters for hig  flux env.
114   //
115   AliGRPRecoParam *param = new AliGRPRecoParam();
116
117   return param;
118 }
119 //_____________________________________________________________________________
120 AliGRPRecoParam *AliGRPRecoParam::GetLowFluxParam() 
121 {
122   //
123   // make default reconstruction  parameters for low  flux env.
124   //
125   AliGRPRecoParam *param = new AliGRPRecoParam();
126
127   return param;
128 }
129 //_____________________________________________________________________________
130 void AliGRPRecoParam::GetVertexerTracksCuts(Int_t mode,Double_t *cuts) const {
131   //
132   // get cuts for ITS (0) or TPC (1) mode
133   //
134   if(mode==1) {
135     cuts[0] = fVertexerTracksTPCdcacut;
136     cuts[1] = fVertexerTracksTPCdcacutIter0;
137     cuts[2] = fVertexerTracksTPCmaxd0z0;
138     cuts[3] = fVertexerTracksTPCminCls;
139     cuts[4] = fVertexerTracksTPCmintrks;
140     cuts[5] = fVertexerTracksTPCnsigma;
141     cuts[6] = fVertexerTracksTPCnindetfitter;
142     cuts[7] = fVertexerTracksTPCmaxtgl; 
143     cuts[8] = fVertexerTracksTPCfidR;
144     cuts[9] = fVertexerTracksTPCfidZ;
145   } else {
146     cuts[0] = fVertexerTracksITSdcacut;
147     cuts[1] = fVertexerTracksITSdcacutIter0;
148     cuts[2] = fVertexerTracksITSmaxd0z0;
149     cuts[3] = fVertexerTracksITSminCls;
150     cuts[4] = fVertexerTracksITSmintrks;
151     cuts[5] = fVertexerTracksITSnsigma;
152     cuts[6] = fVertexerTracksITSnindetfitter;
153     cuts[7] = fVertexerTracksITSmaxtgl; 
154     cuts[8] = fVertexerTracksITSfidR;
155     cuts[9] = fVertexerTracksITSfidZ;
156   }
157
158   return;
159 }
160 //_____________________________________________________________________________
161 void AliGRPRecoParam::SetVertexerTracksCuts(Int_t mode,Int_t ncuts,Double_t cuts[10]) {
162   //
163   // set cuts for ITS (0) or TPC (1) mode
164   //
165   if(ncuts!=fVertexerTracksNCuts) {
166     printf("AliGRPRecoParam: Number of AliVertexerTracks cuts is %d\n",fVertexerTracksNCuts);
167     return;
168   }
169
170   if(mode==1) {
171     fVertexerTracksTPCdcacut = cuts[0];
172     fVertexerTracksTPCdcacutIter0 = cuts[1];
173     fVertexerTracksTPCmaxd0z0 = cuts[2];
174     fVertexerTracksTPCminCls = cuts[3];
175     fVertexerTracksTPCmintrks = cuts[4];
176     fVertexerTracksTPCnsigma = cuts[5];
177     fVertexerTracksTPCnindetfitter = cuts[6];
178     fVertexerTracksTPCmaxtgl = cuts[7]; 
179     fVertexerTracksTPCfidR = cuts[8];
180     fVertexerTracksTPCfidZ = cuts[9];
181   } else {
182     fVertexerTracksITSdcacut = cuts[0];
183     fVertexerTracksITSdcacutIter0 = cuts[1];
184     fVertexerTracksITSmaxd0z0 = cuts[2];
185     fVertexerTracksITSminCls = cuts[3];
186     fVertexerTracksITSmintrks = cuts[4];
187     fVertexerTracksITSnsigma = cuts[5];
188     fVertexerTracksITSnindetfitter = cuts[6];
189     fVertexerTracksITSmaxtgl = cuts[7]; 
190     fVertexerTracksITSfidR = cuts[8];
191     fVertexerTracksITSfidZ = cuts[9];
192   }
193
194   return;
195 }