ROOT logo
#ifndef __CINT__
#include <PWGLF/RESONANCES/AliRsnCutSet.h>
#include <PWGLF/RESONANCES/AliRsnInputHandler.h>
#include <PWGLF/RESONANCES/AliRsnCutKaonForPhi2010.h>
#include <PWGLF/RESONANCES/AliRsnMiniAnalysisTask.h>
#include <PWGLF/RESONANCES/AliRsnAnalysisTask.h>
#include <PWGLF/RESONANCES/AliRsnValueDaughter.h>
#include <RESONANCES/AliRsnCutPID.h>
#include <RESONANCES/AliRsnCutKaonForPhi2010PP.h>
#include <RESONANCES/AliRsnCutValue.h>
#endif
Int_t AddRsnDaughterCutsPhi2010(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("AddRsnDaughterCutsPhi2010 Option : %s",opt.Data());

   Bool_t useTrackPtCut = kFALSE;
   Double_t trackPtMin = 0.0;
   Double_t trackPtMax = 100000.0;
   Double_t nSigmaTPC=3.0;
   Double_t nSigmaTOF=3.0;
   Double_t ptTPCMax=0.6;
   Double_t etaRange=0.5;
//     etaRange=0.1;

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

   if (opt.Contains("TPCsigma1")) nSigmaTPC = 1.0;
   if (opt.Contains("TPCsigma2")) nSigmaTPC = 2.0;
   if (opt.Contains("TPCsigma3")) nSigmaTPC = 3.0;
   if (opt.Contains("TPCsigma1.5")) nSigmaTPC = 1.5;
   if (opt.Contains("TPCsigma2.5")) nSigmaTPC = 2.5;

   if (opt.Contains("TOFsigma1")) nSigmaTOF = 1.0;
   if (opt.Contains("TOFsigma2")) nSigmaTOF = 2.0;
   if (opt.Contains("TOFsigma3")) nSigmaTOF = 3.0;



   if (opt.Contains("tpcptMax")) {
      if (opt.Contains("tpcptMax04")) ptTPCMax=0.4;
      if (opt.Contains("tpcptMax05")) ptTPCMax=0.5;
      if (opt.Contains("tpcptMax06")) ptTPCMax=0.6;
      if (opt.Contains("tpcptMax07")) ptTPCMax=0.7;
      if (opt.Contains("tpcptMax08")) ptTPCMax=0.8;
      if (opt.Contains("tpcptMax09")) ptTPCMax=0.9;
      if (opt.Contains("tpcptMax10")) ptTPCMax=1.0;
   }

   AliRsnCutKaonForPhi2010PP *cutPP=0;
   AliRsnCutKaonForPhi2010 *cutPbPb=0;
   AliRsnCut *cut;
   if (usePPCut) {
      Printf("Using AliRsnCutKaonForPhi2010PP ...");
      AliRsnCutKaonForPhi2010PP *cutPP = new AliRsnCutKaonForPhi2010PP("cutKaonPhi2010PP");
      cutPP->SetTPCNSigmaLow(nSigmaTPC);
      cutPP->SetTPCNSigmaHigh(5.0);
      cutPP->SetTPCLimit(ptTPCMax);
      cutPP->SetTOFNSigma(nSigmaTOF);
      cut = cutPP;
   }
   else {
      Printf("Using AliRsnCutKaonForPhi2010 ...");
      AliRsnCutKaonForPhi2010 *cutPbPb = new AliRsnCutKaonForPhi2010("cutKaonPhi2010",nSigmaTPC,nSigmaTOF,ptTPCMax);
      if (opt.Contains("qualityonly")) cutPbPb->SetMode(AliRsnCutKaonForPhi2010::kQuality);
      if (opt.Contains("tofonly")) cutPbPb->SetMode(AliRsnCutKaonForPhi2010::kOnlyTOF);
      if (opt.Contains("tpconly")) cutPbPb->SetMode(AliRsnCutKaonForPhi2010::kOnlyTPC);

      cut = cutPbPb;
   }

   Bool_t usePDG=kFALSE;
   if (opt.Contains("pdg")) {
      Printf("Using PDG");
      usePDG = kTRUE;
      if (opt.Contains("pdgPI")) type1 = AliPID::kPion;
//       type1 = AliPID::kPion;

   }


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

   //---------------------------------------------
   //  Combine cuts
   //---------------------------------------------
   TString cutname = "kaonPhi2010";
   if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
   AliRsnCutSet *cuts = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
   cuts->AddCut(cut);

   TString scheme="";
   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 (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();
   }

   if (!scheme.IsNull()) scheme += "&";
   scheme += cut->GetName();

   Printf ("------ scheme '%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;

}

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