Fork me on GitHub

Ticket #1075: delphes_card_ILD.tcl

File delphes_card_ILD.tcl, 17.0 KB (added by Aimane, 7 years ago)
Line 
1# based on arXiv:1306.6329
2
3# Tales as an input a pythia card .dat and returns a delphes sample .root
4#######################################
5# Order of execution of various modules
6#######################################
7
8set ExecutionPath {
9 ParticlePropagator
10
11 ChargedHadronTrackingEfficiency
12 ElectronTrackingEfficiency
13 MuonTrackingEfficiency
14
15 ChargedHadronMomentumSmearing
16 ElectronMomentumSmearing
17 MuonMomentumSmearing
18
19 TrackMerger
20
21 ECal
22 HCal
23
24 TowerMerger
25 EFlowMerger
26
27 PhotonEfficiency
28 PhotonIsolation
29
30 ElectronFilter
31 ElectronEfficiency
32 ElectronIsolation
33
34 MuonEfficiency
35 MuonIsolation
36
37 NeutrinoFilter
38 GenJetFinder
39 FastJetFinder
40
41 MissingET
42 GenMissingET
43
44 JetEnergyScale
45
46 JetFlavorAssociation
47
48 BTagging
49
50 TauTagging
51
52 ScalarHT
53
54 UniqueObjectFinder
55
56 TreeWriter
57}
58
59#################################
60# Propagate particles in cylinder
61#################################
62
63module ParticlePropagator ParticlePropagator {
64 set InputArray Delphes/stableParticles
65
66 set OutputArray stableParticles
67 set ChargedHadronOutputArray chargedHadrons
68 set ElectronOutputArray electrons
69 set MuonOutputArray muons
70
71 # radius of the magnetic field coverage, in m
72 set Radius 1.8
73 # half-length of the magnetic field coverage, in m
74 set HalfLength 2.4
75
76 # magnetic field
77 set Bz 3.5
78}
79
80####################################
81# Charged hadron tracking efficiency
82####################################
83
84module Efficiency ChargedHadronTrackingEfficiency {
85 set InputArray ParticlePropagator/chargedHadrons
86 set OutputArray chargedHadrons
87
88 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
89
90 # tracking efficiency formula for charged hadrons
91 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
92 (abs(eta) <= 2.4) * (pt > 0.1) * (0.99) +
93 (abs(eta) > 2.4) * (0.00)}
94}
95
96##############################
97# Electron tracking efficiency
98##############################
99
100module Efficiency ElectronTrackingEfficiency {
101 set InputArray ParticlePropagator/electrons
102 set OutputArray electrons
103
104 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
105
106 # tracking efficiency formula for electrons
107 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
108 (abs(eta) <= 2.4) * (pt > 0.1) * (0.99) +
109 (abs(eta) > 2.4) * (0.00)}
110}
111
112##########################
113# Muon tracking efficiency
114##########################
115
116module Efficiency MuonTrackingEfficiency {
117 set InputArray ParticlePropagator/muons
118 set OutputArray muons
119
120 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
121
122 # tracking efficiency formula for muons
123 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
124 (abs(eta) <= 2.4) * (pt > 0.1) * (0.99) +
125 (abs(eta) > 2.4) * (0.00)}
126}
127
128########################################
129# Momentum resolution for charged tracks
130########################################
131
132module MomentumSmearing ChargedHadronMomentumSmearing {
133 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
134 set OutputArray chargedHadrons
135
136 # set ResolutionFormula {resolution formula as a function of eta and pt}
137
138 # resolution formula for charged hadrons
139 set ResolutionFormula { (abs(eta) <= 1.0) * sqrt(0.001^2 + pt^2*1.e-5^2) +
140 (abs(eta) > 1.0 && abs(eta) <= 2.4) * sqrt(0.01^2 + pt^2*1.e-4^2)}
141
142
143}
144
145###################################
146# Momentum resolution for electrons
147###################################
148
149module MomentumSmearing ElectronMomentumSmearing {
150 set InputArray ElectronTrackingEfficiency/electrons
151 set OutputArray electrons
152
153 # set ResolutionFormula {resolution formula as a function of eta and energy}
154
155 # resolution formula for charged hadrons
156 set ResolutionFormula { (abs(eta) <= 1.0) * sqrt(0.001^2 + pt^2*1.e-5^2) +
157 (abs(eta) > 1.0 && abs(eta) <= 2.4) * sqrt(0.01^2 + pt^2*1.e-4^2)}
158}
159
160###############################
161# Momentum resolution for muons
162###############################
163
164module MomentumSmearing MuonMomentumSmearing {
165 set InputArray MuonTrackingEfficiency/muons
166 set OutputArray muons
167
168 # set ResolutionFormula {resolution formula as a function of eta and pt}
169
170 # resolution formula for charged hadrons
171 set ResolutionFormula { (abs(eta) <= 1.0) * sqrt(0.001^2 + pt^2*1.e-5^2) +
172 (abs(eta) > 1.0 && abs(eta) <= 2.4) * sqrt(0.01^2 + pt^2*1.e-4^2)}
173
174}
175
176##############
177# Track merger
178##############
179
180module Merger TrackMerger {
181# add InputArray InputArray
182 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
183 add InputArray ElectronMomentumSmearing/electrons
184 add InputArray MuonMomentumSmearing/muons
185 set OutputArray tracks
186}
187
188#############
189# ECAL
190#############
191
192module SimpleCalorimeter ECal {
193 set ParticleInputArray ParticlePropagator/stableParticles
194 set TrackInputArray TrackMerger/tracks
195
196 set TowerOutputArray ecalTowers
197 set EFlowTrackOutputArray eflowTracks
198 set EFlowTowerOutputArray eflowPhotons
199
200 set IsEcal true
201
202 set EnergyMin 0.1
203 set EnergySignificanceMin 1.0
204
205 set SmearTowerCenter true
206
207 set pi [expr {acos(-1)}]
208
209 # lists of the edges of each tower in eta and phi
210 # each list starts with the lower edge of the first tower
211 # the list ends with the higher edged of the last tower
212
213 # 0.5 degree towers (5x5 mm^2)
214 set PhiBins {}
215 for {set i -360} {$i <= 360} {incr i} {
216 add PhiBins [expr {$i * $pi/360.0}]
217 }
218
219 # 0.01 unit in eta up to eta = 2.5
220 for {set i -500} {$i <= 500} {incr i} {
221 set eta [expr {$i * 0.005}]
222 add EtaPhiBins $eta $PhiBins
223 }
224
225 # default energy fractions {abs(PDG code)} {fraction of energy deposited in ECAL}
226
227 add EnergyFraction {0} {0.0}
228 # energy fractions for e, gamma and pi0
229 add EnergyFraction {11} {1.0}
230 add EnergyFraction {22} {1.0}
231 add EnergyFraction {111} {1.0}
232 # energy fractions for muon, neutrinos and neutralinos
233 add EnergyFraction {12} {0.0}
234 add EnergyFraction {13} {0.0}
235 add EnergyFraction {14} {0.0}
236 add EnergyFraction {16} {0.0}
237 add EnergyFraction {1000022} {0.0}
238 add EnergyFraction {1000023} {0.0}
239 add EnergyFraction {1000025} {0.0}
240 add EnergyFraction {1000035} {0.0}
241 add EnergyFraction {1000045} {0.0}
242 # energy fractions for K0short and Lambda
243 add EnergyFraction {310} {0.3}
244 add EnergyFraction {3122} {0.3}
245
246 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
247
248 set ResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.01^2 + energy*0.15^2) }
249
250}
251
252#############
253# HCAL
254#############
255
256module SimpleCalorimeter HCal {
257 set ParticleInputArray ParticlePropagator/stableParticles
258 set TrackInputArray ECal/eflowTracks
259
260 set TowerOutputArray hcalTowers
261 set EFlowTrackOutputArray eflowTracks
262 set EFlowTowerOutputArray eflowNeutralHadrons
263
264 set IsEcal false
265
266 set EnergyMin 0.1
267 set EnergySignificanceMin 1.0
268
269 set SmearTowerCenter true
270
271 set pi [expr {acos(-1)}]
272
273 # lists of the edges of each tower in eta and phi
274 # each list starts with the lower edge of the first tower
275 # the list ends with the higher edged of the last tower
276
277
278 # 6 degree towers
279 set PhiBins {}
280 for {set i -60} {$i <= 60} {incr i} {
281 add PhiBins [expr {$i * $pi/60.0}]
282 }
283
284 # 0.5 unit in eta up to eta = 3
285 for {set i -60} {$i <= 60} {incr i} {
286 set eta [expr {$i * 0.05}]
287 add EtaPhiBins $eta $PhiBins
288 }
289
290
291 # default energy fractions {abs(PDG code)} {Fecal Fhcal}
292 add EnergyFraction {0} {1.0}
293 # energy fractions for e, gamma and pi0
294 add EnergyFraction {11} {0.0}
295 add EnergyFraction {22} {0.0}
296 add EnergyFraction {111} {0.0}
297 # energy fractions for muon, neutrinos and neutralinos
298 add EnergyFraction {12} {0.0}
299 add EnergyFraction {13} {0.0}
300 add EnergyFraction {14} {0.0}
301 add EnergyFraction {16} {0.0}
302 add EnergyFraction {1000022} {0.0}
303 add EnergyFraction {1000023} {0.0}
304 add EnergyFraction {1000025} {0.0}
305 add EnergyFraction {1000035} {0.0}
306 add EnergyFraction {1000045} {0.0}
307 # energy fractions for K0short and Lambda
308 add EnergyFraction {310} {0.7}
309 add EnergyFraction {3122} {0.7}
310
311 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
312
313 set ResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.015^2 + energy*0.50^2)}
314
315}
316
317#################
318# Electron filter
319#################
320
321module PdgCodeFilter ElectronFilter {
322 set InputArray HCal/eflowTracks
323 set OutputArray electrons
324 set Invert true
325 add PdgCode {11}
326 add PdgCode {-11}
327}
328
329###################################################
330# Tower Merger (in case not using e-flow algorithm)
331###################################################
332
333module Merger TowerMerger {
334# add InputArray InputArray
335 add InputArray ECal/ecalTowers
336 add InputArray HCal/hcalTowers
337 set OutputArray towers
338}
339
340####################
341# Energy flow merger
342####################
343
344module Merger EFlowMerger {
345# add InputArray InputArray
346 add InputArray HCal/eflowTracks
347 add InputArray ECal/eflowPhotons
348 add InputArray HCal/eflowNeutralHadrons
349 set OutputArray eflow
350}
351
352
353###################
354# Missing ET merger
355###################
356
357module Merger MissingET {
358# add InputArray InputArray
359 add InputArray EFlowMerger/eflow
360 set MomentumOutputArray momentum
361}
362
363
364##################
365# Scalar HT merger
366##################
367
368module Merger ScalarHT {
369# add InputArray InputArray
370 add InputArray EFlowMerger/eflow
371 set EnergyOutputArray energy
372}
373
374#################
375# Neutrino Filter
376#################
377
378module PdgCodeFilter NeutrinoFilter {
379
380 set InputArray Delphes/stableParticles
381 set OutputArray filteredParticles
382
383 set PTMin 0.0
384
385 add PdgCode {12}
386 add PdgCode {14}
387 add PdgCode {16}
388 add PdgCode {-12}
389 add PdgCode {-14}
390 add PdgCode {-16}
391
392}
393
394
395#####################
396# MC truth jet finder
397#####################
398
399module FastJetFinder GenJetFinder {
400 set InputArray NeutrinoFilter/filteredParticles
401
402 set OutputArray jets
403
404 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
405 set JetAlgorithm 6
406 set ParameterR 1.5
407
408 set JetPTMin 5.0
409}
410
411#########################
412# Gen Missing ET merger
413########################
414
415module Merger GenMissingET {
416# add InputArray InputArray
417 add InputArray NeutrinoFilter/filteredParticles
418 set MomentumOutputArray momentum
419}
420
421
422
423############
424# Jet finder
425############
426
427module FastJetFinder FastJetFinder {
428# set InputArray TowerMerger/towers
429 set InputArray EFlowMerger/eflow
430
431 set OutputArray jets
432
433 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
434 set JetAlgorithm 6
435 set ParameterR 1.5
436
437 set JetPTMin 5.0
438}
439
440##################
441# Jet Energy Scale
442##################
443
444module EnergyScale JetEnergyScale {
445 set InputArray FastJetFinder/jets
446 set OutputArray jets
447
448 # scale formula for jets
449 set ScaleFormula {1.00}
450}
451
452
453########################
454# Jet Flavor Association
455########################
456
457module JetFlavorAssociation JetFlavorAssociation {
458
459 set PartonInputArray Delphes/partons
460 set ParticleInputArray Delphes/allParticles
461 set ParticleLHEFInputArray Delphes/allParticlesLHEF
462 set JetInputArray JetEnergyScale/jets
463
464 set DeltaR 0.5
465 set PartonPTMin 1.0
466 set PartonEtaMax 2.5
467
468}
469
470###################
471# Photon efficiency
472###################
473
474module Efficiency PhotonEfficiency {
475 set InputArray ECal/eflowPhotons
476 set OutputArray photons
477
478 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
479
480 # efficiency formula for photons
481 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
482 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
483 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.95) +
484 (abs(eta) > 2.5) * (0.00)}
485}
486
487##################
488# Photon isolation
489##################
490
491module Isolation PhotonIsolation {
492 set CandidateInputArray PhotonEfficiency/photons
493 set IsolationInputArray EFlowMerger/eflow
494
495 set OutputArray photons
496
497 set DeltaRMax 0.5
498
499 set PTMin 0.5
500
501 set PTRatioMax 0.12
502}
503
504#####################
505# Electron efficiency
506#####################
507
508module Efficiency ElectronEfficiency {
509 set InputArray ElectronFilter/electrons
510 set OutputArray electrons
511
512 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
513
514 # efficiency formula for electrons
515 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
516 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
517 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.95) +
518 (abs(eta) > 2.5) * (0.00)}
519}
520
521####################
522# Electron isolation
523####################
524
525module Isolation ElectronIsolation {
526 set CandidateInputArray ElectronEfficiency/electrons
527 set IsolationInputArray EFlowMerger/eflow
528
529 set OutputArray electrons
530
531 set DeltaRMax 0.5
532
533 set PTMin 0.5
534
535 set PTRatioMax 0.12
536}
537
538#################
539# Muon efficiency
540#################
541
542module Efficiency MuonEfficiency {
543 set InputArray MuonMomentumSmearing/muons
544 set OutputArray muons
545
546 # set EfficiencyFormula {efficiency as a function of eta and pt}
547
548 # efficiency formula for muons
549 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
550 (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
551 (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
552 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
553 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
554 (abs(eta) > 2.4) * (0.00)}
555}
556
557################
558# Muon isolation
559################
560
561module Isolation MuonIsolation {
562 set CandidateInputArray MuonEfficiency/muons
563 set IsolationInputArray EFlowMerger/eflow
564
565 set OutputArray muons
566
567 set DeltaRMax 0.5
568
569 set PTMin 0.5
570
571 set PTRatioMax 0.25
572}
573
574
575###########
576# b-tagging
577###########
578
579module BTagging BTagging {
580 set JetInputArray JetEnergyScale/jets
581
582 set BitNumber 0
583
584 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
585 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
586 # gluon's PDG code has the lowest priority
587
588 # based on arXiv:1211.4462
589
590 # default efficiency formula (misidentification rate)
591 add EfficiencyFormula {0} {0.01+0.000038*pt}
592
593 # efficiency formula for c-jets (misidentification rate)
594 add EfficiencyFormula {4} {0.25*tanh(0.018*pt)*(1/(1+ 0.0013*pt))}
595
596 # efficiency formula for b-jets
597 add EfficiencyFormula {5} {0.85*tanh(0.0025*pt)*(25.0/(1+0.063*pt))}
598}
599
600#############
601# tau-tagging
602#############
603
604
605module TauTagging TauTagging {
606 set ParticleInputArray Delphes/allParticles
607 set PartonInputArray Delphes/partons
608 set JetInputArray JetEnergyScale/jets
609
610 set DeltaR 0.5
611
612 set TauPTMin 1.0
613
614 set TauEtaMax 4.0
615
616 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
617
618 # default efficiency formula (misidentification rate)
619 add EfficiencyFormula {0} {0.001}
620 # efficiency formula for tau-jets
621 add EfficiencyFormula {15} {0.4}
622}
623
624#####################################################
625# Find uniquely identified photons/electrons/tau/jets
626#####################################################
627
628module UniqueObjectFinder UniqueObjectFinder {
629# earlier arrays take precedence over later ones
630# add InputArray InputArray OutputArray
631 add InputArray PhotonIsolation/photons photons
632 add InputArray ElectronIsolation/electrons electrons
633 add InputArray MuonIsolation/muons muons
634 add InputArray JetEnergyScale/jets jets
635}
636
637
638##################
639# ROOT tree writer
640##################
641
642module TreeWriter TreeWriter {
643# add Branch InputArray BranchName BranchClass
644 add Branch Delphes/allParticles Particle GenParticle
645
646 add Branch GenJetFinder/jets GenJet Jet
647 add Branch GenMissingET/momentum GenMissingET MissingET
648
649 add Branch TrackMerger/tracks Track Track
650 add Branch TowerMerger/towers Tower Tower
651
652 add Branch HCal/eflowTracks EFlowTrack Track
653 add Branch ECal/eflowPhotons EFlowPhoton Tower
654 add Branch HCal/eflowNeutralHadrons EFlowNeutralHadron Tower
655
656 add Branch UniqueObjectFinder/photons Photon Photon
657 add Branch UniqueObjectFinder/electrons Electron Electron
658 add Branch UniqueObjectFinder/muons Muon Muon
659 add Branch UniqueObjectFinder/jets Jet Jet
660
661 add Branch MissingET/momentum MissingET MissingET
662 add Branch ScalarHT/energy ScalarHT ScalarHT
663}
664