]>
Commit | Line | Data |
---|---|---|
6be5eb30 | 1 | void InitHistograms(AliDielectron *die, Int_t cutDefinition); |
2 | void InitCF(AliDielectron* die, Int_t cutDefinition); | |
3 | void EnableMC(); | |
4 | ||
1350e718 | 5 | TString names=("noPairing;TPCTOFCentnoRej;TPCTOFSemiCentnoRej;TPCTOFPerinoRej;TPCTOFCent;TPCTOFSemiCent;TPCTOFPeri;TPCTOFCentnoRejTight;TPCTOFCentTight;TPCTOFCentPhiV;TPCTOFSemiCentPhiV;TPCTOFPeriPhiV;TPCTOFCentOA;TPCTOFSemiCentOA;TPCTOFPeriOA"); |
6be5eb30 | 6 | TObjArray *arrNames=names.Tokenize(";"); |
7 | const Int_t nDie=arrNames->GetEntries(); | |
8 | ||
9 | Bool_t MCenabled=kFALSE; | |
10 | ||
11 | ||
52d0fcc6 | 12 | AliDielectron* ConfigLMEEPbPb2011(Int_t cutDefinition, Bool_t withMC=kFALSE, Bool_t CFenable=kFALSE) |
6be5eb30 | 13 | { |
14 | ||
15 | Int_t selectedPID=-1; | |
16 | Int_t selectedCentrality=-1; | |
17 | Bool_t rejectionStep=kFALSE; | |
18 | LMEECutLib* LMCL = new LMEECutLib(); | |
19 | ||
20 | // | |
21 | // Setup the instance of AliDielectron | |
22 | // | |
23 | ||
52d0fcc6 | 24 | MCenabled=withMC; |
6be5eb30 | 25 | // create the actual framework object |
26 | ||
27 | TString name=Form("%02d",cutDefinition); | |
28 | if ((cutDefinition)<arrNames->GetEntriesFast()){ | |
29 | name=arrNames->At((cutDefinition))->GetName(); | |
30 | } | |
31 | ||
32 | //thisCut only relevant for MC: | |
33 | AliDielectron *die = | |
34 | new AliDielectron(Form | |
35 | ("%s",name.Data()), | |
36 | Form("Track cuts: %s",name.Data())); | |
37 | ||
38 | ||
44f488b6 | 39 | if (MCenabled) |
40 | die->SetHasMC(kTRUE); | |
41 | ||
42 | ||
6be5eb30 | 43 | //Setup AnalysisSelection: |
44 | if (cutDefinition==0) { | |
45 | //not yet implemented | |
46 | } | |
47 | else if (cutDefinition==1) { | |
8d5670a6 | 48 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; |
6be5eb30 | 49 | selectedCentrality = LMEECutLib::kPbPb2011Central; |
50 | rejectionStep = kFALSE; | |
51 | } | |
52 | else if (cutDefinition==2) { | |
8d5670a6 | 53 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; |
6be5eb30 | 54 | selectedCentrality = LMEECutLib::kPbPb2011SemiCentral; |
55 | rejectionStep = kFALSE; | |
56 | } | |
57 | else if (cutDefinition==3) { | |
8d5670a6 | 58 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; |
6be5eb30 | 59 | selectedCentrality = LMEECutLib::kPbPb2011Peripheral; |
60 | rejectionStep = kFALSE; | |
61 | } | |
62 | else if (cutDefinition==4) { | |
8d5670a6 | 63 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; |
6be5eb30 | 64 | selectedCentrality = LMEECutLib::kPbPb2011Central; |
65 | rejectionStep = kTRUE; | |
66 | } | |
67 | else if (cutDefinition==5) { | |
8d5670a6 | 68 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; |
6be5eb30 | 69 | selectedCentrality = LMEECutLib::kPbPb2011SemiCentral; |
70 | rejectionStep = kTRUE; | |
71 | } | |
72 | else if (cutDefinition==6) { | |
8d5670a6 | 73 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; |
6be5eb30 | 74 | selectedCentrality = LMEECutLib::kPbPb2011Peripheral; |
75 | rejectionStep = kTRUE; | |
76 | } | |
8d5670a6 | 77 | |
78 | //Legacy cuts, check consistence w/ 1 & 4, then remove | |
79 | else if (cutDefinition==7) { | |
52d0fcc6 | 80 | selectedPID = LMEECutLib::kPbPb2011TPCandTOF; |
8d5670a6 | 81 | selectedCentrality = LMEECutLib::kPbPb2011Central; |
82 | rejectionStep = kFALSE; | |
83 | } | |
84 | else if (cutDefinition==8) { | |
52d0fcc6 | 85 | selectedPID = LMEECutLib::kPbPb2011TPCandTOF; |
8d5670a6 | 86 | selectedCentrality = LMEECutLib::kPbPb2011Central; |
87 | rejectionStep = kTRUE; | |
88 | } | |
89 | ||
54beba6b | 90 | else if (cutDefinition==9) { |
91 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; | |
92 | selectedCentrality = LMEECutLib::kPbPb2011Central; | |
93 | rejectionStep = kFALSE; | |
94 | } | |
95 | else if (cutDefinition==10) { | |
96 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; | |
97 | selectedCentrality = LMEECutLib::kPbPb2011SemiCentral; | |
98 | rejectionStep = kFALSE; | |
99 | } | |
100 | else if (cutDefinition==11) { | |
101 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; | |
102 | selectedCentrality = LMEECutLib::kPbPb2011Peripheral; | |
103 | rejectionStep = kFALSE; | |
104 | } | |
1350e718 | 105 | //OA: |
106 | else if (cutDefinition==12) { | |
107 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; | |
108 | selectedCentrality = LMEECutLib::kPbPb2011Central; | |
109 | rejectionStep = kFALSE; | |
110 | } | |
111 | else if (cutDefinition==13) { | |
112 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; | |
113 | selectedCentrality = LMEECutLib::kPbPb2011SemiCentral; | |
114 | rejectionStep = kFALSE; | |
115 | } | |
116 | else if (cutDefinition==14) { | |
117 | selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; | |
118 | selectedCentrality = LMEECutLib::kPbPb2011Peripheral; | |
119 | rejectionStep = kFALSE; | |
120 | } | |
54beba6b | 121 | |
6be5eb30 | 122 | else Semi{ |
123 | cout << " =============================== " << endl; | |
124 | cout << " ==== INVALID CONFIGURATION ==== " << endl; | |
125 | cout << " =============================== " << endl; | |
126 | } | |
127 | ||
128 | ||
129 | //Now configure task | |
130 | ||
131 | //Apply correct Pre-Filter Scheme, if necessary | |
132 | die->SetPreFilterAllSigns(); | |
133 | ||
134 | if (rejectionStep) { | |
9a476b26 | 135 | //for Pb-Pb, only use tight PID (combinatorics) for rejection |
136 | die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) ); | |
137 | //die->GetTrackFilter().AddCuts(LMCL->GetPIDCutsPre(selectedPID) ); | |
6be5eb30 | 138 | die->GetPairPreFilterLegs().AddCuts(LMCL->GetPIDCutsAna(selectedPID) ); |
139 | die->GetPairPreFilter().AddCuts(LMCL->GetPairCuts(selectedPID) ); | |
140 | } | |
141 | else { //No Prefilter, no Pairfilter | |
142 | die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) ); | |
54beba6b | 143 | if ((cutDefinition >=9) && (cutDefinition <=11)) { |
1350e718 | 144 | die->GetPairFilter().AddCuts(LMCL->GetPairCuts2(selectedPID,kFALSE)); |
145 | } | |
146 | if ((cutDefinition >=12) && (cutDefinition <=14)) { | |
147 | die->GetPairFilter().AddCuts(LMCL->GetPairCuts2(selectedPID,kTRUE)); | |
54beba6b | 148 | } |
6be5eb30 | 149 | } |
150 | //Introduce NULL-check for pp? | |
151 | die->GetEventFilter().AddCuts(LMCL->GetCentralityCuts(selectedCentrality)); | |
152 | ||
153 | ||
154 | ||
155 | ||
156 | AliDielectronTrackRotator *rot= 0x0; | |
157 | /*AliDielectronTrackRotator *rot= LMCL->GetTrackRotator(selectedPID); | |
158 | die->SetTrackRotator(rot); | |
159 | */ | |
160 | AliDielectronMixingHandler *mix=LMCL->GetMixingHandler(selectedPID); | |
161 | die->SetMixingHandler(mix); | |
162 | ||
163 | // histogram setup | |
164 | // only if an AliDielectronHistos object is attached to the | |
165 | // dielectron framework histograms will be filled | |
166 | // | |
167 | InitHistograms(die,cutDefinition); | |
168 | ||
169 | // the last definition uses no cuts and only the QA histograms should be filled! | |
44f488b6 | 170 | if (CFenable) { |
10f27616 | 171 | InitCF(die,cutDefinition); |
172 | } | |
6be5eb30 | 173 | return die; |
174 | } | |
175 | ||
176 | //______________________________________________________________________________________ | |
177 | ||
178 | void InitHistograms(AliDielectron *die, Int_t cutDefinition) | |
179 | { | |
180 | // | |
181 | // Initialise the histograms | |
182 | // | |
183 | ||
184 | //Setup histogram Manager | |
185 | AliDielectronHistos *histos= | |
186 | new AliDielectronHistos(die->GetName(), | |
187 | die->GetTitle()); | |
188 | //Initialise histogram classes | |
189 | histos->SetReservedWords("Track;Pair;Pre;RejTrack;RejPair"); | |
190 | ||
191 | //Event class | |
192 | // if (cutDefinition==nDie-1) | |
7f5f1ec3 | 193 | histos->AddClass("Event"); |
6be5eb30 | 194 | |
195 | //Track classes | |
196 | //to fill also track info from 2nd event loop until 2 | |
197 | for (Int_t i=0; i<2; ++i){ | |
198 | histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i))); | |
199 | } | |
200 | ||
201 | //Pair classes | |
202 | // to fill also mixed event histograms loop until 10 | |
203 | for (Int_t i=0; i<3; ++i){ | |
204 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i))); | |
205 | } | |
206 | ||
207 | //ME and track rot | |
208 | if (die->GetMixingHandler()) { | |
209 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); | |
210 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4))); | |
211 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6))); | |
212 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); | |
213 | } | |
214 | if (die->GetTrackRotator()) { | |
215 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10))); | |
216 | } | |
217 | ||
218 | //PreFilter Classes | |
219 | //to fill also track info from 2nd event loop until 2 | |
220 | for (Int_t i=0; i<2; ++i){ | |
221 | histos->AddClass(Form("Pre_%s",AliDielectron::TrackClassName(i))); | |
222 | } | |
223 | ||
224 | ||
225 | //Create Classes for Rejected Tracks/Pairs: | |
7f5f1ec3 | 226 | for (Int_t i=0; i<2; ++i){ |
227 | histos->AddClass(Form("RejTrack_%s",AliDielectron::TrackClassName(i))); | |
6be5eb30 | 228 | } |
229 | for (Int_t i=0; i<3; ++i){ | |
230 | histos->AddClass(Form("RejPair_%s",AliDielectron::PairClassName(i))); | |
231 | } | |
232 | ||
233 | /* | |
234 | //track rotation | |
235 | ||
236 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot))); | |
237 | histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot))); | |
238 | */ | |
239 | //add histograms to event class | |
240 | histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events", | |
241 | 1,0.,1.,AliDielectronVarManager::kNevents); | |
242 | histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]","0,10,20,40,80,100,101", | |
243 | AliDielectronVarManager::kCentrality); | |
244 | ||
245 | ||
7f5f1ec3 | 246 | //add histograms to Track classes, also fills RejTrack |
6be5eb30 | 247 | histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt); |
248 | histos->UserHistogram("Track","NclsSFracTPC","NclsSFracTPC; NclsSFracTPC;#tracks",200,0,10.,AliDielectronVarManager::kNclsSFracTPC); | |
249 | histos->UserHistogram("Track","TPCclsDiff","TPCclsDiff; TPCclsDiff;#tracks",200,0,10.,AliDielectronVarManager::kTPCclsDiff); | |
250 | ||
251 | histos->UserHistogram("Track","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks", | |
252 | 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE); | |
253 | ||
254 | histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", | |
255 | 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); | |
256 | ||
257 | histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks", | |
258 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE); | |
259 | histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks", | |
260 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE); | |
261 | histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks", | |
262 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE); | |
263 | ||
264 | histos->UserHistogram("Track","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks", | |
265 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE); | |
266 | histos->UserHistogram("Track","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks", | |
267 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE); | |
268 | ||
269 | histos->UserHistogram("Track","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks", | |
270 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE); | |
271 | histos->UserHistogram("Track","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks", | |
272 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE); | |
273 | ||
274 | histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", | |
275 | 200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); | |
276 | ||
277 | histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY); | |
278 | ||
279 | histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC); | |
280 | ||
281 | histos->UserHistogram("Track","TPCnCls_kNFclsTPCr","nTPC vs nTPCr;nTPC vs nTPCr;#tracks",159,0.,159.,159,0.,159.,AliDielectronVarManager::kNclsTPC,AliDielectronVarManager::kNFclsTPCr); | |
282 | ||
283 | histos->UserHistogram("Track","kNFclsTPCr_pT","nTPCr vs pt;nTPCr vs pt;#tracks",159,0.,159.,200,0.,20.,AliDielectronVarManager::kNFclsTPCr,AliDielectronVarManager::kPt); | |
284 | ||
7f5f1ec3 | 285 | //add histograms to Pair classes, also fills RejPair |
6be5eb30 | 286 | histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs", |
287 | 500,0.0,5.00,AliDielectronVarManager::kM); | |
288 | histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs", | |
289 | 100,-2.,2.,AliDielectronVarManager::kY); | |
024191fd | 290 | histos->UserHistogram("Pair","DeltaEta","DeltaEta;DeltaEta", |
291 | 100,0.,3.15,AliDielectronVarManager::kDeltaEta); | |
292 | histos->UserHistogram("Pair","DeltaPhi","DeltaPhi;DeltaPhi", | |
293 | 100,0.,3.15,AliDielectronVarManager::kDeltaPhi); | |
54beba6b | 294 | histos->UserHistogram("Pair","PhivPair","PhivPair;angle", |
295 | 100,0.,3.15,AliDielectronVarManager::kPhivPair); | |
296 | histos->UserHistogram("Pair","PsiPair","PsiPair;angle", | |
297 | 100,0.,3.15,AliDielectronVarManager::kPsiPair); | |
6be5eb30 | 298 | histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle", |
299 | 100,0.,3.15,AliDielectronVarManager::kOpeningAngle); | |
300 | //2D Histo Plot | |
301 | histos->UserHistogram("Pair","InvMassPairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs", | |
302 | 500,0.0,5.0,500,0.,50.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt); | |
303 | ||
54beba6b | 304 | |
305 | histos->UserHistogram("Pair","PsiPairPhivPair","PhivPair vs PsiPair;PsiPair ;#pairs", | |
306 | 200,0.0,6.3,200,0.,6.3,AliDielectronVarManager::kPsiPair,AliDielectronVarManager::kPhivPair); | |
307 | ||
308 | histos->UserHistogram("Pair","PhivPairOpeningAngle","Opening Angle vs PhivPair;PhivPair [GeV];#pairs", | |
309 | 200,0.0,6.3,200,0.,6.3,AliDielectronVarManager::kPhivPair,AliDielectronVarManager::kOpeningAngle); | |
310 | ||
311 | histos->UserHistogram("Pair","PsiPairOpeningAngle","Opening Angle vs PsiPair;PsiPair [GeV];#pairs", | |
312 | 200,0.0,6.3,200,0.,6.3,AliDielectronVarManager::kPsiPair,AliDielectronVarManager::kOpeningAngle); | |
313 | ||
6be5eb30 | 314 | histos->UserHistogram("Pair","InvMassOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs", |
315 | 500,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle); | |
316 | ||
317 | //add histograms to Track classes | |
318 | histos->UserHistogram("Pre","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt); | |
319 | ||
320 | histos->UserHistogram("Pre","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks", | |
321 | 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE); | |
322 | ||
323 | histos->UserHistogram("Pre","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", | |
324 | 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); | |
325 | ||
6be5eb30 | 326 | histos->UserHistogram("Pre","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", |
327 | 200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); | |
328 | ||
329 | histos->UserHistogram("Pre","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY); | |
330 | ||
331 | histos->UserHistogram("Pre","ZVertex ","ZVertex ;ZVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kZv); | |
332 | histos->UserHistogram("Pre","XVertex ","XVertex ;XVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kXv); | |
333 | histos->UserHistogram("Pre","YVertex ","YVertex ;YVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kYv); | |
334 | ||
7f5f1ec3 | 335 | // histos->UserHistogram("Pre","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC); |
6be5eb30 | 336 | |
6be5eb30 | 337 | |
338 | die->SetHistogramManager(histos); | |
339 | } | |
340 | ||
341 | ||
342 | void InitCF(AliDielectron* die, Int_t cutDefinition) | |
343 | { | |
344 | // | |
345 | // Setupd the CF Manager if needed | |
346 | // | |
347 | AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle()); | |
348 | ||
349 | //pair variables | |
350 | cf->AddVariable(AliDielectronVarManager::kP,200,0,20); | |
44f488b6 | 351 | cf->AddVariable(AliDielectronVarManager::kPt,200,0,20); |
6be5eb30 | 352 | cf->AddVariable(AliDielectronVarManager::kM,201,-0.01,4.01); //20Mev Steps |
09f4a504 | 353 | cf->AddVariable(AliDielectronVarManager::kY,100,-2.,2.); |
024191fd | 354 | cf->AddVariable(AliDielectronVarManager::kDeltaEta,200,-2.,2.); |
355 | cf->AddVariable(AliDielectronVarManager::kDeltaPhi,100,0.,3.2); | |
6be5eb30 | 356 | cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10); |
357 | ||
358 | cf->AddVariable(AliDielectronVarManager::kCentrality,"0.,10.0,30.0,40.0,60.,80.,100."); | |
09f4a504 | 359 | cf->AddVariable(AliDielectronVarManager::kOpeningAngle,320,0.,3.2); |
f67d7c09 | 360 | cf->AddVariable(AliDielectronVarManager::kPsiPair,320,0.,3.2); |
6be5eb30 | 361 | //leg variables |
362 | cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE); | |
44f488b6 | 363 | cf->AddVariable(AliDielectronVarManager::kPt,200,0.,20.,kTRUE); |
364 | cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE); | |
6be5eb30 | 365 | cf->AddVariable(AliDielectronVarManager::kTPCsignal,500,0.0.,500.,kTRUE); |
09f4a504 | 366 | cf->AddVariable(AliDielectronVarManager::kY,100,-2.,2.,kTRUE); |
6be5eb30 | 367 | //only in this case write MC truth info |
368 | if (MCenabled) { | |
369 | cf->SetStepForMCtruth(); | |
370 | cf->SetStepsForMCtruthOnly(); | |
09f4a504 | 371 | cf->AddVariable(AliDielectronVarManager::kHaveSameMother,5,-2,2); |
6be5eb30 | 372 | cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE); |
373 | cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE); | |
374 | } | |
375 | ||
f67d7c09 | 376 | //Added after train commit |
377 | cf->SetStepsForEachCut(); | |
378 | cf->SetStepForAfterAllCuts(); | |
379 | ||
380 | ||
6be5eb30 | 381 | cf->SetStepsForSignal(); |
382 | die->SetCFManagerPair(cf); | |
10f27616 | 383 | |
9a476b26 | 384 | /* |
10f27616 | 385 | AliDielectronSignalMC* lowMassDiele=new |
386 | AliDielectronSignalMC("lowMassDiele","low mass dielectron pairs"); | |
387 | lowMassDiele->SetLegPDGs(11,-11); | |
388 | lowMassDiele->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
389 | lowMassDiele->SetLegSources(AliDielectronSignalMC::kPrimary, | |
390 | AliDielectronSignalMC::kPrimary); | |
391 | lowMassDiele->SetFillPureMCStep(kTRUE); | |
392 | die->AddSignalMC(lowMassDiele); | |
393 | ||
394 | AliDielectronSignalMC* secondary=new | |
395 | AliDielectronSignalMC("secondary","secondary electrons pairs"); | |
396 | secondary->SetLegPDGs(11,-11); | |
397 | secondary->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
398 | secondary->SetLegSources(AliDielectronSignalMC::kSecondary, | |
399 | AliDielectronSignalMC::kSecondary); | |
400 | die->AddSignalMC(secondary); | |
401 | ||
402 | ||
403 | AliDielectronSignalMC* finalState=new | |
404 | AliDielectronSignalMC("finalState","finalState electrons pairs"); | |
405 | finalState->SetLegPDGs(11,-11); | |
406 | finalState->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
407 | finalState->SetLegSources(AliDielectronSignalMC::kFinalState, | |
408 | AliDielectronSignalMC::kFinalState); | |
409 | die->AddSignalMC(finalState); | |
9a476b26 | 410 | */ |
10f27616 | 411 | |
f67d7c09 | 412 | AliDielectronSignalMC* eleFromConversions=new |
413 | AliDielectronSignalMC("eleFromConversions","conversion electrons"); | |
414 | eleFromConversions->SetLegPDGs(11,-11); | |
415 | eleFromConversions->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
416 | eleFromConversions->SetLegSources(AliDielectronSignalMC::kSecondary, | |
417 | AliDielectronSignalMC::kSecondary); | |
418 | eleFromConversions->SetMotherPDGs(22,22); // 22- photon | |
419 | die->AddSignalMC(eleFromConversions); | |
420 | ||
421 | ||
422 | AliDielectronSignalMC* dalitzDecays=new | |
423 | AliDielectronSignalMC("dalitzDecays","dalitz Pairs"); | |
424 | dalitzDecays->SetLegPDGs(11,-11); | |
425 | dalitzDecays->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
426 | dalitzDecays->SetLegSources(AliDielectronSignalMC::kSecondary, | |
427 | AliDielectronSignalMC::kSecondary); | |
428 | dalitzDecays->SetMotherPDGs(111,111); | |
429 | dalitzDecays->SetFillPureMCStep(kTRUE); | |
430 | die->AddSignalMC(dalitzDecays); | |
431 | ||
9a476b26 | 432 | |
433 | AliDielectronSignalMC* PhiDecays=new | |
434 | AliDielectronSignalMC("PhiDecays","Phi Pairs"); | |
435 | PhiDecays->SetLegPDGs(11,-11); | |
436 | PhiDecays->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
437 | PhiDecays->SetLegSources(AliDielectronSignalMC::kFinalState, | |
438 | AliDielectronSignalMC::kFinalState); | |
439 | PhiDecays->SetMotherPDGs(333,333); | |
440 | PhiDecays->SetMothersRelation(AliDielectronSignalMC::kSame); | |
441 | PhiDecays->SetFillPureMCStep(kTRUE); | |
442 | die->AddSignalMC(PhiDecays); | |
443 | ||
444 | AliDielectronSignalMC* OmegaDecays=new | |
445 | AliDielectronSignalMC("OmegaDecays","Omega Pairs"); | |
446 | OmegaDecays->SetLegPDGs(11,-11); | |
447 | OmegaDecays->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
448 | OmegaDecays->SetLegSources(AliDielectronSignalMC::kFinalState, | |
449 | AliDielectronSignalMC::kFinalState); | |
450 | OmegaDecays->SetMotherPDGs(223,223); | |
451 | OmegaDecays->SetMothersRelation(AliDielectronSignalMC::kSame); | |
452 | OmegaDecays->SetFillPureMCStep(kTRUE); | |
453 | die->AddSignalMC(OmegaDecays); | |
454 | ||
f67d7c09 | 455 | |
456 | ||
6be5eb30 | 457 | } |
458 | ||
459 | //-------------------------------------- | |
460 | void EnableMC() { | |
461 | MCenabled=kTRUE; | |
462 | } | |
463 |