]>
Commit | Line | Data |
---|---|---|
931f8b00 | 1 | //#include "PWGDQ/dielectron/macrosLMEE/LMEECutLib.C" |
2 | ||
3 | void InitHistograms(AliDielectron *die, Int_t cutDefinition); | |
4 | void InitCF(AliDielectron* die, Int_t cutDefinition); | |
5 | void EnableMC(); | |
6 | ||
7 | TString names=("noPairing;TPCTOFCentwidenoRej;TPCTOFSemiCent1noRej;TPCTOFSemiCent2noRej;TPCTOFPerinoRej;TPCTOFCentRP;TPCTOFSemiCent1RP;TPCTOFSemiCent2RP;TPCTOFPeriRP;TPCTOFCentMag;TPCTOFSemiCent1Mag;TPCTOFSemiCent2Mag;TPCTOFPeriMag;TPCTOFCentnoTOF;NoPIDNoPairing;TPCTOFCentnoRej"); | |
8 | TObjArray *arrNames=names.Tokenize(";"); | |
9 | const Int_t nDie=arrNames->GetEntries(); | |
10 | ||
11 | Bool_t MCenabled=kFALSE; | |
12 | ||
13 | ||
14 | AliDielectron* ConfigAsakoLMEEPbPb2011AOD(Int_t cutDefinition, Bool_t hasMC=kFALSE, Bool_t ESDanalysis=kFALSE) | |
15 | { | |
16 | ||
17 | Int_t selectedPID=-1; | |
18 | Int_t selectedCentrality=-1; | |
19 | Int_t selectedPairCut=-1; | |
20 | // Int_t selectedPairMCut=-1; | |
21 | Bool_t rejectionStep=kFALSE; | |
22 | Bool_t PairCut=kFALSE; //add by asako | |
23 | LMEECutLibAsako* LMCL = new LMEECutLibAsako(); | |
24 | ||
25 | // | |
26 | // Setup the instance of AliDielectron | |
27 | // | |
28 | ||
29 | MCenabled=hasMC; | |
30 | // create the actual framework object | |
31 | ||
32 | TString name=Form("%02d",cutDefinition); | |
33 | if ((cutDefinition)<arrNames->GetEntriesFast()){ | |
34 | name=arrNames->At((cutDefinition))->GetName(); | |
35 | } | |
36 | ||
37 | //thisCut only relevant for MC: | |
38 | AliDielectron *die = | |
39 | new AliDielectron(Form | |
40 | ("%s",name.Data()), | |
41 | Form("Track cuts: %s",name.Data())); | |
42 | ||
43 | ||
44 | //Setup AnalysisSelection: | |
45 | if (cutDefinition==0) { | |
46 | //not yet implemented | |
47 | } | |
48 | else if (cutDefinition==1) { | |
49 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
50 | selectedCentrality = LMEECutLibAsako::kPbPb2011Central; | |
51 | rejectionStep = kFALSE; | |
52 | PairCut = kFALSE; | |
53 | ||
54 | } | |
55 | else if (cutDefinition==2) { | |
56 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
57 | selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral1; | |
58 | rejectionStep = kFALSE; | |
59 | PairCut=kFALSE; | |
60 | } | |
61 | else if (cutDefinition==3) { | |
62 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
63 | selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral2; | |
64 | rejectionStep = kFALSE; | |
65 | PairCut=kFALSE; | |
66 | } | |
67 | ||
68 | else if (cutDefinition==4) { | |
69 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
70 | selectedCentrality = LMEECutLibAsako::kPbPb2011Peripheral; | |
71 | rejectionStep = kFALSE; | |
72 | PairCut=kFALSE; | |
73 | } | |
74 | ||
75 | /////////////////////////////////////////////////////////// | |
76 | else if (cutDefinition==5) { | |
77 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
78 | selectedCentrality = LMEECutLibAsako::kPbPb2011Central; | |
79 | selectedPairCut = LMEECutLibAsako::kPbPb2011RP; | |
80 | //selectedPairMCut = LMEECutLibAsako::kPbPb2011MassAll; | |
81 | rejectionStep = kFALSE; | |
82 | PairCut=kTRUE; | |
83 | } | |
84 | else if (cutDefinition==6) { | |
85 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
86 | selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral1; | |
87 | selectedPairCut = LMEECutLibAsako::kPbPb2011RP; | |
88 | // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle; | |
89 | rejectionStep = kFALSE; | |
90 | PairCut=kTRUE; | |
91 | } | |
92 | else if (cutDefinition==7) { | |
93 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
94 | selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral2; | |
95 | // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle; | |
96 | selectedPairCut = LMEECutLibAsako::kPbPb2011RP; | |
97 | rejectionStep = kFALSE; | |
98 | PairCut=kTRUE; | |
99 | } | |
100 | else if (cutDefinition==8) { | |
101 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
102 | selectedCentrality = LMEECutLibAsako::kPbPb2011Peripheral; | |
103 | selectedPairCut = LMEECutLibAsako::kPbPb2011RP; | |
104 | // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle; | |
105 | rejectionStep = kFALSE; | |
106 | PairCut=kTRUE; | |
107 | } | |
108 | ||
109 | ///////////////////////////////////////////////////////// | |
110 | else if (cutDefinition==9) { | |
111 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
112 | selectedCentrality = LMEECutLibAsako::kPbPb2011Central; | |
113 | selectedPairCut = LMEECutLibAsako::kPbPb2011Mag; | |
114 | // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassAll; | |
115 | rejectionStep = kFALSE; | |
116 | PairCut=kTRUE; | |
117 | } | |
118 | ||
119 | else if (cutDefinition==10) { | |
120 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
121 | selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral1; | |
122 | selectedPairCut = LMEECutLibAsako::kPbPb2011Mag; | |
123 | // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle; | |
124 | rejectionStep = kFALSE; | |
125 | PairCut=kTRUE; | |
126 | } | |
127 | else if (cutDefinition==11) { | |
128 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
129 | selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral2; | |
130 | // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle; | |
131 | selectedPairCut = LMEECutLibAsako::kPbPb2011Mag; | |
132 | rejectionStep = kFALSE; | |
133 | PairCut=kTRUE; | |
134 | } | |
135 | else if (cutDefinition==12) { | |
136 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide; | |
137 | selectedCentrality = LMEECutLibAsako::kPbPb2011Peripheral; | |
138 | selectedPairCut = LMEECutLibAsako::kPbPb2011Mag; | |
139 | // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle; | |
140 | rejectionStep = kFALSE; | |
141 | PairCut=kTRUE; | |
142 | } | |
143 | ||
144 | ||
145 | ||
146 | /////////////////////////////////////////////////////// | |
147 | else if (cutDefinition==13) { | |
148 | //selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide; | |
149 | selectedPID = LMEECutLibAsako::kPbPb2011TPC; | |
150 | selectedCentrality = LMEECutLibAsako::kPbPb2011Central; | |
151 | rejectionStep = kFALSE; | |
152 | PairCut=kFALSE; | |
153 | } | |
154 | else if (cutDefinition==14) { | |
155 | selectedPID = LMEECutLibAsako::kPbPb2011NoPID; | |
156 | selectedCentrality = LMEECutLibAsako::kPbPb2011Central; | |
157 | rejectionStep = kFALSE; | |
158 | PairCut=kFALSE; | |
159 | } | |
160 | ||
161 | else if (cutDefinition==15) { | |
162 | selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOF; | |
163 | selectedCentrality = LMEECutLibAsako::kPbPb2011Central; | |
164 | rejectionStep = kFALSE; | |
165 | PairCut = kFALSE; | |
166 | } | |
167 | ||
168 | ||
169 | else Semi{ | |
170 | cout << " =============================== " << endl; | |
171 | cout << " ==== INVALID CONFIGURATION ==== " << endl; | |
172 | cout << " =============================== " << endl; | |
173 | } | |
174 | ||
175 | ||
176 | //Now configure task | |
177 | ||
178 | //Apply correct Pre-Filter Scheme, if necessary | |
179 | die->SetPreFilterAllSigns(); | |
180 | ||
181 | //switch off KF PArticle: | |
182 | die->SetUseKF(kFALSE); | |
183 | ||
184 | if (selectedPID == LMEECutLibAsako::kPbPb2011NoPID) { | |
185 | die->SetNoPairing(); | |
186 | } | |
187 | ||
188 | // if (ESDanalysis) { | |
189 | //die->GetTrackFilter().AddCuts( LMCL->GetESDTrackCutsAna(selectedPID) ); | |
190 | // } | |
191 | ||
192 | die->GetEventFilter().AddCuts(LMCL->GetCentralityCuts(selectedCentrality)); | |
193 | die->GetTrackFilter().AddCuts( LMCL->GetTrackCutsAna(selectedPID) ); | |
194 | die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) ); | |
195 | ||
196 | if(PairCut){ | |
197 | if (rejectionStep) { | |
198 | die->GetPairPreFilterLegs().AddCuts(LMCL->GetPIDCutsAna(selectedPID) ); | |
199 | die->GetPairPreFilter().AddCuts( LMCL->GetPairPreFilterCuts(selectedPairCut)); | |
200 | die->GetPairFilter().AddCuts( LMCL->GetPairCuts(selectedPairCut)); | |
201 | } | |
202 | else { | |
203 | die->GetPairFilter().AddCuts( LMCL->GetPairCutsInOut(selectedPairCut)); | |
204 | // die->GetPairFilter().AddCuts( LMCL->GetPairCuts4(selectedPairMCut)); | |
205 | } | |
206 | } | |
207 | ||
208 | ||
209 | ||
210 | ||
211 | AliDielectronTrackRotator *rot= 0x0; | |
212 | /*AliDielectronTrackRotator *rot= LMCL->GetTrackRotator(selectedPID); | |
213 | die->SetTrackRotator(rot); | |
214 | */ | |
215 | AliDielectronMixingHandler *mix=LMCL->GetMixingHandler(selectedPID); | |
216 | die->SetMixingHandler(mix); | |
217 | ||
218 | // histogram setup | |
219 | // only if an AliDielectronHistos object is attached to the | |
220 | // dielectron framework histograms will be filled | |
221 | // | |
222 | InitHistograms(die,cutDefinition); | |
223 | ||
224 | // the last definition uses no cuts and only the QA histograms should be filled! | |
225 | // InitCF(die,cutDefinition); | |
226 | ||
227 | return die; | |
228 | } | |
229 | ||
230 | //______________________________________________________________________________________ | |
231 | ||
232 | void InitHistograms(AliDielectron *die, Int_t cutDefinition) | |
233 | { | |
234 | // | |
235 | // Initialise the histograms | |
236 | // | |
237 | ||
238 | //Setup histogram Manager | |
239 | AliDielectronHistos *histos= | |
240 | new AliDielectronHistos(die->GetName(), | |
241 | die->GetTitle()); | |
242 | //Initialise histogram classes | |
243 | histos->SetReservedWords("Track;Pair;Pre;RejTrack;RejPair"); | |
244 | ||
245 | //Event class | |
246 | // if (cutDefinition==nDie-1) | |
247 | histos->AddClass("Event"); | |
248 | ||
249 | //Track classes | |
250 | //to fill also track info from 2nd event loop until 2 | |
251 | for (Int_t i=0; i<2; ++i){ | |
252 | histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i))); | |
253 | } | |
254 | ||
255 | //Pair classes | |
256 | // to fill also mixed event histograms loop until 10 | |
257 | for (Int_t i=0; i<3; ++i){ | |
258 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i))); | |
259 | } | |
260 | ||
261 | //ME and track rot | |
262 | if (die->GetMixingHandler()) { | |
263 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); | |
264 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4))); | |
265 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6))); | |
266 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); | |
267 | } | |
268 | if (die->GetTrackRotator()) { | |
269 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10))); | |
270 | } | |
271 | ||
272 | //PreFilter Classes | |
273 | //to fill also track info from 2nd event loop until 2 | |
274 | for (Int_t i=0; i<2; ++i){ | |
275 | histos->AddClass(Form("Pre_%s",AliDielectron::TrackClassName(i))); | |
276 | } | |
277 | ||
278 | ||
279 | //Create Classes for Rejected Tracks/Pairs: | |
280 | for (Int_t i=0; i<2; ++i){ | |
281 | histos->AddClass(Form("RejTrack_%s",AliDielectron::TrackClassName(i))); | |
282 | } | |
283 | for (Int_t i=0; i<3; ++i){ | |
284 | histos->AddClass(Form("RejPair_%s",AliDielectron::PairClassName(i))); | |
285 | } | |
286 | ||
287 | /* | |
288 | //track rotation | |
289 | ||
290 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot))); | |
291 | histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot))); | |
292 | */ | |
293 | //add histograms to event class | |
294 | histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events", | |
295 | 1,0.,1.,AliDielectronVarManager::kNevents); | |
296 | histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]","0,10,20,40,80,100,101", | |
297 | AliDielectronVarManager::kCentrality); | |
298 | histos->UserHistogram("Event","Centrality2","Centrality;Centrality [%]",100, 0, 100, | |
299 | AliDielectronVarManager::kCentrality); | |
300 | ||
301 | histos->UserHistogram("Event","v0ACrpH2","VZERO-AC;v0ACrpH2", | |
302 | 100,-2.0,2.0, | |
303 | AliDielectronVarManager::kv0ACrpH2); | |
304 | histos->UserHistogram("Event","v0ArpH2","VZERO-A;v0ArpH2", | |
305 | 100,-2.0,2.0, | |
306 | AliDielectronVarManager::kv0ArpH2); | |
307 | histos->UserHistogram("Event","v0CrpH2","VZERO-C;v0CrpH2", | |
308 | 100,-2.0,2.0, | |
309 | AliDielectronVarManager::kv0CrpH2); | |
310 | histos->UserHistogram("Event","RadomRP","RandomRP;RandomRP", | |
311 | 100,-2.0,2.0, | |
312 | AliDielectronVarManager::kRandomRP); | |
313 | ||
314 | ||
315 | /* histos->UserHistogram("Event","Corr_v0ACrpH2_old","CORR VZERO-AC RP;#Psi_{2}^{V0A} (rad.);#Psi_{2}^{V0C} (rad.)", | |
316 | 100,-2.0,2.0.,100,-2.0,2.0, | |
317 | AliDielectronVarManager::kv0ArpH2,AliDielectronVarManager::kv0CrpH2); | |
318 | ||
319 | histos->UserHistogram("Event","v0ACrpH2","VZERO-AC;v0ACrpH2", | |
320 | 100,0.,3.15, | |
321 | AliDielectronVarManager::kv0ACrpH2); | |
322 | ||
323 | histos->UserHistogram("Event","v0ArpH2","VZERO-A;v0ArpH2", | |
324 | 100,0.,3.15, | |
325 | AliDielectronVarManager::kv0ArpH2); | |
326 | histos->UserHistogram("Event","v0CrpH2","VZERO-C;v0CrpH2", | |
327 | 100,0.,3.15, | |
328 | AliDielectronVarManager::kv0CrpH2); | |
329 | ||
330 | histos->UserHistogram("Event","Corr_v0ACrpH2","CORR VZERO-AC RP;#Psi_{2}^{V0A} (rad.);#Psi_{2}^{V0C} (rad.)", | |
331 | 100,0.,3.15.,100,0.,3.15, | |
332 | AliDielectronVarManager::kv0ArpH2,AliDielectronVarManager::kv0CrpH2); | |
333 | */ | |
334 | //add histograms to Track classes | |
335 | histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt); | |
336 | histos->UserHistogram("Track","Px","Px;Px [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPx); | |
337 | histos->UserHistogram("Track","Py","Py;Py [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPy); | |
338 | histos->UserHistogram("Track","Pz","Pz;Pz [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPz); | |
339 | ||
340 | // histos->UserHistogram("Track","NclsSFracTPC","NclsSFracTPC; NclsSFracTPC;#tracks",200,0,10.,AliDielectronVarManager::kNclsSFracTPC); | |
341 | // histos->UserHistogram("Track","TPCclsDiff","TPCclsDiff; TPCclsDiff;#tracks",200,0,10.,AliDielectronVarManager::kTPCclsDiff); | |
342 | ||
343 | // histos->UserHistogram("Track","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks", | |
344 | // 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE); | |
345 | ||
346 | // histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", | |
347 | // 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); | |
348 | /* | |
349 | histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks", | |
350 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE); | |
351 | histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks", | |
352 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE); | |
353 | histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks", | |
354 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE); | |
355 | ||
356 | histos->UserHistogram("Track","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks", | |
357 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE); | |
358 | histos->UserHistogram("Track","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks", | |
359 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE); | |
360 | ||
361 | histos->UserHistogram("Track","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks", | |
362 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE); | |
363 | histos->UserHistogram("Track","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks", | |
364 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE); | |
365 | ||
366 | histos->UserHistogram("Track","TOFbeta","TOF beta;P [GeV];TOF beta;#tracks", | |
367 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta,kTRUE); | |
368 | ||
369 | */ | |
370 | histos->UserHistogram("Track","Eta","Eta; Eta;#tracks", | |
371 | 200,-2,2,AliDielectronVarManager::kEta); | |
372 | histos->UserHistogram("Track","Phi","Phi; Phi;#tracks", | |
373 | 200,0.,3.15,AliDielectronVarManager::kPhi); | |
374 | /* | |
375 | histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", | |
376 | 200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); | |
377 | ||
378 | histos->UserHistogram("Track","dXY_dZ","dXY dZ Map; dXY; dZ;#tracks", | |
379 | 200,-2,2,200,-2,2.,AliDielectronVarManager::kImpactParXY,AliDielectronVarManager::kImpactParZ); | |
380 | ||
381 | ||
382 | histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY); | |
383 | histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParZ); | |
384 | ||
385 | histos->UserHistogram("Track","TPCcrossedRowsOverFindable","Number of Crossed Rows TPC over Findable;TPC crossed rows over findable;#tracks",100,0.,1.,AliDielectronVarManager::kNFclsTPCfCross); | |
386 | histos->UserHistogram("Track","TPCcrossedRows","Number of Crossed Rows TPC;TPC crossed rows;#tracks",159,0.,159.,AliDielectronVarManager::kNFclsTPCr); | |
387 | ||
388 | ||
389 | histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC); | |
390 | histos->UserHistogram("Track","ITSnCls","Number of Clusters ITS;ITS number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsITS); | |
391 | ||
392 | histos->UserHistogram("Track","TPCchi2","TPC Chi2 value;TPC chi2;#tracks",100,0.,10.,AliDielectronVarManager::kTPCchi2Cl); | |
393 | histos->UserHistogram("Track","ITSchi2","ITS Chi2 value;ITS chi2;#tracks",100,0.,10.,AliDielectronVarManager::kITSchi2Cl); | |
394 | ||
395 | histos->UserHistogram("Track","TPCnCls_kNFclsTPCr","nTPC vs nTPCr;nTPC vs nTPCr;#tracks",159,0.,159.,159,0.,159.,AliDielectronVarManager::kNclsTPC,AliDielectronVarManager::kNFclsTPCr); | |
396 | ||
397 | histos->UserHistogram("Track","kNFclsTPCr_pT","nTPCr vs pt;nTPCr vs pt;#tracks",159,0.,159.,200,0.,20.,AliDielectronVarManager::kNFclsTPCr,AliDielectronVarManager::kPt); | |
398 | ||
399 | */ | |
400 | ||
401 | //add histograms to Pair classes | |
402 | histos->UserHistogram("Pair","InvMassAll","Inv.Mass;Inv. Mass [GeV];#pairs", | |
403 | 500,0.0,5.00,AliDielectronVarManager::kM); | |
404 | /* histos->UserHistogram("Pair","InvMassLow","Inv.Mass;Inv. Mass [GeV];#pairs", | |
405 | 300,0.0,0.03,AliDielectronVarManager::kM); | |
406 | histos->UserHistogram("Pair","InvMassMiddle","Inv.Mass;Inv. Mass [GeV];#pairs", | |
407 | 180,0.12,0.3,AliDielectronVarManager::kM); | |
408 | histos->UserHistogram("Pair","InvMassHigh","Inv.Mass;Inv. Mass [GeV];#pairs", | |
409 | 200,0.3,0.5,AliDielectronVarManager::kM); | |
410 | */ | |
411 | ||
412 | histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs", | |
413 | 100,-2.,2.,AliDielectronVarManager::kY); | |
414 | histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle", | |
415 | 100,0.,3.15,AliDielectronVarManager::kOpeningAngle); | |
416 | histos->UserHistogram("Pair","PhivPair","PhiV ;#", | |
417 | 100,0.,3.15,AliDielectronVarManager::kPhivPair ); | |
418 | ||
419 | histos->UserHistogram("Pair","Pt","Pt;Pt [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPt); | |
420 | histos->UserHistogram("Pair","Px","Px;Px [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPx); | |
421 | histos->UserHistogram("Pair","Py","Py;Py [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPy); | |
422 | histos->UserHistogram("Pair","Pz","Pz;Pz [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPz); | |
423 | histos->UserHistogram("Pair","Phi","Phi;Phi[rad];#counts",100,-3.15,3.15,AliDielectronVarManager::kPhi ); | |
424 | ||
425 | ||
426 | histos->UserHistogram("Pair","DeltaPhiv0ArpH2","Phi;Phi[rad];#counts", | |
427 | 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ArpH2); | |
428 | histos->UserHistogram("Pair","DeltaPhiv0CrpH2","Phi;Phi[rad];#counts", | |
429 | 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0CrpH2); | |
430 | histos->UserHistogram("Pair","DeltaPhiv0ACrpH2","Phi;Phi[rad];#counts", | |
431 | 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ACrpH2); | |
432 | histos->UserHistogram("Pair","DeltaPhiRandomRP","Phi;Phi[rad];#counts", | |
433 | 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiRandomRP); | |
434 | ||
435 | ||
436 | histos->UserHistogram("Pair","PairPlaneAngle2C","Phi;Phi[rad];#counts", | |
437 | 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle2C); | |
438 | histos->UserHistogram("Pair","PairPlaneAngle3C","Phi;Phi[rad];#counts", | |
439 | 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle3C); | |
440 | histos->UserHistogram("Pair","PairPlaneAngle4C","Phi;Phi[rad];#counts", | |
441 | 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle4C); | |
442 | histos->UserHistogram("Pair","PairPlaneAngleRan","Phi;Phi[rad];#counts", | |
443 | 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle3Ran); | |
444 | ||
445 | ||
446 | ||
447 | //2D Histo Plot | |
448 | ||
449 | histos->UserHistogram("Pair","InvMAllPP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
450 | 500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C); | |
451 | histos->UserHistogram("Pair","InvMLowPP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
452 | 300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C); | |
453 | histos->UserHistogram("Pair","InvMMiddlePP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
454 | 180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C); | |
455 | histos->UserHistogram("Pair","InvMHighPP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
456 | 200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C); | |
457 | ||
458 | histos->UserHistogram("Pair","InvMAllPP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
459 | 500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C); | |
460 | histos->UserHistogram("Pair","InvMLowPP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
461 | 300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C); | |
462 | histos->UserHistogram("Pair","InvMMiddlePP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
463 | 180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C); | |
464 | histos->UserHistogram("Pair","InvMHighPP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
465 | 200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C); | |
466 | ||
467 | histos->UserHistogram("Pair","InvMAllPP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
468 | 500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C); | |
469 | histos->UserHistogram("Pair","InvMLowPP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
470 | 300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C); | |
471 | histos->UserHistogram("Pair","InvMMiddlePP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
472 | 180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C); | |
473 | histos->UserHistogram("Pair","InvMHighPP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
474 | 200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C); | |
475 | ||
476 | histos->UserHistogram("Pair","InvMAllPP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
477 | 500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C); | |
478 | histos->UserHistogram("Pair","InvMLowPP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
479 | 300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C); | |
480 | histos->UserHistogram("Pair","InvMMiddlePP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
481 | 180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C); | |
482 | histos->UserHistogram("Pair","InvMHighPP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
483 | 200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C); | |
484 | /* | |
485 | histos->UserHistogram("Pair","InvMAllPP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
486 | 500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran); | |
487 | histos->UserHistogram("Pair","InvMLowPP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
488 | 300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran); | |
489 | histos->UserHistogram("Pair","InvMMiddlePP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
490 | 180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran); | |
491 | histos->UserHistogram("Pair","InvMHighPP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]", | |
492 | 200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran); | |
493 | */ | |
494 | ||
495 | ||
496 | ||
497 | //add histograms to Track classes | |
498 | /* histos->UserHistogram("Pre","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt); | |
499 | ||
500 | histos->UserHistogram("Pre","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks", | |
501 | 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE); | |
502 | ||
503 | histos->UserHistogram("Pre","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", | |
504 | 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); | |
505 | ||
506 | ||
507 | histos->UserHistogram("Pre","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks", | |
508 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE); | |
509 | histos->UserHistogram("Pre","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks", | |
510 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE); | |
511 | histos->UserHistogram("Pre","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks", | |
512 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE); | |
513 | ||
514 | histos->UserHistogram("Pre","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks", | |
515 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE); | |
516 | histos->UserHistogram("Pre","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks", | |
517 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE); | |
518 | ||
519 | histos->UserHistogram("Pre","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks", | |
520 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE); | |
521 | histos->UserHistogram("Pre","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks", | |
522 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE); | |
523 | ||
524 | histos->UserHistogram("Pre","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", | |
525 | 200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); | |
526 | ||
527 | histos->UserHistogram("Pre","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY); | |
528 | ||
529 | histos->UserHistogram("Pre","ZVertex ","ZVertex ;ZVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kZv); | |
530 | histos->UserHistogram("Pre","XVertex ","XVertex ;XVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kXv); | |
531 | histos->UserHistogram("Pre","YVertex ","YVertex ;YVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kYv); | |
532 | ||
533 | histos->UserHistogram("Pre","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC); | |
534 | */ | |
535 | //add histograms to Pair classes For Rejected Pairs: | |
536 | die->SetHistogramManager(histos); | |
537 | } | |
538 | ||
539 | void InitCF(AliDielectron* die, Int_t cutDefinition) | |
540 | { | |
541 | // | |
542 | // Setupd the CF Manager if needed | |
543 | // | |
544 | AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle()); | |
545 | ||
546 | //pair variables | |
547 | cf->AddVariable(AliDielectronVarManager::kP,200,0,20); | |
548 | // cf->AddVariable(AliDielectronVarManager::kPt,200,0,20);// added | |
549 | cf->AddVariable(AliDielectronVarManager::kM,201,-0.01,4.01); //20Mev Steps | |
550 | //cf->AddVariable(AliDielectronVarManager::kM, 1000,0,5.00); //5Mev Steps | |
551 | cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10); | |
552 | //cf->AddVariable(AliDielectronVarManager::kCentrality,100, 0, 100); | |
553 | ||
554 | ||
555 | cf->AddVariable(AliDielectronVarManager::kCentrality,"0.,10.0,30.0,40.0,60.,80.,100."); | |
556 | ||
557 | //leg variables | |
558 | cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE); | |
559 | cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE); | |
560 | cf->AddVariable(AliDielectronVarManager::kTPCsignal,500,0.0.,500.,kTRUE); | |
561 | cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10,kTRUE); | |
562 | ||
563 | //only in this case write MC truth info | |
564 | if (MCenabled) { | |
565 | cf->SetStepForMCtruth(); | |
566 | cf->SetStepsForMCtruthOnly(); | |
567 | cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE); | |
568 | cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE); | |
569 | } | |
570 | ||
571 | cf->SetStepsForSignal(); | |
572 | die->SetCFManagerPair(cf); | |
573 | } | |
574 | ||
575 | //-------------------------------------- | |
576 | void EnableMC() { | |
577 | MCenabled=kTRUE; | |
578 | } | |
579 | ||
580 | ||
581 |