1
#######################################
2
# Order of execution of various modules
3
#######################################
8
ChargedHadronTrackingEfficiency
9
ElectronTrackingEfficiency
10
MuonTrackingEfficiency
12
ChargedHadronMomentumSmearing
13
ElectronEnergySmearing
42
#################################
43
# Propagate particles in cylinder
44
#################################
46
module ParticlePropagator ParticlePropagator {
47
set InputArray Delphes/stableParticles
49
set OutputArray stableParticles
50
set ChargedHadronOutputArray chargedHadrons
51
set ElectronOutputArray electrons
52
set MuonOutputArray muons
54
# radius of the magnetic field coverage, in m
56
# half-length of the magnetic field coverage, in m
63
####################################
64
# Charged hadron tracking efficiency
65
####################################
67
module Efficiency ChargedHadronTrackingEfficiency {
68
set InputArray ParticlePropagator/chargedHadrons
69
set OutputArray chargedHadrons
71
# add EfficiencyFormula {efficiency formula as a function of eta and pt}
73
# tracking efficiency formula for charged hadrons
74
set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
75
(abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
76
(abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \
77
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \
78
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \
79
(abs(eta) > 2.5) * (0.00)}
82
##############################
83
# Electron tracking efficiency
84
##############################
86
module Efficiency ElectronTrackingEfficiency {
87
set InputArray ParticlePropagator/electrons
88
set OutputArray electrons
90
# set EfficiencyFormula {efficiency formula as a function of eta and pt}
92
# tracking efficiency formula for electrons
93
set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
94
(abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \
95
(abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \
96
(abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \
97
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \
98
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \
99
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \
100
(abs(eta) > 2.5) * (0.00)}
103
##############################
104
# Muon tracking efficiency
105
##############################
107
module Efficiency MuonTrackingEfficiency {
108
set InputArray ParticlePropagator/muons
109
set OutputArray muons
111
# set EfficiencyFormula {efficiency formula as a function of eta and pt}
113
# tracking efficiency formula for muons
114
set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
115
(abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \
116
(abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \
117
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
118
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \
119
(abs(eta) > 2.5) * (0.00)}
122
########################################
123
# Momentum resolution for charged tracks
124
########################################
126
module MomentumSmearing ChargedHadronMomentumSmearing {
127
set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
128
set OutputArray chargedHadrons
130
# set ResolutionFormula {resolution formula as a function of eta and pt}
132
# resolution formula for charged hadrons
133
set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.02) + \
134
(abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.01) + \
135
(abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \
136
(abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \
137
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
138
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
139
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
140
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
143
#################################
144
# Energy resolution for electrons
145
#################################
147
module EnergySmearing ElectronEnergySmearing {
148
set InputArray ElectronTrackingEfficiency/electrons
149
set OutputArray electrons
151
# set ResolutionFormula {resolution formula as a function of eta and energy}
153
set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.5e1) * (energy*0.015) + \
154
(abs(eta) <= 2.5) * (energy > 2.5e1) * sqrt(energy^2*0.005^2 + energy*0.05^2 + 0.25^2) + \
155
(abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.005^2 + energy*0.05^2 + 0.25^2) + \
156
(abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
160
###############################
161
# Momentum resolution for muons
162
###############################
164
module MomentumSmearing MuonMomentumSmearing {
165
set InputArray MuonTrackingEfficiency/muons
166
set OutputArray muons
168
# set ResolutionFormula {resolution formula as a function of eta and pt}
170
# resolution formula for muons
171
set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
172
(abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
173
(abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \
174
(abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \
175
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.04) + \
176
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.03) + \
177
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
178
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
185
module Merger TrackMerger {
186
# add InputArray InputArray
187
add InputArray ChargedHadronMomentumSmearing/chargedHadrons
188
add InputArray ElectronEnergySmearing/electrons
189
set OutputArray tracks
196
module Calorimeter Calorimeter {
197
set ParticleInputArray ParticlePropagator/stableParticles
198
set TrackInputArray TrackMerger/tracks
200
set TowerOutputArray towers
201
set PhotonOutputArray photons
203
set EFlowTrackOutputArray eflowTracks
204
set EFlowTowerOutputArray eflowTowers
206
set pi [expr {acos(-1)}]
208
# lists of the edges of each tower in eta and phi
209
# each list starts with the lower edge of the first tower
210
# the list ends with the higher edged of the last tower
214
for {set i -36} {$i <= 36} {incr i} {
215
add PhiBins [expr {$i * $pi/36.0}]
217
foreach eta {-1.566 -1.479 -1.392 -1.305 -1.218 -1.131 -1.044 -0.957 -0.87 -0.783 -0.696 -0.609 -0.522 -0.435 -0.348 -0.261 -0.174 -0.087 0 0.087 0.174 0.261 0.348 0.435 0.522 0.609 0.696 0.783 0.87 0.957 1.044 1.131 1.218 1.305 1.392 1.479 1.566 1.653} {
218
add EtaPhiBins $eta $PhiBins
223
for {set i -18} {$i <= 18} {incr i} {
224
add PhiBins [expr {$i * $pi/18.0}]
226
foreach eta {-4.35 -4.175 -4 -3.825 -3.65 -3.475 -3.3 -3.125 -2.95 -2.868 -2.65 -2.5 -2.322 -2.172 -2.043 -1.93 -1.83 -1.74 -1.653 1.74 1.83 1.93 2.043 2.172 2.322 2.5 2.65 2.868 2.95 3.125 3.3 3.475 3.65 3.825 4 4.175 4.35 4.525} {
227
add EtaPhiBins $eta $PhiBins
232
for {set i -9} {$i <= 9} {incr i} {
233
add PhiBins [expr {$i * $pi/9.0}]
235
foreach eta {-5 -4.7 -4.525 4.7 5} {
236
add EtaPhiBins $eta $PhiBins
239
# default energy fractions {abs(PDG code)} {Fecal Fhcal}
240
add EnergyFraction {0} {0.0 1.0}
241
# energy fractions for e, gamma and pi0
242
add EnergyFraction {11} {1.0 0.0}
243
add EnergyFraction {22} {1.0 0.0}
244
add EnergyFraction {111} {1.0 0.0}
245
# energy fractions for muon and neutrinos
246
add EnergyFraction {12} {0.0 0.0}
247
add EnergyFraction {13} {0.0 0.0}
248
add EnergyFraction {14} {0.0 0.0}
249
add EnergyFraction {16} {0.0 0.0}
250
# energy fractions for K0short and Lambda
251
add EnergyFraction {310} {0.3 0.7}
252
add EnergyFraction {3122} {0.3 0.7}
254
# set ECalResolutionFormula {resolution formula as a function of eta and energy}
255
set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.005^2 + energy*0.05^2 + 0.25^2) + \
256
(abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
258
# set HCalResolutionFormula {resolution formula as a function of eta and energy}
259
set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + \
260
(abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}
267
module Merger EFlowMerger {
268
# add InputArray InputArray
269
add InputArray Calorimeter/eflowTracks
270
add InputArray Calorimeter/eflowTowers
271
add InputArray MuonMomentumSmearing/muons
272
set OutputArray eflow
279
module Efficiency PhotonEfficiency {
280
set InputArray Calorimeter/photons
281
set OutputArray photons
283
# set EfficiencyFormula {efficiency formula as a function of eta and pt}
285
# efficiency formula for photons
286
set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
287
(abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
288
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
289
(abs(eta) > 2.5) * (0.00)}
296
module Isolation PhotonIsolation {
297
set CandidateInputArray PhotonEfficiency/photons
298
set IsolationInputArray EFlowMerger/eflow
300
set OutputArray photons
309
#####################
310
# Electron efficiency
311
#####################
313
module Efficiency ElectronEfficiency {
314
set InputArray ElectronEnergySmearing/electrons
315
set OutputArray electrons
317
# set EfficiencyFormula {efficiency formula as a function of eta and pt}
319
# efficiency formula for electrons
320
set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
321
(abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
322
(abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
323
(abs(eta) > 2.5) * (0.00)}
330
module Isolation ElectronIsolation {
331
set CandidateInputArray ElectronEfficiency/electrons
332
set IsolationInputArray EFlowMerger/eflow
334
set OutputArray electrons
347
module Efficiency MuonEfficiency {
348
set InputArray MuonMomentumSmearing/muons
349
set OutputArray muons
351
# set EfficiencyFormula {efficiency as a function of eta and pt}
353
# efficiency formula for muons
354
set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
355
(abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
356
(abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0) * (0.85) + \
357
(abs(eta) > 2.4) * (0.00)}
364
module Isolation MuonIsolation {
365
set CandidateInputArray MuonEfficiency/muons
366
set IsolationInputArray EFlowMerger/eflow
368
set OutputArray muons
381
module Merger MissingET {
382
# add InputArray InputArray
383
add InputArray EFlowMerger/eflow
384
set MomentumOutputArray momentum
391
module Merger ScalarHT {
392
# add InputArray InputArray
393
add InputArray UniqueObjectFinder/jets
394
add InputArray UniqueObjectFinder/electrons
395
add InputArray UniqueObjectFinder/photons
396
add InputArray MuonIsolation/muons
397
set EnergyOutputArray energy
404
module FastJetFinder FastJetFinder {
405
# set InputArray Calorimeter/towers
406
set InputArray EFlowMerger/eflow
410
# algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
415
set SeedThreshold 1.0
416
set ConeAreaFraction 1.0
418
set OverlapThreshold 0.75
420
set MaxIterations 100
431
module BTagging BTagging {
432
set PartonInputArray Delphes/partons
433
set JetInputArray FastJetFinder/jets
441
# add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
442
# PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
443
# gluon's PDG code has the lowest priority
445
# https://twiki.cern.ch/twiki/bin/view/CMSPublic/PhysicsResultsBTV
446
# default efficiency formula (misidentification rate)
447
add EfficiencyFormula {0} {0.001}
449
# efficiency formula for c-jets (misidentification rate)
450
add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \
451
(abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
452
(abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
453
(abs(eta) > 2.5) * (0.000)}
455
# efficiency formula for b-jets
456
add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \
457
(abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
458
(abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
459
(abs(eta) > 2.5) * (0.000)}
462
module TauTagging TauTagging {
463
set ParticleInputArray Delphes/allParticles
464
set PartonInputArray Delphes/partons
465
set JetInputArray FastJetFinder/jets
473
# add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
475
# default efficiency formula (misidentification rate)
476
add EfficiencyFormula {0} {0.001}
477
# efficiency formula for tau-jets
478
add EfficiencyFormula {15} {0.4}
481
#####################################################
482
# Find uniquely identified photons/electrons/tau/jets
483
#####################################################
485
module UniqueObjectFinder UniqueObjectFinder {
486
# earlier arrays take precedence over later ones
487
# add InputArray InputArray OutputArray
488
add InputArray PhotonIsolation/photons photons
489
add InputArray ElectronIsolation/electrons electrons
490
add InputArray FastJetFinder/jets jets
497
module TreeWriter TreeWriter {
498
# add Branch InputArray BranchName BranchClass
499
add Branch Delphes/allParticles Particle GenParticle
500
add Branch TrackMerger/tracks Track Track
501
add Branch Calorimeter/towers Tower Tower
502
add Branch Calorimeter/eflowTracks EFlowTrack Track
503
add Branch Calorimeter/eflowTowers EFlowTower Tower
504
add Branch MuonMomentumSmearing/muons EFlowMuon Muon
505
add Branch UniqueObjectFinder/jets Jet Jet
506
add Branch UniqueObjectFinder/electrons Electron Electron
507
add Branch UniqueObjectFinder/photons Photon Photon
508
add Branch MuonIsolation/muons Muon Muon
509
add Branch MissingET/momentum MissingET MissingET
510
add Branch ScalarHT/energy ScalarHT ScalarHT