ROOT logo
#ifndef __CINT__
#include <AliRsnCutPIDNSigma.h>
#include <PWGLF/RESONANCES/AliRsnCutTrackQuality.h>
#endif
Int_t AddRsnDaughterCutsRhoNsigma(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);

   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("AddRsnDaughterCutsRho Option : %s",opt.Data());

   Double_t nSigmaTPC=3.0;
   Double_t nSigmaTOF=3.0;
   Double_t etaRange=0.8;
   Bool_t useTPC_Pi=kFALSE;
   Bool_t useTOF_Pi=kFALSE;

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

   if (opt.Contains("PiTPCnsig"))  useTPC_Pi=kTRUE;
   if (opt.Contains("PiTOFnsig"))  useTOF_Pi=kTRUE;

   if (opt.Contains("PiTPCnsig10")) nSigmaTPC = 1.0;
   if (opt.Contains("PiTPCnsig15")) nSigmaTPC = 1.5;
   if (opt.Contains("PiTPCnsig20")) nSigmaTPC = 2.0;
   if (opt.Contains("PiTPCnsig25")) nSigmaTPC = 2.5;
   if (opt.Contains("PiTPCnsig30")) nSigmaTPC = 3.0;

   if (opt.Contains("PiTOFnsig10")) nSigmaTOF = 1.0;
   if (opt.Contains("PiTOFnsig15")) nSigmaTOF = 1.5;
   if (opt.Contains("PiTOFnsig20")) nSigmaTOF = 2.0;
   if (opt.Contains("PiTOFnsig25")) nSigmaTOF = 2.5;
   if (opt.Contains("PiTOFnsig30")) nSigmaTOF = 3.0;

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

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

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

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

   TString scheme="";

   AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQuatityPi");
   qualityCut->SetDefaults2010();
   cuts->AddCut(qualityCut);
   if (!scheme.IsNull()) scheme += "&";
   scheme += qualityCut->GetName();

   if (useTPC_Pi) {
      AliRsnCutPIDNSigma *cutPiTPC = new AliRsnCutPIDNSigma("cutPIDNSigmaTPCPi",AliPID::kPion,AliRsnCutPIDNSigma::kTPC);
      cutPiTPC->SinglePIDRange(nSigmaTPC);
      cuts->AddCut(cutPiTPC);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutPiTPC->GetName();
   }
   if (useTOF_Pi) {
      AliRsnCutPIDNSigma *cutPiTOF = new AliRsnCutPIDNSigma("cutPIDNSigmaTOFPi",AliPID::kPion,AliRsnCutPIDNSigma::kTOF);
      cutPiTOF->SinglePIDRange(nSigmaTOF);
      cuts->AddCut(cutPiTOF);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutPiTOF->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 (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 = dynamic_cast<AliRsnMiniAnalysisTask *>(task);
      if (taskRsnMini) {
         taskRsnMini->AddTrackCuts(cuts);
      }
   } else {
      AliRsnDaughterSelector *sel = rsnIH->GetSelector();
//       sel->SetLabelCheck(kFALSE);
      sel->Add(cuts, kTRUE);
   }
   return numberOfCuts;

}

 AddRsnDaughterCutsRhoNsigma.C:1
 AddRsnDaughterCutsRhoNsigma.C:2
 AddRsnDaughterCutsRhoNsigma.C:3
 AddRsnDaughterCutsRhoNsigma.C:4
 AddRsnDaughterCutsRhoNsigma.C:5
 AddRsnDaughterCutsRhoNsigma.C:6
 AddRsnDaughterCutsRhoNsigma.C:7
 AddRsnDaughterCutsRhoNsigma.C:8
 AddRsnDaughterCutsRhoNsigma.C:9
 AddRsnDaughterCutsRhoNsigma.C:10
 AddRsnDaughterCutsRhoNsigma.C:11
 AddRsnDaughterCutsRhoNsigma.C:12
 AddRsnDaughterCutsRhoNsigma.C:13
 AddRsnDaughterCutsRhoNsigma.C:14
 AddRsnDaughterCutsRhoNsigma.C:15
 AddRsnDaughterCutsRhoNsigma.C:16
 AddRsnDaughterCutsRhoNsigma.C:17
 AddRsnDaughterCutsRhoNsigma.C:18
 AddRsnDaughterCutsRhoNsigma.C:19
 AddRsnDaughterCutsRhoNsigma.C:20
 AddRsnDaughterCutsRhoNsigma.C:21
 AddRsnDaughterCutsRhoNsigma.C:22
 AddRsnDaughterCutsRhoNsigma.C:23
 AddRsnDaughterCutsRhoNsigma.C:24
 AddRsnDaughterCutsRhoNsigma.C:25
 AddRsnDaughterCutsRhoNsigma.C:26
 AddRsnDaughterCutsRhoNsigma.C:27
 AddRsnDaughterCutsRhoNsigma.C:28
 AddRsnDaughterCutsRhoNsigma.C:29
 AddRsnDaughterCutsRhoNsigma.C:30
 AddRsnDaughterCutsRhoNsigma.C:31
 AddRsnDaughterCutsRhoNsigma.C:32
 AddRsnDaughterCutsRhoNsigma.C:33
 AddRsnDaughterCutsRhoNsigma.C:34
 AddRsnDaughterCutsRhoNsigma.C:35
 AddRsnDaughterCutsRhoNsigma.C:36
 AddRsnDaughterCutsRhoNsigma.C:37
 AddRsnDaughterCutsRhoNsigma.C:38
 AddRsnDaughterCutsRhoNsigma.C:39
 AddRsnDaughterCutsRhoNsigma.C:40
 AddRsnDaughterCutsRhoNsigma.C:41
 AddRsnDaughterCutsRhoNsigma.C:42
 AddRsnDaughterCutsRhoNsigma.C:43
 AddRsnDaughterCutsRhoNsigma.C:44
 AddRsnDaughterCutsRhoNsigma.C:45
 AddRsnDaughterCutsRhoNsigma.C:46
 AddRsnDaughterCutsRhoNsigma.C:47
 AddRsnDaughterCutsRhoNsigma.C:48
 AddRsnDaughterCutsRhoNsigma.C:49
 AddRsnDaughterCutsRhoNsigma.C:50
 AddRsnDaughterCutsRhoNsigma.C:51
 AddRsnDaughterCutsRhoNsigma.C:52
 AddRsnDaughterCutsRhoNsigma.C:53
 AddRsnDaughterCutsRhoNsigma.C:54
 AddRsnDaughterCutsRhoNsigma.C:55
 AddRsnDaughterCutsRhoNsigma.C:56
 AddRsnDaughterCutsRhoNsigma.C:57
 AddRsnDaughterCutsRhoNsigma.C:58
 AddRsnDaughterCutsRhoNsigma.C:59
 AddRsnDaughterCutsRhoNsigma.C:60
 AddRsnDaughterCutsRhoNsigma.C:61
 AddRsnDaughterCutsRhoNsigma.C:62
 AddRsnDaughterCutsRhoNsigma.C:63
 AddRsnDaughterCutsRhoNsigma.C:64
 AddRsnDaughterCutsRhoNsigma.C:65
 AddRsnDaughterCutsRhoNsigma.C:66
 AddRsnDaughterCutsRhoNsigma.C:67
 AddRsnDaughterCutsRhoNsigma.C:68
 AddRsnDaughterCutsRhoNsigma.C:69
 AddRsnDaughterCutsRhoNsigma.C:70
 AddRsnDaughterCutsRhoNsigma.C:71
 AddRsnDaughterCutsRhoNsigma.C:72
 AddRsnDaughterCutsRhoNsigma.C:73
 AddRsnDaughterCutsRhoNsigma.C:74
 AddRsnDaughterCutsRhoNsigma.C:75
 AddRsnDaughterCutsRhoNsigma.C:76
 AddRsnDaughterCutsRhoNsigma.C:77
 AddRsnDaughterCutsRhoNsigma.C:78
 AddRsnDaughterCutsRhoNsigma.C:79
 AddRsnDaughterCutsRhoNsigma.C:80
 AddRsnDaughterCutsRhoNsigma.C:81
 AddRsnDaughterCutsRhoNsigma.C:82
 AddRsnDaughterCutsRhoNsigma.C:83
 AddRsnDaughterCutsRhoNsigma.C:84
 AddRsnDaughterCutsRhoNsigma.C:85
 AddRsnDaughterCutsRhoNsigma.C:86
 AddRsnDaughterCutsRhoNsigma.C:87
 AddRsnDaughterCutsRhoNsigma.C:88
 AddRsnDaughterCutsRhoNsigma.C:89
 AddRsnDaughterCutsRhoNsigma.C:90
 AddRsnDaughterCutsRhoNsigma.C:91
 AddRsnDaughterCutsRhoNsigma.C:92
 AddRsnDaughterCutsRhoNsigma.C:93
 AddRsnDaughterCutsRhoNsigma.C:94
 AddRsnDaughterCutsRhoNsigma.C:95
 AddRsnDaughterCutsRhoNsigma.C:96
 AddRsnDaughterCutsRhoNsigma.C:97
 AddRsnDaughterCutsRhoNsigma.C:98
 AddRsnDaughterCutsRhoNsigma.C:99
 AddRsnDaughterCutsRhoNsigma.C:100
 AddRsnDaughterCutsRhoNsigma.C:101
 AddRsnDaughterCutsRhoNsigma.C:102
 AddRsnDaughterCutsRhoNsigma.C:103
 AddRsnDaughterCutsRhoNsigma.C:104
 AddRsnDaughterCutsRhoNsigma.C:105
 AddRsnDaughterCutsRhoNsigma.C:106
 AddRsnDaughterCutsRhoNsigma.C:107
 AddRsnDaughterCutsRhoNsigma.C:108
 AddRsnDaughterCutsRhoNsigma.C:109
 AddRsnDaughterCutsRhoNsigma.C:110
 AddRsnDaughterCutsRhoNsigma.C:111
 AddRsnDaughterCutsRhoNsigma.C:112
 AddRsnDaughterCutsRhoNsigma.C:113
 AddRsnDaughterCutsRhoNsigma.C:114
 AddRsnDaughterCutsRhoNsigma.C:115
 AddRsnDaughterCutsRhoNsigma.C:116
 AddRsnDaughterCutsRhoNsigma.C:117
 AddRsnDaughterCutsRhoNsigma.C:118
 AddRsnDaughterCutsRhoNsigma.C:119
 AddRsnDaughterCutsRhoNsigma.C:120
 AddRsnDaughterCutsRhoNsigma.C:121
 AddRsnDaughterCutsRhoNsigma.C:122
 AddRsnDaughterCutsRhoNsigma.C:123
 AddRsnDaughterCutsRhoNsigma.C:124
 AddRsnDaughterCutsRhoNsigma.C:125
 AddRsnDaughterCutsRhoNsigma.C:126
 AddRsnDaughterCutsRhoNsigma.C:127
 AddRsnDaughterCutsRhoNsigma.C:128
 AddRsnDaughterCutsRhoNsigma.C:129
 AddRsnDaughterCutsRhoNsigma.C:130
 AddRsnDaughterCutsRhoNsigma.C:131
 AddRsnDaughterCutsRhoNsigma.C:132
 AddRsnDaughterCutsRhoNsigma.C:133
 AddRsnDaughterCutsRhoNsigma.C:134
 AddRsnDaughterCutsRhoNsigma.C:135
 AddRsnDaughterCutsRhoNsigma.C:136