ROOT logo
#ifndef ALIGRPRECOPARAM_H
#define ALIGRPRECOPARAM_H
/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// Class with global reconstruction parameters                               //
// (initially, parameters for AliVertexerTracks)                             //
// Origin: andrea.dainese@lnl.infn.it                                        //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////


#include "AliDetectorRecoParam.h"

class AliGRPRecoParam : public AliDetectorRecoParam
{
 public: 
  AliGRPRecoParam();
  virtual ~AliGRPRecoParam();

  static AliGRPRecoParam *GetLowFluxParam();// make reco parameters for low flux env.
  static AliGRPRecoParam *GetHighFluxParam();// make reco parameters for high flux env. 
  static AliGRPRecoParam *GetCosmicTestParam();// make reco parameters for cosmics env. 

  void  SetMostProbablePt(Double_t pt=0.350) { fMostProbablePt=pt; return; }
  Double_t GetMostProbablePt() const { return fMostProbablePt; }

  void  SetVertexerTracksConstraintITS(Bool_t constr=kTRUE) { fVertexerTracksConstraintITS=constr; return; }
  void  SetVertexerTracksConstraintTPC(Bool_t constr=kTRUE) { fVertexerTracksConstraintTPC=constr; return; }
  void  SetVertexerTracksCuts(Int_t mode,Int_t ncuts,Double_t* cuts);
  void  SetVertexerTracksCutsITS(Int_t ncuts,Double_t* cuts)
    { SetVertexerTracksCuts(0,ncuts,cuts); return; }
  void  SetVertexerTracksCutsTPC(Int_t ncuts,Double_t* cuts)
    { SetVertexerTracksCuts(1,ncuts,cuts); return; }
  void  SetVertexerV0Cuts(Int_t ncuts,Double_t cuts[7]);
  void  SetVertexerCascadeCuts(Int_t ncuts,Double_t cuts[8]);
  void  SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut);
  void  SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut);
  Bool_t GetVertexerTracksConstraintITS() const { return fVertexerTracksConstraintITS; }
  Bool_t GetVertexerTracksConstraintTPC() const { return fVertexerTracksConstraintTPC; }
  Int_t GetVertexerTracksNCuts() const { return fVertexerTracksNCuts; }
  Int_t GetVertexerV0NCuts() const { return fVertexerV0NCuts; }
  Int_t GetVertexerCascadeNCuts() const { return fVertexerCascadeNCuts; }
  void  GetVertexerTracksCuts(Int_t mode,Double_t *cuts,Int_t n) const;
  void  GetVertexerTracksCutsITS(Double_t *cuts,Int_t n) const
  { GetVertexerTracksCuts(0,cuts,n); return; }
  void  GetVertexerTracksCutsTPC(Double_t *cuts,Int_t n) const
  { GetVertexerTracksCuts(1,cuts,n); return; }
  void  GetVertexerV0Cuts(Double_t *cuts) const;
  void  GetVertexerCascadeCuts(Double_t *cuts) const;

  AliGRPRecoParam(const AliGRPRecoParam&);
  AliGRPRecoParam& operator=(const AliGRPRecoParam&);

 protected:
  //

  Double_t fMostProbablePt; // to be used for B=0 tracking
  Bool_t   fVertexerTracksConstraintITS; // diamond constr for AliVertexerTracks
  Bool_t   fVertexerTracksConstraintTPC; // diamond constr for AliVertexerTracks
  Int_t    fVertexerTracksNCuts;  // number of cuts for AliVertexerTracks

  // cuts for AliVertexerTracks: ITS mode
  Double_t fVertexerTracksITSdcacut; // general dca
  Double_t fVertexerTracksITSdcacutIter0; // dca in iteration 0
  Double_t fVertexerTracksITSmaxd0z0; // max d0z0
  Double_t fVertexerTracksITSminCls; // min clusters
  Double_t fVertexerTracksITSmintrks; // min tracks
  Double_t fVertexerTracksITSnsigma; // n sigma for d0 cut
  Double_t fVertexerTracksITSnindetfitter; // min det to try inversion
  Double_t fVertexerTracksITSmaxtgl; // max tgl 
  Double_t fVertexerTracksITSfidR; // fiducial radius
  Double_t fVertexerTracksITSfidZ; // fiducial z
  Double_t fVertexerTracksITSalgo; // finder algo
  Double_t fVertexerTracksITSalgoIter0; // finder algo iteration 0
  //
  Double_t fVertexerTracksITSMVTukey2;          // Tukey constant for multivertexer
  Double_t fVertexerTracksITSMVSig2Ini;         // initial sig2 for multivertexer
  Double_t fVertexerTracksITSMVMaxSigma2;       // max sig2 to accept for multivertexer
  Double_t fVertexerTracksITSMVMinSig2Red;      // min sig2 to to consider multivertexer stuck (then push)
  Double_t fVertexerTracksITSMVMinDst;          // min distance between 2 iterations to stop multi-vertex search
  Double_t fVertexerTracksITSMVScanStep;        // z-scan step for multivertexer
  Double_t fVertexerTracksITSMVMaxWghNtr;       // min wdist*ncontrib between to vertices to eliminate
  Double_t fVertexerTracksITSMVFinalWBinary;    // for the final fit used binary weights
  Double_t fVertexerTracksITSMVBCSpacing;       // assumer BC spacing
  //
  Double_t fVertexerTracksITSclusterize; // pre-clusterization of tracks
  Double_t fVertexerTracksITSclusterdz;  // cut in absolute dz
  Double_t fVertexerTracksITSclusternsigmaz;  // cut in standardized dz

  // cuts for AliVertexerTracks: TPC-only mode
  Double_t fVertexerTracksTPCdcacut; // general dca
  Double_t fVertexerTracksTPCdcacutIter0; // dca in iteration 0
  Double_t fVertexerTracksTPCmaxd0z0; // max d0z0
  Double_t fVertexerTracksTPCminCls; // min clusters
  Double_t fVertexerTracksTPCmintrks; // min tracks
  Double_t fVertexerTracksTPCnsigma; // n sigma for d0 cut
  Double_t fVertexerTracksTPCnindetfitter; // min det to try inversion
  Double_t fVertexerTracksTPCmaxtgl; // max tgl 
  Double_t fVertexerTracksTPCfidR; // fiducial radius
  Double_t fVertexerTracksTPCfidZ; // fiducial z
  Double_t fVertexerTracksTPCalgo; // finder algo
  Double_t fVertexerTracksTPCalgoIter0; // finder algo iteration 0
  //
  Double_t fVertexerTracksTPCMVTukey2;          // Tukey constant for multivertexer
  Double_t fVertexerTracksTPCMVSig2Ini;         // initial sig2 for multivertexer
  Double_t fVertexerTracksTPCMVMaxSigma2;       // max sig2 to accept for multivertexer
  Double_t fVertexerTracksTPCMVMinSig2Red;      // min sig2 to to consider multivertexer stuck (then push)
  Double_t fVertexerTracksTPCMVMinDst;          // min distance between 2 iterations to stop multi-vertex search
  Double_t fVertexerTracksTPCMVScanStep;        // z-scan step for multivertexer
  Double_t fVertexerTracksTPCMVMaxWghNtr;       // min wdist*ncontrib between to vertices to eliminate
  Double_t fVertexerTracksTPCMVFinalWBinary;    // for the final fit used binary weights
  Double_t fVertexerTracksTPCMVBCSpacing;       // assumer BC spacing
  //
  Double_t fVertexerTracksTPCclusterize; // pre-clusterization of tracks
  Double_t fVertexerTracksTPCclusterdz;  // cut in absolute dz
  Double_t fVertexerTracksTPCclusternsigmaz;  // cut in standardized dz
  //
  Int_t    fVertexerV0NCuts;      // number of cuts for AliV0vertexer

  // cuts for AliV0vertexer:
  Double_t fVertexerV0Chi2max; //max chi2
  Double_t fVertexerV0DNmin;   //min imp parameter for the 1st daughter
  Double_t fVertexerV0DPmin;   //min imp parameter for the 2nd daughter
  Double_t fVertexerV0DCAmax;  //max DCA between the daughter tracks
  Double_t fVertexerV0CPAmin;  //min cosine of V0's pointing angle
  Double_t fVertexerV0Rmin;    //min radius of the fiducial volume
  Double_t fVertexerV0Rmax;    //max radius of the fiducial volume

  Int_t    fVertexerCascadeNCuts; // number of cuts for AliCascadeVertexer

  // cuts for AliCascadeVertexer:
  Double_t fVertexerCascadeChi2max;  //maximal allowed chi2 
  Double_t fVertexerCascadeDV0min;   //min V0 impact parameter
  Double_t fVertexerCascadeMassWin;  //"window" around the Lambda mass
  Double_t fVertexerCascadeDBachMin; //min bachelor impact parameter
  Double_t fVertexerCascadeDCAmax;   //max DCA between the V0 and the track 
  Double_t fVertexerCascadeCPAmin;   //min cosine of the cascade pointing angle
  Double_t fVertexerCascadeRmin;     //min radius of the fiducial volume
  Double_t fVertexerCascadeRmax;     //max radius of the fiducial volume

  ClassDef(AliGRPRecoParam,7) // global reco parameters
};

