]>
Commit | Line | Data |
---|---|---|
b1f673b5 | 1 | void InitHistograms(AliDielectron *die, Int_t cutDefinition); |
2 | void InitCF(AliDielectron* die, Int_t cutDefinition); | |
3 | void EnableMC(); | |
4 | void SetSignals(AliDielectron *die); | |
5 | ||
571a7b22 | 6 | ////////////////////////////////////////////////////// |
7 | ///// lists of cuts | |
8 | //// |cutDefinition | CENT | PID | Pair | | |
9 | ///// | 0 | - | - | - | | |
10 | ///// | 1 | 0-10 | kPbPb2011TPCandTOFwide | - | | |
11 | ///// | 2 | 10-30 | kPbPb2011TPCandTOFwide | - | | |
12 | ///// | 3 | 30-50 | kPbPb2011TPCandTOFwide | - | | |
13 | ///// | 4 | 0-10 | kPbPb2011TPCandTOFwide | OP & SetPreFilterAllSigns | | |
14 | ///// | 5 | 10-30 | kPbPb2011TPCandTOFwide | OP & SetPreFilterAllSigns | | |
15 | ///// | 6 | 30-50 | kPbPb2011TPCandTOFwide | OP & SetPreFilterAllSigns | | |
16 | ///// | 7 | 0-10 | kPbPb2011TPCandTOFwide | Phiv & SetPreFilterAllSigns | | |
17 | ///// | 8 | 10-30 | kPbPb2011TPCandTOFwide | Phiv & SetPreFilterAllSigns | | |
18 | ///// | 9 | 30-50 | kPbPb2011TPCandTOFwide | Phiv & SetPreFilterAllSigns | | |
19 | ///// | 10 | 0-10 | kPbPb2011TPCandTOFwide | OP & No SetPreFilterAllSigns | | |
20 | ///// | 11 | 10-30 | kPbPb2011TPCandTOFwide | OP & No SetPreFilterAllSigns | | |
21 | ///// | 12 | 30-50 | kPbPb2011TPCandTOFwide | OP & No SetPreFilterAllSigns | | |
22 | ///// | 13 | 0-10 | kPbPb2011TPCandTOFwide | Phiv & No SetPreFilterAllSigns | | |
23 | ///// | 14 | 10-30 | kPbPb2011TPCandTOFwide | Phiv & No SetPreFilterAllSigns | | |
24 | ///// | 15 | 30-50 | kPbPb2011TPCandTOFwide | Phiv & No SetPreFilterAllSigns | | |
25 | ////////////////////////////////////////////////////////// | |
26 | ||
27 | ||
571a7b22 | 28 | TString names=("noPairing;TPCTOFCentnoPair;TPCTOFSemiCent1noPair;TPCTOFSemiCent2noPair;TPCTOFCentOpPair;TPCTOFSemiCent1OpPair;TPCTOFSemiCent2OpPair;TPCTOFCentPvPair;TPCTOFSemiCent1PvPair;TPCTOFSemiCent2PvPair;TPCTOFCentOpPair2;TPCTOFSemiCent1OpPair2;TPCTOFSemiCent2OpPair2;TPCTOFCentPvPair2;TPCTOFSemiCent1PvPair2;TPCTOFSemiCent2PvPair2"); |
29 | ||
b1f673b5 | 30 | TObjArray *arrNames=names.Tokenize(";"); |
31 | const Int_t nDie=arrNames->GetEntries(); | |
32 | ||
33 | Bool_t MCenabled=kFALSE; | |
34 | ||
35 | ||
36 | AliDielectron* ConfigTakuLMEEPbPb2011(Int_t cutDefinition, Bool_t withMC=kFALSE, Bool_t CFenable=kFALSE) | |
37 | { | |
38 | ||
39 | Int_t selectedPID=-1; | |
40 | Int_t selectedCentrality=-1; | |
571a7b22 | 41 | Int_t selectedPairCut=-1; |
b1f673b5 | 42 | Bool_t rejectionStep=kFALSE; |
571a7b22 | 43 | Bool_t HasPairCut = kFALSE; |
ebdc847a | 44 | LMEECutLibTaku* LMCL = new LMEECutLibTaku(); |
b1f673b5 | 45 | |
46 | // | |
47 | // Setup the instance of AliDielectron | |
48 | // | |
49 | ||
50 | MCenabled=withMC; | |
51 | // create the actual framework object | |
52 | ||
53 | TString name=Form("%02d",cutDefinition); | |
54 | if ((cutDefinition)<arrNames->GetEntriesFast()){ | |
571a7b22 | 55 | name=arrNames->At((cutDefinition))->GetName(); |
b1f673b5 | 56 | } |
571a7b22 | 57 | |
b1f673b5 | 58 | //thisCut only relevant for MC: |
59 | AliDielectron *die = | |
571a7b22 | 60 | new AliDielectron(Form |
61 | ("%s",name.Data()), | |
62 | Form("Track cuts: %s",name.Data())); | |
63 | ||
b1f673b5 | 64 | |
b1f673b5 | 65 | if (MCenabled){ |
66 | die->SetHasMC(kTRUE); | |
b1f673b5 | 67 | } |
68 | ||
69 | //Setup AnalysisSelection: | |
70 | if (cutDefinition==0) { | |
571a7b22 | 71 | //not yet implemented |
b1f673b5 | 72 | } |
571a7b22 | 73 | ////////////////////////////////////////////// |
b1f673b5 | 74 | else if (cutDefinition==1) { |
ebdc847a | 75 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
76 | selectedCentrality = LMEECutLibTaku::kPbPb2011Central; | |
b1f673b5 | 77 | rejectionStep = kFALSE; |
571a7b22 | 78 | HasPairCut = kFALSE; |
b1f673b5 | 79 | } |
80 | else if (cutDefinition==2) { | |
ebdc847a | 81 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
82 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral1; | |
b1f673b5 | 83 | rejectionStep = kFALSE; |
571a7b22 | 84 | HasPairCut = kFALSE; |
b1f673b5 | 85 | } |
86 | else if (cutDefinition==3) { | |
ebdc847a | 87 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
88 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral2; | |
b1f673b5 | 89 | rejectionStep = kFALSE; |
571a7b22 | 90 | HasPairCut = kFALSE; |
b1f673b5 | 91 | } |
571a7b22 | 92 | ////////////////////////////////////////////// |
b1f673b5 | 93 | else if (cutDefinition==4) { |
ebdc847a | 94 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
95 | selectedCentrality = LMEECutLibTaku::kPbPb2011Central; | |
96 | selectedPairCut = LMEECutLibTaku::kPbPb2011OP; | |
b1f673b5 | 97 | rejectionStep = kTRUE; |
571a7b22 | 98 | HasPairCut = kTRUE; |
b1f673b5 | 99 | } |
100 | else if (cutDefinition==5) { | |
ebdc847a | 101 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
102 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral1; | |
103 | selectedPairCut = LMEECutLibTaku::kPbPb2011OP; | |
b1f673b5 | 104 | rejectionStep = kTRUE; |
571a7b22 | 105 | HasPairCut = kTRUE; |
b1f673b5 | 106 | } |
107 | else if (cutDefinition==6) { | |
ebdc847a | 108 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
109 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral2; | |
110 | selectedPairCut = LMEECutLibTaku::kPbPb2011OP; | |
571a7b22 | 111 | rejectionStep = kTRUE; |
112 | HasPairCut = kTRUE; | |
113 | } | |
114 | ////////////////////////////////////////////// | |
115 | else if (cutDefinition==7) { | |
ebdc847a | 116 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
117 | selectedCentrality = LMEECutLibTaku::kPbPb2011Central; | |
118 | selectedPairCut = LMEECutLibTaku::kPbPb2011Phiv; | |
b1f673b5 | 119 | rejectionStep = kTRUE; |
571a7b22 | 120 | HasPairCut = kTRUE; |
b1f673b5 | 121 | } |
571a7b22 | 122 | else if (cutDefinition==8) { |
ebdc847a | 123 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
124 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral1; | |
125 | selectedPairCut = LMEECutLibTaku::kPbPb2011Phiv; | |
571a7b22 | 126 | rejectionStep = kTRUE; |
127 | HasPairCut = kTRUE; | |
128 | } | |
129 | else if (cutDefinition==9) { | |
ebdc847a | 130 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
131 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral2; | |
132 | selectedPairCut = LMEECutLibTaku::kPbPb2011Phiv; | |
571a7b22 | 133 | rejectionStep = kTRUE; |
134 | HasPairCut = kTRUE; | |
135 | } | |
136 | ////////////////////////////////////////////// | |
137 | else if (cutDefinition==10) { | |
ebdc847a | 138 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
139 | selectedCentrality = LMEECutLibTaku::kPbPb2011Central; | |
140 | selectedPairCut = LMEECutLibTaku::kPbPb2011OP; | |
571a7b22 | 141 | rejectionStep = kFALSE; |
142 | HasPairCut = kTRUE; | |
143 | } | |
144 | else if (cutDefinition==11) { | |
ebdc847a | 145 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
146 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral1; | |
147 | selectedPairCut = LMEECutLibTaku::kPbPb2011OP; | |
571a7b22 | 148 | rejectionStep = kFALSE; |
149 | HasPairCut = kTRUE; | |
150 | } | |
151 | else if (cutDefinition==12) { | |
ebdc847a | 152 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
153 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral2; | |
154 | selectedPairCut = LMEECutLibTaku::kPbPb2011OP; | |
571a7b22 | 155 | rejectionStep = kFALSE; |
156 | HasPairCut = kTRUE; | |
157 | } | |
158 | ////////////////////////////////////////////// | |
159 | else if (cutDefinition==13) { | |
ebdc847a | 160 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
161 | selectedCentrality = LMEECutLibTaku::kPbPb2011Central; | |
162 | selectedPairCut = LMEECutLibTaku::kPbPb2011Phiv; | |
571a7b22 | 163 | rejectionStep = kFALSE; |
164 | HasPairCut = kTRUE; | |
165 | } | |
166 | else if (cutDefinition==14) { | |
ebdc847a | 167 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
168 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral1; | |
169 | selectedPairCut = LMEECutLibTaku::kPbPb2011Phiv; | |
571a7b22 | 170 | rejectionStep = kFALSE; |
171 | HasPairCut = kTRUE; | |
172 | } | |
173 | else if (cutDefinition==15) { | |
ebdc847a | 174 | selectedPID = LMEECutLibTaku::kPbPb2011TPCandTOFwide; |
175 | selectedCentrality = LMEECutLibTaku::kPbPb2011SemiCentral2; | |
176 | selectedPairCut = LMEECutLibTaku::kPbPb2011Phiv; | |
571a7b22 | 177 | rejectionStep = kFALSE; |
178 | HasPairCut = kTRUE; | |
179 | } | |
180 | ////////////////////////////////////////////// | |
181 | ||
b1f673b5 | 182 | |
571a7b22 | 183 | |
184 | //Legacy cuts, check consistence w/ 1 & 4, then remove | |
185 | /* | |
b1f673b5 | 186 | else if (cutDefinition==7) { |
187 | selectedPID = LMEECutLib::kPbPb2011TPCandTOF; | |
188 | selectedCentrality = LMEECutLib::kPbPb2011Central; | |
189 | rejectionStep = kFALSE; | |
190 | } | |
191 | else if (cutDefinition==8) { | |
192 | selectedPID = LMEECutLib::kPbPb2011TPCandTOF; | |
193 | selectedCentrality = LMEECutLib::kPbPb2011Central; | |
194 | rejectionStep = kTRUE; | |
195 | } | |
571a7b22 | 196 | */ |
b1f673b5 | 197 | else Semi{ |
198 | cout << " =============================== " << endl; | |
199 | cout << " ==== INVALID CONFIGURATION ==== " << endl; | |
200 | cout << " =============================== " << endl; | |
201 | } | |
202 | ||
203 | ||
204 | //Now configure task | |
205 | ||
571a7b22 | 206 | /* |
b1f673b5 | 207 | if (rejectionStep) { |
208 | die->GetTrackFilter().AddCuts(LMCL->GetPIDCutsPre(selectedPID) ); | |
209 | die->GetPairPreFilterLegs().AddCuts(LMCL->GetPIDCutsAna(selectedPID) ); | |
210 | die->GetPairPreFilter().AddCuts(LMCL->GetPairCuts(selectedPID) ); | |
211 | } | |
212 | else { //No Prefilter, no Pairfilter | |
b1f673b5 | 213 | } |
571a7b22 | 214 | */ |
215 | ||
216 | ||
217 | //Apply correct Pre-Filter Scheme, if necessary | |
218 | die->SetPreFilterAllSigns(rejectionStep); | |
219 | ||
220 | die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) ); | |
b1f673b5 | 221 | die->GetEventFilter().AddCuts(LMCL->GetCentralityCuts(selectedCentrality)); |
222 | ||
571a7b22 | 223 | if(HasPairCut==kTRUE){ |
224 | if(rejectionStep==kTRUE){ | |
225 | die->GetPairPreFilterLegs().AddCuts(LMCL->GetPIDCutsAna(selectedPID) ); | |
226 | die->GetPairPreFilter().AddCuts( LMCL->GetPairPreFilterCuts(selectedPairCut)); | |
227 | die->GetPairFilter().AddCuts( LMCL->GetPairCuts(selectedPairCut)); | |
228 | }else{ | |
229 | die->GetPairFilter().AddCuts( LMCL->GetPairCuts(selectedPairCut)); | |
230 | } | |
231 | } | |
232 | ||
b1f673b5 | 233 | |
234 | ||
235 | ||
236 | AliDielectronTrackRotator *rot= 0x0; | |
237 | /*AliDielectronTrackRotator *rot= LMCL->GetTrackRotator(selectedPID); | |
238 | die->SetTrackRotator(rot); | |
239 | */ | |
240 | AliDielectronMixingHandler *mix=LMCL->GetMixingHandler(selectedPID); | |
241 | die->SetMixingHandler(mix); | |
242 | ||
243 | // histogram setup | |
244 | // only if an AliDielectronHistos object is attached to the | |
245 | // dielectron framework histograms will be filled | |
246 | // | |
247 | InitHistograms(die,cutDefinition); | |
248 | ||
249 | // the last definition uses no cuts and only the QA histograms should be filled! | |
250 | if (CFenable) { | |
be89a7bc | 251 | SetSignals(die); |
b1f673b5 | 252 | InitCF(die,cutDefinition); |
253 | } | |
254 | return die; | |
255 | } | |
256 | ||
257 | //______________________________________________________________________________________ | |
258 | ||
259 | void InitHistograms(AliDielectron *die, Int_t cutDefinition) | |
260 | { | |
261 | // | |
262 | // Initialise the histograms | |
263 | // | |
264 | ||
265 | //Setup histogram Manager | |
266 | AliDielectronHistos *histos= | |
267 | new AliDielectronHistos(die->GetName(), | |
268 | die->GetTitle()); | |
269 | //Initialise histogram classes | |
270 | histos->SetReservedWords("Track;Pair;Pre;RejTrack;RejPair:MyPair:MyPairV0"); | |
271 | ||
272 | //Event class | |
273 | // if (cutDefinition==nDie-1) | |
274 | histos->AddClass("Event"); | |
275 | ||
276 | //Track classes | |
277 | //to fill also track info from 2nd event loop until 2 | |
278 | for (Int_t i=0; i<2; ++i){ | |
279 | histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i))); | |
280 | } | |
281 | ||
282 | //Pair classes | |
283 | // to fill also mixed event histograms loop until 10 | |
284 | for (Int_t i=0; i<3; ++i){ | |
285 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i))); | |
286 | } | |
287 | ||
288 | //ME and track rot | |
289 | if (die->GetMixingHandler()) { | |
290 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); | |
291 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4))); | |
292 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6))); | |
293 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); | |
294 | } | |
295 | if (die->GetTrackRotator()) { | |
296 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10))); | |
297 | } | |
298 | ||
299 | //PreFilter Classes | |
300 | //to fill also track info from 2nd event loop until 2 | |
301 | for (Int_t i=0; i<2; ++i){ | |
302 | histos->AddClass(Form("Pre_%s",AliDielectron::TrackClassName(i))); | |
303 | } | |
304 | ||
305 | ||
306 | //Create Classes for Rejected Tracks/Pairs: | |
307 | for (Int_t i=0; i<2; ++i){ | |
308 | histos->AddClass(Form("RejTrack_%s",AliDielectron::TrackClassName(i))); | |
309 | } | |
310 | for (Int_t i=0; i<3; ++i){ | |
311 | histos->AddClass(Form("RejPair_%s",AliDielectron::PairClassName(i))); | |
312 | } | |
313 | ||
314 | ||
315 | //My Pair classes | |
316 | // to fill also mixed event histograms loop until 10 | |
317 | ||
318 | const char* fgkPairClassNames[7] = { | |
319 | "unlike", | |
320 | "like_pp", | |
321 | "like_ee", | |
322 | "mixunlike_pe", | |
323 | "mixunlike_ep", | |
324 | "mixlike_pp", | |
325 | "mixlike_ee" | |
326 | }; | |
327 | for (Int_t i=0; i<7; ++i){ | |
328 | histos->AddClass(Form("MyPair_%s",fgkPairClassNames[i])); | |
329 | } | |
330 | for (Int_t i=0; i<7; ++i){ | |
331 | histos->AddClass(Form("MyPairV0_%s",fgkPairClassNames[i])); | |
332 | } | |
333 | ||
334 | ||
335 | /* | |
336 | //track rotation | |
337 | ||
338 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot))); | |
339 | histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot))); | |
340 | */ | |
341 | //add histograms to event class | |
342 | histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events", | |
343 | 1,0.,1.,AliDielectronVarManager::kNevents); | |
344 | //histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]","0,10,20,40,80,100,101", | |
345 | //AliDielectronVarManager::kCentrality); | |
346 | histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]",100, 0, 100, | |
347 | AliDielectronVarManager::kCentrality); | |
348 | ||
349 | ||
350 | //add histograms to Track classes, also fills RejTrack | |
351 | histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt); | |
352 | histos->UserHistogram("Track","NclsSFracTPC","NclsSFracTPC; NclsSFracTPC;#tracks",200,0,10.,AliDielectronVarManager::kNclsSFracTPC); | |
353 | histos->UserHistogram("Track","TPCclsDiff","TPCclsDiff; TPCclsDiff;#tracks",200,0,10.,AliDielectronVarManager::kTPCclsDiff); | |
354 | ||
355 | histos->UserHistogram("Track","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks", | |
356 | 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE); | |
357 | ||
358 | histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", | |
359 | 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); | |
360 | ||
361 | histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks", | |
362 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE); | |
363 | histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks", | |
364 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE); | |
365 | histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks", | |
366 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE); | |
367 | ||
368 | histos->UserHistogram("Track","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks", | |
369 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE); | |
370 | histos->UserHistogram("Track","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks", | |
371 | 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE); | |
372 | ||
373 | histos->UserHistogram("Track","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks", | |
374 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE); | |
375 | histos->UserHistogram("Track","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks", | |
376 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE); | |
377 | ||
378 | histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", | |
4d42c2f6 | 379 | 200,-1,1,200,0,6.3,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); |
b1f673b5 | 380 | |
381 | histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY); | |
382 | ||
383 | histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC); | |
384 | ||
385 | histos->UserHistogram("Track","TPCnCls_kNFclsTPCr","nTPC vs nTPCr;nTPC vs nTPCr;#tracks",159,0.,159.,159,0.,159.,AliDielectronVarManager::kNclsTPC,AliDielectronVarManager::kNFclsTPCr); | |
386 | ||
387 | histos->UserHistogram("Track","kNFclsTPCr_pT","nTPCr vs pt;nTPCr vs pt;#tracks",159,0.,159.,200,0.,20.,AliDielectronVarManager::kNFclsTPCr,AliDielectronVarManager::kPt); | |
388 | ||
389 | //add histograms to Pair classes, also fills RejPair | |
390 | histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs", | |
391 | 1000,0.0,5.00,AliDielectronVarManager::kM); | |
392 | histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs", | |
393 | 100,-2.,2.,AliDielectronVarManager::kY); | |
394 | histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle", | |
395 | 100,0.,3.15,AliDielectronVarManager::kOpeningAngle); | |
396 | //2D Histo Plot | |
397 | histos->UserHistogram("Pair","InvMassPairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs", | |
571a7b22 | 398 | 1000,0.0,5.0,200,0.,20.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt); |
399 | histos->UserHistogram("Pair","InvMassPhivPair","PhivPair vs Inv. Mass;Inv. Mass [GeV]; Phiv", | |
400 | 1000,0.0,5.0,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair); | |
401 | histos->UserHistogram("Pair","InvMassOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV] ; OpeningAngle[rad]", | |
b1f673b5 | 402 | 1000,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle); |
403 | ||
404 | //add histograms to Track classes | |
405 | histos->UserHistogram("Pre","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt); | |
406 | ||
407 | histos->UserHistogram("Pre","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks", | |
408 | 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE); | |
409 | ||
410 | histos->UserHistogram("Pre","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", | |
411 | 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); | |
412 | ||
413 | histos->UserHistogram("Pre","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", | |
4d42c2f6 | 414 | 200,-1,1,200,0,6.3,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); |
b1f673b5 | 415 | |
416 | histos->UserHistogram("Pre","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY); | |
417 | ||
418 | histos->UserHistogram("Pre","ZVertex ","ZVertex ;ZVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kZv); | |
419 | histos->UserHistogram("Pre","XVertex ","XVertex ;XVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kXv); | |
420 | histos->UserHistogram("Pre","YVertex ","YVertex ;YVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kYv); | |
421 | ||
422 | histos->UserHistogram("Pre","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks", | |
423 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE); | |
424 | histos->UserHistogram("Pre","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks", | |
425 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE); | |
426 | histos->UserHistogram("Pre","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks", | |
427 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE); | |
428 | histos->UserHistogram("Pre","TPCnSigmaPro_P","TPC number of sigmas Proton;P [GeV];TPC number of sigmas Pions;#tracks", | |
429 | 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPro,kTRUE); | |
430 | ||
431 | ||
432 | // histos->UserHistogram("Pre","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC); | |
433 | ||
434 | ||
435 | //////////////////////////////////////////////////////////////////////////// | |
436 | //////////////////////////////////////////////////////////////////////////// | |
437 | ////// my own histograms | |
438 | histos->UserHistogram("MyPair","InvMyMassPairPt","Inv.MyMass vs PairPt;Inv. MyMass [GeV]; pT [GeV]", | |
439 | 1000,0.0,5.0,200,0.,20.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt); | |
440 | ||
441 | histos->UserHistogram("MyPair","InvMyMassOpeningAngle","Opening Angle vs Inv.MyMass;Inv. MyMass [GeV] ; OpeningAngle[rad]", | |
442 | 1000,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle); | |
443 | ||
444 | histos->UserHistogram("MyPair","InvMyMassPsiPair","PsiPair vs Inv.MyMass;Inv. MyMass [GeV]; Phiv", | |
445 | 1000,0.0,5.0,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPsiPair); | |
446 | ||
571a7b22 | 447 | histos->UserHistogram("MyPair","InvMyMassPhivPair","PhivPair vs Inv.MyMass;Inv. MyMass [GeV]; Phiv", |
448 | 1000,0.0,5.0,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair); | |
449 | ||
b1f673b5 | 450 | histos->UserHistogram("MyPair","InvMyMassR","R vs Inv.MyMass;Inv. MyMass [GeV]; R[cm]", |
451 | 1000,0.0,5.0,200,0.,30,AliDielectronVarManager::kM,AliDielectronVarManager::kR); | |
452 | ||
4d42c2f6 | 453 | histos->UserHistogram("MyPair","InvMyMassdPhi","dPhi of pairs vs Inv.MyMass;Inv. MyMass [GeV]; dPhi[rad]", |
454 | 1000,0.0,5.0,200,0.,3.1415,AliDielectronVarManager::kM,AliDielectronVarManager::kCosPointingAngle); | |
455 | ||
b1f673b5 | 456 | histos->UserHistogram("MyPair","PhivR","R vs Phiv; R[cm]; Phiv[rad]", |
457 | 200,0.,30, 200,0,4, AliDielectronVarManager::kR,AliDielectronVarManager::kPsiPair); | |
458 | ||
459 | ||
460 | histos->UserHistogram("MyPairV0","InvV0MyMassPairPt","Inv.MyMass vs PairPt;Inv. MyMass [GeV]; pT [GeV]", | |
461 | 1000,0.0,5.0,200,0.,20.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt); | |
462 | ||
463 | histos->UserHistogram("MyPairV0","InvV0MyMassOpeningAngle","Opening Angle vs Inv.MyMass;Inv. MyMass [GeV]; OA[rad]", | |
464 | 1000,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle); | |
465 | ||
466 | histos->UserHistogram("MyPairV0","InvV0MyMassPsiPair","PsiPair vs Inv.MyMass;Inv. MyMass [GeV]; Psi[rad]", | |
467 | 1000,0.0,5.0,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPsiPair); | |
468 | ||
571a7b22 | 469 | histos->UserHistogram("MyPairV0","InvV0MyMassPhivPair","PhivPair vs Inv.MyMass;Inv. MyMass [GeV]; Phiv [rad]", |
470 | 1000,0.0,5.0,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair); | |
471 | ||
b1f673b5 | 472 | histos->UserHistogram("MyPairV0","InvV0MyMassR","R vs Inv.MyMass;Inv. MyMass [GeV]; R[cm]", |
473 | 1000,0.0,5.0,200,0.,30,AliDielectronVarManager::kM,AliDielectronVarManager::kR); | |
474 | histos->UserHistogram("MyPairV0","PsiPairR","R vs PsiPair; R[cm]; PsiPair[rad]", | |
475 | 200,0.,30, 200,0,4, AliDielectronVarManager::kR,AliDielectronVarManager::kPsiPair); | |
4d42c2f6 | 476 | histos->UserHistogram("MyPairV0","InvV0MyMassdPhi","dPhi of pairs vs Inv.MyMass;Inv. MyMass [GeV]; dPhi[rad]", |
477 | 1000,0.0,5.0,200,0.,3.1415,AliDielectronVarManager::kM,AliDielectronVarManager::kCosPointingAngle); | |
b1f673b5 | 478 | |
479 | //////////////////////////////////////////////////////////////////////////// | |
480 | //////////////////////////////////////////////////////////////////////////// | |
481 | ||
482 | ||
483 | ||
484 | ||
485 | ||
486 | ||
487 | die->SetHistogramManager(histos); | |
488 | } | |
489 | ||
490 | ||
491 | void InitCF(AliDielectron* die, Int_t cutDefinition) | |
492 | { | |
493 | // | |
494 | // Setupd the CF Manager if needed | |
495 | // | |
496 | ||
497 | AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle()); | |
498 | ||
499 | //pair variables | |
500 | cf->AddVariable(AliDielectronVarManager::kP,200,0,20); | |
501 | cf->AddVariable(AliDielectronVarManager::kPt,200,0,20); | |
502 | cf->AddVariable(AliDielectronVarManager::kM, 1000,0,5.00); //5Mev Steps | |
503 | cf->AddVariable(AliDielectronVarManager::kY,100,-2.,2.); | |
504 | cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10); | |
505 | ||
506 | cf->AddVariable(AliDielectronVarManager::kCentrality,100, 0, 100); | |
507 | cf->AddVariable(AliDielectronVarManager::kOpeningAngle,320,0.,3.2); | |
508 | cf->AddVariable(AliDielectronVarManager::kPsiPair,320,0.,3.2); | |
509 | //leg variables | |
510 | cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE); | |
511 | cf->AddVariable(AliDielectronVarManager::kPt,200,0.,20.,kTRUE); | |
512 | cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE); | |
513 | cf->AddVariable(AliDielectronVarManager::kTPCsignal,500,0.0.,500.,kTRUE); | |
514 | cf->AddVariable(AliDielectronVarManager::kTPCnSigmaEle,100,-10.0.,10.,kTRUE); | |
515 | cf->AddVariable(AliDielectronVarManager::kITSnSigmaEle,100,-10.0.,10.,kTRUE); | |
516 | cf->AddVariable(AliDielectronVarManager::kY,100,-2.,2.,kTRUE); | |
517 | //only in this case write MC truth info | |
518 | if (MCenabled) { | |
519 | cf->SetStepForMCtruth(); | |
520 | //cf->SetStepsForMCtruthOnly(); | |
521 | cf->SetStepForAfterAllCuts(); | |
522 | cf->AddVariable(AliDielectronVarManager::kHaveSameMother,5,-2,2); | |
523 | //cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE); | |
524 | //cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE); | |
525 | } | |
526 | ||
527 | cf->SetStepsForSignal(); | |
528 | die->SetCFManagerPair(cf); | |
529 | ||
530 | ||
be89a7bc | 531 | |
b1f673b5 | 532 | /* |
533 | AliDielectronSignalMC* lowMassDiele=new | |
534 | AliDielectronSignalMC("lowMassDiele","low mass dielectron pairs"); | |
535 | lowMassDiele->SetLegPDGs(11,-11); | |
536 | lowMassDiele->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
537 | lowMassDiele->SetLegSources(AliDielectronSignalMC::kPrimary, | |
538 | AliDielectronSignalMC::kPrimary); | |
539 | lowMassDiele->SetFillPureMCStep(kTRUE); | |
540 | die->AddSignalMC(lowMassDiele); | |
541 | ||
542 | AliDielectronSignalMC* secondary=new | |
543 | AliDielectronSignalMC("secondary","secondary electrons pairs"); | |
544 | secondary->SetLegPDGs(11,-11); | |
545 | secondary->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
546 | secondary->SetLegSources(AliDielectronSignalMC::kSecondary, | |
547 | AliDielectronSignalMC::kSecondary); | |
548 | die->AddSignalMC(secondary); | |
549 | ||
550 | ||
551 | AliDielectronSignalMC* finalState=new | |
552 | AliDielectronSignalMC("finalState","finalState electrons pairs"); | |
553 | finalState->SetLegPDGs(11,-11); | |
554 | finalState->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
555 | finalState->SetLegSources(AliDielectronSignalMC::kFinalState, | |
556 | AliDielectronSignalMC::kFinalState); | |
557 | die->AddSignalMC(finalState); | |
558 | */ | |
559 | ||
560 | } | |
561 | ||
562 | //-------------------------------------- | |
563 | void EnableMC() { | |
564 | MCenabled=kTRUE; | |
565 | } | |
566 | ||
567 | ||
568 | //-------------------------------------- | |
569 | void SetSignals(AliDielectron *die) | |
570 | { | |
571 | ||
572 | ||
573 | AliDielectronSignalMC* promptJpsi = new AliDielectronSignalMC("promptJpsi","Prompt J/psi"); // prompt J/psi (not from beauty decays) | |
574 | promptJpsi->SetLegPDGs(11,-11); | |
575 | promptJpsi->SetMotherPDGs(443,443); | |
576 | promptJpsi->SetGrandMotherPDGs(503,503,kTRUE,kTRUE); // not from beauty hadrons | |
577 | promptJpsi->SetMothersRelation(AliDielectronSignalMC::kSame); | |
578 | promptJpsi->SetFillPureMCStep(kTRUE); | |
579 | promptJpsi->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
580 | promptJpsi->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
581 | promptJpsi->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
582 | promptJpsi->SetCheckBothChargesGrandMothers(kTRUE,kTRUE); | |
583 | die->AddSignalMC(promptJpsi); | |
584 | ||
585 | // physical backgrounds (electrons from other sources) | |
586 | AliDielectronSignalMC* diEleContinuum = new AliDielectronSignalMC("diEleContinuum","di-electron continuum"); // all di-electrons originating in the collision | |
587 | diEleContinuum->SetLegPDGs(11,-11); | |
588 | diEleContinuum->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
589 | diEleContinuum->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
590 | die->AddSignalMC(diEleContinuum); | |
591 | ||
592 | AliDielectronSignalMC* diEleCharm = new AliDielectronSignalMC("diEleCharm","di-electrons from charm"); // dielectrons originating from charm hadrons (not neccessary from same mother) | |
593 | diEleCharm->SetLegPDGs(11,-11); | |
594 | diEleCharm->SetMotherPDGs(403,403); | |
595 | diEleCharm->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
596 | diEleCharm->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
597 | diEleCharm->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
598 | die->AddSignalMC(diEleCharm); | |
599 | ||
600 | AliDielectronSignalMC* diEleOpenCharm = new AliDielectronSignalMC("diEleOpenCharm","di-electrons from open charm"); // dielectrons originating from open charm hadrons | |
601 | diEleOpenCharm->SetLegPDGs(11,-11); | |
602 | diEleOpenCharm->SetMotherPDGs(402,402); | |
603 | diEleOpenCharm->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
604 | diEleOpenCharm->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
605 | diEleOpenCharm->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
606 | die->AddSignalMC(diEleOpenCharm); | |
607 | ||
608 | ||
609 | // background from secondary electrons | |
610 | AliDielectronSignalMC* secondaryElectrons = new AliDielectronSignalMC("secondaryElectrons","Secondary electrons"); // all di-electrons from secondary electrons (interaction with detector) | |
611 | secondaryElectrons->SetLegPDGs(11,-11); | |
612 | secondaryElectrons->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary); | |
613 | secondaryElectrons->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
614 | die->AddSignalMC(secondaryElectrons); | |
615 | ||
616 | /* | |
617 | AliDielectronSignalMC* primarySecElePairs = new AliDielectronSignalMC("primarySecElePairs","Primary+Secondary electron pairs"); // primary-secondary pairs | |
618 | primarySecElePairs->SetLegPDGs(11,-11); | |
619 | primarySecElePairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
620 | primarySecElePairs->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kSecondary); | |
621 | die->AddSignalMC(primarySecElePairs); | |
622 | */ | |
623 | ||
624 | AliDielectronSignalMC* conversionElePairs = new AliDielectronSignalMC("conversionElePairs","conversion electron pairs"); // pairs made from conversion (may be also from 2 different conversions) | |
625 | conversionElePairs->SetLegPDGs(11,-11); | |
626 | conversionElePairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
627 | conversionElePairs->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary); | |
628 | conversionElePairs->SetMotherPDGs(22,22); | |
629 | die->AddSignalMC(conversionElePairs); | |
630 | ||
631 | // misidentification | |
632 | /* | |
633 | AliDielectronSignalMC* allEleMisIdPairs = new AliDielectronSignalMC("allEleMisIdPairs","all electron+misid. pairs"); // one true electron + a mis-id electron (all sources included) | |
634 | allEleMisIdPairs->SetLegPDGs(11,11,kFALSE,kTRUE); | |
635 | allEleMisIdPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
636 | die->AddSignalMC(allEleMisIdPairs); | |
637 | ||
638 | AliDielectronSignalMC* allMisIdMisIdPairs = new AliDielectronSignalMC("allMisIdMisIdPairs","all misid.+misid. pairs"); // mis-id + mis-id | |
639 | allMisIdMisIdPairs->SetLegPDGs(11,11,kTRUE,kTRUE); | |
640 | allMisIdMisIdPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
641 | die->AddSignalMC(allMisIdMisIdPairs); | |
642 | ||
643 | AliDielectronSignalMC* elePionPairs = new AliDielectronSignalMC("elePionPairs","electron+pion pairs"); // true electron + mis-id pion | |
644 | elePionPairs->SetLegPDGs(11,211); | |
645 | elePionPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
646 | die->AddSignalMC(elePionPairs); | |
647 | ||
648 | AliDielectronSignalMC* eleKaonPairs = new AliDielectronSignalMC("eleKaonPairs","electron+kaon pairs"); // true electron + mis-id kaon | |
649 | eleKaonPairs->SetLegPDGs(11,321); | |
650 | eleKaonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
651 | die->AddSignalMC(eleKaonPairs); | |
652 | ||
653 | AliDielectronSignalMC* eleProtonPairs = new AliDielectronSignalMC("eleProtonPairs","Electron+proton pairs"); // true electron + mis-id proton | |
654 | eleProtonPairs->SetLegPDGs(11,2212); | |
655 | eleProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
656 | die->AddSignalMC(eleProtonPairs); | |
657 | ||
658 | AliDielectronSignalMC* piPiPairs = new AliDielectronSignalMC("piPiPairs","pion+pion pairs"); // mis-id pion + mis-id pion | |
659 | piPiPairs->SetLegPDGs(211,211); | |
660 | piPiPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
661 | die->AddSignalMC(piPiPairs); | |
662 | ||
663 | AliDielectronSignalMC* piKaonPairs = new AliDielectronSignalMC("piKaonPairs","pion+kaon pairs"); // mis-id pion + mis-id kaon | |
664 | piKaonPairs->SetLegPDGs(211,321); | |
665 | piKaonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
666 | die->AddSignalMC(piKaonPairs); | |
667 | ||
668 | AliDielectronSignalMC* piProtonPairs = new AliDielectronSignalMC("piProtonPairs","pion+proton pairs"); // mis-id pion + mis-id proton | |
669 | piProtonPairs->SetLegPDGs(211,2212); | |
670 | piProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
671 | die->AddSignalMC(piProtonPairs); | |
672 | ||
673 | AliDielectronSignalMC* kaonKaonPairs = new AliDielectronSignalMC("kaonKaonPairs","kaon+kaon pairs"); // mis-id kaon + mis-id kaon | |
674 | kaonKaonPairs->SetLegPDGs(321,321); | |
675 | kaonKaonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
676 | die->AddSignalMC(kaonKaonPairs); | |
677 | ||
678 | AliDielectronSignalMC* kaonProtonPairs = new AliDielectronSignalMC("kaonProtonPairs","kaon+proton pairs"); // mis-id kaon + mis-id proton | |
679 | kaonProtonPairs->SetLegPDGs(321,2212); | |
680 | kaonProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
681 | die->AddSignalMC(kaonProtonPairs); | |
682 | ||
683 | AliDielectronSignalMC* protonProtonPairs = new AliDielectronSignalMC("protonProtonPairs","proton+proton pairs"); // mis-id proton + mis-id proton | |
684 | protonProtonPairs->SetLegPDGs(2212,2212); | |
685 | protonProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
686 | die->AddSignalMC(protonProtonPairs); | |
687 | ||
688 | AliDielectronSignalMC* muonAllPairs = new AliDielectronSignalMC("muonAllPairs","muon+everything pairs"); // mis-id muon + something else (electron, pion, kaon, proton) | |
689 | muonAllPairs->SetLegPDGs(13,13,kFALSE,kTRUE); | |
690 | muonAllPairs->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
691 | die->AddSignalMC(muonAllPairs); | |
692 | */ | |
693 | ||
694 | ||
695 | AliDielectronSignalMC* pi0Sig = new AliDielectronSignalMC("pi0", "pi0Signal"); ///pi0 dalitz pairs | |
696 | pi0Sig->SetLegPDGs(11,-11); | |
697 | pi0Sig->SetMotherPDGs(111,111); | |
698 | pi0Sig->SetMothersRelation(AliDielectronSignalMC::kSame); | |
699 | pi0Sig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
700 | pi0Sig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary); | |
701 | pi0Sig->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
702 | pi0Sig->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
703 | pi0Sig->SetFillPureMCStep(kTRUE); | |
704 | die->AddSignalMC(pi0Sig); | |
705 | ||
706 | ||
707 | AliDielectronSignalMC* etaSig = new AliDielectronSignalMC("Eta", "etaSignal"); ///eta dalitz pairs | |
708 | etaSig->SetLegPDGs(11,-11); | |
709 | etaSig->SetMotherPDGs(221,221); | |
710 | etaSig->SetMothersRelation(AliDielectronSignalMC::kSame); | |
711 | etaSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
712 | etaSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary); | |
713 | etaSig->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
714 | etaSig->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
715 | etaSig->SetFillPureMCStep(kTRUE); | |
716 | die->AddSignalMC(etaSig); | |
717 | ||
718 | ||
719 | AliDielectronSignalMC* etaprimeSig = new AliDielectronSignalMC("Etaprime", "etaprimeSignal"); ///etaprime pairs | |
720 | etaprimeSig->SetLegPDGs(11,-11); | |
721 | etaprimeSig->SetMotherPDGs(331,331); | |
722 | etaprimeSig->SetMothersRelation(AliDielectronSignalMC::kSame); | |
723 | etaprimeSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
724 | etaprimeSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary); | |
725 | etaprimeSig->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
726 | etaprimeSig->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
727 | etaprimeSig->SetFillPureMCStep(kTRUE); | |
728 | die->AddSignalMC(etaprimeSig); | |
729 | ||
730 | ||
731 | AliDielectronSignalMC* rhoSig = new AliDielectronSignalMC("Rho", "rhoSignal"); ///rho pairs | |
732 | rhoSig->SetLegPDGs(11,-11); | |
733 | rhoSig->SetMotherPDGs(113,113); | |
734 | rhoSig->SetMothersRelation(AliDielectronSignalMC::kSame); | |
735 | rhoSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
736 | rhoSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary); | |
737 | rhoSig->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
738 | rhoSig->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
739 | rhoSig->SetFillPureMCStep(kTRUE); | |
740 | die->AddSignalMC(rhoSig); | |
741 | ||
742 | AliDielectronSignalMC* omegaSig = new AliDielectronSignalMC("Omega", "omegaSignal"); ///omega pairs | |
743 | omegaSig->SetLegPDGs(11,-11); | |
744 | omegaSig->SetMotherPDGs(223,223); | |
745 | omegaSig->SetMothersRelation(AliDielectronSignalMC::kSame); | |
746 | omegaSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
747 | omegaSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary); | |
748 | omegaSig->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
749 | omegaSig->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
750 | omegaSig->SetFillPureMCStep(kTRUE); | |
751 | die->AddSignalMC(omegaSig); | |
752 | ||
753 | AliDielectronSignalMC* phiSig = new AliDielectronSignalMC("Phi", "phiSignal"); ///phi pairs | |
754 | phiSig->SetLegPDGs(11,-11); | |
755 | phiSig->SetMotherPDGs(333,333); | |
756 | phiSig->SetMothersRelation(AliDielectronSignalMC::kSame); | |
757 | phiSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); | |
758 | phiSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary); | |
759 | phiSig->SetCheckBothChargesLegs(kTRUE,kTRUE); | |
760 | phiSig->SetCheckBothChargesMothers(kTRUE,kTRUE); | |
761 | phiSig->SetFillPureMCStep(kTRUE); | |
762 | die->AddSignalMC(phiSig); | |
763 | ||
764 | /* | |
765 | AliDielectronSignalMC* convSig = new AliDielectronSignalMC("conv", "convSignal"); | |
766 | convSig->SetLegPDGs(11,-11); | |
767 | convSig->SetMothersRelation(AliDielectronSignalMC::kSame); | |
768 | convSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState); //in this case, ee needs to be true=IsPhysicalPrimary(label) | |
769 | convSig->SetCheckBothChargesLegs(kFALSE,kFALSE); | |
770 | die->AddSignalMC(convSig); | |
771 | */ | |
772 | } | |
773 |