]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsKStar.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / lego_train / AddRsnDaughterCutsKStar.C
1 #ifndef __CINT__
2 #include <PWG2/RESONANCES/AliRsnInputHandler.h>
3 #include <PWG2/RESONANCES/AliRsnCutSet.h>
4 #include <PWG2/RESONANCES/AliRsnCutDaughterKStar2010PP.h>
5 #endif
6 Int_t AddRsnDaughterCutsKStar(AliPID::EParticleType type1,AliPID::EParticleType type2,TString opt,AliRsnInputHandler *rsnIH=0,AliAnalysisTaskSE *task=0)
7 {
8
9    if (!rsnIH) return 0;
10
11    Bool_t valid;
12    Int_t isRsnMini = AliRsnTrainManager::GetGlobalInt("IsRsnMini",valid);
13
14    // === USER HAS TO SET CORRECT NUMBER OF CUTS SETS =====
15    Int_t numberOfCuts = 2;
16
17    Printf("AddRsnDaughterCutsKStar Option : %s",opt.Data());
18
19    AliRsnCutPion *cutPi = 0;
20    AliRsnCutKaon *cutK = 0;
21    if (opt.Contains("TPCTOFpidDefaultKstarPP2010")) {
22       cutPi = new AliRsnCutPion("cutPionTPCTOFpidDefaultKstarPP2010", AliRsnCutPion::kTPCTOFpidDefaultKstarPP2010);
23       cutK = new AliRsnCutKaon("cutKaonTPCTOFpidDefaultKstarPP2010", AliRsnCutKaon::kTPCTOFpidDefaultKstarPP2010);
24    } else if (opt.Contains("FastTPCpid1point5sigma")) {
25       cutPi = new AliRsnCutPion("cutPionForKStarFastTPCpid1point5sigma", AliRsnCutPion::kFastTPCpid1point5sigma);
26       cutK = new AliRsnCutKaon("cutKaonForKStarFastTPCpid1point5sigma", AliRsnCutKaon::kFastTPCpid1point5sigma);
27    } else if (opt.Contains("FastTPCpid2sigma")) {
28       cutPi = new AliRsnCutPion("cutPionForKStarFastTPCpid2sigma", AliRsnCutPion::kFastTPCpid2sigma);
29       cutK = new AliRsnCutKaon("cutKaonForKStarFastTPCpid2sigma", AliRsnCutKaon::kFastTPCpid2sigma);
30    } else {
31       cutPi = new AliRsnCutPion("cutPionDefault");
32       cutK = new AliRsnCutKaon("cutKaonDefault")
33    }
34    AliRsnCutSet *cutSetPi = new AliRsnCutSet(Form("set%s",cutPi->GetName()), AliRsnTarget::kDaughter);
35    cutSetPi->AddCut(cutPi);
36    cutSetPi->SetCutScheme(cutPi->GetName());
37
38    // cut set
39    AliRsnCutSet *cutSetK = new AliRsnCutSet(Form("set%s",cutK->GetName()), AliRsnTarget::kDaughter);
40    cutSetK->AddCut(cutK);
41    cutSetK->SetCutScheme(cutK->GetName());
42
43
44    if (opt.Contains("mon")) {
45       Printf("Monitoring cut AddRsnDaughterCutsKStar Option : %s",opt.Data());
46       AddMonitorOutput(cutSetPi->GetMonitorOutput());
47       AddMonitorOutput(cutSetK->GetMonitorOutput());
48    }
49    if (isRsnMini) {
50       AliRsnMiniAnalysisTask *taskRsnMini = dynamic_cast<AliRsnMiniAnalysisTask *>(task);
51       if (taskRsnMini) {
52          taskRsnMini->AddTrackCuts(cutSetPi);
53          taskRsnMini->AddTrackCuts(cutSetK);
54       }
55    } else {
56       AliRsnDaughterSelector *sel = rsnIH->GetSelector();
57       sel->Add(cutSetPi, kTRUE);
58       sel->Add(cutSetK, kTRUE);
59    }
60
61
62    return numberOfCuts;
63 }