]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/Config_shin_pPbTRD.C
update from pr task : sjena
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / Config_shin_pPbTRD.C
CommitLineData
c683985a 1void InitHistograms(AliDielectron *die, Int_t cutDefinition);
2void InitCF(AliDielectron* die, Int_t cutDefinition);
3
4//void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);
5
6void SetupTrackCuts(AliDielectron*die, Int_t cutDefinition);
7void SetupPairCuts(AliDielectron*die, Int_t cutDefinition);
8
9
10Bool_t kRot = 0;
11Bool_t kMix = 1;
12
13//start systematics
14TString names= ("Phiv;Pt10;Open;Mass");
15TObjArray *arrNames=names.Tokenize(";");
16const Int_t nDie=arrNames->GetEntriesFast();
17
18AliDielectron* 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//______________________________________________________________________________________
68void 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-------------------------------------------
155void 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//______________________________________________________________________________________
181void 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
333void 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