Fork me on GitHub

source: git/cards/delphes_card_LHCb.tcl@ d67b86b

ImprovedOutputFile Timing dual_readout llp
Last change on this file since d67b86b was 934d037, checked in by Pavel Demin <pavel.demin@…>, 9 years ago

replace ElectronEnergySmearing with ElectronMomentumSmearing and add ElectronFilter

  • Property mode set to 100644
File size: 12.0 KB
Line 
1#set MaxEvents 1000
2#set RandomSeed 123
3
4
5#######################################
6# Order of execution of various modules
7#######################################
8
9set ExecutionPath {
10
11 PhotonConversions
12 ParticlePropagator
13
14 ChargedHadronMomentumSmearing
15 ElectronMomentumSmearing
16 MuonMomentumSmearing
17
18 TrackMerger
19 ImpactParameterSmearing
20
21 IdentificationMap
22
23 ECal
24 HCal
25
26 TreeWriter
27}
28
29
30
31#####################
32# Photon Conversions
33#####################
34
35module PhotonConversions PhotonConversions {
36 set InputArray Delphes/stableParticles
37
38 set OutputArray stableParticles
39
40 # radius of the magnetic field coverage, in m
41
42 set Radius 3.31
43
44 set HalfLength 12.0
45
46 set EtaMin 2.0
47 set EtaMax 5.0
48
49
50 # material budget map: (uniform for now)
51 # distribution of the detector mass ( density / X0), can be thought as
52 # conversion rate per meter function of r,phi,z
53
54
55 # unit: m-1
56
57 set Step 0.05
58
59 set ConversionMap { (abs(z) > 0.0 && abs(z) < 12.0 ) * (0.07) +
60 (abs(z) > 0.0) * (0.00) +
61 (abs(z) < 0.0) * (0.00)
62 }
63
64}
65
66
67
68#################################
69# Propagate particles in cylinder
70#################################
71
72module ParticlePropagator ParticlePropagator {
73 set InputArray PhotonConversions/stableParticles
74
75 set OutputArray stableParticles
76 set ChargedHadronOutputArray chargedHadrons
77 set ElectronOutputArray electrons
78 set MuonOutputArray muons
79
80 # radius of the magnetic field coverage, in m
81
82 set Radius 3.31
83
84
85 # half-length of the magnetic field coverage, in m
86 set HalfLength 12.0
87
88 # magnetic field
89 set Bz 1.1
90
91 # Need to veto anything with theta > 0.269 rad -> eta = 2
92 # theta < 0.0135 rad -> eta = 5
93
94 # tracker and calos are at approx 0.269 rad, R = 12*tan(0.269)
95
96}
97
98
99########################################
100# Momentum resolution for charged tracks
101########################################
102
103module MomentumSmearing ChargedHadronMomentumSmearing {
104 set InputArray ParticlePropagator/chargedHadrons
105 set OutputArray chargedHadrons
106
107 # set ResolutionFormula {resolution formula as a function of eta and pt}
108
109 # resolution formula for charged hadrons
110 set ResolutionFormula {(eta > 2.0 && eta <= 5.0) * (pt > 0.5) * (0.005)}
111}
112
113###################################
114# Momentum resolution for electrons
115###################################
116
117module MomentumSmearing ElectronMomentumSmearing {
118 set InputArray ParticlePropagator/electrons
119 set OutputArray electrons
120
121 # set ResolutionFormula {resolution formula as a function of eta and energy}
122
123 # resolution formula for electrons
124 set ResolutionFormula {(eta > 2.0 && eta <= 5.0) * (pt > 0.5)* (0.005)}
125}
126
127###############################
128# Momentum resolution for muons
129###############################
130
131module MomentumSmearing MuonMomentumSmearing {
132 set InputArray ParticlePropagator/muons
133 set OutputArray muons
134
135 # resolution formula for muons
136 set ResolutionFormula {(eta > 2.0 && eta <= 5.0) * (pt > 0.5)* (0.005)}
137}
138
139
140##############
141# Track merger
142##############
143
144module Merger TrackMerger {
145# add InputArray InputArray
146 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
147 add InputArray ElectronMomentumSmearing/electrons
148 add InputArray MuonMomentumSmearing/muons
149 set OutputArray tracks
150}
151
152
153
154################################
155# Track impact parameter smearing
156################################
157
158module ImpactParameterSmearing ImpactParameterSmearing {
159 set InputArray TrackMerger/tracks
160 set OutputArray tracks
161
162
163# absolute impact parameter smearing formula (in mm) as a function of pt and eta
164set ResolutionFormula {0.0116 + 0.0234/pt}
165
166}
167
168###### ref. JINST 9 C01065 #############
169
170
171####################################
172# Charged hadron PID
173####################################
174
175module IdentificationMap IdentificationMap {
176 set InputArray ImpactParameterSmearing/tracks
177 set OutputArray tracks
178
179 # {PID in} {PID out} {formula}
180 # make sure "PID in" and "PID out" have the same charge (e.g {-13} {211} or {-321} {211})
181 # {211} {-13} is equivalent to {-211} {13} (and needs to be written once only...)
182
183
184
185
186
187
188 # --- pions ---
189
190 add EfficiencyFormula {211} {211} { (eta <= 2.0) * (0.00) +
191 (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
192 (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.95) +
193 (eta > 5.0) * (0.00)}
194
195 add EfficiencyFormula {211} {-13} { (eta <= 2.0) * (0.00) +
196 (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
197 (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.005 + 0.0663*exp(-0.13*pt*cosh(eta))) +
198 (eta > 5.0) * (0.00)}
199
200
201 # --- kaons ---
202
203
204 add EfficiencyFormula {321} {321} { (eta <= 2.0) * (0.00) +
205 (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
206 (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.95) +
207 (eta > 5.0) * (0.00)}
208
209 add EfficiencyFormula {321} {-13} { (eta <= 2.0) * (0.00) +
210 (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
211 (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.005 + 0.086*exp(-0.11*pt*cosh(eta))) +
212 (eta > 5.0) * (0.00)}
213
214
215 # --- protons ---
216
217
218 add EfficiencyFormula {2212} {2212} { (eta <= 2.0) * (0.00) +
219 (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
220 (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.95) +
221 (eta > 5.0) * (0.00)}
222
223 add EfficiencyFormula {2212} {-13} { (eta <= 2.0) * (0.00) +
224 (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
225 (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.002) +
226 (eta > 5.0) * (0.00)}
227
228
229
230 # --- muons ---
231
232
233
234 add EfficiencyFormula {-13} {-13} { (eta <= 2.0) * (0.00) +
235 (eta > 2.0 && eta <= 5.0) * (pt < 0.8)* (0.00) +
236 (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.97) +
237 (eta > 5.0) * (0.00)}
238
239# --- electrons ---
240
241
242
243 add EfficiencyFormula {-11} {-11} { (eta <= 2.0) * (0.00) +
244 (eta > 2.0 && eta <= 5.0) * (pt < 0.6)* (0.97) +
245 (eta > 2.0 && eta <= 5.0) * (pt >= 0.6)* (0.97) +
246 (eta > 5.0) * (0.00)}
247
248
249
250 # efficiency for other charged particles (should be always {0} {0} {formula})
251
252 add EfficiencyFormula {0} {0} { (eta <= 2.0) * (0.00) +
253 (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
254 (eta > 2.0 && eta <= 5.0) * (pt > 0.8) * (0.95) +
255 (eta > 5.0) * (0.00)}
256
257}
258
259###### ref. JINST 8 P10020 #############
260
261
262#############
263# ECAL
264#############
265
266module SimpleCalorimeter ECal {
267 set ParticleInputArray ParticlePropagator/stableParticles
268 set TrackInputArray IdentificationMap/tracks
269
270 set TowerOutputArray ecalTowers
271 set EFlowTrackOutputArray eflowTracks
272 set EFlowTowerOutputArray eflowPhotons
273
274 set IsEcal true
275
276 set EnergyMin 0.0
277 set EnergySignificanceMin 0.0
278
279 set SmearTowerCenter true
280
281 set pi [expr {acos(-1)}]
282
283 # lists of the edges of each tower in eta and phi
284 # each list starts with the lower edge of the first tower
285 # the list ends with the higher edged of the last tower
286
287 # 1 degree towers
288 set PhiBins {}
289 for {set i -180} {$i <= 180} {incr i} {
290 add PhiBins [expr {$i * $pi/180.0}]
291 }
292
293 # 0.02 unit in eta from eta = 3.2 to eta = 5.0
294 for {set i 1} {$i <= 90} {incr i} {
295 set eta [expr {3.2 + $i * 0.02}]
296 add EtaPhiBins $eta $PhiBins
297 }
298
299 # 1.25 degree towers
300 set PhiBins {}
301 for {set i -135} {$i <= 135} {incr i} {
302 add PhiBins [expr {$i * $pi/135.0}]
303 }
304
305 # 0.025 unit in eta from eta = 2.6 to eta = 3.2
306 for {set i 1} {$i <= 24} {incr i} {
307 set eta [expr {2.6 + $i * 0.025}]
308 add EtaPhiBins $eta $PhiBins
309 }
310
311 # 1.25 degree towers
312 set PhiBins {}
313 for {set i -100} {$i <= 100} {incr i} {
314 add PhiBins [expr {$i * $pi/100.0}]
315 }
316
317 # 0.04 unit in eta from eta = 2.0 to eta = 2.6
318 for {set i 0} {$i <= 24} {incr i} {
319 set eta [expr {2.0 + $i * 0.04}]
320 add EtaPhiBins $eta $PhiBins
321 }
322
323 add EnergyFraction {0} {0.0}
324 # energy fractions for e, gamma and pi0
325 add EnergyFraction {11} {1.0}
326 add EnergyFraction {22} {1.0}
327 add EnergyFraction {111} {1.0}
328 # energy fractions for muon, neutrinos and neutralinos
329 add EnergyFraction {12} {0.0}
330 add EnergyFraction {13} {0.0}
331 add EnergyFraction {14} {0.0}
332 add EnergyFraction {16} {0.0}
333 add EnergyFraction {1000022} {0.0}
334 add EnergyFraction {1000023} {0.0}
335 add EnergyFraction {1000025} {0.0}
336 add EnergyFraction {1000035} {0.0}
337 add EnergyFraction {1000045} {0.0}
338 # energy fractions for K0short and Lambda
339 add EnergyFraction {310} {0.3}
340 add EnergyFraction {3122} {0.3}
341
342 set ResolutionFormula {(eta <= 5.0 && eta > 2.0) * sqrt(energy^2*0.015^2 + energy*0.10^2)}
343}
344
345#############
346# HCAL
347#############
348
349module SimpleCalorimeter HCal {
350 set ParticleInputArray ParticlePropagator/stableParticles
351 set TrackInputArray ECal/eflowTracks
352
353 set TowerOutputArray hcalTowers
354 set EFlowTrackOutputArray eflowTracks
355 set EFlowTowerOutputArray eflowNeutralHadrons
356
357 set IsEcal false
358
359 set EnergyMin 0.0
360 set EnergySignificanceMin 0.0
361
362 set SmearTowerCenter true
363
364 set pi [expr {acos(-1)}]
365
366 # lists of the edges of each tower in eta and phi
367 # each list starts with the lower edge of the first tower
368 # the list ends with the higher edged of the last tower
369
370 # 1 degree towers
371 set PhiBins {}
372 for {set i -16} {$i <= 16} {incr i} {
373 add PhiBins [expr {$i * $pi/16.0}]
374 }
375
376 # 0.20 unit in eta from eta = 2.6 to eta = 5.0
377 for {set i 1} {$i <= 12} {incr i} {
378 set eta [expr {2.6 + $i * 0.2}]
379 add EtaPhiBins $eta $PhiBins
380 }
381
382 # 1 degree towers
383 set PhiBins {}
384 for {set i -32} {$i <= 32} {incr i} {
385 add PhiBins [expr {$i * $pi/32.0}]
386 }
387
388 # 0.1 unit in eta from eta = 2 to eta = 2.6
389 for {set i 0} {$i <= 6} {incr i} {
390 set eta [expr {2.0 + $i * 0.1}]
391 add EtaPhiBins $eta $PhiBins
392 }
393
394
395
396 # default energy fractions {abs(PDG code)} {Fecal Fhcal}
397 add EnergyFraction {0} {1.0}
398 # energy fractions for e, gamma and pi0
399 add EnergyFraction {11} {0.0}
400 add EnergyFraction {22} {0.0}
401 add EnergyFraction {111} {0.0}
402 # energy fractions for muon, neutrinos and neutralinos
403 add EnergyFraction {12} {0.0}
404 add EnergyFraction {13} {0.0}
405 add EnergyFraction {14} {0.0}
406 add EnergyFraction {16} {0.0}
407 add EnergyFraction {1000022} {0.0}
408 add EnergyFraction {1000023} {0.0}
409 add EnergyFraction {1000025} {0.0}
410 add EnergyFraction {1000035} {0.0}
411 add EnergyFraction {1000045} {0.0}
412 # energy fractions for K0short and Lambda
413 add EnergyFraction {310} {0.7}
414 add EnergyFraction {3122} {0.7}
415
416 set ResolutionFormula { (eta <= 5.0 && eta > 2.0) * sqrt(energy^2*0.05^2 + energy*0.80^2)}
417}
418
419
420##################
421# ROOT tree writer
422##################
423
424# tracks, towers and eflow objects are not stored by default in the output.
425# if needed (for jet constituent or other studies), uncomment the relevant
426# "add Branch ..." lines.
427
428module TreeWriter TreeWriter {
429# add Branch InputArray BranchName BranchClass
430
431 add Branch Delphes/allParticles Particle GenParticle
432
433 add Branch IdentificationMap/tracks Track Track
434 add Branch HCal/eflowNeutralHadrons NeutralHadron Tower
435 add Branch ECal/eflowPhotons Photon Photon
436
437}
438
Note: See TracBrowser for help on using the repository browser.