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

//***********************************************************
// Class AliRDHFCutsDStartoKpipi
// class for cuts on AOD reconstructed DStar->Kpipi
// Author: A.Grelli, alessandro.grelli@uu.nl
// PID method implemented by   Y.Wang, yifei@physi.uni-heidelberg.de
//***********************************************************

#include "AliRDHFCuts.h"

class AliAODEvent;
class AliAODRecoCascadeHF;
class AliAODRecoDecayHF;

class AliRDHFCutsDStartoKpipi : public AliRDHFCuts 
{
 public:

  AliRDHFCutsDStartoKpipi(const char* name="CutsDStartoKpipi");
  
  virtual ~AliRDHFCutsDStartoKpipi(){}

  AliRDHFCutsDStartoKpipi(const AliRDHFCutsDStartoKpipi& source);
  AliRDHFCutsDStartoKpipi& operator=(const AliRDHFCutsDStartoKpipi& source); 
 
  using AliRDHFCuts::GetCutVarsForOpt;
  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);

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

  Int_t IsD0FromDStarSelected(Double_t pt, TObject* obj,Int_t selectionLevel, AliAODEvent* aod) const;
  Int_t IsD0FromDStarSelected(Double_t pt, TObject* obj,Int_t selectionLevel) {return IsD0FromDStarSelected(pt,obj,selectionLevel,0);};

  virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd);
  virtual Int_t SelectPID(AliAODTrack *track, Int_t type);
  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
  Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(9,iPtBin)] : 1.e6);} // for the Dstar
  Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);} // for the D0

  // standard cuts
  virtual void SetStandardCutsPP2010();
  virtual void SetStandardCutsPbPb2010();
  virtual void SetStandardCutsPbPb2011();

  // standard cuts 
  void SetStandardCutsPbPb2011DStar(TH1F *hfl);
  void SetStandardCutsPP2010DStarMult(Bool_t rec = kFALSE);

  
  void SetMaxPtPid(Float_t maxPt){fMaxPtPid = maxPt;}

  void SetOffHighPtPIDinTPC(Float_t TPCrem =999.){fTPCflag = TPCrem;}

  void AddTrackCutsSoftPi(const AliESDtrackCuts *cuts) 
     {fTrackCutsSoftPi=new AliESDtrackCuts(*cuts); return;}
  virtual AliESDtrackCuts *GetTrackCutsSoftPi() const {return fTrackCutsSoftPi;}

 protected:

  AliESDtrackCuts *fTrackCutsSoftPi; // cuts for soft pion (AOD converted to ESD on the flight!)
  Float_t fMaxPtPid; // maximum Dstar Pt for using PID
  Float_t fTPCflag;   // 

  ClassDef(AliRDHFCutsDStartoKpipi,6);  // class for cuts on AOD reconstructed D0->Kpipi
};

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