Coding conventions fixed
[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   void  SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut);
42   Bool_t GetVertexerTracksConstraintITS() const { return fVertexerTracksConstraintITS; }
43   Bool_t GetVertexerTracksConstraintTPC() const { return fVertexerTracksConstraintTPC; }
44   Int_t GetVertexerTracksNCuts() const { return fVertexerTracksNCuts; }
45   Int_t GetVertexerV0NCuts() const { return fVertexerV0NCuts; }
46   Int_t GetVertexerCascadeNCuts() const { return fVertexerCascadeNCuts; }
47   void  GetVertexerTracksCuts(Int_t mode,Double_t *cuts,Int_t n) const;
48   void  GetVertexerTracksCutsITS(Double_t *cuts,Int_t n) const
49   { GetVertexerTracksCuts(0,cuts,n); return; }
50   void  GetVertexerTracksCutsTPC(Double_t *cuts,Int_t n) const
51   { GetVertexerTracksCuts(1,cuts,n); return; }
52   void  GetVertexerV0Cuts(Double_t *cuts) const;
53   void  GetVertexerCascadeCuts(Double_t *cuts) const;
54
55   AliGRPRecoParam(const AliGRPRecoParam&);
56   AliGRPRecoParam& operator=(const AliGRPRecoParam&);
57
58  protected:
59   //
60
61   Double_t fMostProbablePt; // to be used for B=0 tracking
62   Bool_t   fVertexerTracksConstraintITS; // diamond constr for AliVertexerTracks
63   Bool_t   fVertexerTracksConstraintTPC; // diamond constr for AliVertexerTracks
64   Int_t    fVertexerTracksNCuts;  // number of cuts for AliVertexerTracks
65
66   // cuts for AliVertexerTracks: ITS mode
67   Double_t fVertexerTracksITSdcacut; // general dca
68   Double_t fVertexerTracksITSdcacutIter0; // dca in iteration 0
69   Double_t fVertexerTracksITSmaxd0z0; // max d0z0
70   Double_t fVertexerTracksITSminCls; // min clusters
71   Double_t fVertexerTracksITSmintrks; // min tracks
72   Double_t fVertexerTracksITSnsigma; // n sigma for d0 cut
73   Double_t fVertexerTracksITSnindetfitter; // min det to try inversion
74   Double_t fVertexerTracksITSmaxtgl; // max tgl 
75   Double_t fVertexerTracksITSfidR; // fiducial radius
76   Double_t fVertexerTracksITSfidZ; // fiducial z
77   Double_t fVertexerTracksITSalgo; // finder algo
78   Double_t fVertexerTracksITSalgoIter0; // finder algo iteration 0
79   //
80   Double_t fVertexerTracksITSMVTukey2;          // Tukey constant for multivertexer
81   Double_t fVertexerTracksITSMVSig2Ini;         // initial sig2 for multivertexer
82   Double_t fVertexerTracksITSMVMaxSigma2;       // max sig2 to accept for multivertexer
83   Double_t fVertexerTracksITSMVMinSig2Red;      // min sig2 to to consider multivertexer stuck (then push)
84   Double_t fVertexerTracksITSMVMinDst;          // min distance between 2 iterations to stop multi-vertex search
85   Double_t fVertexerTracksITSMVScanStep;        // z-scan step for multivertexer
86   Double_t fVertexerTracksITSMVMaxWghNtr;       // min wdist*ncontrib between to vertices to eliminate
87   Double_t fVertexerTracksITSMVFinalWBinary;    // for the final fit used binary weights
88   Double_t fVertexerTracksITSMVBCSpacing;       // assumer BC spacing
89   //
90   Double_t fVertexerTracksITSclusterize; // pre-clusterization of tracks
91   Double_t fVertexerTracksITSclusterdz;  // cut in absolute dz
92   Double_t fVertexerTracksITSclusternsigmaz;  // cut in standardized dz
93
94   // cuts for AliVertexerTracks: TPC-only mode
95   Double_t fVertexerTracksTPCdcacut; // general dca
96   Double_t fVertexerTracksTPCdcacutIter0; // dca in iteration 0
97   Double_t fVertexerTracksTPCmaxd0z0; // max d0z0
98   Double_t fVertexerTracksTPCminCls; // min clusters
99   Double_t fVertexerTracksTPCmintrks; // min tracks
100   Double_t fVertexerTracksTPCnsigma; // n sigma for d0 cut
101   Double_t fVertexerTracksTPCnindetfitter; // min det to try inversion
102   Double_t fVertexerTracksTPCmaxtgl; // max tgl 
103   Double_t fVertexerTracksTPCfidR; // fiducial radius
104   Double_t fVertexerTracksTPCfidZ; // fiducial z
105   Double_t fVertexerTracksTPCalgo; // finder algo
106   Double_t fVertexerTracksTPCalgoIter0; // finder algo iteration 0
107   //
108   Double_t fVertexerTracksTPCMVTukey2;          // Tukey constant for multivertexer
109   Double_t fVertexerTracksTPCMVSig2Ini;         // initial sig2 for multivertexer
110   Double_t fVertexerTracksTPCMVMaxSigma2;       // max sig2 to accept for multivertexer
111   Double_t fVertexerTracksTPCMVMinSig2Red;      // min sig2 to to consider multivertexer stuck (then push)
112   Double_t fVertexerTracksTPCMVMinDst;          // min distance between 2 iterations to stop multi-vertex search
113   Double_t fVertexerTracksTPCMVScanStep;        // z-scan step for multivertexer
114   Double_t fVertexerTracksTPCMVMaxWghNtr;       // min wdist*ncontrib between to vertices to eliminate
115   Double_t fVertexerTracksTPCMVFinalWBinary;    // for the final fit used binary weights
116   Double_t fVertexerTracksTPCMVBCSpacing;       // assumer BC spacing
117   //
118   Double_t fVertexerTracksTPCclusterize; // pre-clusterization of tracks
119   Double_t fVertexerTracksTPCclusterdz;  // cut in absolute dz
120   Double_t fVertexerTracksTPCclusternsigmaz;  // cut in standardized dz
121   //
122   Int_t    fVertexerV0NCuts;      // number of cuts for AliV0vertexer
123
124   // cuts for AliV0vertexer:
125   Double_t fVertexerV0Chi2max; //max chi2
126   Double_t fVertexerV0DNmin;   //min imp parameter for the 1st daughter
127   Double_t fVertexerV0DPmin;   //min imp parameter for the 2nd daughter
128   Double_t fVertexerV0DCAmax;  //max DCA between the daughter tracks
129   Double_t fVertexerV0CPAmin;  //min cosine of V0's pointing angle
130   Double_t fVertexerV0Rmin;    //min radius of the fiducial volume
131   Double_t fVertexerV0Rmax;    //max radius of the fiducial volume
132
133   Int_t    fVertexerCascadeNCuts; // number of cuts for AliCascadeVertexer
134
135   // cuts for AliCascadeVertexer:
136   Double_t fVertexerCascadeChi2max;  //maximal allowed chi2 
137   Double_t fVertexerCascadeDV0min;   //min V0 impact parameter
138   Double_t fVertexerCascadeMassWin;  //"window" around the Lambda mass
139   Double_t fVertexerCascadeDBachMin; //min bachelor impact parameter
140   Double_t fVertexerCascadeDCAmax;   //max DCA between the V0 and the track 
141   Double_t fVertexerCascadeCPAmin;   //min cosine of the cascade pointing angle
142   Double_t fVertexerCascadeRmin;     //min radius of the fiducial volume
143   Double_t fVertexerCascadeRmax;     //max radius of the fiducial volume
144
145   ClassDef(AliGRPRecoParam,7) // global reco parameters
146 };
147
148 inline void  AliGRPRecoParam::SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
149 {
150   // set TPC tracks clustering settings
151   if(use) fVertexerTracksTPCclusterize=1.;
152   else fVertexerTracksTPCclusterize=0.;
153   fVertexerTracksTPCclusterdz=dzcut;
154   fVertexerTracksTPCclusternsigmaz=nsigmazcut;
155 }
156
157 inline  void  AliGRPRecoParam::SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
158 {
159   // set ITS tracks clustering settings
160   if(use) fVertexerTracksITSclusterize=1.;
161   else fVertexerTracksITSclusterize=0.;
162   fVertexerTracksITSclusterdz=dzcut;
163   fVertexerTracksITSclusternsigmaz=nsigmazcut;
164 }
165
166
167 #endif