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

/* $Id$ */ 

//***********************************************************
// Class AliRDHFCutsDstoKKpi
// class for cuts on AOD reconstructed Ds->KKpi
// Author: A.Dainese, andrea.dainese@pd.infn.it
//***********************************************************

#include "AliRDHFCuts.h"

class AliRDHFCutsDstoKKpi : public AliRDHFCuts 
{
 public:

  AliRDHFCutsDstoKKpi(const char* name="CutsDstoKKpi");
  
  virtual ~AliRDHFCutsDstoKKpi(){}

  AliRDHFCutsDstoKKpi(const AliRDHFCutsDstoKKpi& source);
  AliRDHFCutsDstoKKpi& operator=(const AliRDHFCutsDstoKKpi& 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 Int_t IsSelectedPIDBayes(AliAODRecoDecayHF *rd);
  virtual void SetStandardCutsPP2010();
   
  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) 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(11,iPtBin)] : 1.e6);}
  UInt_t GetPIDTrackTPCTOFBitMap(AliAODTrack *track) const;

  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};
                
                 
  enum EDsPid {kConservative, kStrong, kStrongPDep, kBayesianMaxProb, kBayesianThreshold, kBayesianWeights};
  void SetPidOption(Int_t opt){
    fPidOption=opt;
  }
  void SetUseBayesianPIDWithMaxProb(Double_t dist=0.01){
    fPidOption=kBayesianMaxProb;
    fDistToMaxProb=dist;
    fPidHF->SetUseCombined(kTRUE);
  }

  void SetUseBayesianPIDWithThresholds(Double_t thr=0.05){
    fPidOption=kBayesianThreshold;
    fBayesThreshold=thr;
    fPidHF->SetUseCombined(kTRUE);
  }
  void SetUseBayesianPIDWithWeights(){
    fPidOption=kBayesianWeights;
    fPidHF->SetUseCombined(kTRUE);
  }
  void SetMaxPtStrongPid(Float_t spid){fMaxPtStrongPid=spid;}
  void SetMaxPStrongPidK(Float_t spid){fMaxPStrongPidK=spid;}
  void SetMaxPStrongPidpi(Float_t spid){fMaxPStrongPidpi=spid;}
  
  Int_t GetPidOption() const {return fPidOption;}
  Double_t GetWeightForKKpi() const {return fWeightKKpi;}
  Double_t GetWeightForpiKK() const {return fWeightpiKK;}

  Bool_t IsCutOnResonancesApplied() const {return fCutOnResonances;}
  void  ApplyCutOnResonances(Bool_t opt=kTRUE){
    fCutOnResonances=opt;
  }


 protected:
 
  Bool_t fCutOnResonances;  // switch for the cuts on phi and K0* inv. mass
  Int_t fPidOption;         // pid option
  Float_t fMaxPtStrongPid; // Maximum pt of candidate to apply strong Pid p dependent
  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
  Double_t fDistToMaxProb; // Difference between max probability
  Double_t fBayesThreshold;// Threshold for Bayesian PID probability
  Double_t fWeightKKpi; // weight for KKpi for kBayesianWeights
  Double_t fWeightpiKK; // weight for piKK for kBayesianWeights

  ClassDef(AliRDHFCutsDstoKKpi,4);  // class for cuts on AOD reconstructed Ds->KKpi
};

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