ROOT logo
#ifndef __CINT__
#include <AliRsnCutTrackQuality.h>
#endif
Int_t AddRsnDaughterCutsPhiNsigma(AliPID::EParticleType type1,AliPID::EParticleType type2,TString opt,Bool_t isRsnMini=kFALSE,AliRsnInputHandler *rsnIH=0,AliAnalysisTaskSE *task=0)
{

   if (!rsnIH) return 0;

   Bool_t valid = kTRUE;
   Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
   Int_t useCommonQualityCut = AliAnalysisManager::GetGlobalInt("rsnCommonQualityCut",valid);


   Bool_t usePPCut = kFALSE;

   if (isPP && (opt.Contains("usePP"))) usePPCut = kTRUE;


   // === USER HAS TO SET CORRECT NUMBER OF CUTS SETS =====
   Int_t numberOfCuts = 1;

   //---------------------------------------------
   //  Define single cuts
   //---------------------------------------------

   Printf("AliRsnCutPIDNSigma Option : %s",opt.Data());

   Double_t nSigmaTPC=3.0;
   Double_t nSigmaTOF=3.0;
   Double_t etaRange=0.8;
   Double_t trackPtMin=0.;
   Double_t trackPtMax=1.e10;

   Bool_t useTPC_K=kFALSE;
   Bool_t useTOF_K=kFALSE;
   Bool_t useTrackPtCut=kFALSE;

   if (opt.Contains("qualityonly")) {
      useTPC_K=kFALSE;
      useTOF_K=kFALSE;
   } else if (!opt.Contains("nsig")) {
      useTPC_K=kTRUE;
      useTOF_K=kTRUE;
   }

   if (opt.Contains("KTPCnsig"))  useTPC_K=kTRUE;
   if (opt.Contains("KTOFnsig"))  useTOF_K=kTRUE;

   if (opt.Contains("KTPCnsig10")) nSigmaTPC = 1.0;
   if (opt.Contains("KTPCnsig15")) nSigmaTPC = 1.5;
   if (opt.Contains("KTPCnsig20")) nSigmaTPC = 2.0;
   if (opt.Contains("KTPCnsig25")) nSigmaTPC = 2.5;
   if (opt.Contains("KTPCnsig30")) nSigmaTPC = 3.0;

   if (opt.Contains("KTOFnsig10")) nSigmaTOF = 1.0;
   if (opt.Contains("KTOFnsig15")) nSigmaTOF = 1.5;
   if (opt.Contains("KTOFnsig20")) nSigmaTOF = 2.0;
   if (opt.Contains("KTOFnsig25")) nSigmaTOF = 2.5;
   if (opt.Contains("KTOFnsig30")) nSigmaTOF = 3.0;
   
   if (opt.Contains("KTOFnsig1000")) nSigmaTOF = 100.0;

   if (opt.Contains("trackPt")) {
      useTrackPtCut = kTRUE;
      if (opt.Contains("trackPtMin02")) trackPtMin = 0.2;
      if (opt.Contains("trackPtMin05")) trackPtMin = 0.5;

      if (opt.Contains("trackPtMax18")) trackPtMax = 1.8;
      if (opt.Contains("trackPtMax20")) trackPtMax = 2.0;
      if (opt.Contains("trackPtMax25")) trackPtMax = 2.5;
   }

   Bool_t usePDG=kFALSE;
   if (opt.Contains("pdg")) {
      Printf("Using PDG");
      usePDG = kTRUE;
   }

   Bool_t useEta = kFALSE;
   if (opt.Contains("eta")) {
     if(opt.Contains("eta08")) etaRange=0.8;
     if(opt.Contains("eta07")) etaRange=0.7;
     if(opt.Contains("eta06")) etaRange=0.6;
      Printf("Using ETA range (%.2f,%.2f)",-etaRange,etaRange);
      useEta = kTRUE;
   }

//---------------------------------------------
//  Combine cuts
//---------------------------------------------

   TString cutname = "K_Phi";
   if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
   AliRsnCutSet *cuts = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);

   TString scheme="";
   AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQualityK");
   if (useCommonQualityCut>=0) {
      qualityCut->SetAODTestFilterBit(useCommonQualityCut);
   } else {
      qualityCut->SetDefaults2010();
   }
   cuts->AddCut(qualityCut);
   if (!scheme.IsNull()) scheme += "&";
   scheme += qualityCut->GetName();


   if (useTPC_K) {
      AliRsnCutPIDNSigma *cutKTPC = new AliRsnCutPIDNSigma("cutPIDNSigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
      cutKTPC->SinglePIDRange(nSigmaTPC);
      cuts->AddCut(cutKTPC);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutKTPC->GetName();
   }

   if (useTOF_K) {
      AliRsnCutPIDNSigma *cutKTOF = new AliRsnCutPIDNSigma("cutPIDNSigmaTOFK",AliPID::kKaon,AliRsnCutPIDNSigma::kTOF);
      cutKTOF->SinglePIDRange(nSigmaTOF);
      cuts->AddCut(cutKTOF);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutKTOF->GetName();
   }

   if (useEta) {
      Printf("Adding ETA ...");
      AliRsnValueDaughter *valEta = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kEta);
      AliRsnCutValue *cutEta = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type1),opt.Data()),-etaRange,etaRange);
      cutEta->SetTargetType(AliRsnTarget::kDaughter);
      cutEta->SetValueObj(valEta);
      cuts->AddCut(cutEta);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutEta->GetName();
   }

   if (useTrackPtCut) {
      Printf("Adding Pt min=%.3f max=%.3f ...",trackPtMin,trackPtMax);
      AliRsnValueDaughter *valTrackPt = new AliRsnValueDaughter(Form("val%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kPt);

      AliRsnCutValue *cutTrackPt = new AliRsnCutValue(Form("cut%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),trackPtMin,trackPtMax);
      cutTrackPt->SetTargetType(AliRsnTarget::kDaughter);
      cutTrackPt->SetValueObj(valTrackPt);
      cuts->AddCut(cutTrackPt);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutTrackPt->GetName();
   }

   if (usePDG) {
      Printf("Adding PDG ...");
      AliRsnCutPID *cutPDG = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
      cuts->AddCut(cutPDG);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutPDG->GetName();
   }

   Printf ("CUT Scheme is '%s'",scheme.Data());
   cuts->SetCutScheme(scheme.Data());

   if (opt.Contains("mon")) {
      AddMonitorOutput(cuts->GetMonitorOutput(),opt);
   }
   if (isRsnMini) {
      AliRsnMiniAnalysisTask *taskRsnMini = (AliRsnMiniAnalysisTask *)task;
      if (taskRsnMini) {
         taskRsnMini->AddTrackCuts(cuts);
      }
   } else {
      AliRsnDaughterSelector *sel = rsnIH->GetSelector();
//       sel->SetLabelCheck(kFALSE);
      sel->Add(cuts, kTRUE);
   }
   return numberOfCuts;

}

 AddRsnDaughterCutsPhiNsigma.C:1
 AddRsnDaughterCutsPhiNsigma.C:2
 AddRsnDaughterCutsPhiNsigma.C:3
 AddRsnDaughterCutsPhiNsigma.C:4
 AddRsnDaughterCutsPhiNsigma.C:5
 AddRsnDaughterCutsPhiNsigma.C:6
 AddRsnDaughterCutsPhiNsigma.C:7
 AddRsnDaughterCutsPhiNsigma.C:8
 AddRsnDaughterCutsPhiNsigma.C:9
 AddRsnDaughterCutsPhiNsigma.C:10
 AddRsnDaughterCutsPhiNsigma.C:11
 AddRsnDaughterCutsPhiNsigma.C:12
 AddRsnDaughterCutsPhiNsigma.C:13
 AddRsnDaughterCutsPhiNsigma.C:14
 AddRsnDaughterCutsPhiNsigma.C:15
 AddRsnDaughterCutsPhiNsigma.C:16
 AddRsnDaughterCutsPhiNsigma.C:17
 AddRsnDaughterCutsPhiNsigma.C:18
 AddRsnDaughterCutsPhiNsigma.C:19
 AddRsnDaughterCutsPhiNsigma.C:20
 AddRsnDaughterCutsPhiNsigma.C:21
 AddRsnDaughterCutsPhiNsigma.C:22
 AddRsnDaughterCutsPhiNsigma.C:23
 AddRsnDaughterCutsPhiNsigma.C:24
 AddRsnDaughterCutsPhiNsigma.C:25
 AddRsnDaughterCutsPhiNsigma.C:26
 AddRsnDaughterCutsPhiNsigma.C:27
 AddRsnDaughterCutsPhiNsigma.C:28
 AddRsnDaughterCutsPhiNsigma.C:29
 AddRsnDaughterCutsPhiNsigma.C:30
 AddRsnDaughterCutsPhiNsigma.C:31
 AddRsnDaughterCutsPhiNsigma.C:32
 AddRsnDaughterCutsPhiNsigma.C:33
 AddRsnDaughterCutsPhiNsigma.C:34
 AddRsnDaughterCutsPhiNsigma.C:35
 AddRsnDaughterCutsPhiNsigma.C:36
 AddRsnDaughterCutsPhiNsigma.C:37
 AddRsnDaughterCutsPhiNsigma.C:38
 AddRsnDaughterCutsPhiNsigma.C:39
 AddRsnDaughterCutsPhiNsigma.C:40
 AddRsnDaughterCutsPhiNsigma.C:41
 AddRsnDaughterCutsPhiNsigma.C:42
 AddRsnDaughterCutsPhiNsigma.C:43
 AddRsnDaughterCutsPhiNsigma.C:44
 AddRsnDaughterCutsPhiNsigma.C:45
 AddRsnDaughterCutsPhiNsigma.C:46
 AddRsnDaughterCutsPhiNsigma.C:47
 AddRsnDaughterCutsPhiNsigma.C:48
 AddRsnDaughterCutsPhiNsigma.C:49
 AddRsnDaughterCutsPhiNsigma.C:50
 AddRsnDaughterCutsPhiNsigma.C:51
 AddRsnDaughterCutsPhiNsigma.C:52
 AddRsnDaughterCutsPhiNsigma.C:53
 AddRsnDaughterCutsPhiNsigma.C:54
 AddRsnDaughterCutsPhiNsigma.C:55
 AddRsnDaughterCutsPhiNsigma.C:56
 AddRsnDaughterCutsPhiNsigma.C:57
 AddRsnDaughterCutsPhiNsigma.C:58
 AddRsnDaughterCutsPhiNsigma.C:59
 AddRsnDaughterCutsPhiNsigma.C:60
 AddRsnDaughterCutsPhiNsigma.C:61
 AddRsnDaughterCutsPhiNsigma.C:62
 AddRsnDaughterCutsPhiNsigma.C:63
 AddRsnDaughterCutsPhiNsigma.C:64
 AddRsnDaughterCutsPhiNsigma.C:65
 AddRsnDaughterCutsPhiNsigma.C:66
 AddRsnDaughterCutsPhiNsigma.C:67
 AddRsnDaughterCutsPhiNsigma.C:68
 AddRsnDaughterCutsPhiNsigma.C:69
 AddRsnDaughterCutsPhiNsigma.C:70
 AddRsnDaughterCutsPhiNsigma.C:71
 AddRsnDaughterCutsPhiNsigma.C:72
 AddRsnDaughterCutsPhiNsigma.C:73
 AddRsnDaughterCutsPhiNsigma.C:74
 AddRsnDaughterCutsPhiNsigma.C:75
 AddRsnDaughterCutsPhiNsigma.C:76
 AddRsnDaughterCutsPhiNsigma.C:77
 AddRsnDaughterCutsPhiNsigma.C:78
 AddRsnDaughterCutsPhiNsigma.C:79
 AddRsnDaughterCutsPhiNsigma.C:80
 AddRsnDaughterCutsPhiNsigma.C:81
 AddRsnDaughterCutsPhiNsigma.C:82
 AddRsnDaughterCutsPhiNsigma.C:83
 AddRsnDaughterCutsPhiNsigma.C:84
 AddRsnDaughterCutsPhiNsigma.C:85
 AddRsnDaughterCutsPhiNsigma.C:86
 AddRsnDaughterCutsPhiNsigma.C:87
 AddRsnDaughterCutsPhiNsigma.C:88
 AddRsnDaughterCutsPhiNsigma.C:89
 AddRsnDaughterCutsPhiNsigma.C:90
 AddRsnDaughterCutsPhiNsigma.C:91
 AddRsnDaughterCutsPhiNsigma.C:92
 AddRsnDaughterCutsPhiNsigma.C:93
 AddRsnDaughterCutsPhiNsigma.C:94
 AddRsnDaughterCutsPhiNsigma.C:95
 AddRsnDaughterCutsPhiNsigma.C:96
 AddRsnDaughterCutsPhiNsigma.C:97
 AddRsnDaughterCutsPhiNsigma.C:98
 AddRsnDaughterCutsPhiNsigma.C:99
 AddRsnDaughterCutsPhiNsigma.C:100
 AddRsnDaughterCutsPhiNsigma.C:101
 AddRsnDaughterCutsPhiNsigma.C:102
 AddRsnDaughterCutsPhiNsigma.C:103
 AddRsnDaughterCutsPhiNsigma.C:104
 AddRsnDaughterCutsPhiNsigma.C:105
 AddRsnDaughterCutsPhiNsigma.C:106
 AddRsnDaughterCutsPhiNsigma.C:107
 AddRsnDaughterCutsPhiNsigma.C:108
 AddRsnDaughterCutsPhiNsigma.C:109
 AddRsnDaughterCutsPhiNsigma.C:110
 AddRsnDaughterCutsPhiNsigma.C:111
 AddRsnDaughterCutsPhiNsigma.C:112
 AddRsnDaughterCutsPhiNsigma.C:113
 AddRsnDaughterCutsPhiNsigma.C:114
 AddRsnDaughterCutsPhiNsigma.C:115
 AddRsnDaughterCutsPhiNsigma.C:116
 AddRsnDaughterCutsPhiNsigma.C:117
 AddRsnDaughterCutsPhiNsigma.C:118
 AddRsnDaughterCutsPhiNsigma.C:119
 AddRsnDaughterCutsPhiNsigma.C:120
 AddRsnDaughterCutsPhiNsigma.C:121
 AddRsnDaughterCutsPhiNsigma.C:122
 AddRsnDaughterCutsPhiNsigma.C:123
 AddRsnDaughterCutsPhiNsigma.C:124
 AddRsnDaughterCutsPhiNsigma.C:125
 AddRsnDaughterCutsPhiNsigma.C:126
 AddRsnDaughterCutsPhiNsigma.C:127
 AddRsnDaughterCutsPhiNsigma.C:128
 AddRsnDaughterCutsPhiNsigma.C:129
 AddRsnDaughterCutsPhiNsigma.C:130
 AddRsnDaughterCutsPhiNsigma.C:131
 AddRsnDaughterCutsPhiNsigma.C:132
 AddRsnDaughterCutsPhiNsigma.C:133
 AddRsnDaughterCutsPhiNsigma.C:134
 AddRsnDaughterCutsPhiNsigma.C:135
 AddRsnDaughterCutsPhiNsigma.C:136
 AddRsnDaughterCutsPhiNsigma.C:137
 AddRsnDaughterCutsPhiNsigma.C:138
 AddRsnDaughterCutsPhiNsigma.C:139
 AddRsnDaughterCutsPhiNsigma.C:140
 AddRsnDaughterCutsPhiNsigma.C:141
 AddRsnDaughterCutsPhiNsigma.C:142
 AddRsnDaughterCutsPhiNsigma.C:143
 AddRsnDaughterCutsPhiNsigma.C:144
 AddRsnDaughterCutsPhiNsigma.C:145
 AddRsnDaughterCutsPhiNsigma.C:146
 AddRsnDaughterCutsPhiNsigma.C:147
 AddRsnDaughterCutsPhiNsigma.C:148
 AddRsnDaughterCutsPhiNsigma.C:149
 AddRsnDaughterCutsPhiNsigma.C:150
 AddRsnDaughterCutsPhiNsigma.C:151
 AddRsnDaughterCutsPhiNsigma.C:152
 AddRsnDaughterCutsPhiNsigma.C:153
 AddRsnDaughterCutsPhiNsigma.C:154
 AddRsnDaughterCutsPhiNsigma.C:155
 AddRsnDaughterCutsPhiNsigma.C:156
 AddRsnDaughterCutsPhiNsigma.C:157
 AddRsnDaughterCutsPhiNsigma.C:158
 AddRsnDaughterCutsPhiNsigma.C:159
 AddRsnDaughterCutsPhiNsigma.C:160
 AddRsnDaughterCutsPhiNsigma.C:161
 AddRsnDaughterCutsPhiNsigma.C:162
 AddRsnDaughterCutsPhiNsigma.C:163
 AddRsnDaughterCutsPhiNsigma.C:164
 AddRsnDaughterCutsPhiNsigma.C:165
 AddRsnDaughterCutsPhiNsigma.C:166
 AddRsnDaughterCutsPhiNsigma.C:167
 AddRsnDaughterCutsPhiNsigma.C:168
 AddRsnDaughterCutsPhiNsigma.C:169
 AddRsnDaughterCutsPhiNsigma.C:170
 AddRsnDaughterCutsPhiNsigma.C:171
 AddRsnDaughterCutsPhiNsigma.C:172
 AddRsnDaughterCutsPhiNsigma.C:173
 AddRsnDaughterCutsPhiNsigma.C:174
 AddRsnDaughterCutsPhiNsigma.C:175