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

/* $Id$ */ 


/////////////////////////////////////////////////////////////
//
// Class for cuts on AOD reconstructed D+->Kpipi
//
// Author: R. Bala bala@to.infn.it
//         G. Ortona ortona@to.infn.it
/////////////////////////////////////////////////////////////


#include "AliRDHFCuts.h"
class AliAODPidHF;

class AliRDHFCutsDplustoKpipi : public AliRDHFCuts 
{
 public:

  AliRDHFCutsDplustoKpipi(const char* name="CutsDplustoKpipi");
  
  virtual ~AliRDHFCutsDplustoKpipi(){};
  AliRDHFCutsDplustoKpipi(const AliRDHFCutsDplustoKpipi& source);
  AliRDHFCutsDplustoKpipi& operator=(const AliRDHFCutsDplustoKpipi& source); 

  using AliRDHFCuts::GetCutVarsForOpt;
  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
    return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
  }
  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);

  using AliRDHFCuts::IsSelected;
  virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel){
    return IsSelected(obj,selectionLevel,0x0);
  }
  virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent* aod);
  virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd);

  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
  virtual void SetStandardCutsPP2010();
  virtual void SetStandardCutsPbPb2010();
  virtual void SetStandardCutsPbPb2011();

  Int_t GetPIDBitMask(AliAODRecoDecayHF *rd);
  UInt_t GetPIDTrackTPCTOFBitMap(AliAODTrack *track) const;
  Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
  Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);}
  void SetUseStrongPid(Int_t spid){fUseStrongPid=spid;}
  void SetMaxPtStrongPid(Float_t spid){fMaxPtStrongPid=spid;}
  void SetMaxPStrongPidK(Float_t spid){fMaxPStrongPidK=spid;}
  void SetMaxPStrongPidpi(Float_t spid){fMaxPStrongPidpi=spid;}
  Int_t GetStrongPid() const {return fUseStrongPid;}
  Float_t GetMaxPtStrongPid() const {return fMaxPtStrongPid;}
  Float_t GetMaxPtStrongPidK() const {return fMaxPStrongPidK;}
  Float_t GetMaxPtStrongPidpi() const {return fMaxPStrongPidpi;}
  void SetUseImpParProdCorrCut(Bool_t use){
    fUseImpParProdCorrCut=use;
  }
  Bool_t GetUseImpParProdCorrCut() const {
    return fUseImpParProdCorrCut;
  }
  
  enum TrackPIDBit{kTPCPionLess1,kTPCPionMore1Less2,kTPCPionMore2Less3,kTPCPionMore3,
                   kTPCKaonLess1,kTPCKaonMore1Less2,kTPCKaonMore2Less3,kTPCKaonMore3,
                   kTPCProtonLess1,kTPCProtonMore1Less2,kTPCProtonMore2Less3,kTPCProtonMore3,
                   kTOFPionLess1,kTOFPionMore1Less2,kTOFPionMore2Less3,kTOFPionMore3,
                   kTOFKaonLess1,kTOFKaonMore1Less2,kTOFKaonMore2Less3,kTOFKaonMore3,
                   kTOFProtonLess1,kTOFProtonMore1Less2,kTOFProtonMore2Less3,kTOFProtonMore3};
 protected:

 private:
  Int_t fUseStrongPid; //use strong pid 0 no,1 only for K,2 pi 3 both
  Float_t fMaxPtStrongPid;//Maximum pt of candidate to apply strong Pid
  Float_t fMaxPStrongPidK;//Maximum P of track to apply strong Pid on K
  Float_t fMaxPStrongPidpi;//Maximum P of track to apply strong Pid on pi
  Bool_t fUseImpParProdCorrCut; //switch for d0K*d0pi1 vs. d0K*d0pi2 cut

  ClassDef(AliRDHFCutsDplustoKpipi,6);  // class for cuts on AOD reconstructed 
                                   // D+->Kpipi
};

