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