inline void  AliGRPRecoParam::SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
{
  // set TPC tracks clustering settings
  if(use) fVertexerTracksTPCclusterize=1.;
  else fVertexerTracksTPCclusterize=0.;
  fVertexerTracksTPCclusterdz=dzcut;
  fVertexerTracksTPCclusternsigmaz=nsigmazcut;
}

inline  void  AliGRPRecoParam::SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
{
  // set ITS tracks clustering settings
  if(use) fVertexerTracksITSclusterize=1.;
  else fVertexerTracksITSclusterize=0.;
  fVertexerTracksITSclusterdz=dzcut;
  fVertexerTracksITSclusternsigmaz=nsigmazcut;
}


#endif
 AliGRPRecoParam.h:1
 AliGRPRecoParam.h:2
 AliGRPRecoParam.h:3
 AliGRPRecoParam.h:4
 AliGRPRecoParam.h:5
 AliGRPRecoParam.h:6
 AliGRPRecoParam.h:7
 AliGRPRecoParam.h:8
 AliGRPRecoParam.h:9
 AliGRPRecoParam.h:10
 AliGRPRecoParam.h:11
 AliGRPRecoParam.h:12
 AliGRPRecoParam.h:13
 AliGRPRecoParam.h:14
 AliGRPRecoParam.h:15
 AliGRPRecoParam.h:16
 AliGRPRecoParam.h:17
 AliGRPRecoParam.h:18
 AliGRPRecoParam.h:19
 AliGRPRecoParam.h:20
 AliGRPRecoParam.h:21
 AliGRPRecoParam.h:22
 AliGRPRecoParam.h:23
 AliGRPRecoParam.h:24
 AliGRPRecoParam.h:25
 AliGRPRecoParam.h:26
 AliGRPRecoParam.h:27
 AliGRPRecoParam.h:28
 AliGRPRecoParam.h:29
 AliGRPRecoParam.h:30
 AliGRPRecoParam.h:31
 AliGRPRecoParam.h:32
 AliGRPRecoParam.h:33
 AliGRPRecoParam.h:34
 AliGRPRecoParam.h:35
 AliGRPRecoParam.h:36
 AliGRPRecoParam.h:37
 AliGRPRecoParam.h:38
 AliGRPRecoParam.h:39
 AliGRPRecoParam.h:40
 AliGRPRecoParam.h:41
 AliGRPRecoParam.h:42
 AliGRPRecoParam.h:43
 AliGRPRecoParam.h:44
 AliGRPRecoParam.h:45
 AliGRPRecoParam.h:46
 AliGRPRecoParam.h:47
 AliGRPRecoParam.h:48
 AliGRPRecoParam.h:49
 AliGRPRecoParam.h:50
 AliGRPRecoParam.h:51
 AliGRPRecoParam.h:52
 AliGRPRecoParam.h:53
 AliGRPRecoParam.h:54
 AliGRPRecoParam.h:55
 AliGRPRecoParam.h:56
 AliGRPRecoParam.h:57
 AliGRPRecoParam.h:58
 AliGRPRecoParam.h:59
 AliGRPRecoParam.h:60
 AliGRPRecoParam.h:61
 AliGRPRecoParam.h:62
 AliGRPRecoParam.h:63
 AliGRPRecoParam.h:64
 AliGRPRecoParam.h:65
 AliGRPRecoParam.h:66
 AliGRPRecoParam.h:67
 AliGRPRecoParam.h:68
 AliGRPRecoParam.h:69
 AliGRPRecoParam.h:70
 AliGRPRecoParam.h:71
 AliGRPRecoParam.h:72
 AliGRPRecoParam.h:73
 AliGRPRecoParam.h:74
 AliGRPRecoParam.h:75
 AliGRPRecoParam.h:76
 AliGRPRecoParam.h:77
 AliGRPRecoParam.h:78
 AliGRPRecoParam.h:79
 AliGRPRecoParam.h:80
 AliGRPRecoParam.h:81
 AliGRPRecoParam.h:82
 AliGRPRecoParam.h:83
 AliGRPRecoParam.h:84
 AliGRPRecoParam.h:85
 AliGRPRecoParam.h:86
 AliGRPRecoParam.h:87
 AliGRPRecoParam.h:88
 AliGRPRecoParam.h:89
 AliGRPRecoParam.h:90
 AliGRPRecoParam.h:91
 AliGRPRecoParam.h:92
 AliGRPRecoParam.h:93
 AliGRPRecoParam.h:94
 AliGRPRecoParam.h:95
 AliGRPRecoParam.h:96
 AliGRPRecoParam.h:97
 AliGRPRecoParam.h:98
 AliGRPRecoParam.h:99
 AliGRPRecoParam.h:100
 AliGRPRecoParam.h:101
 AliGRPRecoParam.h:102
 AliGRPRecoParam.h:103
 AliGRPRecoParam.h:104
 AliGRPRecoParam.h:105
 AliGRPRecoParam.h:106
 AliGRPRecoParam.h:107
 AliGRPRecoParam.h:108
 AliGRPRecoParam.h:109
 AliGRPRecoParam.h:110
 AliGRPRecoParam.h:111
 AliGRPRecoParam.h:112
 AliGRPRecoParam.h:113
 AliGRPRecoParam.h:114
 AliGRPRecoParam.h:115
 AliGRPRecoParam.h:116
 AliGRPRecoParam.h:117
 AliGRPRecoParam.h:118
 AliGRPRecoParam.h:119
 AliGRPRecoParam.h:120
 AliGRPRecoParam.h:121
 AliGRPRecoParam.h:122
 AliGRPRecoParam.h:123
 AliGRPRecoParam.h:124
 AliGRPRecoParam.h:125
 AliGRPRecoParam.h:126
 AliGRPRecoParam.h:127
 AliGRPRecoParam.h:128
 AliGRPRecoParam.h:129
 AliGRPRecoParam.h:130
 AliGRPRecoParam.h:131
 AliGRPRecoParam.h:132
 AliGRPRecoParam.h:133
 AliGRPRecoParam.h:134
 AliGRPRecoParam.h:135
 AliGRPRecoParam.h:136
 AliGRPRecoParam.h:137
 AliGRPRecoParam.h:138
 AliGRPRecoParam.h:139
 AliGRPRecoParam.h:140
 AliGRPRecoParam.h:141
 AliGRPRecoParam.h:142
 AliGRPRecoParam.h:143
 AliGRPRecoParam.h:144
 AliGRPRecoParam.h:145
 AliGRPRecoParam.h:146
 AliGRPRecoParam.h:147
 AliGRPRecoParam.h:148
 AliGRPRecoParam.h:149
 AliGRPRecoParam.h:150
 AliGRPRecoParam.h:151
 AliGRPRecoParam.h:152
 AliGRPRecoParam.h:153
 AliGRPRecoParam.h:154
 AliGRPRecoParam.h:155
 AliGRPRecoParam.h:156
 AliGRPRecoParam.h:157
 AliGRPRecoParam.h:158
 AliGRPRecoParam.h:159
 AliGRPRecoParam.h:160
 AliGRPRecoParam.h:161
 AliGRPRecoParam.h:162
 AliGRPRecoParam.h:163
 AliGRPRecoParam.h:164
 AliGRPRecoParam.h:165
 AliGRPRecoParam.h:166
 AliGRPRecoParam.h:167