ROOT logo
//
// All cuts for single protons and kaons in Lambda(1520) analysis 2010,
// based on track quality and particle identification
// with TPC and TOF.
// Author: Serguey Kiselev.
//
//

#include <Riostream.h>

#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliRsnCutDaughterLStar2010.h"

ClassImp(AliRsnCutDaughterLStar2010)

//__________________________________________________________________________________________________
AliRsnCutDaughterLStar2010::AliRsnCutDaughterLStar2010(const char *name, AliPID::EParticleType pid) :
   AliRsnCut(name, AliRsnTarget::kDaughter),
   fPID(pid),
   fCutQuality(Form("%sQuality", name))
{
//
// Constructor
// Initialize track quality cuts to 2010 defaults
//

   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 AliRsnCutDaughterLStar2010::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;
   }

   // check if TOF is matched
   // and computes all values used in the PID cut
   Bool_t   isTOF  = MatchTOF(track);
   Double_t pTPC   = track->GetTPCmomentum();
   Double_t p      = track->P();
   Double_t nsTPC  = TMath::Abs(pid->NumberOfSigmasTPC(track, fPID));
   Double_t nsTOF  = TMath::Abs(pid->NumberOfSigmasTOF(track, fPID));
   Double_t maxTPC = 1E20;
   Double_t maxTOF = 1E20;

   // applies the cut differently depending on the PID and the momentum
   if (isTOF) {
      // TPC: 5sigma cut for all
      if (nsTPC > 5.0) return kFALSE;
      // TOF: 3sigma below 1.5 GeV, 2sigma above
      if (p < 1.5) maxTOF = 3.0; else maxTOF = 2.0;
      return (nsTOF <= maxTOF);
   } else {
      // TPC:
      // below 350 MeV: 5sigma
      // between 350 and 500 MeV: 3sigma
      // pions above 500 MeV: 2sigma
      // kaons between 500 and 700 MeV: 2sigma
      // kaons above 700 MeV: rejected
      // protons above 1200 MeV: rejected
      if (pTPC <= 0.35)
         maxTPC = 5.0;
      else if (pTPC <= 0.5)
         maxTPC = 3.0;
      else if (pTPC > 0.5 && pTPC <= 0.7 && fPID == AliPID::kKaon)
         maxTPC = 2.0;
      else if (pTPC > 0.5 && pTPC <= 1.2 && fPID == AliPID::kProton)
         maxTPC = 2.0;
      else
         return kFALSE;
      return (nsTPC <= maxTPC);
   }
}
 AliRsnCutDaughterLStar2010.cxx:1
 AliRsnCutDaughterLStar2010.cxx:2
 AliRsnCutDaughterLStar2010.cxx:3
 AliRsnCutDaughterLStar2010.cxx:4
 AliRsnCutDaughterLStar2010.cxx:5
 AliRsnCutDaughterLStar2010.cxx:6
 AliRsnCutDaughterLStar2010.cxx:7
 AliRsnCutDaughterLStar2010.cxx:8
 AliRsnCutDaughterLStar2010.cxx:9
 AliRsnCutDaughterLStar2010.cxx:10
 AliRsnCutDaughterLStar2010.cxx:11
 AliRsnCutDaughterLStar2010.cxx:12
 AliRsnCutDaughterLStar2010.cxx:13
 AliRsnCutDaughterLStar2010.cxx:14
 AliRsnCutDaughterLStar2010.cxx:15
 AliRsnCutDaughterLStar2010.cxx:16
 AliRsnCutDaughterLStar2010.cxx:17
 AliRsnCutDaughterLStar2010.cxx:18
 AliRsnCutDaughterLStar2010.cxx:19
 AliRsnCutDaughterLStar2010.cxx:20
 AliRsnCutDaughterLStar2010.cxx:21
 AliRsnCutDaughterLStar2010.cxx:22
 AliRsnCutDaughterLStar2010.cxx:23
 AliRsnCutDaughterLStar2010.cxx:24
 AliRsnCutDaughterLStar2010.cxx:25
 AliRsnCutDaughterLStar2010.cxx:26
 AliRsnCutDaughterLStar2010.cxx:27
 AliRsnCutDaughterLStar2010.cxx:28
 AliRsnCutDaughterLStar2010.cxx:29
 AliRsnCutDaughterLStar2010.cxx:30
 AliRsnCutDaughterLStar2010.cxx:31
 AliRsnCutDaughterLStar2010.cxx:32
 AliRsnCutDaughterLStar2010.cxx:33
 AliRsnCutDaughterLStar2010.cxx:34
 AliRsnCutDaughterLStar2010.cxx:35
 AliRsnCutDaughterLStar2010.cxx:36
 AliRsnCutDaughterLStar2010.cxx:37
 AliRsnCutDaughterLStar2010.cxx:38
 AliRsnCutDaughterLStar2010.cxx:39
 AliRsnCutDaughterLStar2010.cxx:40
 AliRsnCutDaughterLStar2010.cxx:41
 AliRsnCutDaughterLStar2010.cxx:42
 AliRsnCutDaughterLStar2010.cxx:43
 AliRsnCutDaughterLStar2010.cxx:44
 AliRsnCutDaughterLStar2010.cxx:45
 AliRsnCutDaughterLStar2010.cxx:46
 AliRsnCutDaughterLStar2010.cxx:47
 AliRsnCutDaughterLStar2010.cxx:48
 AliRsnCutDaughterLStar2010.cxx:49
 AliRsnCutDaughterLStar2010.cxx:50
 AliRsnCutDaughterLStar2010.cxx:51
 AliRsnCutDaughterLStar2010.cxx:52
 AliRsnCutDaughterLStar2010.cxx:53
 AliRsnCutDaughterLStar2010.cxx:54
 AliRsnCutDaughterLStar2010.cxx:55
 AliRsnCutDaughterLStar2010.cxx:56
 AliRsnCutDaughterLStar2010.cxx:57
 AliRsnCutDaughterLStar2010.cxx:58
 AliRsnCutDaughterLStar2010.cxx:59
 AliRsnCutDaughterLStar2010.cxx:60
 AliRsnCutDaughterLStar2010.cxx:61
 AliRsnCutDaughterLStar2010.cxx:62
 AliRsnCutDaughterLStar2010.cxx:63
 AliRsnCutDaughterLStar2010.cxx:64
 AliRsnCutDaughterLStar2010.cxx:65
 AliRsnCutDaughterLStar2010.cxx:66
 AliRsnCutDaughterLStar2010.cxx:67
 AliRsnCutDaughterLStar2010.cxx:68
 AliRsnCutDaughterLStar2010.cxx:69
 AliRsnCutDaughterLStar2010.cxx:70
 AliRsnCutDaughterLStar2010.cxx:71
 AliRsnCutDaughterLStar2010.cxx:72
 AliRsnCutDaughterLStar2010.cxx:73
 AliRsnCutDaughterLStar2010.cxx:74
 AliRsnCutDaughterLStar2010.cxx:75
 AliRsnCutDaughterLStar2010.cxx:76
 AliRsnCutDaughterLStar2010.cxx:77
 AliRsnCutDaughterLStar2010.cxx:78
 AliRsnCutDaughterLStar2010.cxx:79
 AliRsnCutDaughterLStar2010.cxx:80
 AliRsnCutDaughterLStar2010.cxx:81
 AliRsnCutDaughterLStar2010.cxx:82
 AliRsnCutDaughterLStar2010.cxx:83
 AliRsnCutDaughterLStar2010.cxx:84
 AliRsnCutDaughterLStar2010.cxx:85
 AliRsnCutDaughterLStar2010.cxx:86
 AliRsnCutDaughterLStar2010.cxx:87
 AliRsnCutDaughterLStar2010.cxx:88
 AliRsnCutDaughterLStar2010.cxx:89
 AliRsnCutDaughterLStar2010.cxx:90
 AliRsnCutDaughterLStar2010.cxx:91
 AliRsnCutDaughterLStar2010.cxx:92
 AliRsnCutDaughterLStar2010.cxx:93
 AliRsnCutDaughterLStar2010.cxx:94
 AliRsnCutDaughterLStar2010.cxx:95
 AliRsnCutDaughterLStar2010.cxx:96
 AliRsnCutDaughterLStar2010.cxx:97
 AliRsnCutDaughterLStar2010.cxx:98
 AliRsnCutDaughterLStar2010.cxx:99
 AliRsnCutDaughterLStar2010.cxx:100
 AliRsnCutDaughterLStar2010.cxx:101
 AliRsnCutDaughterLStar2010.cxx:102
 AliRsnCutDaughterLStar2010.cxx:103
 AliRsnCutDaughterLStar2010.cxx:104
 AliRsnCutDaughterLStar2010.cxx:105
 AliRsnCutDaughterLStar2010.cxx:106
 AliRsnCutDaughterLStar2010.cxx:107
 AliRsnCutDaughterLStar2010.cxx:108
 AliRsnCutDaughterLStar2010.cxx:109
 AliRsnCutDaughterLStar2010.cxx:110