Multi-vertexerTracks with clusterization + steering options in GRPRecoParam
[u/mrichter/AliRoot.git] / STEER / STEER / AliGRPRecoParam.h
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
7 ///////////////////////////////////////////////////////////////////////////////
8 //                                                                           //
9 // Class with global reconstruction parameters                               //
10 // (initially, parameters for AliVertexerTracks)                             //
11 // Origin: andrea.dainese@lnl.infn.it                                        //
12 //                                                                           //
13 ///////////////////////////////////////////////////////////////////////////////
14
15
16 #include "AliDetectorRecoParam.h"
17
18 class AliGRPRecoParam : public AliDetectorRecoParam
19 {
20  public: 
21   AliGRPRecoParam();
22   virtual ~AliGRPRecoParam();
23
24   static AliGRPRecoParam *GetLowFluxParam();// make reco parameters for low flux env.
25   static AliGRPRecoParam *GetHighFluxParam();// make reco parameters for high flux env. 
26   static AliGRPRecoParam *GetCosmicTestParam();// make reco parameters for cosmics env. 
27
28   void  SetMostProbablePt(Double_t pt=0.350) { fMostProbablePt=pt; return; }
29   Double_t GetMostProbablePt() const { return fMostProbablePt; }
30
31   void  SetVertexerTracksConstraintITS(Bool_t constr=kTRUE) { fVertexerTracksConstraintITS=constr; return; }
32   void  SetVertexerTracksConstraintTPC(Bool_t constr=kTRUE) { fVertexerTracksConstraintTPC=constr; return; }
33   void  SetVertexerTracksCuts(Int_t mode,Int_t ncuts,Double_t* cuts);
34   void  SetVertexerTracksCutsITS(Int_t ncuts,Double_t* cuts)
35     { SetVertexerTracksCuts(0,ncuts,cuts); return; }
36   void  SetVertexerTracksCutsTPC(Int_t ncuts,Double_t* cuts)
37     { SetVertexerTracksCuts(1,ncuts,cuts); return; }
38   void  SetVertexerV0Cuts(Int_t ncuts,Double_t cuts[7]);
39   void  SetVertexerCascadeCuts(Int_t ncuts,Double_t cuts[8]);
40   void  SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut){
41     if(use) fVertexerTracksTPCclusterize=1.;
42     else fVertexerTracksTPCclusterize=0.;
43     fVertexerTracksTPCclusterdz=dzcut;
44     fVertexerTracksTPCclusternsigmaz=nsigmazcut;
45   }
46   void  SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut){
47     if(use) fVertexerTracksITSclusterize=1.;
48     else fVertexerTracksITSclusterize=0.;
49     fVertexerTracksITSclusterdz=dzcut;
50     fVertexerTracksITSclusternsigmaz=nsigmazcut;
51   }
52
53
54   Bool_t GetVertexerTracksConstraintITS() const { return fVertexerTracksConstraintITS; }
55   Bool_t GetVertexerTracksConstraintTPC() const { return fVertexerTracksConstraintTPC; }
56   Int_t GetVertexerTracksNCuts() const { return fVertexerTracksNCuts; }
57   Int_t GetVertexerV0NCuts() const { return fVertexerV0NCuts; }
58   Int_t GetVertexerCascadeNCuts() const { return fVertexerCascadeNCuts; }
59   void  GetVertexerTracksCuts(Int_t mode,Double_t *cuts,Int_t n) const;
60   void  GetVertexerTracksCutsITS(Double_t *cuts,Int_t n) const
61   { GetVertexerTracksCuts(0,cuts,n); return; }
62   void  GetVertexerTracksCutsTPC(Double_t *cuts,Int_t n) const
63   { GetVertexerTracksCuts(1,cuts,n); return; }
64   void  GetVertexerV0Cuts(Double_t *cuts) const;
65   void  GetVertexerCascadeCuts(Double_t *cuts) const;
66
67   AliGRPRecoParam(const AliGRPRecoParam&);
68   AliGRPRecoParam& operator=(const AliGRPRecoParam&);
69
70  protected:
71   //
72
73   Double_t fMostProbablePt; // to be used for B=0 tracking
74   Bool_t   fVertexerTracksConstraintITS; // diamond constr for AliVertexerTracks
75   Bool_t   fVertexerTracksConstraintTPC; // diamond constr for AliVertexerTracks
76   Int_t    fVertexerTracksNCuts;  // number of cuts for AliVertexerTracks
77
78   // cuts for AliVertexerTracks: ITS mode
79   Double_t fVertexerTracksITSdcacut; // general dca
80   Double_t fVertexerTracksITSdcacutIter0; // dca in iteration 0
81   Double_t fVertexerTracksITSmaxd0z0; // max d0z0
82   Double_t fVertexerTracksITSminCls; // min clusters
83   Double_t fVertexerTracksITSmintrks; // min tracks
84   Double_t fVertexerTracksITSnsigma; // n sigma for d0 cut
85   Double_t fVertexerTracksITSnindetfitter; // min det to try inversion
86   Double_t fVertexerTracksITSmaxtgl; // max tgl 
87   Double_t fVertexerTracksITSfidR; // fiducial radius
88   Double_t fVertexerTracksITSfidZ; // fiducial z
89   Double_t fVertexerTracksITSalgo; // finder algo
90   Double_t fVertexerTracksITSalgoIter0; // finder algo iteration 0
91   //
92   Double_t fVertexerTracksITSMVTukey2;          // Tukey constant for multivertexer
93   Double_t fVertexerTracksITSMVSig2Ini;         // initial sig2 for multivertexer
94   Double_t fVertexerTracksITSMVMaxSigma2;       // max sig2 to accept for multivertexer
95   Double_t fVertexerTracksITSMVMinSig2Red;      // min sig2 to to consider multivertexer stuck (then push)
96   Double_t fVertexerTracksITSMVMinDst;          // min distance between 2 iterations to stop multi-vertex search
97   Double_t fVertexerTracksITSMVScanStep;        // z-scan step for multivertexer
98   Double_t fVertexerTracksITSMVMaxWghNtr;       // min wdist*ncontrib between to vertices to eliminate
99   Double_t fVertexerTracksITSMVFinalWBinary;    // for the final fit used binary weights
100   Double_t fVertexerTracksITSMVBCSpacing;       // assumer BC spacing
101   //
102   Double_t fVertexerTracksITSclusterize; // pre-clusterization of tracks
103   Double_t fVertexerTracksITSclusterdz;  // cut in absolute dz
104   Double_t fVertexerTracksITSclusternsigmaz;  // cut in standardized dz
105
106   // cuts for AliVertexerTracks: TPC-only mode
107   Double_t fVertexerTracksTPCdcacut; // general dca
108   Double_t fVertexerTracksTPCdcacutIter0; // dca in iteration 0
109   Double_t fVertexerTracksTPCmaxd0z0; // max d0z0
110   Double_t fVertexerTracksTPCminCls; // min clusters
111   Double_t fVertexerTracksTPCmintrks; // min tracks
112   Double_t fVertexerTracksTPCnsigma; // n sigma for d0 cut
113   Double_t fVertexerTracksTPCnindetfitter; // min det to try inversion
114   Double_t fVertexerTracksTPCmaxtgl; // max tgl 
115   Double_t fVertexerTracksTPCfidR; // fiducial radius
116   Double_t fVertexerTracksTPCfidZ; // fiducial z
117   Double_t fVertexerTracksTPCalgo; // finder algo
118   Double_t fVertexerTracksTPCalgoIter0; // finder algo iteration 0
119   //
120   Double_t fVertexerTracksTPCMVTukey2;          // Tukey constant for multivertexer
121   Double_t fVertexerTracksTPCMVSig2Ini;         // initial sig2 for multivertexer
122   Double_t fVertexerTracksTPCMVMaxSigma2;       // max sig2 to accept for multivertexer
123   Double_t fVertexerTracksTPCMVMinSig2Red;      // min sig2 to to consider multivertexer stuck (then push)
124   Double_t fVertexerTracksTPCMVMinDst;          // min distance between 2 iterations to stop multi-vertex search
125   Double_t fVertexerTracksTPCMVScanStep;        // z-scan step for multivertexer
126   Double_t fVertexerTracksTPCMVMaxWghNtr;       // min wdist*ncontrib between to vertices to eliminate
127   Double_t fVertexerTracksTPCMVFinalWBinary;    // for the final fit used binary weights
128   Double_t fVertexerTracksTPCMVBCSpacing;       // assumer BC spacing
129   //
130   Double_t fVertexerTracksTPCclusterize; // pre-clusterization of tracks
131   Double_t fVertexerTracksTPCclusterdz;  // cut in absolute dz
132   Double_t fVertexerTracksTPCclusternsigmaz;  // cut in standardized dz
133   //
134   Int_t    fVertexerV0NCuts;      // number of cuts for AliV0vertexer
135
136   // cuts for AliV0vertexer:
137   Double_t fVertexerV0Chi2max; //max chi2
138   Double_t fVertexerV0DNmin;   //min imp parameter for the 1st daughter
139   Double_t fVertexerV0DPmin;   //min imp parameter for the 2nd daughter
140   Double_t fVertexerV0DCAmax;  //max DCA between the daughter tracks
141   Double_t fVertexerV0CPAmin;  //min cosine of V0's pointing angle
142   Double_t fVertexerV0Rmin;    //min radius of the fiducial volume
143   Double_t fVertexerV0Rmax;    //max radius of the fiducial volume
144
145   Int_t    fVertexerCascadeNCuts; // number of cuts for AliCascadeVertexer
146
147   // cuts for AliCascadeVertexer:
148   Double_t fVertexerCascadeChi2max;  //maximal allowed chi2 
149   Double_t fVertexerCascadeDV0min;   //min V0 impact parameter
150   Double_t fVertexerCascadeMassWin;  //"window" around the Lambda mass
151   Double_t fVertexerCascadeDBachMin; //min bachelor impact parameter
152   Double_t fVertexerCascadeDCAmax;   //max DCA between the V0 and the track 
153   Double_t fVertexerCascadeCPAmin;   //min cosine of the cascade pointing angle
154   Double_t fVertexerCascadeRmin;     //min radius of the fiducial volume
155   Double_t fVertexerCascadeRmax;     //max radius of the fiducial volume
156
157   ClassDef(AliGRPRecoParam,7) // global reco parameters
158 };
159
160 #endif