]>
Commit | Line | Data |
---|---|---|
c683985a | 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 |