#ifndef ALIGRPRECOPARAM_H
#define ALIGRPRECOPARAM_H
#include "AliDetectorRecoParam.h"
class AliGRPRecoParam : public AliDetectorRecoParam
{
public:
AliGRPRecoParam();
virtual ~AliGRPRecoParam();
static AliGRPRecoParam *GetLowFluxParam();
static AliGRPRecoParam *GetHighFluxParam();
static AliGRPRecoParam *GetCosmicTestParam();
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;
Bool_t fVertexerTracksConstraintITS;
Bool_t fVertexerTracksConstraintTPC;
Int_t fVertexerTracksNCuts;
Double_t fVertexerTracksITSdcacut;
Double_t fVertexerTracksITSdcacutIter0;
Double_t fVertexerTracksITSmaxd0z0;
Double_t fVertexerTracksITSminCls;
Double_t fVertexerTracksITSmintrks;
Double_t fVertexerTracksITSnsigma;
Double_t fVertexerTracksITSnindetfitter;
Double_t fVertexerTracksITSmaxtgl;
Double_t fVertexerTracksITSfidR;
Double_t fVertexerTracksITSfidZ;
Double_t fVertexerTracksITSalgo;
Double_t fVertexerTracksITSalgoIter0;
Double_t fVertexerTracksITSMVTukey2;
Double_t fVertexerTracksITSMVSig2Ini;
Double_t fVertexerTracksITSMVMaxSigma2;
Double_t fVertexerTracksITSMVMinSig2Red;
Double_t fVertexerTracksITSMVMinDst;
Double_t fVertexerTracksITSMVScanStep;
Double_t fVertexerTracksITSMVMaxWghNtr;
Double_t fVertexerTracksITSMVFinalWBinary;
Double_t fVertexerTracksITSMVBCSpacing;
Double_t fVertexerTracksITSclusterize;
Double_t fVertexerTracksITSclusterdz;
Double_t fVertexerTracksITSclusternsigmaz;
Double_t fVertexerTracksTPCdcacut;
Double_t fVertexerTracksTPCdcacutIter0;
Double_t fVertexerTracksTPCmaxd0z0;
Double_t fVertexerTracksTPCminCls;
Double_t fVertexerTracksTPCmintrks;
Double_t fVertexerTracksTPCnsigma;
Double_t fVertexerTracksTPCnindetfitter;
Double_t fVertexerTracksTPCmaxtgl;
Double_t fVertexerTracksTPCfidR;
Double_t fVertexerTracksTPCfidZ;
Double_t fVertexerTracksTPCalgo;
Double_t fVertexerTracksTPCalgoIter0;
Double_t fVertexerTracksTPCMVTukey2;
Double_t fVertexerTracksTPCMVSig2Ini;
Double_t fVertexerTracksTPCMVMaxSigma2;
Double_t fVertexerTracksTPCMVMinSig2Red;
Double_t fVertexerTracksTPCMVMinDst;
Double_t fVertexerTracksTPCMVScanStep;
Double_t fVertexerTracksTPCMVMaxWghNtr;
Double_t fVertexerTracksTPCMVFinalWBinary;
Double_t fVertexerTracksTPCMVBCSpacing;
Double_t fVertexerTracksTPCclusterize;
Double_t fVertexerTracksTPCclusterdz;
Double_t fVertexerTracksTPCclusternsigmaz;
Int_t fVertexerV0NCuts;
Double_t fVertexerV0Chi2max;
Double_t fVertexerV0DNmin;
Double_t fVertexerV0DPmin;
Double_t fVertexerV0DCAmax;
Double_t fVertexerV0CPAmin;
Double_t fVertexerV0Rmin;
Double_t fVertexerV0Rmax;
Int_t fVertexerCascadeNCuts;
Double_t fVertexerCascadeChi2max;
Double_t fVertexerCascadeDV0min;
Double_t fVertexerCascadeMassWin;
Double_t fVertexerCascadeDBachMin;
Double_t fVertexerCascadeDCAmax;
Double_t fVertexerCascadeCPAmin;
Double_t fVertexerCascadeRmin;
Double_t fVertexerCascadeRmax;
ClassDef(AliGRPRecoParam,7)
};
inline void AliGRPRecoParam::SetVertexerTracksTPCClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
{
if(use) fVertexerTracksTPCclusterize=1.;
else fVertexerTracksTPCclusterize=0.;
fVertexerTracksTPCclusterdz=dzcut;
fVertexerTracksTPCclusternsigmaz=nsigmazcut;
}
inline void AliGRPRecoParam::SetVertexerTracksITSClusterization(Bool_t use, Double_t dzcut, Double_t nsigmazcut)
{
if(use) fVertexerTracksITSclusterize=1.;
else fVertexerTracksITSclusterize=0.;
fVertexerTracksITSclusterdz=dzcut;
fVertexerTracksITSclusternsigmaz=nsigmazcut;
}
#endif