AliRoot Core  ee782a0 (ee782a0)
AliGRPRecoParam.h
Go to the documentation of this file.
1 #ifndef ALIGRPRECOPARAM_H
2 #define ALIGRPRECOPARAM_H
3 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 
8 // //
9 // Class with global reconstruction parameters //
10 // (initially, parameters for AliVertexerTracks) //
11 // Origin: andrea.dainese@lnl.infn.it //
12 // //
14 
15 
16 #include "AliDetectorRecoParam.h"
17 #include "TObjArray.h"
18 class AliV0HypSel;
19 
21 {
22  public:
24  virtual ~AliGRPRecoParam();
25 
26  static AliGRPRecoParam *GetLowFluxParam();// make reco parameters for low flux env.
27  static AliGRPRecoParam *GetHighFluxParam();// make reco parameters for high flux env.
28  static AliGRPRecoParam *GetCosmicTestParam();// make reco parameters for cosmics env.
29 
30  void SetMostProbablePt(Double_t pt=0.350) { fMostProbablePt=pt; return; }
31  Double_t GetMostProbablePt() const { return fMostProbablePt; }
32 
33  void SetVertexerTracksConstraintITS(Bool_t constr=kTRUE) { fVertexerTracksConstraintITS=constr; return; }
34  void SetVertexerTracksConstraintTPC(Bool_t constr=kTRUE) { fVertexerTracksConstraintTPC=constr; return; }
35  void SetVertexerTracksCuts(Int_t mode,Int_t ncuts,Double_t* cuts);
36  void SetVertexerTracksCutsITS(Int_t ncuts,Double_t* cuts)
37  { SetVertexerTracksCuts(0,ncuts,cuts); return; }
38  void SetVertexerTracksCutsTPC(Int_t ncuts,Double_t* cuts)
39  { SetVertexerTracksCuts(1,ncuts,cuts); return; }
40  void SetVertexerV0Cuts(Int_t ncuts,Double_t cuts[7]);
41  void SetVertexerCascadeCuts(Int_t ncuts,Double_t cuts[8]);
42  void SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut);
43  void SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut);
46  Int_t GetVertexerTracksNCuts() const { return fVertexerTracksNCuts; }
47  Int_t GetVertexerV0NCuts() const { return fVertexerV0NCuts; }
48  Double_t GetVertexerV0EtaMax() const { return fVertexerV0EtaMax; }
49  void SetVertexerV0EtaMax(double eta) { fVertexerV0EtaMax = eta; }
53  void GetVertexerTracksCuts(Int_t mode,Double_t *cuts,Int_t n) const;
54  void GetVertexerTracksCutsITS(Double_t *cuts,Int_t n) const
55  { GetVertexerTracksCuts(0,cuts,n); return; }
56  void GetVertexerTracksCutsTPC(Double_t *cuts,Int_t n) const
57  { GetVertexerTracksCuts(1,cuts,n); return; }
58  void GetVertexerV0Cuts(Double_t *cuts) const;
59  void GetVertexerCascadeCuts(Double_t *cuts) const;
60 
61  ULong_t GetFlagsNotToClean() const {return fFlagsNotToClean;}
62  void SetFlagsNotToClean(ULong_t v) {fFlagsNotToClean = v;}
63 
64  Double_t GetCleanDCAZCut() const {return fCleanDCAZCut;}
65  void SetCleanDCAZCut(double v) {fCleanDCAZCut = v;}
66 
67  const TObjArray* GetV0HypSelArray() const {return &fV0HypSelArray;}
68  void AddV0HypSel(const AliV0HypSel& sel);
69 
72 
73  protected:
74  //
75 
76  Double_t fMostProbablePt; // to be used for B=0 tracking
77  Bool_t fVertexerTracksConstraintITS; // diamond constr for AliVertexerTracks
78  Bool_t fVertexerTracksConstraintTPC; // diamond constr for AliVertexerTracks
79  Int_t fVertexerTracksNCuts; // number of cuts for AliVertexerTracks
80 
81  // cuts for AliVertexerTracks: ITS mode
82  Double_t fVertexerTracksITSdcacut; // general dca
83  Double_t fVertexerTracksITSdcacutIter0; // dca in iteration 0
84  Double_t fVertexerTracksITSmaxd0z0; // max d0z0
85  Double_t fVertexerTracksITSminCls; // min clusters
86  Double_t fVertexerTracksITSmintrks; // min tracks
87  Double_t fVertexerTracksITSnsigma; // n sigma for d0 cut
88  Double_t fVertexerTracksITSnindetfitter; // min det to try inversion
89  Double_t fVertexerTracksITSmaxtgl; // max tgl
90  Double_t fVertexerTracksITSfidR; // fiducial radius
91  Double_t fVertexerTracksITSfidZ; // fiducial z
92  Double_t fVertexerTracksITSalgo; // finder algo
93  Double_t fVertexerTracksITSalgoIter0; // finder algo iteration 0
94  //
95  Double_t fVertexerTracksITSMVTukey2; // Tukey constant for multivertexer
96  Double_t fVertexerTracksITSMVSig2Ini; // initial sig2 for multivertexer
97  Double_t fVertexerTracksITSMVMaxSigma2; // max sig2 to accept for multivertexer
98  Double_t fVertexerTracksITSMVMinSig2Red; // min sig2 to to consider multivertexer stuck (then push)
99  Double_t fVertexerTracksITSMVMinDst; // min distance between 2 iterations to stop multi-vertex search
100  Double_t fVertexerTracksITSMVScanStep; // z-scan step for multivertexer
101  Double_t fVertexerTracksITSMVMaxWghNtr; // min wdist*ncontrib between to vertices to eliminate
102  Double_t fVertexerTracksITSMVFinalWBinary; // for the final fit used binary weights
103  Double_t fVertexerTracksITSMVBCSpacing; // assumer BC spacing
104  //
105  Double_t fVertexerTracksITSclusterize; // pre-clusterization of tracks
106  Double_t fVertexerTracksITSclusterdz; // cut in absolute dz
107  Double_t fVertexerTracksITSclusternsigmaz; // cut in standardized dz
108 
109  // cuts for AliVertexerTracks: TPC-only mode
110  Double_t fVertexerTracksTPCdcacut; // general dca
111  Double_t fVertexerTracksTPCdcacutIter0; // dca in iteration 0
112  Double_t fVertexerTracksTPCmaxd0z0; // max d0z0
113  Double_t fVertexerTracksTPCminCls; // min clusters
114  Double_t fVertexerTracksTPCmintrks; // min tracks
115  Double_t fVertexerTracksTPCnsigma; // n sigma for d0 cut
116  Double_t fVertexerTracksTPCnindetfitter; // min det to try inversion
117  Double_t fVertexerTracksTPCmaxtgl; // max tgl
118  Double_t fVertexerTracksTPCfidR; // fiducial radius
119  Double_t fVertexerTracksTPCfidZ; // fiducial z
120  Double_t fVertexerTracksTPCalgo; // finder algo
121  Double_t fVertexerTracksTPCalgoIter0; // finder algo iteration 0
122  //
123  Double_t fVertexerTracksTPCMVTukey2; // Tukey constant for multivertexer
124  Double_t fVertexerTracksTPCMVSig2Ini; // initial sig2 for multivertexer
125  Double_t fVertexerTracksTPCMVMaxSigma2; // max sig2 to accept for multivertexer
126  Double_t fVertexerTracksTPCMVMinSig2Red; // min sig2 to to consider multivertexer stuck (then push)
127  Double_t fVertexerTracksTPCMVMinDst; // min distance between 2 iterations to stop multi-vertex search
128  Double_t fVertexerTracksTPCMVScanStep; // z-scan step for multivertexer
129  Double_t fVertexerTracksTPCMVMaxWghNtr; // min wdist*ncontrib between to vertices to eliminate
130  Double_t fVertexerTracksTPCMVFinalWBinary; // for the final fit used binary weights
131  Double_t fVertexerTracksTPCMVBCSpacing; // assumer BC spacing
132  //
133  Double_t fVertexerTracksTPCclusterize; // pre-clusterization of tracks
134  Double_t fVertexerTracksTPCclusterdz; // cut in absolute dz
135  Double_t fVertexerTracksTPCclusternsigmaz; // cut in standardized dz
136  //
137  Int_t fVertexerV0NCuts; // number of cuts for AliV0vertexer
138 
139  // cuts for AliV0vertexer:
140  Double_t fVertexerV0Chi2max; //max chi2
141  Double_t fVertexerV0DNmin; //min imp parameter for the 1st daughter
142  Double_t fVertexerV0DPmin; //min imp parameter for the 2nd daughter
143  Double_t fVertexerV0DCAmax; //max DCA between the daughter tracks
144  Double_t fVertexerV0CPAmin; //min cosine of V0's pointing angle
145  Double_t fVertexerV0Rmin; //min radius of the fiducial volume
146  Double_t fVertexerV0Rmax; //max radius of the fiducial volume
147  Double_t fVertexerV0EtaMax; //max eta
148  Bool_t fCleanOfflineV0Prongs; // compress redundant prongs by filling 0s
149  Int_t fVertexerCascadeNCuts; // number of cuts for AliCascadeVertexer
150 
151  // cuts for AliCascadeVertexer:
152  Double_t fVertexerCascadeChi2max; //maximal allowed chi2
153  Double_t fVertexerCascadeDV0min; //min V0 impact parameter
154  Double_t fVertexerCascadeMassWin; //"window" around the Lambda mass
155  Double_t fVertexerCascadeDBachMin; //min bachelor impact parameter
156  Double_t fVertexerCascadeDCAmax; //max DCA between the V0 and the track
157  Double_t fVertexerCascadeCPAmin; //min cosine of the cascade pointing angle
158  Double_t fVertexerCascadeRmin; //min radius of the fiducial volume
159  Double_t fVertexerCascadeRmax; //max radius of the fiducial volume
160  Double_t fCleanDCAZCut; // consider track removal if its DCA exceeds this
161  ULong_t fFlagsNotToClean; // tracks with these flags are kept in CleanESD
162  TObjArray fV0HypSelArray; // array of V0 hypotheses selection
163 
164 
165 
166  ClassDef(AliGRPRecoParam,8) // global reco parameters
167 };
168 
169 inline void AliGRPRecoParam::SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
170 {
171  // set TPC tracks clustering settings
172  if(use) fVertexerTracksTPCclusterize=1.;
176 }
177 
178 inline void AliGRPRecoParam::SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
179 {
180  // set ITS tracks clustering settings
181  if(use) fVertexerTracksITSclusterize=1.;
185 }
186 
187 
188 #endif
void SetVertexerV0Cuts(Int_t ncuts, Double_t cuts[7])
Double_t fVertexerTracksTPCmaxtgl
const TObjArray * GetV0HypSelArray() const
Double_t fVertexerTracksTPCMVTukey2
Double_t fVertexerTracksTPCclusterize
Double_t fVertexerTracksTPCdcacut
Double_t fVertexerTracksTPCnsigma
void GetVertexerTracksCuts(Int_t mode, Double_t *cuts, Int_t n) const
void SetVertexerCascadeCuts(Int_t ncuts, Double_t cuts[8])
Double_t fVertexerTracksTPCminCls
Double_t fVertexerTracksITSdcacut
Double_t fVertexerV0Chi2max
#define TObjArray
Double_t fVertexerCascadeRmin
Double_t fVertexerTracksITSMVMinDst
void SetCleanDCAZCut(double v)
AliGRPRecoParam & operator=(const AliGRPRecoParam &)
Double_t fVertexerTracksITSclusterdz
Double_t fVertexerTracksTPCMVFinalWBinary
Int_t GetVertexerV0NCuts() const
Double_t fVertexerV0Rmax
Double_t GetMostProbablePt() const
Double_t fVertexerTracksITSMVBCSpacing
Double_t fVertexerTracksTPCalgo
Double_t fVertexerTracksTPCMVScanStep
Double_t fVertexerV0DPmin
Double_t fVertexerTracksTPCclusterdz
Double_t fVertexerTracksITSmaxd0z0
ULong_t GetFlagsNotToClean() const
Double_t fVertexerTracksTPCMVMinDst
Double_t fVertexerV0EtaMax
Double_t fVertexerTracksTPCMVSig2Ini
Double_t fVertexerCascadeDCAmax
void SetVertexerV0EtaMax(double eta)
Double_t fVertexerTracksTPCMVMinSig2Red
void GetVertexerV0Cuts(Double_t *cuts) const
Int_t fVertexerTracksNCuts
Double_t fVertexerV0CPAmin
Double_t fVertexerTracksTPCMVBCSpacing
Double_t fVertexerTracksITSminCls
Double_t fVertexerCascadeRmax
Double_t fVertexerTracksTPCmintrks
Double_t fVertexerTracksITSMVScanStep
Double_t fVertexerTracksITSalgo
Double_t fVertexerTracksTPCclusternsigmaz
Macros to do fast simulation of processes important for tuning of reconstruction Currently fast simulation of ionization digitization and cluster finder AliTPCclusterFast How to use it a which macro to use(I know it was somewhere in AliRoot but with the GIT page I dont find it anymore)
void SetVertexerTracksCutsITS(Int_t ncuts, Double_t *cuts)
void GetVertexerTracksCutsITS(Double_t *cuts, Int_t n) const
Double_t fVertexerTracksITSalgoIter0
Double_t fVertexerTracksITSfidR
Double_t fVertexerCascadeMassWin
Bool_t GetCleanOfflineV0Prongs() const
Double_t fVertexerTracksITSMVMaxWghNtr
static AliGRPRecoParam * GetHighFluxParam()
Double_t fVertexerTracksITSclusternsigmaz
Double_t fVertexerTracksTPCdcacutIter0
Double_t GetCleanDCAZCut() const
Double_t fVertexerTracksITSfidZ
void SetVertexerTracksCuts(Int_t mode, Int_t ncuts, Double_t *cuts)
Double_t fVertexerCascadeChi2max
Double_t fVertexerTracksITSnindetfitter
Double_t fMostProbablePt
Double_t fVertexerTracksITSclusterize
Double_t fVertexerCascadeDBachMin
void SetVertexerTracksConstraintITS(Bool_t constr=kTRUE)
TObjArray fV0HypSelArray
void SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
Double_t fVertexerV0Rmin
void SetVertexerTracksCutsTPC(Int_t ncuts, Double_t *cuts)
Double_t fVertexerTracksITSMVMinSig2Red
Double_t fVertexerV0DNmin
Bool_t GetVertexerTracksConstraintITS() const
Double_t fVertexerTracksITSmintrks
Double_t fVertexerTracksTPCnindetfitter
void SetCleanOfflineV0Prongs(Bool_t v)
ULong_t fFlagsNotToClean
Double_t fVertexerV0DCAmax
static AliGRPRecoParam * GetLowFluxParam()
Double_t fVertexerTracksTPCfidZ
void GetVertexerCascadeCuts(Double_t *cuts) const
void SetVertexerTracksConstraintTPC(Bool_t constr=kTRUE)
Double_t fVertexerTracksITSMVSig2Ini
void GetVertexerTracksCutsTPC(Double_t *cuts, Int_t n) const
void SetMostProbablePt(Double_t pt=0.350)
Int_t GetVertexerCascadeNCuts() const
Double_t fVertexerTracksTPCfidR
Double_t fVertexerTracksITSMVMaxSigma2
void AddV0HypSel(const AliV0HypSel &sel)
static AliGRPRecoParam * GetCosmicTestParam()
void SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
Bool_t GetVertexerTracksConstraintTPC() const
Bool_t fVertexerTracksConstraintITS
Double_t fCleanDCAZCut
Double_t fVertexerTracksITSMVTukey2
Bool_t fVertexerTracksConstraintTPC
Double_t fVertexerTracksITSdcacutIter0
Double_t fVertexerTracksTPCMVMaxSigma2
Double_t fVertexerTracksTPCMVMaxWghNtr
Double_t fVertexerCascadeCPAmin
Double_t fVertexerTracksITSnsigma
Double_t fVertexerCascadeDV0min
Double_t fVertexerTracksTPCmaxd0z0
Double_t fVertexerTracksITSMVFinalWBinary
void SetFlagsNotToClean(ULong_t v)
Double_t GetVertexerV0EtaMax() const
Double_t fVertexerTracksITSmaxtgl
Double_t fVertexerTracksTPCalgoIter0
Bool_t fCleanOfflineV0Prongs
virtual ~AliGRPRecoParam()
Int_t GetVertexerTracksNCuts() const