ROOT logo
//
// All cuts for single Protons in phi analysis 2010,
// based on quality and PID using the TPC and TOF
// detectors, using default definitions for both
// kinds of cuts, for ESD and AOD
// Author: Serguey Kiselev
//

#include <Riostream.h>

#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliRsnCutProton2010PP.h"

ClassImp(AliRsnCutProton2010PP)

//__________________________________________________________________________________________________
AliRsnCutProton2010PP::AliRsnCutProton2010PP(const char *name) :
   AliRsnCut(name, AliRsnTarget::kDaughter, -3.0, 3.0),
   fCutQuality(Form("%sQuality", name))
{
//
// Constructor
// Initialize the contained cuts and sets defaults
//

   // track quality
   //fCutQuality.AddStatusFlag(AliESDtrack::kTPCin   , kTRUE);
   //fCutQuality.AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);
   //fCutQuality.AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);
   fCutQuality.SetPtRange(0.15, 1E+20);
   fCutQuality.SetEtaRange(-0.8, 0.8);
   fCutQuality.SetDCARPtFormula("0.0182+0.0350/pt^1.01");
   fCutQuality.SetDCAZmax(2.0);
   fCutQuality.SetSPDminNClusters(1);
   fCutQuality.SetITSminNClusters(0);
   fCutQuality.SetITSmaxChi2(1E+20);
   fCutQuality.SetTPCminNClusters(70);
   fCutQuality.SetTPCmaxChi2(4.0);
   fCutQuality.SetRejectKinkDaughters();
   fCutQuality.SetAODTestFilterBit(5);
}

