Fork me on GitHub

source: git/cards/FCC/FCChh_PileUp.tcl@ d759c46

ImprovedOutputFile Timing dual_readout llp
Last change on this file since d759c46 was ba39aa4, checked in by Michele Selvaggi <michele.selvaggi@…>, 8 years ago

first commit of FCChh_pileUp card

  • Property mode set to 100644
File size: 29.7 KB
Line 
1#
2# Official Delphes card prepared by FCC-hh collaboration
3#
4# Main authors: Heather Gray (CERN)
5# Filip Moortgat (CERN)
6# Michele Selvaggi (CERN)
7#
8# Released on: Nov 14th, 2016
9#
10# Configuration: FCC-hh baseline detector
11#
12#######################################
13# Order of execution of various modules
14#######################################
15
16set ExecutionPath {
17
18 PileUpMerger
19 ParticlePropagator
20
21 ChargedHadronTrackingEfficiency
22 ElectronTrackingEfficiency
23 MuonTrackingEfficiency
24
25 ChargedHadronMomentumSmearing
26 ElectronMomentumSmearing
27 MuonMomentumSmearing
28
29 TrackMerger
30
31 ECal
32 HCal
33
34 ElectronFilter
35 TrackPileUpSubtractor
36
37 Calorimeter
38 NeutralEFlowMerger
39 EFlowMerger
40
41 LeptonFilterNoLep
42 LeptonFilterLep
43 RunPUPPIBase
44 RunPUPPI
45
46 EFlowFilter
47
48 PhotonEfficiency
49 PhotonFilter
50 PhotonIsolation
51
52 ElectronIsolation
53
54 ChargedHadronFilter
55
56 MuonIsolation
57
58 NeutrinoFilter
59
60 MissingET
61 PuppiMissingET
62 GenMissingET
63 GenPileUpMissingET
64
65 GenJetFinder
66 FastJetFinder
67
68 JetEnergyScale
69
70 JetFlavorAssociation
71
72 BTagging
73 CTagging
74 TauTagging
75
76 ScalarHT
77
78 UniqueObjectFinder
79
80 GenParticleFilter
81
82 TreeWriter
83}
84
85###############
86# PileUp Merger
87###############
88
89# using HL-LHC parameters for now
90module PileUpMerger PileUpMerger {
91 set InputArray Delphes/stableParticles
92
93 set ParticleOutputArray stableParticles
94 set VertexOutputArray vertices
95
96 # pre-generated minbias input file
97 set PileUpFile MinBias.pileup
98
99 # average expected pile up
100 set MeanPileUp 1000
101
102 # maximum spread in the beam direction in m
103 set ZVertexSpread 0.25
104
105 # maximum spread in time in s
106 set TVertexSpread 800E-12
107
108 # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s) - {exp(-(t^2/160e-12^2/2))*exp(-(z^2/0.053^2/2))}
109 set VertexDistributionFormula {exp(-(t^2/160e-12^2/2))*exp(-(z^2/0.053^2/2))}
110
111}
112
113#################################
114# Propagate particles in cylinder
115#################################
116
117module ParticlePropagator ParticlePropagator {
118 set InputArray Delphes/stableParticles
119
120 set OutputArray stableParticles
121 set ChargedHadronOutputArray chargedHadrons
122 set ElectronOutputArray electrons
123 set MuonOutputArray muons
124
125 # radius of the magnetic field coverage, in m
126 set Radius 1.5
127 # half-length of the magnetic field coverage, in m
128 set HalfLength 5
129
130 # magnetic field
131 set Bz 4.0
132}
133
134####################################
135# Charged hadron tracking efficiency
136####################################
137
138module Efficiency ChargedHadronTrackingEfficiency {
139 set InputArray ParticlePropagator/chargedHadrons
140 set OutputArray chargedHadrons
141
142 # TBC (which eta_max ? which pT min?)
143
144 # tracking efficiency formula for charged hadrons
145
146 set EfficiencyFormula { (pt <= 0.5) * (0.00) + \
147(abs(eta) <= 2.5) * (pt > 0.5 && pt <= 1) * (0.90) + \
148(abs(eta) <= 2.5) * (pt > 1) * (0.95) + \
149(abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 0.5 && pt <= 1) * (0.85) + \
150(abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 1) * (0.90) + \
151(abs(eta) > 4 && abs(eta) <= 6) * (pt > 0.5 && pt <= 1) * (0.80) + \
152(abs(eta) > 4 && abs(eta) <= 6) * (pt > 1.0) * (0.85) + \
153(abs(eta) > 6.0) * (0.00)}
154
155}
156
157##############################
158# Electron tracking efficiency
159##############################
160
161module Efficiency ElectronTrackingEfficiency {
162 set InputArray ParticlePropagator/electrons
163 set OutputArray electrons
164
165# TBC (which eta_max ?)
166# putting same as charged hadrons for now...
167
168 set EfficiencyFormula { (pt <= 0.5) * (0.00) + \
169 (abs(eta) <= 2.5) * (pt > 0.5 && pt <= 1) * (0.90) + \
170 (abs(eta) <= 2.5) * (pt > 1) * (0.95) + \
171 (abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 0.5 && pt <= 1) * (0.85) + \
172 (abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 1) * (0.90) + \
173 (abs(eta) > 4 && abs(eta) <= 6) * (pt > 0.5 && pt <= 1) * (0.80) + \
174 (abs(eta) > 4 && abs(eta) <= 6) * (pt > 1.0) * (0.85) + \
175 (abs(eta) > 6.0) * (0.00)}
176
177}
178##########################
179# Muon tracking efficiency
180##########################
181
182module Efficiency MuonTrackingEfficiency {
183 set InputArray ParticlePropagator/muons
184 set OutputArray muons
185
186# TBC (which eta_max ? why eff = 0 for 4 < eta < 6 ? for now put the same as central)
187# what about high pT ?
188 # tracking efficiency formula for muons
189 set EfficiencyFormula { (pt <= 0.5) * (0.00) + \
190 (abs(eta) <= 6.0) * (pt > 0.5 && pt <= 1) * (0.90) + \
191 (abs(eta) <= 6.0) * (pt > 1) * (0.99) + \
192 (abs(eta) > 6.0) * (0.00)}
193
194}
195
196########################################
197# Momentum resolution for charged tracks
198########################################
199
200module MomentumSmearing ChargedHadronMomentumSmearing {
201 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
202 set OutputArray chargedHadrons
203
204 source momentumResolutionVsP.tcl
205}
206
207
208###################################
209# Momentum resolution for electrons
210###################################
211
212module MomentumSmearing ElectronMomentumSmearing {
213 set InputArray ElectronTrackingEfficiency/electrons
214 set OutputArray electrons
215
216 source momentumResolutionVsP.tcl
217}
218
219
220###############################
221# Momentum resolution for muons
222###############################
223
224module MomentumSmearing MuonMomentumSmearing {
225 set InputArray MuonTrackingEfficiency/muons
226 set OutputArray muons
227
228 # TBC for just putting tracker resolution/ need to add improvement at high pT
229
230 source muonMomentumResolutionVsP.tcl
231}
232
233##############
234# Track merger
235##############
236
237module Merger TrackMerger {
238# add InputArray InputArray
239 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
240 add InputArray ElectronMomentumSmearing/electrons
241 add InputArray MuonMomentumSmearing/muons
242 set OutputArray tracks
243}
244
245#############
246# ECAL
247#############
248
249# TBC : calos seems ok, check eta max value though.
250
251module SimpleCalorimeter ECal {
252 set ParticleInputArray ParticlePropagator/stableParticles
253 set TrackInputArray TrackMerger/tracks
254
255 set TowerOutputArray ecalTowers
256 set EFlowTrackOutputArray eflowTracks
257 set EFlowTowerOutputArray eflowPhotons
258
259 set IsEcal true
260
261 set EnergyMin 0.5
262 set EnergySignificanceMin 2.0
263
264 set SmearTowerCenter true
265
266 set pi [expr {acos(-1)}]
267
268 # lists of the edges of each tower in eta and phi
269 # each list starts with the lower edge of the first tower
270 # the list ends with the higher edged of the last tower
271
272 # 0.5 degree towers (5x5 mm^2)
273 set PhiBins {}
274 for {set i -256} {$i <= 256} {incr i} {
275 add PhiBins [expr {$i * $pi/256.0}]
276 }
277
278 # TBC
279 foreach eta {-2.4875 -2.475 -2.4625 -2.45 -2.4375 -2.425 -2.4125 -2.4 -2.3875 -2.375 -2.3625 -2.35 -2.3375 -2.325 -2.3125 -2.3 -2.2875 -2.275 -2.2625 -2.25 -2.2375 -2.225 -2.2125 -2.2 -2.1875 -2.175 -2.1625 -2.15 -2.1375 -2.125 -2.1125 -2.1 -2.0875 -2.075 -2.0625 -2.05 -2.0375 -2.025 -2.0125 -2 -1.9875 -1.975 -1.9625 -1.95 -1.9375 -1.925 -1.9125 -1.9 -1.8875 -1.875 -1.8625 -1.85 -1.8375 -1.825 -1.8125 -1.8 -1.7875 -1.775 -1.7625 -1.75 -1.7375 -1.725 -1.7125 -1.7 -1.6875 -1.675 -1.6625 -1.65 -1.6375 -1.625 -1.6125 -1.6 -1.5875 -1.575 -1.5625 -1.55 -1.5375 -1.525 -1.5125 -1.5 -1.4875 -1.475 -1.4625 -1.45 -1.4375 -1.425 -1.4125 -1.4 -1.3875 -1.375 -1.3625 -1.35 -1.3375 -1.325 -1.3125 -1.3 -1.2875 -1.275 -1.2625 -1.25 -1.2375 -1.225 -1.2125 -1.2 -1.1875 -1.175 -1.1625 -1.15 -1.1375 -1.125 -1.1125 -1.1 -1.0875 -1.075 -1.0625 -1.05 -1.0375 -1.025 -1.0125 -1.0 -0.9875 -0.975 -0.9625 -0.95 -0.9375 -0.925 -0.9125 -0.9 -0.8875 -0.875 -0.8625 -0.85 -0.8375 -0.825 -0.8125 -0.8 -0.7875 -0.775 -0.7625 -0.75 -0.7375 -0.725 -0.7125 -0.7 -0.6875 -0.675 -0.6625 -0.65 -0.6375 -0.625 -0.6125 -0.6 -0.5875 -0.575 -0.5625 -0.55 -0.5375 -0.525 -0.5125 -0.5 -0.4875 -0.475 -0.4625 -0.45 -0.4375 -0.425 -0.4125 -0.4 -0.3875 -0.375 -0.3625 -0.35 -0.3375 -0.325 -0.3125 -0.3 -0.2875 -0.275 -0.2625 -0.25 -0.2375 -0.225 -0.2125 -0.2 -0.1875 -0.175 -0.1625 -0.15 -0.1375 -0.125 -0.1125 -0.1 -0.0875 -0.075 -0.0625 -0.05 -0.0375 -0.025 -0.0125 0 0.0125 0.025 0.0375 0.05 0.0625 0.075 0.0875 0.1 0.1125 0.125 0.1375 0.15 0.1625 0.175 0.1875 0.2 0.2125 0.225 0.2375 0.25 0.2625 0.275 0.2875 0.3 0.3125 0.325 0.3375 0.35 0.3625 0.375 0.3875 0.4 0.4125 0.425 0.4375 0.45 0.4625 0.475 0.4875 0.5 0.5125 0.525 0.5375 0.55 0.5625 0.575 0.5875 0.6 0.6125 0.625 0.6375 0.65 0.6625 0.675 0.6875 0.7 0.7125 0.725 0.7375 0.75 0.7625 0.775 0.7875 0.8 0.8125 0.825 0.8375 0.85 0.8625 0.875 0.8875 0.9 0.9125 0.925 0.9375 0.95 0.9625 0.975 0.9875 1.0 1.0125 1.025 1.0375 1.05 1.0625 1.075 1.0875 1.1 1.1125 1.125 1.1375 1.15 1.1625 1.175 1.1875 1.2 1.2125 1.225 1.2375 1.25 1.2625 1.275 1.2875 1.3 1.3125 1.325 1.3375 1.35 1.3625 1.375 1.3875 1.4 1.4125 1.425 1.4375 1.45 1.4625 1.475 1.4875 1.5 1.5125 1.525 1.5375 1.55 1.5625 1.575 1.5875 1.6 1.6125 1.625 1.6375 1.65 1.6625 1.675 1.6875 1.7 1.7125 1.725 1.7375 1.75 1.7625 1.775 1.7875 1.8 1.8125 1.825 1.8375 1.85 1.8625 1.875 1.8875 1.9 1.9125 1.925 1.9375 1.95 1.9625 1.975 1.9875 2 2.0125 2.025 2.0375 2.05 2.0625 2.075 2.0875 2.1 2.1125 2.125 2.1375 2.15 2.1625 2.175 2.1875 2.2 2.2125 2.225 2.2375 2.25 2.2625 2.275 2.2875 2.3 2.3125 2.325 2.3375 2.35 2.3625 2.375 2.3875 2.4 2.4125 2.425 2.4375 2.45 2.4625 2.475 2.4875 2.5} {
280 add EtaPhiBins $eta $PhiBins
281 }
282 # 0.025 eta x 0.025 for eta between 2.5 and 4.0
283 set PhiBins {}
284 for {set i -128} {$i <= 128} {incr i} {
285 add PhiBins [expr {$i * $pi/128.0}]
286 }
287 foreach eta {-3.975 -3.95 -3.925 -3.9 -3.875 -3.85 -3.825 -3.8 -3.775 -3.75 -3.725 -3.7 -3.675 -3.65 -3.625 -3.6 -3.575 -3.55 -3.525 -3.5 -3.475 -3.45 -3.425 -3.4 -3.375 -3.35 -3.325 -3.3 -3.275 -3.25 -3.225 -3.2 -3.175 -3.15 -3.125 -3.1 -3.075 -3.05 -3.025 -3.0 -2.975 -2.95 -2.925 -2.9 -2.875 -2.85 -2.825 -2.8 -2.775 -2.75 -2.725 -2.7 -2.675 -2.65 -2.625 -2.6 -2.575 -2.55 -2.525 -2.5 2.525 2.55 2.575 2.6 2.625 2.65 2.675 2.7 2.725 2.75 2.775 2.8 2.825 2.85 2.875 2.9 2.925 2.95 2.975 3.0 3.025 3.05 3.075 3.1 3.125 3.15 3.175 3.2 3.225 3.25 3.275 3.3 3.325 3.35 3.375 3.4 3.425 3.45 3.475 3.5 3.525 3.55 3.575 3.6 3.625 3.65 3.675 3.7 3.725 3.75 3.775 3.8 3.825 3.85 3.875 3.9 3.925 3.95 3.975 4.0} {
288 add EtaPhiBins $eta $PhiBins
289 }
290
291 # 0.05 x 0.05 for eta between 4.0 and 6.0
292 set PhiBins {}
293 for {set i -64} {$i <= 64} {incr i} {
294 add PhiBins [expr {$i * $pi/64.0}]
295 }
296 foreach eta {-6.0 -5.95 -5.9 -5.85 -5.8 -5.75 -5.7 -5.65 -5.6 -5.55 -5.5 -5.45 -5.4 -5.35 -5.3 -5.25 -5.2 -5.15 -5.1 -5.05 -5.0 -4.95 -4.9 -4.85 -4.8 -4.75 -4.7 -4.65 -4.6 -4.55 -4.5 -4.45 -4.4 -4.35 -4.3 -4.25 -4.2 -4.15 -4.1 -4.05 -4 4.05 4.1 4.15 4.2 4.25 4.3 4.35 4.4 4.45 4.5 4.55 4.6 4.65 4.7 4.75 4.8 4.85 4.9 4.95 5.0 5.05 5.1 5.15 5.2 5.25 5.3 5.35 5.4 5.45 5.5 5.55 5.6 5.65 5.7 5.75 5.8 5.85 5.9 5.95 6.0} {
297 add EtaPhiBins $eta $PhiBins
298 }
299 # default energy fractions {abs(PDG code)} {fraction of energy deposited in ECAL}
300
301 add EnergyFraction {0} {0.0}
302 # energy fractions for e, gamma and pi0
303 add EnergyFraction {11} {1.0}
304 add EnergyFraction {22} {1.0}
305 add EnergyFraction {111} {1.0}
306 # energy fractions for muon, neutrinos and neutralinos
307 add EnergyFraction {12} {0.0}
308 add EnergyFraction {13} {0.0}
309 add EnergyFraction {14} {0.0}
310 add EnergyFraction {16} {0.0}
311 add EnergyFraction {1000022} {0.0}
312 add EnergyFraction {1000023} {0.0}
313 add EnergyFraction {1000025} {0.0}
314 add EnergyFraction {1000035} {0.0}
315 add EnergyFraction {1000045} {0.0}
316 # energy fractions for K0short and Lambda
317 # add EnergyFraction {310} {0.3}
318 # add EnergyFraction {3122} {0.3}
319
320 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
321 set ResolutionFormula { (abs(eta) <= 4.0) * sqrt(energy^2*0.01^2 + energy*0.10^2) + \
322 (abs(eta) > 4.0 && abs(eta) <= 6.0) * sqrt(energy^2*0.01^2 + energy*0.10^2)}
323
324
325}
326
327#############
328# HCAL
329#############
330
331module SimpleCalorimeter HCal {
332 set ParticleInputArray ParticlePropagator/stableParticles
333 set TrackInputArray ECal/eflowTracks
334
335 set TowerOutputArray hcalTowers
336 set EFlowTrackOutputArray eflowTracks
337 set EFlowTowerOutputArray eflowNeutralHadrons
338
339 set IsEcal false
340
341 set EnergyMin 1.0
342 set EnergySignificanceMin 2.0
343
344 set SmearTowerCenter true
345
346 set pi [expr {acos(-1)}]
347
348 # lists of the edges of each tower in eta and phi
349 # each list starts with the lower edge of the first tower
350 # the list ends with the higher edged of the last tower
351
352 # 6 degree towers
353 set PhiBins {}
354 for {set i -64} {$i <= 64} {incr i} {
355 add PhiBins [expr {$i * $pi/64.0}]
356 }
357
358 # TBC
359 foreach eta {-2.45 -2.4 -2.35 -2.3 -2.25 -2.2 -2.15 -2.1 -2.05 -2.0 -1.95 -1.9 -1.85 -1.8 -1.75 -1.7 -1.65 -1.6 -1.55 -1.5 -1.45 -1.4 -1.35 -1.3 -1.25 -1.2 -1.15 -1.1 -1.05 -1.0 -0.95 -0.9 -0.85 -0.8 -0.75 -0.7 -0.65 -0.6 -0.55 -0.5 -0.45 -0.4 -0.35 -0.3 -0.25 -0.2 -0.15 -0.1 -0.05 0.0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5 1.55 1.6 1.65 1.7 1.75 1.8 1.85 1.9 1.95 2.0 2.05 2.1 2.15 2.2 2.25 2.3 2.35 2.4 2.45 2.5} {
360 add EtaPhiBins $eta $PhiBins
361 }
362
363 # 0.1 x 0.1 between eta 2.5 and 4.0
364 set PhiBins {}
365 for {set i -32} {$i <= 32} {incr i} {
366 add PhiBins [expr {$i * $pi/32.0}]
367 }
368 foreach eta {-3.9 -3.8 -3.7 -3.6 -3.5 -3.4 -3.3 -3.2 -3.1 -3.0 -2.9 -2.8 -2.7 -2.6 -2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0} {
369 add EtaPhiBins $eta $PhiBins
370 }
371
372 # 0.2 x 0.2 between eta 4.0 and 6.0
373 set PhiBins {}
374 for {set i -16} {$i <= 16} {incr i} {
375 add PhiBins [expr {$i * $pi/16.0}]
376 }
377 foreach eta {-6.0 -5.8 -5.6 -5.4 -5.2 -5.0 -4.8 -4.6 -4.4 -4.2 -4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 5.8 6.0} {
378 add EtaPhiBins $eta $PhiBins
379 }
380
381 # default energy fractions {abs(PDG code)} {Fecal Fhcal}
382 add EnergyFraction {0} {1.0}
383 # energy fractions for e, gamma and pi0
384 add EnergyFraction {11} {0.0}
385 add EnergyFraction {22} {0.0}
386 add EnergyFraction {111} {0.0}
387 # energy fractions for muon, neutrinos and neutralinos
388 add EnergyFraction {12} {0.0}
389 add EnergyFraction {13} {0.0}
390 add EnergyFraction {14} {0.0}
391 add EnergyFraction {16} {0.0}
392 add EnergyFraction {1000022} {0.0}
393 add EnergyFraction {1000023} {0.0}
394 add EnergyFraction {1000025} {0.0}
395 add EnergyFraction {1000035} {0.0}
396 add EnergyFraction {1000045} {0.0}
397 # energy fractions for K0short and Lambda
398 # add EnergyFraction {310} {0.7}
399 # add EnergyFraction {3122} {0.7}
400
401 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
402 set ResolutionFormula { (abs(eta) <= 4.0) * sqrt(energy^2*0.03^2 + energy*0.50^2) + \
403 (abs(eta) > 4.0 && abs(eta) <= 6.0) * sqrt(energy^2*0.05^2 + energy*1.00^2)}
404}
405
406#################
407# Electron filter
408#################
409
410module PdgCodeFilter ElectronFilter {
411 set InputArray HCal/eflowTracks
412 set OutputArray electrons
413 set Invert true
414 add PdgCode {11}
415 add PdgCode {-11}
416}
417
418
419######################
420# ChargedHadronFilter
421######################
422
423module PdgCodeFilter ChargedHadronFilter {
424 set InputArray HCal/eflowTracks
425 set OutputArray chargedHadrons
426
427 add PdgCode {11}
428 add PdgCode {-11}
429 add PdgCode {13}
430 add PdgCode {-13}
431}
432
433
434##########################
435# Track pile-up subtractor
436##########################
437
438module TrackPileUpSubtractor TrackPileUpSubtractor {
439# add InputArray InputArray OutputArray
440 add InputArray HCal/eflowTracks eflowTracks
441 add InputArray ElectronFilter/electrons electrons
442 add InputArray MuonMomentumSmearing/muons muons
443
444 set VertexInputArray PileUpMerger/vertices
445 # assume perfect pile-up subtraction for tracks with |z| > fZVertexResolution
446 # Z vertex resolution in m
447
448 source dzResolutionVsP.tcl
449}
450
451
452###################################################
453# Tower Merger (in case not using e-flow algorithm)
454###################################################
455
456module Merger Calorimeter {
457# add InputArray InputArray
458 add InputArray ECal/ecalTowers
459 add InputArray HCal/hcalTowers
460 set OutputArray towers
461}
462
463####################
464# Neutral eflow erger
465####################
466
467module Merger NeutralEFlowMerger {
468# add InputArray InputArray
469 add InputArray ECal/eflowPhotons
470 add InputArray HCal/eflowNeutralHadrons
471 set OutputArray eflowTowers
472}
473
474
475####################
476# Energy flow merger
477####################
478
479module Merger EFlowMerger {
480# add InputArray InputArray
481 add InputArray HCal/eflowTracks
482 add InputArray ECal/eflowPhotons
483 add InputArray HCal/eflowNeutralHadrons
484 set OutputArray eflow
485}
486
487#########################################
488### Run the puppi code (to be tuned) ###
489#########################################
490
491module PdgCodeFilter LeptonFilterNoLep {
492 set InputArray HCal/eflowTracks
493 set OutputArray eflowTracksNoLeptons
494 set Invert false
495 add PdgCode {13}
496 add PdgCode {-13}
497 add PdgCode {11}
498 add PdgCode {-11}
499}
500
501module PdgCodeFilter LeptonFilterLep {
502 set InputArray HCal/eflowTracks
503 set OutputArray eflowTracksLeptons
504 set Invert true
505 add PdgCode {11}
506 add PdgCode {-11}
507 add PdgCode {13}
508 add PdgCode {-13}
509}
510
511module RunPUPPI RunPUPPIBase {
512 ## input information
513 set TrackInputArray LeptonFilterNoLep/eflowTracksNoLeptons
514 set NeutralInputArray NeutralEFlowMerger/eflowTowers
515 set PVInputArray PileUpMerger/vertices
516 set MinPuppiWeight 0.05
517 set UseExp false
518 set UseNoLep false
519
520 ## define puppi algorithm parameters (more than one for the same eta region is possible)
521 add EtaMinBin 0.0 4.0
522 add EtaMaxBin 4.0 10.0
523 add PtMinBin 0.0 0.0
524 add ConeSizeBin 0.2 0.2
525 add RMSPtMinBin 0.1 0.5
526 add RMSScaleFactorBin 1.0 1.0
527 add NeutralMinEBin 0.2 0.2
528 add NeutralPtSlope 0.006 0.013
529 add ApplyCHS true true
530 add UseCharged true true
531 add ApplyLowPUCorr true true
532 add MetricId 5 5
533 add CombId 0 0
534
535 ## output name
536 set OutputArray PuppiParticles
537 set OutputArrayTracks puppiTracks
538 set OutputArrayNeutrals puppiNeutrals
539}
540
541module Merger RunPUPPI {
542 add InputArray RunPUPPIBase/PuppiParticles
543 add InputArray LeptonFilterLep/eflowTracksLeptons
544 set OutputArray PuppiParticles
545}
546
547
548######################
549# EFlowFilter
550######################
551
552module PdgCodeFilter EFlowFilter {
553 set InputArray RunPUPPI/PuppiParticles
554 set OutputArray eflow
555
556 add PdgCode {11}
557 add PdgCode {-11}
558 add PdgCode {13}
559 add PdgCode {-13}
560}
561
562
563###################
564# Missing ET merger
565###################
566
567module Merger MissingET {
568# add InputArray InputArray
569 add InputArray EFlowMerger/eflow
570 set MomentumOutputArray momentum
571}
572
573###################
574# Puppi Missing ET merger
575###################
576
577module Merger PuppiMissingET {
578 #add InputArray InputArray
579 add InputArray RunPUPPI/PuppiParticles
580 #add InputArray EFlowMerger/eflow
581 set MomentumOutputArray momentum
582}
583
584
585###################
586# Ger PileUp Missing ET
587###################
588
589module Merger GenPileUpMissingET {
590# add InputArray InputArray
591# add InputArray RunPUPPI/PuppiParticles
592 add InputArray ParticlePropagator/stableParticles
593 set MomentumOutputArray momentum
594}
595
596
597##################
598# Scalar HT merger
599##################
600
601module Merger ScalarHT {
602# add InputArray InputArray
603 add InputArray RunPUPPI/PuppiParticles
604 set EnergyOutputArray energy
605}
606
607#################
608# Neutrino Filter
609#################
610
611module PdgCodeFilter NeutrinoFilter {
612
613 set InputArray Delphes/stableParticles
614 set OutputArray filteredParticles
615
616 set PTMin 0.0
617
618 add PdgCode {12}
619 add PdgCode {14}
620 add PdgCode {16}
621 add PdgCode {-12}
622 add PdgCode {-14}
623 add PdgCode {-16}
624
625}
626
627
628#####################
629# MC truth jet finder
630#####################
631
632# TBC: is jet radius fine?
633
634module FastJetFinder GenJetFinder {
635# set InputArray NeutrinoFilter/filteredParticles
636 set InputArray Delphes/stableParticles
637
638 set OutputArray jets
639
640 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
641 set JetAlgorithm 6
642 set ParameterR 0.4
643
644 set JetPTMin 5.0
645}
646
647#########################
648# Gen Missing ET merger
649########################
650
651module Merger GenMissingET {
652
653# add InputArray InputArray
654 add InputArray NeutrinoFilter/filteredParticles
655 set MomentumOutputArray momentum
656}
657
658############
659# Jet finder
660############
661
662# TBC need to include jet substructure variables
663# TBC is jet radius fine?
664
665module FastJetFinder FastJetFinder {
666# set InputArray Calorimeter/towers
667 set InputArray RunPUPPI/PuppiParticles
668
669 set OutputArray jets
670
671 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
672 # 7: anti-kt with winner-take-all axis (for N-subjettiness), 8 N-jettiness
673
674 set JetAlgorithm 6
675 set ParameterR 0.4
676
677 set JetPTMin 30.0
678}
679
680
681
682##################
683# Jet Energy Scale
684##################
685
686module EnergyScale JetEnergyScale {
687 set InputArray FastJetFinder/jets
688 set OutputArray jets
689
690 # scale formula for jets
691 set ScaleFormula {1.00}
692}
693
694
695########################
696# Jet Flavor Association
697########################
698
699module JetFlavorAssociation JetFlavorAssociation {
700
701 set PartonInputArray Delphes/partons
702 set ParticleInputArray Delphes/allParticles
703 set ParticleLHEFInputArray Delphes/allParticlesLHEF
704 set JetInputArray JetEnergyScale/jets
705
706 set DeltaR 0.5
707 set PartonPTMin 5.0
708 set PartonEtaMax 6.0
709
710}
711
712###################
713# Photon efficiency
714###################
715
716module Efficiency PhotonEfficiency {
717 set InputArray ECal/eflowPhotons
718 set OutputArray photons
719
720 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
721
722 set EfficiencyFormula {
723 (pt <= 1.0) * (0.00) + \
724 (abs(eta) <= 2.5) * (pt > 1.0 && pt < 5.0) * (0.70) +
725 (abs(eta) <= 2.5) * (pt > 5.0 && pt < 10.0) * (0.85) +
726 (abs(eta) <= 2.5) * (pt > 10.0) * (0.95) +
727
728 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0 && pt < 5.0) * (0.60) +
729 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 5.0 && pt < 10.0) * (0.80) +
730 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 10.0) * (0.90) +
731
732 (abs(eta) > 4.0 && abs(eta) <= 6.0) * (pt > 1.0 && pt < 5.0) * (0.50) + \
733 (abs(eta) > 4.0 && abs(eta) <= 6.0) * (pt > 5.0 && pt < 10.0) * (0.70) + \
734 (abs(eta) > 4.0 && abs(eta) <= 6.0) * (pt > 10.0) * (0.80) + \
735 (abs(eta) > 6.0) * (0.00)}
736
737}
738
739#################
740# Photon filter
741#################
742
743module PdgCodeFilter PhotonFilter {
744 set InputArray PhotonEfficiency/photons
745 set OutputArray photons
746 set Invert true
747 set PTMin 5.0
748 add PdgCode {22}
749}
750
751
752####################
753# Photon isolation #
754####################
755
756module Isolation PhotonIsolation {
757
758 # particle for which calculate the isolation
759 set CandidateInputArray PhotonFilter/photons
760
761 # isolation collection
762 set IsolationInputArray EFlowFilter/eflow
763
764 # output array
765 set OutputArray photons
766
767 # veto isolation cand. based on proximity to input cand.
768 set DeltaRMin 0.01
769 set UseMiniCone true
770
771 # isolation cone
772 set DeltaRMax 0.3
773
774 # minimum pT
775 set PTMin 0.5
776
777 # iso ratio to cut
778 set PTRatioMax 0.1
779
780}
781
782####################
783# Electron isolation
784####################
785
786# TBC: check values for iso cuts
787
788module Isolation ElectronIsolation {
789 set CandidateInputArray ElectronFilter/electrons
790 set IsolationInputArray EFlowFilter/eflow
791
792 set OutputArray electrons
793
794 set DeltaRMax 0.3
795
796 set PTMin 0.5
797
798 set PTRatioMax 0.1
799}
800
801
802################
803# Muon isolation
804################
805
806# TBC: check values for iso cuts
807
808module Isolation MuonIsolation {
809 set CandidateInputArray MuonMomentumSmearing/muons
810 set IsolationInputArray EFlowFilter/eflow
811
812 set OutputArray muons
813
814 set DeltaRMax 0.3
815
816 set PTMin 0.5
817
818 set PTRatioMax 0.2
819}
820
821
822###########
823# b-tagging
824###########
825
826module BTagging BTagging {
827 set JetInputArray JetEnergyScale/jets
828
829 set BitNumber 0
830
831 add EfficiencyFormula {0} {
832
833 (pt <= 10.0) * (0.00) +
834 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.001) + \
835 (abs(eta) < 2.5) * (pt > 500.0 && pt < 20000.0) * (0.001)*(1.0 - pt/20000.) + \
836 (abs(eta) < 2.5) * (pt > 20000.0) * (0.000) + \
837 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.00075) + \
838 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 20000.0) * (0.00075)*(1.0 - pt/20000.) + \
839 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 20000.0) * (0.000) + \
840 (abs(eta) > 4.0) * (0.00)}
841
842 add EfficiencyFormula {4} {
843
844 (pt <= 10.0) * (0.00) +
845 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.04) + \
846 (abs(eta) < 2.5) * (pt > 500.0 && pt < 20000.0) * (0.04)*(1.0 - pt/20000.) + \
847 (abs(eta) < 2.5) * (pt > 20000.0) * (0.000) + \
848 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.03) + \
849 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 20000.0) * (0.03)*(1.0 - pt/20000.) + \
850 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 20000.0) * (0.000) + \
851 (abs(eta) > 4.0) * (0.00)}
852
853 add EfficiencyFormula {5} {
854
855 (pt <= 10.0) * (0.00) +
856 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.85) +
857 (abs(eta) < 2.5) * (pt > 500.0 && pt < 20000.0) * (0.85)*(1.0 - pt/20000.) +
858 (abs(eta) < 2.5) * (pt > 20000.0) * (0.000) +
859 (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.64) +
860 (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 20000.0) * (0.64)*(1.0 - pt/20000.) +
861 (abs(eta) <= 2.5 && abs(eta) < 4.0) * (pt > 20000.0) * (0.000) +
862 (abs(eta) >= 4.0) * (0.00)}
863
864}
865
866###########
867# c-tagging
868###########
869
870module BTagging CTagging {
871 set JetInputArray JetEnergyScale/jets
872
873 set BitNumber 1
874
875 add EfficiencyFormula {0} {
876
877 (pt <= 10.0) * (0.00) +
878 (abs(eta) < 4.0) * (pt > 10.0) * (0.01) + \
879 (abs(eta) > 4.0) * (pt > 10.0) * (0.00)}
880
881 add EfficiencyFormula {4} {
882
883 (pt <= 10.0) * (0.00) +
884 (abs(eta) < 4.0) * (pt > 10.0) * (0.10) + \
885 (abs(eta) > 4.0) * (pt > 10.0) * (0.00)}
886
887 add EfficiencyFormula {5} {
888
889 (pt <= 10.0) * (0.00) +
890 (abs(eta) < 4.0) * (pt > 10.0) * (0.25) + \
891 (abs(eta) > 4.0) * (pt > 10.0) * (0.00)}
892
893}
894
895
896#############
897# tau-tagging
898#############
899
900
901module TauTagging TauTagging {
902 set ParticleInputArray Delphes/allParticles
903 set PartonInputArray Delphes/partons
904 set JetInputArray JetEnergyScale/jets
905
906 set DeltaR 0.5
907
908 set TauPTMin 1.0
909
910 set TauEtaMax 4.0
911
912 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
913 add EfficiencyFormula {0} {
914
915 (pt <= 10.0) * (0.00) +
916 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.01) + \
917 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.01) *(8./9. - pt/30000.) + \
918 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \
919 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.0075) + \
920 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.0075)*(8./9. - pt/30000.) + \
921 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \
922 (abs(eta) > 4.0) * (0.00)}
923
924 add EfficiencyFormula {11} {
925
926 (pt <= 10.0) * (0.00) +
927 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.005) + \
928 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.005) *(8./9. - pt/30000.) + \
929 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \
930 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.00375) + \
931 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.00375)*(8./9. - pt/30000.) + \
932 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \
933 (abs(eta) > 4.0) * (0.00)}
934
935 add EfficiencyFormula {15} {
936
937 (pt <= 10.0) * (0.00) +
938 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.6) + \
939 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.6) *(8./9. - pt/30000.) + \
940 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \
941 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.45) + \
942 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.45)*(8./9. - pt/30000.) + \
943 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \
944 (abs(eta) > 4.0) * (0.00)}
945
946}
947
948#####################################################
949# Find uniquely identified photons/electrons/tau/jets
950#####################################################
951
952module UniqueObjectFinder UniqueObjectFinder {
953# earlier arrays take precedence over later ones
954# add InputArray InputArray OutputArray
955 add InputArray PhotonIsolation/photons photons
956 add InputArray ElectronIsolation/electrons electrons
957 add InputArray MuonIsolation/muons muons
958 add InputArray JetEnergyScale/jets jets
959
960}
961
962###############################################################################################################
963# StatusPidFilter: this module removes all generated particles except electrons, muons, taus, and status == 3 #
964###############################################################################################################
965
966module StatusPidFilter GenParticleFilter {
967
968 set InputArray Delphes/allParticles
969 set OutputArray filteredParticles
970 set PTMin 5.0
971
972}
973
974##################
975# ROOT tree writer
976##################
977
978module TreeWriter TreeWriter {
979# add Branch InputArray BranchName BranchClass
980 add Branch GenParticleFilter/filteredParticles Particle GenParticle
981 add Branch PileUpMerger/vertices Vertex Vertex
982
983 add Branch GenJetFinder/jets GenJet Jet
984 add Branch GenMissingET/momentum GenMissingET MissingET
985
986 add Branch UniqueObjectFinder/photons Photon Photon
987 add Branch UniqueObjectFinder/electrons Electron Electron
988 add Branch UniqueObjectFinder/muons Muon Muon
989 add Branch UniqueObjectFinder/jets Jet Jet
990
991 add Branch MissingET/momentum MissingET MissingET
992 add Branch ScalarHT/energy ScalarHT ScalarHT
993}
994
Note: See TracBrowser for help on using the repository browser.