AliPhysics  master (3d17d9d)
AliRDHFCutsLctoV0.h
Go to the documentation of this file.
1 #ifndef ALIRDHFCUTSLCTOV0_H
2 #define ALIRDHFCUTSLCTOV0_H
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 
8 //***********************************************************
11 //***********************************************************
12 
13 #include "AliRDHFCuts.h"
14 
16 {
17  public:
18 
20  kLcToK0Spr=0x0001,
21  kLcToLBarpi=0x0002,
22  kLcToLpi=0x0004
23  };
24 
36  };
37 
38  AliRDHFCutsLctoV0(const char* name="CutsLctoV0", Short_t v0channel=0);
39 
40  virtual ~AliRDHFCutsLctoV0();
41 
42  AliRDHFCutsLctoV0(const AliRDHFCutsLctoV0& source);
44 
46  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
47 
49  virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel)
50  {return IsSelected(obj,selectionLevel,0);}
51  virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent* aod);
52 
55 
57  virtual Int_t PreSelect(TObjArray aodtracks);
58  Bool_t PreSelect(TObject* obj, AliAODv0 *v0, AliVTrack *bachelorTrack);
59 
60  Int_t IsSelectedSingleCut(TObject* obj, Int_t selectionLevel, Int_t cutIndex, AliAODEvent* aod=0x0);
61 
62  Int_t CombineCuts (Int_t returnvalueTrack, Int_t returnvalue, Int_t returnvaluePID) const;
63 
64  Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
65  Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(7,iPtBin)] : 1.e6);}
66  Float_t GetV0PtCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(15,iPtBin)] : 0.);}
68  Float_t minPtCut=99999.;
69  for(Int_t j=0; j<fnPtBins; j++){Float_t c=GetV0PtCut(j); if(c<minPtCut) minPtCut=c;}
70  return minPtCut;
71  }
74 
76  Bool_t ApplySingleProtonCuts(AliAODTrack *trk, AliAODEvent* aod);
77  Bool_t ApplySingleK0Cuts(AliAODv0 *v0, AliAODEvent* aod);
79 
80  Int_t GetV0Type();
81 
82  void SetHighPtCut(Float_t highPtCut) {fHighPtCut=highPtCut;};
83  Float_t GetHighPtCut() const {return fHighPtCut;};
84 
85  void SetLowPtCut(Float_t lowPtCut) {fLowPtCut=lowPtCut;};
86  Float_t GetLowPtCut() const {return fLowPtCut;};
87 
88  void SetMinCombinedProbability(Int_t nPBins, Float_t *minProb);
90 
91  void SetExcludedCut(Int_t excludedCut) {fExcludedCut=excludedCut;}
93 
94  virtual void SetStandardCutsPP2010();
95  virtual void SetStandardCutsPbPb2010();
96  virtual void SetStandardCutsPbPb2011();
97 
98  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
99 
100  void AddTrackCutsV0daughters(AliESDtrackCuts* v0daug)
101  { delete fV0daughtersCuts; fV0daughtersCuts = new AliESDtrackCuts(*v0daug); }
102  virtual AliESDtrackCuts *GetTrackCutsV0daughters() const {return fV0daughtersCuts;}
103 
107 
108  void SetBachelorPLimitsForPID(Int_t nPBins, Float_t *pMin);
110 
113 
114  virtual void PrintAll() const;
115 
117  void SetNBachelorPBins(Int_t nPbins) {fNBachelorPBins=nPbins;}
118 
119  protected:
120 
121  void CheckPID(AliAODTrack *bachelor, AliAODTrack * /*v0Neg*/, AliAODTrack * /*v0Pos*/,
122  Bool_t &isBachelorID1, Bool_t &isBachelorID2, Bool_t &isBachelorID4);
123 
124  Int_t GetBachelorPBin(Double_t bachelorP) const;
125 
126  private:
127 
129  AliESDtrackCuts *fV0daughtersCuts;
134  Float_t *fMinCombProbVsLcPt; //[fnPtBins] min value for combined PID probabilities (vs Lc pT)
136  Int_t fNBachelorPBins; // number of bachelor p bins
137  Float_t *fMinCombProb; //[fNBachelorPBins] min value for combined PID probabilities (vs bachelor p)
138  Float_t *fBachelorPLimitsForPID; //[fNBachelorPBins] limits for bachelor p bins
140 
141  //UShort_t fV0channel;
142 
144  ClassDef(AliRDHFCutsLctoV0,9);
145 };
147 
148 #endif
void SetMinCombinedProbability(Int_t nPBins, Float_t *minProb)
AliESDtrackCuts * fV0daughtersCuts
virtual void SetStandardCutsPbPb2010()
Int_t GetBachelorPBin(Double_t bachelorP) const
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)=0
void SetBachelorPLimitsForPID(Int_t nPBins, Float_t *pMin)
virtual Int_t PreSelect(TObjArray)
Definition: AliRDHFCuts.h:314
double Double_t
Definition: External.C:58
AliRDHFCutsLctoV0(const char *name="CutsLctoV0", Short_t v0channel=0)
Float_t GetNTPCSigmaCutForPreselection() const
virtual void SetStandardCutsPP2010()
Int_t GetNBachelorPBins() const
virtual void SetStandardCutsPbPb2011()
Bool_t AreLctoV0DaughtersSelected(AliAODRecoDecayHF *rd, AliAODEvent *aod=0x0) const
Int_t CombineCuts(Int_t returnvalueTrack, Int_t returnvalue, Int_t returnvaluePID) const
Float_t GetHighPtCut() const
const Float_t * GetCuts() const
Definition: AliRDHFCuts.h:271
Float_t fV0Type
cuts for v0 daughters (AOD converted to ESD on the flight!)
const Float_t * GetBachelorPLimitsForPID()
Float_t fNTPCSigmaCutForPreselection
TCanvas * c
Definition: TestFitELoss.C:172
virtual Int_t PreSelect(TObjArray aodtracks)
AliRDHFCutsLctoV0 & operator=(const AliRDHFCutsLctoV0 &source)
virtual Int_t IsSelectedPID(AliAODRecoDecayHF *)
Definition: AliRDHFCuts.h:321
void SetNBachelorPBins(Int_t nPbins)
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)
Double_t GetReSignedd0(AliAODRecoDecayHF *d)
Float_t GetMinV0PtCut() const
void SetExcludedCut(Int_t excludedCut)
int Int_t
Definition: External.C:63
Float_t GetMassCut(Int_t iPtBin=0) const
Bool_t ApplySingleProtonCuts(AliAODTrack *trk, AliAODEvent *aod)
Int_t fNBachelorPBins
Magnetic field for propagation.
float Float_t
Definition: External.C:68
void AddTrackCutsV0daughters(AliESDtrackCuts *v0daug)
void SetGetNTPCSigmaCutForPreselection(Float_t a)
Float_t fLowPtCut
high pT cut separation for proton identification
Float_t * fMinCombProbVsLcPt
cut to be excluded (-1=none)
Float_t GetV0PtCut(Int_t iPtBin=0) const
virtual void PrintAll() const
Float_t GetDCACut(Int_t iPtBin=0) const
Float_t * fCutsRD
fnVars*fnPtBins
Definition: AliRDHFCuts.h:474
short Short_t
Definition: External.C:23
Float_t GetLowPtCut() const
Bool_t ApplyCandidateCuts(AliAODRecoDecayHF *rd, AliAODEvent *aod, Bool_t spdfirst)
void SetLowPtCut(Float_t lowPtCut)
Double_t GetProtonEmissionAngleCMS(AliAODRecoDecayHF *d)
virtual AliESDtrackCuts * GetTrackCutsV0daughters() const
Int_t fExcludedCut
low pT cut separation for proton identification
Bool_t ApplySingleK0Cuts(AliAODv0 *v0, AliAODEvent *aod)
Bool_t IsSelected(TObject *obj)
Definition: AliRDHFCuts.h:312
void SetMagneticField(Double_t a)
Float_t * GetMinCombinedProbability() const
bool Bool_t
Definition: External.C:53
Int_t fnPtBins
cuts on the candidate
Definition: AliRDHFCuts.h:466
Float_t fHighPtCut
V0 type – should be defined as in AliRDHFCuts.h.
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
void CheckPID(AliAODTrack *bachelor, AliAODTrack *, AliAODTrack *, Bool_t &isBachelorID1, Bool_t &isBachelorID2, Bool_t &isBachelorID4)
Int_t GetGlobalIndex(Int_t iVar, Int_t iPtBin) const
Float_t * fBachelorPLimitsForPID
void SetPidSelectionFlag(Int_t a)
Int_t IsSelectedSingleCut(TObject *obj, Int_t selectionLevel, Int_t cutIndex, AliAODEvent *aod=0x0)
void SetHighPtCut(Float_t highPtCut)
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
virtual Int_t IsSelectedPID(AliAODRecoDecayHF *obj)