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