]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/Config_shin_pPbTRD.C
update from pr task : sjena
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / Config_shin_pPbTRD.C
1 void InitHistograms(AliDielectron *die, Int_t cutDefinition);
2 void InitCF(AliDielectron* die, Int_t cutDefinition);
3
4 //void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);
5
6 void SetupTrackCuts(AliDielectron*die, Int_t cutDefinition);
7 void SetupPairCuts(AliDielectron*die, Int_t cutDefinition);
8
9
10 Bool_t kRot = 0;
11 Bool_t kMix = 1;
12
13 //start systematics
14 TString names= ("Phiv;Pt10;Open;Mass");
15 TObjArray *arrNames=names.Tokenize(";");
16 const Int_t nDie=arrNames->GetEntriesFast();
17
18 AliDielectron* Config_shin_pPbTRD(Int_t cutDefinition=1)
19 {
20   //
21   // Setup the instance of AliDielectron
22   //
23   
24   // create the actual framework object
25   TString name=Form("%02d",cutDefinition);
26   if (cutDefinition<arrNames->GetEntriesFast()){
27     name=arrNames->At(cutDefinition)->GetName();
28   }
29   AliDielectron *die =
30     new AliDielectron(Form("%s",name.Data()),
31                       Form("Track cuts: %s",name.Data()));
32   
33   
34   if(kRot){
35     AliDielectronTrackRotator *rot = new AliDielectronTrackRotator;
36     rot->SetConeAnglePhi(TMath::Pi());
37     rot->SetIterations(10);
38     die->SetTrackRotator(rot);
39   }//kRot
40   
41   
42   if(kMix){
43     AliDielectronMixingHandler *mix = new AliDielectronMixingHandler;
44     mix->SetMixType(AliDielectronMixingHandler::kAll);
45     mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10.");
46     mix->SetDepth(10);
47     die->SetMixingHandler(mix);
48   }//kMix
49   
50   
51   // set track cuts
52   SetupTrackCuts(die,cutDefinition);
53   SetupPairCuts(die,cutDefinition);
54   
55   // histogram setup
56   // only if an AliDielectronHistos object is attached to the
57   // dielectron framework histograms will be filled
58   InitHistograms(die,cutDefinition);
59   //  if(cutDefinition==0){
60   //  InitCF(die,cutDefinition);
61   //}
62
63   return die;
64   
65 }
66
67 //______________________________________________________________________________________
68 void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
69 {
70   //
71   // Setup the track cuts
72   //
73   //pairing with TLorentzVector
74   // die->SetUseKF(kFALSE);
75   //options
76   die->SetPreFilterAllSigns();
77   
78   
79
80   AliDielectronVarCuts *varkinCuts = new AliDielectronVarCuts("trackkine","trackkine");
81   varkinCuts->AddCut(AliDielectronVarManager::kPt,0.4,100.);
82   if(cutDefinition==2){
83     varkinCuts->AddCut(AliDielectronVarManager::kPt,1.,100.);
84   }
85   //  if(cutDefinition==3){
86   //  varkinCuts->AddCut(AliDielectronVarManager::kPt,1.,100.);
87   // }
88   varkinCuts->AddCut(AliDielectronVarManager::kEta,-0.8,0.8);
89   die->GetTrackFilter().AddCuts(varkinCuts);
90   
91   AliDielectronTrackCuts *TrackCuts = new AliDielectronTrackCuts("StandardCuts","StandardCut");
92   //refit
93   TrackCuts->SetRequireTPCRefit(kTRUE);
94   TrackCuts->SetRequireITSRefit(kTRUE);
95   //SPD require
96   // if(cutDefinition == 0 )
97   TrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
98   die->GetTrackFilter().AddCuts(TrackCuts);
99   
100
101   AliDielectronVarCuts *varCuts = new AliDielectronVarCuts("trackkineandTPCQ","trackkine_and_TPC");
102   varCuts->AddCut(AliDielectronVarManager::kPt,0.2,100.);
103   varCuts->AddCut(AliDielectronVarManager::kEta,-0.8,0.8);
104   varCuts->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.);
105   varCuts->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.);
106   varCuts->AddCut(AliDielectronVarManager::kKinkIndex0,0.);
107   
108   varCuts->AddCut(AliDielectronVarManager::kNclsITS,3.,7.);
109   
110   varCuts->AddCut(AliDielectronVarManager::kNclsTPC,80.,500.);
111   varCuts->AddCut(AliDielectronVarManager::kNFclsTPCr,100.,500.); // or NFclsTPCr?
112   varCuts->AddCut(AliDielectronVarManager::kNFclsTPCfCross,0.5,500.);
113   varCuts->AddCut(AliDielectronVarManager::kTPCchi2Cl,0.,4.);
114   die->GetTrackFilter().AddCuts(varCuts);
115     
116   //  if(cutDefinition > 2){
117     AliDielectronPID *pid = new AliDielectronPID("pid","pid"); 
118     pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);
119       pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,3.,0.2,100.,kTRUE);
120       pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.,0.4, 5., kFALSE);
121       die->GetTrackFilter().AddCuts(pid);
122       // }
123   
124   // }
125       //  if(cutDefinition>0){
126     
127     AliDielectronV0Cuts *gammaV0Cuts = new AliDielectronV0Cuts("V0","V0");
128     gammaV0Cuts->SetPdgCodes(22,11,11);
129     gammaV0Cuts->SetDefaultPID(16);
130     gammaV0Cuts->AddCut(AliDielectronVarManager::kCosPointingAngle, TMath::Cos(0.02),   1.0, kFALSE);
131     gammaV0Cuts->AddCut(AliDielectronVarManager::kChi2NDF,                       0.0,  10.0, kFALSE);
132     gammaV0Cuts->AddCut(AliDielectronVarManager::kLegDist,                       0.0,   0.25, kFALSE);
133     gammaV0Cuts->AddCut(AliDielectronVarManager::kR,                             3.0,  90.0, kFALSE);
134     gammaV0Cuts->AddCut(AliDielectronVarManager::kPsiPair,                       0.0,   0.05, kFALSE);
135     gammaV0Cuts->AddCut(AliDielectronVarManager::kM,                             0.0,   0.05, kFALSE);
136     //  gammaV0Cuts->AddCut(AliDielectronVarManager::kOpeningAngle,              0.0,   0.1, kFALSE);
137     gammaV0Cuts->AddCut(AliDielectronVarManager::kArmPt,                         0.0,   0.05, kFALSE);
138     //  gammaV0Cuts->AddCut(AliDielectronVarManager::kArmAlpha,                     -0.35,  0.35, kFALSE); // not sure if it works as expected
139     gammaV0Cuts->SetExcludeTracks(kTRUE);
140     gammaV0Cuts->Print();
141     
142     //  const Double_t |cutAlphaG| < 0.35; &&  const Double_t cutQTG < 0.05;
143     //  const Double_t |cutAlphaG2|[2] = {0.6, 0.8}; &&  const Double_t cutQTG2 < 0.04;
144     
145     // if(cuts)
146     //   ((AliDielectronCutGroup*)cuts)->AddCut(gammaV0Cuts);
147     // else
148     die->GetTrackFilter().AddCuts(gammaV0Cuts);
149     
150     
151     //  }
152     
153 }
154 //----------------------------------Pair Cut-------------------------------------------
155 void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)
156 {
157   //  if(cutDefinition > ){
158   AliDielectronVarCuts *PhiV = new AliDielectronVarCuts("PhiV","PhiV");//mass and Phiv together
159   PhiV->AddCut(AliDielectronVarManager::kM, 0. , 0.05);
160   PhiV->AddCut(AliDielectronVarManager::kPhivPair, 2.5 , 3.2);
161   die->GetPairPreFilter().AddCuts(PhiV);
162   // }
163   if(cutDefinition==2){
164     AliDielectronVarCuts *Open = new AliDielectronVarCuts("Open","Open");//mass and Phiv together
165     Open->AddCut(AliDielectronVarManager::kM, 0. , 0.1);
166     Open->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.1);
167     die->GetPairPreFilter().AddCuts(Open);
168     
169   }
170   if(cutDefinition==3){
171     AliDielectronVarCuts *Mcut = new AliDielectronVarCuts("Mcut","Mcut");//mass and Phiv together
172     Mcut->AddCut(AliDielectronVarManager::kM, 0. , 0.1);
173     //    Open->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.1);
174     die->GetPairPreFilter().AddCuts(Mcut);
175     
176   }
177   
178 }
179
180 //______________________________________________________________________________________
181 void InitHistograms(AliDielectron *die, Int_t cutDefinition)
182 {
183   //
184   // Initialise the histograms
185   //
186   
187   //Setup histogram classes
188   AliDielectronHistos *histos=
189     new AliDielectronHistos(die->GetName(),
190                             die->GetTitle());
191   
192   //Initialise histogram classes
193   histos->SetReservedWords("Track;Pair");
194   
195   //Event class
196   histos->AddClass("Event");
197   
198   //Track classes
199   //to fill also track info from 2nd event loop until 2
200   for (Int_t i=0; i<2; ++i){
201     histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
202   }
203   
204   //Pair classes
205   // to fill also mixed event histograms loop until 10
206   for (Int_t i=0; i<3; ++i){
207     histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
208   }
209
210   //  histos->AddClass(Form("Pair_%s","lowMassDiele"));
211
212   if(kMix){
213   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++
214   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+
215   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +-
216   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME --
217   }
218
219   if(kRot)histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));//Rot
220
221
222   //add histograms to event class
223   histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",1,0,1,AliDielectronVarManager::kNevents);
224   histos->UserHistogram("Event","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim);
225   histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks);
226   histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc);
227   histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib);
228
229
230   //add histograms to Track classes
231   histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",1000,0.,10.,AliDielectronVarManager::kPt);
232   // histos->UserHistogram("Track","Pt_bin2","Pt;Pt [GeV];#tracks",
233   //            "0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.,2.,3.,4.,5.,6.,8.,10"
234   //            ,AliDielectronVarManager::kPt);
235   //  histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta);
236   //  histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi);
237
238   //  histos->UserHistogram("Track","Pt_Eta_Phi","Pt",100,0.,10.,100,-1,1,320,0,6.4,AliDielectronVarManager::kPt,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
239
240   //histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC);
241   //histos->UserHistogram("Track","nClsoverfindablecluster","Number of found Clusters TPC over findably ;TPC number cluster over findable;#tracks",160,0.0,1.1,AliDielectronVarManager::kNFclsTPCrFrac);
242   //histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",100,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
243   histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt);
244   histos->UserHistogram("Track","Phi_pt","Eta vs Pt;Phi;Pt",640,0.,6.4,500,0.,10.,AliDielectronVarManager::kPhi,AliDielectronVarManager::kPt);
245   histos->UserHistogram("Track","Eta_Phi","Eta vs Phi;Phi;Pt",640,0.,6.4,200,-1.,1.,AliDielectronVarManager::kPhi,AliDielectronVarManager::kEta);
246   histos->UserHistogram("Track","TOFnSigma_MomEle","TOF number of sigmas Electrons vs Momentum;Mom;TOFsigmaEle",500,0.,5.,700,-30,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaEle);
247   histos->UserHistogram("Track","TPCdEdx_P","dEdx;P [GeV];TPC signal (arb units) vs Momentum;Mom;TPCsignal", 1000,0,10.,800,0,200,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal);
248    histos->UserHistogram("Track","TPCnSigma_P","TPC number of sigmas Electrons vs Eta;Eta;TPCsigmaEle",100,0.,10.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle);
249    //histos->UserHistogram("Track","TPCnSigma_Eta","TPC number of sigmas Electrons vs Eta;Eta;TPCsigmaEle",800,-0.8.,0.8.,800,-40,40,AliDielectronVarManager::kEta,AliDielectronVarManager::kTPCnSigmaEle);
250    //histos->UserHistogram("Track","TPCdEdx_Eta","TPC dEdx vs Eta;Eta;TPCsigmaEle",800,-0.8,0.8,800,0,200,AliDielectronVarManager::kEta,AliDielectronVarManager::kTPCsignal);
251   //histos->UserHistogram("Track","TPCnSigma_Phi","TPC number of sigmas Electrons vs Phi;Phi;TPCsigmaEle",640,0.,6.4,800,-40,40,AliDielectronVarManager::kPhi,AliDielectronVarManager::kTPCnSigmaEle);
252   // histos->UserHistogram("Track","TPCdEdx_Phi","TPC dEdx vs Phi;Phi;TPCsigmaEle",640,0.,6.4,800,0,200,AliDielectronVarManager::kPhi,AliDielectronVarManager::kTPCsignal);
253
254   
255
256   //add histograms to Pair classes
257
258    //  histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
259    //                     500,0,4,AliDielectronVarManager::kM);
260
261   // histos->UserHistogram("Pair","InvMass_low","Inv.Mass;Inv. Mass [GeV];#pairs",
262   //                     500,0,0.5,AliDielectronVarManager::kM);
263   /*
264   histos->UserHistogram("Pair","kDeltaEta","kDeltaEta;kDeltaEta;#pairs",
265                         160,0.,1.6,AliDielectronVarManager::kDeltaEta);
266   histos->UserHistogram("Pair","kDeltaPhi","kDeltaPhi;kDeltaPhi;#pairs",
267                         320,0.,6.4,AliDielectronVarManager::kDeltaPhi);
268   histos->UserHistogram("Pair","PhiV",";PhiV;#pairs",
269                         320,0.,6.4,AliDielectronVarManager::kPhivPair);
270   histos->UserHistogram("Pair","InvMass_bin2","Inv.Mass;Inv. Mass [GeV];#pairs",
271         "0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , 
272         0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,
273          0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , 
274         2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , 
275         3.3 , 3.5, 3.75 , 4.0",AliDielectronVarManager::kM);
276   histos->UserHistogram("Pair",
277                         "InvMass_Pt","InvMass_Pt;InvMass;Pt",
278                         500, 0. , 4., 100 , 0., 5. ,
279                          AliDielectronVarManager::kM , AliDielectronVarManager::kPt );
280   */
281   histos->UserHistogram("Pair",
282                         "InvMass_Pt","InvMass_Pt;InvMass;Pt",
283                         400, 0. , 4., 1000 , 0., 10. ,
284                         AliDielectronVarManager::kM , AliDielectronVarManager::kPt );
285   histos->UserHistogram("Pair",
286                         "InvMass_Eta","InvMass_Eta;InvMass;Eta",
287                         400, 0. , 4., 200 , -1., 1. ,
288                         AliDielectronVarManager::kM , AliDielectronVarManager::kEta );
289   histos->UserHistogram("Pair",
290                         "InvMass_PhivPair","InvMass_PhivPair;InvMass;PhivPair",
291                         400, 0. , 4., 320 , 0., 3.2 ,
292                         AliDielectronVarManager::kM , AliDielectronVarManager::kPhivPair );
293   histos->UserHistogram("Pair",
294                         "InvMass_dPhi","InvMass_PhivPair;InvMass;PhivPair",
295                         400, 0. , 4., 320 , 0., 3.2 ,
296                         AliDielectronVarManager::kM , AliDielectronVarManager::kDeltaPhi );
297   histos->UserHistogram("Pair",
298                         "InvMass_OpenAng","OpAngle_InvMass;Opening angle;Invariant Mass",
299                          400 , 0. , 4. , 320, 0. , 3.2,
300                         AliDielectronVarManager::kM, AliDielectronVarManager::kOpeningAngle);
301
302
303   /*
304   histos->UserHistogram("Pair",
305                         "Y_PtPair","InvMass_PhivPair;InvMass;PhivPair",
306                         120, -1.2. , 1.2, 100 , 0., 5. ,
307                         AliDielectronVarManager::kY , AliDielectronVarManager::kPt );
308   histos->UserHistogram("Pair",
309                         "OpAngle","Opening angle;Opening angle;#pairs",
310                         320, 0. , 3.2, 
311                          AliDielectronVarManager::kOpeningAngle);
312   histos->UserHistogram("Pair",
313                         "OpAngle_InvMass","OpAngle_InvMass;Opening angle;Invariant Mass",
314                         320, 0. , 3.2, 500 , 0. , 4. ,
315                         AliDielectronVarManager::kOpeningAngle,AliDielectronVarManager::kM);
316   histos->UserHistogram("Pair",
317                         "Phi","Phi;counts;Phi",
318                         320, 0. , 6.4, AliDielectronVarManager::kPhi);
319   histos->UserHistogram("Pair",
320                         "Y","Y;counts;Y",
321                         120, -1.2 , 1.2, AliDielectronVarManager::kY);
322   histos->UserHistogram("Pair",
323                         "Pt","Pt;counts;Pt",
324                         500, 0 , 10, AliDielectronVarManager::kPt);
325   */ 
326  die->SetHistogramManager(histos);
327   
328 }
329
330
331
332
333 void InitCF(AliDielectron* die, Int_t cutDefinition)
334 {
335   //
336   // Setup the CF Manager if needed
337   //
338   
339   AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());
340   
341   //pair variables
342   //  cf->AddVariable(AliDielectronVarManager::kM,500,0.,4.);
343   cf->AddVariable(AliDielectronVarManager::kM,"0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , 
344         0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,
345          0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , 
346         2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , 
347         3.3 , 3.5, 3.75 , 4.0");//data
348   cf->AddVariable(AliDielectronVarManager::kM,500,0.,5.);
349   cf->AddVariable(AliDielectronVarManager::kM,500,0.,0.1);
350   //  cf->AddVariable(AliDielectronVarManager::kM,500,0.,0.1);
351   cf->AddVariable(AliDielectronVarManager::kY,20,-1.,1.);
352   cf->AddVariable(AliDielectronVarManager::kR,500,0.,100.);
353   cf->AddVariable(AliDielectronVarManager::kPhi,32, 0., 3.2);
354   cf->AddVariable(AliDielectronVarManager::kPt,100,0.,5.);
355   cf->AddVariable(AliDielectronVarManager::kPt,"0.,0.2,0.3,0.4,0.5,0.6,0.8,1.0,1.25,1.5,1.75,2.0,3.,5.");
356   cf->AddVariable(AliDielectronVarManager::kOpeningAngle,62,0.,6.2);
357   cf->AddVariable(AliDielectronVarManager::kPhivPair,64, 0., 6.4);
358   cf->AddVariable(AliDielectronVarManager::kPairType,4,-0.5,3.5);
359
360
361   cf->AddVariable(AliDielectronVarManager::kEta,40,-1.,1.,kTRUE);
362   cf->AddVariable(AliDielectronVarManager::kCharge,40,-2.,2.,kTRUE);
363   //leg 
364   cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.,kTRUE);
365   cf->AddVariable(AliDielectronVarManager::kPhi,36,0.,360.,kTRUE);
366   cf->AddVariable(AliDielectronVarManager::kEta,100,-1.,1.,kTRUE);
367   cf->AddVariable(AliDielectronVarManager::kTPCnSigmaEle,20,-3.,4.,kTRUE);
368   cf->AddVariable(AliDielectronVarManager::kTPCsignal,"40,50,55,60,65,68,70,72,75,80,90,100,110,120",kTRUE);
369   // cf->AddVariable(AliDielectronVarManager::kTPCsignal,200,0.,200.,kTRUE);
370   //cf->AddVariable(AliDielectronVarManager::kNFclsTPCr,200,0.,200.,kTRUE);
371   //cf->AddVariable(AliDielectronVarManager::kNFclsTPCfCross,200,0.,2.,kTRUE);
372   //cf->AddVariable(AliDielectronVarManager::kTPCchi2Cl,200,0.,10.,kTRUE);
373   //cf->AddVariable(AliDielectronVarManager::kImpactParXY,400,-.5,.5,kTRUE);
374   //cf->AddVariable(AliDielectronVarManager::kImpactParZ,400,-2.,2.,kTRUE);
375   //cf->AddVariable(AliDielectronVarManager::kNclsITS,10,0.,10.,kTRUE);
376   cf->AddVariable(AliDielectronVarManager::kNFclsTPCrFrac,10,0.,1.,kTRUE);
377   cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
378   cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
379
380
381   if(cutDefinition==0){
382     cf->SetStepForMCtruth();
383   }
384   cf->SetStepForAfterAllCuts();
385   cf->SetStepsForSignal();
386   die->SetCFManagerPair(cf);
387
388
389   //primary
390   AliDielectronSignalMC* DielePrimary=new
391         AliDielectronSignalMC("Diele Primary","low mass primary dielectron pairs");
392   DielePrimary->SetLegPDGs(11,-11);
393   DielePrimary->SetCheckBothChargesLegs(kTRUE,kTRUE);
394   DielePrimary->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
395   //DielePrimary->SetFillPureMCStep(kTRUE);
396   die->AddSignalMC(DielePrimary);
397
398   // secondary  
399   AliDielectronSignalMC* secsec = new 
400     AliDielectronSignalMC("Secondarypairs","secondary electron pairs");      // pairs made from conversion (may be also from 2 different conversions)
401   secsec->SetLegPDGs(11,-11);
402   secsec->SetCheckBothChargesLegs(kTRUE,kTRUE);
403   secsec->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary);
404   //  secsec->SetFillPureMCStep(kTRUE);
405   die->AddSignalMC(secsec);
406   
407   // secondary-primary
408   AliDielectronSignalMC* DielePriSec=new
409         AliDielectronSignalMC("Diele Prim-Sec","low mass prim-sec dielectron pairs");
410   DielePriSec->SetLegPDGs(11,-11);
411   DielePriSec->SetCheckBothChargesLegs(kTRUE,kTRUE);
412   DielePriSec->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kSecondary);
413   //DielePriSec->SetFillPureMCStep(kTRUE);
414   die->AddSignalMC(DielePriSec);
415
416   /*
417   AliDielectronSignalMC* DielePrimary=new
418         AliDielectronSignalMC("Diele Primary","low mass primary dielectron pairs");
419   DielePrimary->SetLegPDGs(11,-11);
420   DielePrimary->SetCheckBothChargesLegs(kTRUE,kTRUE);
421   DielePrimary->SetLegSources(AliDielectronSignalMC::kFinalState,
422           AliDielectronSignalMC::kFinalState);
423   DielePrimary->SetMothersRelation(AliDielectronSignalMC::kSame);
424   DielePrimary->SetFillPureMCStep(kTRUE);
425   die->AddSignalMC(DielePrimary);
426   */
427     
428   AliDielectronSignalMC* pi0 = new AliDielectronSignalMC("pi0dalitz","pi0dalitz");
429   pi0->SetLegPDGs(11,-11);
430   pi0->SetMotherPDGs(111,111);
431   pi0->SetMothersRelation(AliDielectronSignalMC::kSame);
432   pi0->SetLegSources(AliDielectronSignalMC::kFinalState,AliDielectronSignalMC::kFinalState);
433   pi0->SetCheckBothChargesLegs(kTRUE,kTRUE);
434   pi0->SetCheckBothChargesMothers(kTRUE,kTRUE);
435   pi0->SetFillPureMCStep(kTRUE);
436   die->AddSignalMC(pi0);
437
438    AliDielectronSignalMC* etaSig = new AliDielectronSignalMC("Eta", "etaSignal"); ///eta dalitz pairs 
439   etaSig->SetLegPDGs(11,-11);
440   etaSig->SetMotherPDGs(221,221);
441   etaSig->SetMothersRelation(AliDielectronSignalMC::kSame);
442   etaSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
443   etaSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary);
444   etaSig->SetCheckBothChargesLegs(kTRUE,kTRUE);
445   etaSig->SetCheckBothChargesMothers(kTRUE,kTRUE);
446   etaSig->SetFillPureMCStep(kTRUE);
447   die->AddSignalMC(etaSig);
448
449   AliDielectronSignalMC* etaprimeSig = new AliDielectronSignalMC("Etaprime", "etaprimeSignal"); ///etaprime pairs 
450   etaprimeSig->SetLegPDGs(11,-11);
451   etaprimeSig->SetMotherPDGs(331,331);
452   etaprimeSig->SetMothersRelation(AliDielectronSignalMC::kSame);
453   etaprimeSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
454   etaprimeSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary);
455   etaprimeSig->SetCheckBothChargesLegs(kTRUE,kTRUE);
456   etaprimeSig->SetCheckBothChargesMothers(kTRUE,kTRUE);
457   etaprimeSig->SetFillPureMCStep(kTRUE);
458   die->AddSignalMC(etaprimeSig);
459
460   AliDielectronSignalMC* rhoSig = new AliDielectronSignalMC("Rho", "rhoSignal"); ///rho pairs 
461   rhoSig->SetLegPDGs(11,-11);
462   rhoSig->SetMotherPDGs(113,113);
463   rhoSig->SetMothersRelation(AliDielectronSignalMC::kSame);
464   rhoSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
465   rhoSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary);
466   rhoSig->SetCheckBothChargesLegs(kTRUE,kTRUE);
467   rhoSig->SetCheckBothChargesMothers(kTRUE,kTRUE);
468   rhoSig->SetFillPureMCStep(kTRUE);
469   die->AddSignalMC(rhoSig);
470
471   AliDielectronSignalMC* omegaSig = new AliDielectronSignalMC("Omega", "omegaSignal"); ///omega pairs 
472   omegaSig->SetLegPDGs(11,-11);
473   omegaSig->SetMotherPDGs(223,223);
474   omegaSig->SetMothersRelation(AliDielectronSignalMC::kSame);
475   omegaSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
476   omegaSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary);
477   omegaSig->SetCheckBothChargesLegs(kTRUE,kTRUE);
478   omegaSig->SetCheckBothChargesMothers(kTRUE,kTRUE);
479   omegaSig->SetFillPureMCStep(kTRUE);
480   die->AddSignalMC(omegaSig);
481   
482   AliDielectronSignalMC* phiSig = new AliDielectronSignalMC("Phi", "phiSignal"); ///phi pairs 
483   phiSig->SetLegPDGs(11,-11);
484   phiSig->SetMotherPDGs(333,333);
485   phiSig->SetMothersRelation(AliDielectronSignalMC::kSame);
486   phiSig->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
487   phiSig->SetMotherSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kPrimary);
488   phiSig->SetCheckBothChargesLegs(kTRUE,kTRUE);
489   phiSig->SetCheckBothChargesMothers(kTRUE,kTRUE);
490   phiSig->SetFillPureMCStep(kTRUE);
491   die->AddSignalMC(phiSig);
492
493   AliDielectronSignalMC* dieleOpenCharm = new AliDielectronSignalMC("dieleOpenCharm", "dieleOpenCharm");
494   dieleOpenCharm->SetLegPDGs(11,-11);
495   dieleOpenCharm->SetMotherPDGs(402,402);
496   dieleOpenCharm->SetLegSources(AliDielectronSignalMC::kFinalState,AliDielectronSignalMC::kFinalState);
497   dieleOpenCharm->SetCheckBothChargesLegs(kTRUE,kTRUE);
498   dieleOpenCharm->SetCheckBothChargesMothers(kTRUE,kTRUE);
499   dieleOpenCharm->SetFillPureMCStep(kTRUE);
500   die->AddSignalMC(dieleOpenCharm);
501   
502   AliDielectronSignalMC* diEleCharm = new AliDielectronSignalMC("diEleCharm","di-electrons from charm");  // dielectrons originating from charm hadrons (not neccessary from same mother)
503   diEleCharm->SetLegPDGs(11,-11);
504   diEleCharm->SetMotherPDGs(403,403);
505   diEleCharm->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
506   diEleCharm->SetCheckBothChargesLegs(kTRUE,kTRUE);
507   diEleCharm->SetFillPureMCStep(kTRUE);
508   die->AddSignalMC(diEleCharm);
509  
510   
511 }
512
513
514
515
516