#endif

 AliRDHFCutsDplustoKpipi.h:1
 AliRDHFCutsDplustoKpipi.h:2
 AliRDHFCutsDplustoKpipi.h:3
 AliRDHFCutsDplustoKpipi.h:4
 AliRDHFCutsDplustoKpipi.h:5
 AliRDHFCutsDplustoKpipi.h:6
 AliRDHFCutsDplustoKpipi.h:7
 AliRDHFCutsDplustoKpipi.h:8
 AliRDHFCutsDplustoKpipi.h:9
 AliRDHFCutsDplustoKpipi.h:10
 AliRDHFCutsDplustoKpipi.h:11
 AliRDHFCutsDplustoKpipi.h:12
 AliRDHFCutsDplustoKpipi.h:13
 AliRDHFCutsDplustoKpipi.h:14
 AliRDHFCutsDplustoKpipi.h:15
 AliRDHFCutsDplustoKpipi.h:16
 AliRDHFCutsDplustoKpipi.h:17
 AliRDHFCutsDplustoKpipi.h:18
 AliRDHFCutsDplustoKpipi.h:19
 AliRDHFCutsDplustoKpipi.h:20
 AliRDHFCutsDplustoKpipi.h:21
 AliRDHFCutsDplustoKpipi.h:22
 AliRDHFCutsDplustoKpipi.h:23
 AliRDHFCutsDplustoKpipi.h:24
 AliRDHFCutsDplustoKpipi.h:25
 AliRDHFCutsDplustoKpipi.h:26
 AliRDHFCutsDplustoKpipi.h:27
 AliRDHFCutsDplustoKpipi.h:28
 AliRDHFCutsDplustoKpipi.h:29
 AliRDHFCutsDplustoKpipi.h:30
 AliRDHFCutsDplustoKpipi.h:31
 AliRDHFCutsDplustoKpipi.h:32
 AliRDHFCutsDplustoKpipi.h:33
 AliRDHFCutsDplustoKpipi.h:34
 AliRDHFCutsDplustoKpipi.h:35
 AliRDHFCutsDplustoKpipi.h:36
 AliRDHFCutsDplustoKpipi.h:37
 AliRDHFCutsDplustoKpipi.h:38
 AliRDHFCutsDplustoKpipi.h:39
 AliRDHFCutsDplustoKpipi.h:40
 AliRDHFCutsDplustoKpipi.h:41
 AliRDHFCutsDplustoKpipi.h:42
 AliRDHFCutsDplustoKpipi.h:43
 AliRDHFCutsDplustoKpipi.h:44
 AliRDHFCutsDplustoKpipi.h:45
 AliRDHFCutsDplustoKpipi.h:46
 AliRDHFCutsDplustoKpipi.h:47
 AliRDHFCutsDplustoKpipi.h:48
 AliRDHFCutsDplustoKpipi.h:49
 AliRDHFCutsDplustoKpipi.h:50
 AliRDHFCutsDplustoKpipi.h:51
 AliRDHFCutsDplustoKpipi.h:52
 AliRDHFCutsDplustoKpipi.h:53
 AliRDHFCutsDplustoKpipi.h:54
 AliRDHFCutsDplustoKpipi.h:55
 AliRDHFCutsDplustoKpipi.h:56
 AliRDHFCutsDplustoKpipi.h:57
 AliRDHFCutsDplustoKpipi.h:58
 AliRDHFCutsDplustoKpipi.h:59
 AliRDHFCutsDplustoKpipi.h:60
 AliRDHFCutsDplustoKpipi.h:61
 AliRDHFCutsDplustoKpipi.h:62
 AliRDHFCutsDplustoKpipi.h:63
 AliRDHFCutsDplustoKpipi.h:64
 AliRDHFCutsDplustoKpipi.h:65
 AliRDHFCutsDplustoKpipi.h:66
 AliRDHFCutsDplustoKpipi.h:67
 AliRDHFCutsDplustoKpipi.h:68
 AliRDHFCutsDplustoKpipi.h:69
 AliRDHFCutsDplustoKpipi.h:70
 AliRDHFCutsDplustoKpipi.h:71
 AliRDHFCutsDplustoKpipi.h:72
 AliRDHFCutsDplustoKpipi.h:73
 AliRDHFCutsDplustoKpipi.h:74
 AliRDHFCutsDplustoKpipi.h:75
 AliRDHFCutsDplustoKpipi.h:76
 AliRDHFCutsDplustoKpipi.h:77
 AliRDHFCutsDplustoKpipi.h:78
 AliRDHFCutsDplustoKpipi.h:79
 AliRDHFCutsDplustoKpipi.h:80
 AliRDHFCutsDplustoKpipi.h:81
 AliRDHFCutsDplustoKpipi.h:82
 AliRDHFCutsDplustoKpipi.h:83
 AliRDHFCutsDplustoKpipi.h:84
 AliRDHFCutsDplustoKpipi.h:85
 AliRDHFCutsDplustoKpipi.h:86
 AliRDHFCutsDplustoKpipi.h:87
 AliRDHFCutsDplustoKpipi.h:88