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