]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/ConfigTakuLMEEPbPb2011.C
update from pr task : sjena
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / ConfigTakuLMEEPbPb2011.C
CommitLineData
b1f673b5 1void InitHistograms(AliDielectron *die, Int_t cutDefinition);
2void InitCF(AliDielectron* die, Int_t cutDefinition);
3void EnableMC();
4void 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 28TString names=("noPairing;TPCTOFCentnoPair;TPCTOFSemiCent1noPair;TPCTOFSemiCent2noPair;TPCTOFCentOpPair;TPCTOFSemiCent1OpPair;TPCTOFSemiCent2OpPair;TPCTOFCentPvPair;TPCTOFSemiCent1PvPair;TPCTOFSemiCent2PvPair;TPCTOFCentOpPair2;TPCTOFSemiCent1OpPair2;TPCTOFSemiCent2OpPair2;TPCTOFCentPvPair2;TPCTOFSemiCent1PvPair2;TPCTOFSemiCent2PvPair2");
29
b1f673b5 30TObjArray *arrNames=names.Tokenize(";");
31const Int_t nDie=arrNames->GetEntries();
32
33Bool_t MCenabled=kFALSE;
34
35
36AliDielectron* 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
259void 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
491void 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//--------------------------------------
563void EnableMC() {
564 MCenabled=kTRUE;
565}
566
567
568//--------------------------------------
569void 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