//__________________________________________________________________________________________________
Bool_t AliRsnCutProton2010PP::IsSelected(TObject *obj)
{
//
// Global check
//

   // coherence check
   if (!TargetOK(obj)) return kFALSE;

   // check track
   AliVTrack *track = fDaughter->Ref2Vtrack();
   if (!track) {
      if (!fDaughter->GetRef()) AliWarning("NULL ref");
      return kFALSE;
   }

   // check flags
   if ((track->GetStatus() & AliESDtrack::kTPCin   ) == 0) return kFALSE;
   if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) return kFALSE;
   if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) return kFALSE;

   // quality
   if (!fCutQuality.IsSelected(obj)) return kFALSE;

   // check initialization of PID object
   AliPIDResponse *pid = fEvent->GetPIDResponse();
   if (!pid) {
      AliFatal("NULL PID response");
      return kFALSE;
   }

   // PID ITS :
   // depends on momentum
   //SetRangeD(0.0, 4.0);
   //fCutValueD = TMath::Abs(pid->NumberOfSigmasITS(track, AliPID::kProton));
   //if (!OkRangeD()) return kFALSE;

   // PID TPC :
   // depends on momentum
   SetRangeD(0.0, 3.0);
   if (track->GetTPCmomentum() < 0.350) SetRangeD(0.0, 5.0);
   fCutValueD = TMath::Abs(pid->NumberOfSigmasTPC(track, AliPID::kProton));
   if (!OkRangeD()) return kFALSE;

   // if TOF is not matched, end here
   // otherwise check TOF
   if (!MatchTOF(track))
      return kTRUE;
   else {
      //SetRangeD(0.0, 3.0);
      fCutValueD = TMath::Abs(pid->NumberOfSigmasTOF(track, AliPID::kProton));
      return OkRangeD();
   }
}
 AliRsnCutProton2010PP.cxx:1
 AliRsnCutProton2010PP.cxx:2
 AliRsnCutProton2010PP.cxx:3
 AliRsnCutProton2010PP.cxx:4
 AliRsnCutProton2010PP.cxx:5
 AliRsnCutProton2010PP.cxx:6
 AliRsnCutProton2010PP.cxx:7
 AliRsnCutProton2010PP.cxx:8
 AliRsnCutProton2010PP.cxx:9
 AliRsnCutProton2010PP.cxx:10
 AliRsnCutProton2010PP.cxx:11
 AliRsnCutProton2010PP.cxx:12
 AliRsnCutProton2010PP.cxx:13
 AliRsnCutProton2010PP.cxx:14
 AliRsnCutProton2010PP.cxx:15
 AliRsnCutProton2010PP.cxx:16
 AliRsnCutProton2010PP.cxx:17
 AliRsnCutProton2010PP.cxx:18
 AliRsnCutProton2010PP.cxx:19
 AliRsnCutProton2010PP.cxx:20
 AliRsnCutProton2010PP.cxx:21
 AliRsnCutProton2010PP.cxx:22
 AliRsnCutProton2010PP.cxx:23
 AliRsnCutProton2010PP.cxx:24
 AliRsnCutProton2010PP.cxx:25
 AliRsnCutProton2010PP.cxx:26
 AliRsnCutProton2010PP.cxx:27
 AliRsnCutProton2010PP.cxx:28
 AliRsnCutProton2010PP.cxx:29
 AliRsnCutProton2010PP.cxx:30
 AliRsnCutProton2010PP.cxx:31
 AliRsnCutProton2010PP.cxx:32
 AliRsnCutProton2010PP.cxx:33
 AliRsnCutProton2010PP.cxx:34
 AliRsnCutProton2010PP.cxx:35
 AliRsnCutProton2010PP.cxx:36
 AliRsnCutProton2010PP.cxx:37
 AliRsnCutProton2010PP.cxx:38
 AliRsnCutProton2010PP.cxx:39
 AliRsnCutProton2010PP.cxx:40
 AliRsnCutProton2010PP.cxx:41
 AliRsnCutProton2010PP.cxx:42
 AliRsnCutProton2010PP.cxx:43
 AliRsnCutProton2010PP.cxx:44
 AliRsnCutProton2010PP.cxx:45
 AliRsnCutProton2010PP.cxx:46
 AliRsnCutProton2010PP.cxx:47
 AliRsnCutProton2010PP.cxx:48
 AliRsnCutProton2010PP.cxx:49
 AliRsnCutProton2010PP.cxx:50
 AliRsnCutProton2010PP.cxx:51
 AliRsnCutProton2010PP.cxx:52
 AliRsnCutProton2010PP.cxx:53
 AliRsnCutProton2010PP.cxx:54
 AliRsnCutProton2010PP.cxx:55
 AliRsnCutProton2010PP.cxx:56
 AliRsnCutProton2010PP.cxx:57
 AliRsnCutProton2010PP.cxx:58
 AliRsnCutProton2010PP.cxx:59
 AliRsnCutProton2010PP.cxx:60
 AliRsnCutProton2010PP.cxx:61
 AliRsnCutProton2010PP.cxx:62
 AliRsnCutProton2010PP.cxx:63
 AliRsnCutProton2010PP.cxx:64
 AliRsnCutProton2010PP.cxx:65
 AliRsnCutProton2010PP.cxx:66
 AliRsnCutProton2010PP.cxx:67
 AliRsnCutProton2010PP.cxx:68
 AliRsnCutProton2010PP.cxx:69
 AliRsnCutProton2010PP.cxx:70
 AliRsnCutProton2010PP.cxx:71
 AliRsnCutProton2010PP.cxx:72
 AliRsnCutProton2010PP.cxx:73
 AliRsnCutProton2010PP.cxx:74
 AliRsnCutProton2010PP.cxx:75
 AliRsnCutProton2010PP.cxx:76
 AliRsnCutProton2010PP.cxx:77
 AliRsnCutProton2010PP.cxx:78
 AliRsnCutProton2010PP.cxx:79
 AliRsnCutProton2010PP.cxx:80
 AliRsnCutProton2010PP.cxx:81
 AliRsnCutProton2010PP.cxx:82
 AliRsnCutProton2010PP.cxx:83
 AliRsnCutProton2010PP.cxx:84
 AliRsnCutProton2010PP.cxx:85
 AliRsnCutProton2010PP.cxx:86
 AliRsnCutProton2010PP.cxx:87
 AliRsnCutProton2010PP.cxx:88
 AliRsnCutProton2010PP.cxx:89
 AliRsnCutProton2010PP.cxx:90
 AliRsnCutProton2010PP.cxx:91
 AliRsnCutProton2010PP.cxx:92
 AliRsnCutProton2010PP.cxx:93
 AliRsnCutProton2010PP.cxx:94
 AliRsnCutProton2010PP.cxx:95
 AliRsnCutProton2010PP.cxx:96
 AliRsnCutProton2010PP.cxx:97
 AliRsnCutProton2010PP.cxx:98