]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsPhiNsigma.C
Updated macros for lego_train
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / lego_train / AddRsnDaughterCutsPhiNsigma.C
CommitLineData
4ce3e7cd 1#ifndef __CINT__
db54daad 2#include <AliRsnCutTrackQuality.h>
4ce3e7cd 3#endif
4Int_t AddRsnDaughterCutsPhiNsigma(AliPID::EParticleType type1,AliPID::EParticleType type2,TString opt,Bool_t isRsnMini=kFALSE,AliRsnInputHandler *rsnIH=0,AliAnalysisTaskSE *task=0)
5{
6
7 if (!rsnIH) return 0;
8
9 Bool_t valid = kTRUE;
10 Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
db54daad 11 Int_t useCommonQualityCut = AliAnalysisManager::GetGlobalInt("rsnCommonQualityCut",valid);
12
4ce3e7cd 13
14 Bool_t usePPCut = kFALSE;
15
16 if (isPP && (opt.Contains("usePP"))) usePPCut = kTRUE;
17
18
19 // === USER HAS TO SET CORRECT NUMBER OF CUTS SETS =====
20 Int_t numberOfCuts = 1;
21
22 //---------------------------------------------
23 // Define single cuts
24 //---------------------------------------------
25
26 Printf("AliRsnCutPIDNSigma Option : %s",opt.Data());
27
28 Double_t nSigmaTPC=3.0;
29 Double_t nSigmaTOF=3.0;
30 Double_t etaRange=0.8;
db54daad 31 Double_t trackPtMin=0.;
32 Double_t trackPtMax=1.e10;
4ce3e7cd 33
34 Bool_t useTPC_K=kFALSE;
35 Bool_t useTOF_K=kFALSE;
db54daad 36 Bool_t useTrackPtCut=kFALSE;
4ce3e7cd 37
38 if (opt.Contains("qualityonly")) {
39 useTPC_K=kFALSE;
40 useTOF_K=kFALSE;
41 } else if (!opt.Contains("nsig")) {
42 useTPC_K=kTRUE;
43 useTOF_K=kTRUE;
44 }
45
46 if (opt.Contains("KTPCnsig")) useTPC_K=kTRUE;
47 if (opt.Contains("KTOFnsig")) useTOF_K=kTRUE;
48
49 if (opt.Contains("KTPCnsig10")) nSigmaTPC = 1.0;
50 if (opt.Contains("KTPCnsig15")) nSigmaTPC = 1.5;
51 if (opt.Contains("KTPCnsig20")) nSigmaTPC = 2.0;
52 if (opt.Contains("KTPCnsig25")) nSigmaTPC = 2.5;
53 if (opt.Contains("KTPCnsig30")) nSigmaTPC = 3.0;
54
55 if (opt.Contains("KTOFnsig10")) nSigmaTOF = 1.0;
56 if (opt.Contains("KTOFnsig15")) nSigmaTOF = 1.5;
57 if (opt.Contains("KTOFnsig20")) nSigmaTOF = 2.0;
58 if (opt.Contains("KTOFnsig25")) nSigmaTOF = 2.5;
59 if (opt.Contains("KTOFnsig30")) nSigmaTOF = 3.0;
60
db54daad 61 if (opt.Contains("trackPt")) {
62 useTrackPtCut = kTRUE;
63 if (opt.Contains("trackPtMin02")) trackPtMin = 0.2;
64 if (opt.Contains("trackPtMin05")) trackPtMin = 0.5;
65
66 if (opt.Contains("trackPtMax18")) trackPtMax = 1.8;
67 if (opt.Contains("trackPtMax20")) trackPtMax = 2.0;
68 if (opt.Contains("trackPtMax25")) trackPtMax = 2.5;
69 }
70
4ce3e7cd 71 Bool_t usePDG=kFALSE;
72 if (opt.Contains("pdg")) {
73 Printf("Using PDG");
74 usePDG = kTRUE;
75 }
76
77 Bool_t useEta = kFALSE;
78 if (opt.Contains("eta")) {
db54daad 79 if(opt.Contains("eta08")) etaRange=0.8;
80 if(opt.Contains("eta07")) etaRange=0.7;
81 if(opt.Contains("eta06")) etaRange=0.6;
4ce3e7cd 82 Printf("Using ETA range (%.2f,%.2f)",-etaRange,etaRange);
83 useEta = kTRUE;
84 }
85
86//---------------------------------------------
87// Combine cuts
88//---------------------------------------------
89
90 TString cutname = "K_Phi";
91 if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
92 AliRsnCutSet *cuts = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
93
94 TString scheme="";
db54daad 95 AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQualityK");
96 if (useCommonQualityCut>=0) {
97 qualityCut->SetAODTestFilterBit(useCommonQualityCut);
98 } else {
99 qualityCut->SetDefaults2010();
100 }
4ce3e7cd 101 cuts->AddCut(qualityCut);
102 if (!scheme.IsNull()) scheme += "&";
103 scheme += qualityCut->GetName();
104
105
106 if (useTPC_K) {
107 AliRsnCutPIDNSigma *cutKTPC = new AliRsnCutPIDNSigma("cutPIDNSigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
108 cutKTPC->SinglePIDRange(nSigmaTPC);
109 cuts->AddCut(cutKTPC);
110 if (!scheme.IsNull()) scheme += "&";
111 scheme += cutKTPC->GetName();
112 }
113
114 if (useTOF_K) {
115 AliRsnCutPIDNSigma *cutKTOF = new AliRsnCutPIDNSigma("cutPIDNSigmaTOFK",AliPID::kKaon,AliRsnCutPIDNSigma::kTOF);
116 cutKTOF->SinglePIDRange(nSigmaTOF);
117 cuts->AddCut(cutKTOF);
118 if (!scheme.IsNull()) scheme += "&";
119 scheme += cutKTOF->GetName();
120 }
db54daad 121
4ce3e7cd 122 if (useEta) {
123 Printf("Adding ETA ...");
124 AliRsnValueDaughter *valEta = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kEta);
125 AliRsnCutValue *cutEta = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type1),opt.Data()),-etaRange,etaRange);
126 cutEta->SetTargetType(AliRsnTarget::kDaughter);
127 cutEta->SetValueObj(valEta);
128 cuts->AddCut(cutEta);
129 if (!scheme.IsNull()) scheme += "&";
130 scheme += cutEta->GetName();
131 }
db54daad 132
133 if (useTrackPtCut) {
134 Printf("Adding Pt min=%.3f max=%.3f ...",trackPtMin,trackPtMax);
135 AliRsnValueDaughter *valTrackPt = new AliRsnValueDaughter(Form("val%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kPt);
136
137 AliRsnCutValue *cutTrackPt = new AliRsnCutValue(Form("cut%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),trackPtMin,trackPtMax);
138 cutTrackPt->SetTargetType(AliRsnTarget::kDaughter);
139 cutTrackPt->SetValueObj(valTrackPt);
140 cuts->AddCut(cutTrackPt);
141 if (!scheme.IsNull()) scheme += "&";
142 scheme += cutTrackPt->GetName();
143 }
144
4ce3e7cd 145 if (usePDG) {
146 Printf("Adding PDG ...");
147 AliRsnCutPID *cutPDG = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
148 cuts->AddCut(cutPDG);
149 if (!scheme.IsNull()) scheme += "&";
150 scheme += cutPDG->GetName();
151 }
152
153 Printf ("CUT Scheme is '%s'",scheme.Data());
154 cuts->SetCutScheme(scheme.Data());
155
156 if (opt.Contains("mon")) {
157 AddMonitorOutput(cuts->GetMonitorOutput(),opt);
158 }
159 if (isRsnMini) {
db54daad 160 AliRsnMiniAnalysisTask *taskRsnMini = (AliRsnMiniAnalysisTask *)task;
4ce3e7cd 161 if (taskRsnMini) {
162 taskRsnMini->AddTrackCuts(cuts);
163 }
164 } else {
165 AliRsnDaughterSelector *sel = rsnIH->GetSelector();
166// sel->SetLabelCheck(kFALSE);
167 sel->Add(cuts, kTRUE);
168 }
169 return numberOfCuts;
170
171}
172