Fork me on GitHub

source: git/cards/FCC/FCChh_PileUp.tcl

Last change on this file was e3938bb, checked in by Michele Selvaggi <michele.selvaggi@…>, 7 years ago

isolation collection without leptons

  • Property mode set to 100644
File size: 30.2 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 RunPUPPIMerger
45 RunPUPPI
46
47 EFlowFilter
48
49 PhotonEfficiency
50 PhotonFilter
51 PhotonIsolation
52
53 ElectronIsolation
54
55 ChargedHadronFilter
56
57 MuonIsolation
58
59 NeutrinoFilter
60
61 MissingET
62 PuppiMissingET
63 GenMissingET
64 GenPileUpMissingET
65
66 GenJetFinder
67 FastJetFinder
68
69 JetEnergyScale
70
71 JetFlavorAssociation
72
73 BTagging
74 CTagging
75 TauTagging
76
77 ScalarHT
78
79 UniqueObjectFinder
80
81 GenParticleFilter
82
83 TreeWriter
84}
85
86###############
87# PileUp Merger
88###############
89
90# using HL-LHC parameters for now
91module PileUpMerger PileUpMerger {
92 set InputArray Delphes/stableParticles
93
94 set ParticleOutputArray stableParticles
95 set VertexOutputArray vertices
96
97 # pre-generated minbias input file
98 set PileUpFile MinBias.pileup
99
100 # average expected pile up
101 set MeanPileUp 200
102
103 # maximum spread in the beam direction in m
104 set ZVertexSpread 0.25
105
106 # maximum spread in time in s
107 set TVertexSpread 800E-12
108
109 # 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))}
110 set VertexDistributionFormula {exp(-(t^2/160e-12^2/2))*exp(-(z^2/0.053^2/2))}
111
112}
113
114#################################
115# Propagate particles in cylinder
116#################################
117
118module ParticlePropagator ParticlePropagator {
119 set InputArray PileUpMerger/stableParticles
120
121 set OutputArray stableParticles
122 set ChargedHadronOutputArray chargedHadrons
123 set ElectronOutputArray electrons
124 set MuonOutputArray muons
125
126 # radius of the magnetic field coverage, in m
127 set Radius 1.5
128 # half-length of the magnetic field coverage, in m
129 set HalfLength 5
130
131 # magnetic field
132 set Bz 4.0
133}
134
135####################################
136# Charged hadron tracking efficiency
137####################################
138
139module Efficiency ChargedHadronTrackingEfficiency {
140 set InputArray ParticlePropagator/chargedHadrons
141 set OutputArray chargedHadrons
142
143 # TBC (which eta_max ? which pT min?)
144
145 # tracking efficiency formula for charged hadrons
146
147 set EfficiencyFormula { (pt <= 0.5) * (0.00) + \
148(abs(eta) <= 2.5) * (pt > 0.5 && pt <= 1) * (0.90) + \
149(abs(eta) <= 2.5) * (pt > 1) * (0.95) + \
150(abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 0.5 && pt <= 1) * (0.85) + \
151(abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 1) * (0.90) + \
152(abs(eta) > 4 && abs(eta) <= 6) * (pt > 0.5 && pt <= 1) * (0.80) + \
153(abs(eta) > 4 && abs(eta) <= 6) * (pt > 1.0) * (0.85) + \
154(abs(eta) > 6.0) * (0.00)}
155
156}
157
158##############################
159# Electron tracking efficiency
160##############################
161
162module Efficiency ElectronTrackingEfficiency {
163 set InputArray ParticlePropagator/electrons
164 set OutputArray electrons
165
166# TBC (which eta_max ?)
167# putting same as charged hadrons for now...
168
169 set EfficiencyFormula { (pt <= 0.5) * (0.00) + \
170 (abs(eta) <= 2.5) * (pt > 0.5 && pt <= 1) * (0.90) + \
171 (abs(eta) <= 2.5) * (pt > 1) * (0.95) + \
172 (abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 0.5 && pt <= 1) * (0.85) + \
173 (abs(eta) > 2.5 && abs(eta) <= 4) * (pt > 1) * (0.90) + \
174 (abs(eta) > 4 && abs(eta) <= 6) * (pt > 0.5 && pt <= 1) * (0.80) + \
175 (abs(eta) > 4 && abs(eta) <= 6) * (pt > 1.0) * (0.85) + \
176 (abs(eta) > 6.0) * (0.00)}
177
178}
179##########################
180# Muon tracking efficiency
181##########################
182
183module Efficiency MuonTrackingEfficiency {
184 set InputArray ParticlePropagator/muons
185 set OutputArray muons
186
187# TBC (which eta_max ? why eff = 0 for 4 < eta < 6 ? for now put the same as central)
188# what about high pT ?
189 # tracking efficiency formula for muons
190 set EfficiencyFormula { (pt <= 0.5) * (0.00) + \
191 (abs(eta) <= 6.0) * (pt > 0.5 && pt <= 1) * (0.90) + \
192 (abs(eta) <= 6.0) * (pt > 1) * (0.99) + \
193 (abs(eta) > 6.0) * (0.00)}
194
195}
196
197########################################
198# Momentum resolution for charged tracks
199########################################
200
201module MomentumSmearing ChargedHadronMomentumSmearing {
202 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
203 set OutputArray chargedHadrons
204
205 source momentumResolutionVsP.tcl
206}
207
208
209###################################
210# Momentum resolution for electrons
211###################################
212
213module MomentumSmearing ElectronMomentumSmearing {
214 set InputArray ElectronTrackingEfficiency/electrons
215 set OutputArray electrons
216
217 source momentumResolutionVsP.tcl
218}
219
220
221###############################
222# Momentum resolution for muons
223###############################
224
225module MomentumSmearing MuonMomentumSmearing {
226 set InputArray MuonTrackingEfficiency/muons
227 set OutputArray muons
228
229 # TBC for just putting tracker resolution/ need to add improvement at high pT
230
231 source muonMomentumResolutionVsP.tcl
232}
233
234##############
235# Track merger
236##############
237
238module Merger TrackMerger {
239# add InputArray InputArray
240 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
241 add InputArray ElectronMomentumSmearing/electrons
242 add InputArray MuonMomentumSmearing/muons
243 set OutputArray tracks
244}
245
246#############
247# ECAL
248#############
249
250# TBC : calos seems ok, check eta max value though.
251
252module SimpleCalorimeter ECal {
253 set ParticleInputArray ParticlePropagator/stableParticles
254 set TrackInputArray TrackMerger/tracks
255
256 set TowerOutputArray ecalTowers
257 set EFlowTrackOutputArray eflowTracks
258 set EFlowTowerOutputArray eflowPhotons
259
260 set IsEcal true
261
262 set EnergyMin 0.5
263 set EnergySignificanceMin 2.0
264
265 set SmearTowerCenter true
266
267 set pi [expr {acos(-1)}]
268
269 # lists of the edges of each tower in eta and phi
270 # each list starts with the lower edge of the first tower
271 # the list ends with the higher edged of the last tower
272
273 # 0.5 degree towers (5x5 mm^2)
274 set PhiBins {}
275 for {set i -256} {$i <= 256} {incr i} {
276 add PhiBins [expr {$i * $pi/256.0}]
277 }
278
279 # TBC
280 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} {
281 add EtaPhiBins $eta $PhiBins
282 }
283 # 0.025 eta x 0.025 for eta between 2.5 and 4.0
284 set PhiBins {}
285 for {set i -128} {$i <= 128} {incr i} {
286 add PhiBins [expr {$i * $pi/128.0}]
287 }
288 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} {
289 add EtaPhiBins $eta $PhiBins
290 }
291
292 # 0.05 x 0.05 for eta between 4.0 and 6.0
293 set PhiBins {}
294 for {set i -64} {$i <= 64} {incr i} {
295 add PhiBins [expr {$i * $pi/64.0}]
296 }
297 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} {
298 add EtaPhiBins $eta $PhiBins
299 }
300 # default energy fractions {abs(PDG code)} {fraction of energy deposited in ECAL}
301
302 add EnergyFraction {0} {0.0}
303 # energy fractions for e, gamma and pi0
304 add EnergyFraction {11} {1.0}
305 add EnergyFraction {22} {1.0}
306 add EnergyFraction {111} {1.0}
307 # energy fractions for muon, neutrinos and neutralinos
308 add EnergyFraction {12} {0.0}
309 add EnergyFraction {13} {0.0}
310 add EnergyFraction {14} {0.0}
311 add EnergyFraction {16} {0.0}
312 add EnergyFraction {1000022} {0.0}
313 add EnergyFraction {1000023} {0.0}
314 add EnergyFraction {1000025} {0.0}
315 add EnergyFraction {1000035} {0.0}
316 add EnergyFraction {1000045} {0.0}
317 # energy fractions for K0short and Lambda
318 # add EnergyFraction {310} {0.3}
319 # add EnergyFraction {3122} {0.3}
320
321 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
322 set ResolutionFormula { (abs(eta) <= 4.0) * sqrt(energy^2*0.01^2 + energy*0.10^2) + \
323 (abs(eta) > 4.0 && abs(eta) <= 6.0) * sqrt(energy^2*0.01^2 + energy*0.10^2)}
324
325
326}
327
328#############
329# HCAL
330#############
331
332module SimpleCalorimeter HCal {
333 set ParticleInputArray ParticlePropagator/stableParticles
334 set TrackInputArray ECal/eflowTracks
335
336 set TowerOutputArray hcalTowers
337 set EFlowTrackOutputArray eflowTracks
338 set EFlowTowerOutputArray eflowNeutralHadrons
339
340 set IsEcal false
341
342 set EnergyMin 1.0
343 set EnergySignificanceMin 2.0
344
345 set SmearTowerCenter true
346
347 set pi [expr {acos(-1)}]
348
349 # lists of the edges of each tower in eta and phi
350 # each list starts with the lower edge of the first tower
351 # the list ends with the higher edged of the last tower
352
353 # 6 degree towers
354 set PhiBins {}
355 for {set i -64} {$i <= 64} {incr i} {
356 add PhiBins [expr {$i * $pi/64.0}]
357 }
358
359 # TBC
360 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} {
361 add EtaPhiBins $eta $PhiBins
362 }
363
364 # 0.1 x 0.1 between eta 2.5 and 4.0
365 set PhiBins {}
366 for {set i -32} {$i <= 32} {incr i} {
367 add PhiBins [expr {$i * $pi/32.0}]
368 }
369 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} {
370 add EtaPhiBins $eta $PhiBins
371 }
372
373 # 0.2 x 0.2 between eta 4.0 and 6.0
374 set PhiBins {}
375 for {set i -16} {$i <= 16} {incr i} {
376 add PhiBins [expr {$i * $pi/16.0}]
377 }
378 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} {
379 add EtaPhiBins $eta $PhiBins
380 }
381
382 # default energy fractions {abs(PDG code)} {Fecal Fhcal}
383 add EnergyFraction {0} {1.0}
384 # energy fractions for e, gamma and pi0
385 add EnergyFraction {11} {0.0}
386 add EnergyFraction {22} {0.0}
387 add EnergyFraction {111} {0.0}
388 # energy fractions for muon, neutrinos and neutralinos
389 add EnergyFraction {12} {0.0}
390 add EnergyFraction {13} {0.0}
391 add EnergyFraction {14} {0.0}
392 add EnergyFraction {16} {0.0}
393 add EnergyFraction {1000022} {0.0}
394 add EnergyFraction {1000023} {0.0}
395 add EnergyFraction {1000025} {0.0}
396 add EnergyFraction {1000035} {0.0}
397 add EnergyFraction {1000045} {0.0}
398 # energy fractions for K0short and Lambda
399 # add EnergyFraction {310} {0.7}
400 # add EnergyFraction {3122} {0.7}
401
402 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
403 set ResolutionFormula { (abs(eta) <= 4.0) * sqrt(energy^2*0.03^2 + energy*0.50^2) + \
404 (abs(eta) > 4.0 && abs(eta) <= 6.0) * sqrt(energy^2*0.05^2 + energy*1.00^2)}
405}
406
407#################
408# Electron filter
409#################
410
411module PdgCodeFilter ElectronFilter {
412 set InputArray HCal/eflowTracks
413 set OutputArray electrons
414 set Invert true
415 add PdgCode {11}
416 add PdgCode {-11}
417}
418
419
420######################
421# ChargedHadronFilter
422######################
423
424module PdgCodeFilter ChargedHadronFilter {
425 set InputArray HCal/eflowTracks
426 set OutputArray chargedHadrons
427
428 add PdgCode {11}
429 add PdgCode {-11}
430 add PdgCode {13}
431 add PdgCode {-13}
432}
433
434
435##########################
436# Track pile-up subtractor
437##########################
438
439module TrackPileUpSubtractor TrackPileUpSubtractor {
440# add InputArray InputArray OutputArray
441 add InputArray HCal/eflowTracks eflowTracks
442 add InputArray ElectronFilter/electrons electrons
443 add InputArray MuonMomentumSmearing/muons muons
444
445 set VertexInputArray PileUpMerger/vertices
446 # assume perfect pile-up subtraction for tracks with |z| > fZVertexResolution
447 # Z vertex resolution in m
448
449 source dzResolutionVsP.tcl
450}
451
452
453###################################################
454# Tower Merger (in case not using e-flow algorithm)
455###################################################
456
457module Merger Calorimeter {
458# add InputArray InputArray
459 add InputArray ECal/ecalTowers
460 add InputArray HCal/hcalTowers
461 set OutputArray towers
462}
463
464####################
465# Neutral eflow erger
466####################
467
468module Merger NeutralEFlowMerger {
469# add InputArray InputArray
470 add InputArray ECal/eflowPhotons
471 add InputArray HCal/eflowNeutralHadrons
472 set OutputArray eflowTowers
473}
474
475
476####################
477# Energy flow merger
478####################
479
480module Merger EFlowMerger {
481# add InputArray InputArray
482 add InputArray HCal/eflowTracks
483 add InputArray ECal/eflowPhotons
484 add InputArray HCal/eflowNeutralHadrons
485 set OutputArray eflow
486}
487
488#########################################
489### Run the puppi code (to be tuned) ###
490#########################################
491
492module PdgCodeFilter LeptonFilterNoLep {
493 set InputArray HCal/eflowTracks
494 set OutputArray eflowTracksNoLeptons
495 set Invert false
496 add PdgCode {13}
497 add PdgCode {-13}
498 add PdgCode {11}
499 add PdgCode {-11}
500}
501
502module PdgCodeFilter LeptonFilterLep {
503 set InputArray HCal/eflowTracks
504 set OutputArray eflowTracksLeptons
505 set Invert true
506 add PdgCode {11}
507 add PdgCode {-11}
508 add PdgCode {13}
509 add PdgCode {-13}
510}
511
512module RunPUPPI RunPUPPIBase {
513 ## input information
514 set TrackInputArray LeptonFilterNoLep/eflowTracksNoLeptons
515 set NeutralInputArray NeutralEFlowMerger/eflowTowers
516 set PVInputArray PileUpMerger/vertices
517 set MinPuppiWeight 0.05
518 set UseExp false
519 set UseNoLep false
520
521 ## define puppi algorithm parameters (more than one for the same eta region is possible)
522 add EtaMinBin 0.0 4.0
523 add EtaMaxBin 4.0 10.0
524 add PtMinBin 0.0 0.0
525 add ConeSizeBin 0.2 0.2
526 add RMSPtMinBin 0.1 0.5
527 add RMSScaleFactorBin 1.0 1.0
528 add NeutralMinEBin 0.2 0.2
529 add NeutralPtSlope 0.006 0.013
530 add ApplyCHS true true
531 add UseCharged true true
532 add ApplyLowPUCorr true true
533 add MetricId 5 5
534 add CombId 0 0
535
536 ## output name
537 set OutputArray PuppiParticles
538 set OutputArrayTracks puppiTracks
539 set OutputArrayNeutrals puppiNeutrals
540}
541
542module Merger RunPUPPIMerger {
543 add InputArray RunPUPPIBase/PuppiParticles
544 add InputArray LeptonFilterLep/eflowTracksLeptons
545 set OutputArray PuppiParticles
546}
547
548# need this because of leptons that were added back
549module RecoPuFilter RunPUPPI {
550 set InputArray RunPUPPIMerger/PuppiParticles
551 set OutputArray PuppiParticles
552}
553
554
555######################
556# EFlowFilter
557######################
558
559module PdgCodeFilter EFlowFilter {
560 set InputArray RunPUPPI/PuppiParticles
561 set OutputArray eflow
562
563 add PdgCode {11}
564 add PdgCode {-11}
565 add PdgCode {13}
566 add PdgCode {-13}
567}
568
569
570###################
571# Missing ET merger
572###################
573
574module Merger MissingET {
575# add InputArray InputArray
576 add InputArray EFlowMerger/eflow
577 set MomentumOutputArray momentum
578}
579
580###################
581# Puppi Missing ET merger
582###################
583
584module Merger PuppiMissingET {
585 #add InputArray InputArray
586 add InputArray RunPUPPI/PuppiParticles
587 #add InputArray EFlowMerger/eflow
588 set MomentumOutputArray momentum
589}
590
591
592###################
593# Ger PileUp Missing ET
594###################
595
596module Merger GenPileUpMissingET {
597# add InputArray InputArray
598# add InputArray RunPUPPI/PuppiParticles
599 add InputArray ParticlePropagator/stableParticles
600 set MomentumOutputArray momentum
601}
602
603
604##################
605# Scalar HT merger
606##################
607
608module Merger ScalarHT {
609# add InputArray InputArray
610 add InputArray RunPUPPI/PuppiParticles
611 set EnergyOutputArray energy
612}
613
614#################
615# Neutrino Filter
616#################
617
618module PdgCodeFilter NeutrinoFilter {
619
620 set InputArray Delphes/stableParticles
621 set OutputArray filteredParticles
622
623 set PTMin 0.0
624
625 add PdgCode {12}
626 add PdgCode {14}
627 add PdgCode {16}
628 add PdgCode {-12}
629 add PdgCode {-14}
630 add PdgCode {-16}
631
632}
633
634
635#####################
636# MC truth jet finder
637#####################
638
639# TBC: is jet radius fine?
640
641module FastJetFinder GenJetFinder {
642# set InputArray NeutrinoFilter/filteredParticles
643 set InputArray Delphes/stableParticles
644
645 set OutputArray jets
646
647 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
648 set JetAlgorithm 6
649 set ParameterR 0.4
650
651 set JetPTMin 5.0
652}
653
654#########################
655# Gen Missing ET merger
656########################
657
658module Merger GenMissingET {
659
660# add InputArray InputArray
661 add InputArray NeutrinoFilter/filteredParticles
662 set MomentumOutputArray momentum
663}
664
665############
666# Jet finder
667############
668
669# TBC need to include jet substructure variables
670# TBC is jet radius fine?
671
672module FastJetFinder FastJetFinder {
673# set InputArray Calorimeter/towers
674 set InputArray RunPUPPI/PuppiParticles
675
676 set OutputArray jets
677
678 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
679 # 7: anti-kt with winner-take-all axis (for N-subjettiness), 8 N-jettiness
680
681 set JetAlgorithm 6
682 set ParameterR 0.4
683
684 set JetPTMin 30.0
685}
686
687
688
689##################
690# Jet Energy Scale
691##################
692
693module EnergyScale JetEnergyScale {
694 set InputArray FastJetFinder/jets
695 set OutputArray jets
696
697 # scale formula for jets
698 set ScaleFormula {1.00}
699}
700
701
702########################
703# Jet Flavor Association
704########################
705
706module JetFlavorAssociation JetFlavorAssociation {
707
708 set PartonInputArray Delphes/partons
709 set ParticleInputArray Delphes/allParticles
710 set ParticleLHEFInputArray Delphes/allParticlesLHEF
711 set JetInputArray JetEnergyScale/jets
712
713 set DeltaR 0.5
714 set PartonPTMin 5.0
715 set PartonEtaMax 6.0
716
717}
718
719###################
720# Photon efficiency
721###################
722
723module Efficiency PhotonEfficiency {
724 set InputArray ECal/eflowPhotons
725 set OutputArray photons
726
727 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
728
729 set EfficiencyFormula {
730 (pt <= 1.0) * (0.00) + \
731 (abs(eta) <= 2.5) * (pt > 1.0 && pt < 5.0) * (0.70) +
732 (abs(eta) <= 2.5) * (pt > 5.0 && pt < 10.0) * (0.85) +
733 (abs(eta) <= 2.5) * (pt > 10.0) * (0.95) +
734
735 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0 && pt < 5.0) * (0.60) +
736 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 5.0 && pt < 10.0) * (0.80) +
737 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 10.0) * (0.90) +
738
739 (abs(eta) > 4.0 && abs(eta) <= 6.0) * (pt > 1.0 && pt < 5.0) * (0.50) + \
740 (abs(eta) > 4.0 && abs(eta) <= 6.0) * (pt > 5.0 && pt < 10.0) * (0.70) + \
741 (abs(eta) > 4.0 && abs(eta) <= 6.0) * (pt > 10.0) * (0.80) + \
742 (abs(eta) > 6.0) * (0.00)}
743
744}
745
746#################
747# Photon filter
748#################
749
750module PdgCodeFilter PhotonFilter {
751 set InputArray PhotonEfficiency/photons
752 set OutputArray photons
753 set Invert true
754 set PTMin 5.0
755 add PdgCode {22}
756}
757
758
759####################
760# Photon isolation #
761####################
762
763module Isolation PhotonIsolation {
764
765 # particle for which calculate the isolation
766 set CandidateInputArray PhotonFilter/photons
767
768 # isolation collection
769 set IsolationInputArray EFlowFilter/eflow
770
771 # output array
772 set OutputArray photons
773
774 # veto isolation cand. based on proximity to input cand.
775 set DeltaRMin 0.01
776 set UseMiniCone true
777
778 # isolation cone
779 set DeltaRMax 0.3
780
781 # minimum pT
782 set PTMin 0.5
783
784 # iso ratio to cut
785 set PTRatioMax 0.1
786
787}
788
789####################
790# Electron isolation
791####################
792
793# TBC: check values for iso cuts
794
795module Isolation ElectronIsolation {
796 set CandidateInputArray ElectronFilter/electrons
797 set IsolationInputArray EFlowFilter/eflow
798
799 set OutputArray electrons
800
801 # veto isolation cand. based on proximity to input cand.
802 set DeltaRMin 0.01
803 set UseMiniCone true
804
805 set DeltaRMax 0.3
806
807 set PTMin 0.5
808
809 set PTRatioMax 0.1
810}
811
812
813################
814# Muon isolation
815################
816
817# TBC: check values for iso cuts
818
819module Isolation MuonIsolation {
820 set CandidateInputArray MuonMomentumSmearing/muons
821 set IsolationInputArray EFlowFilter/eflow
822
823 set OutputArray muons
824
825 # veto isolation cand. based on proximity to input cand.
826 set DeltaRMin 0.01
827 set UseMiniCone true
828
829 set DeltaRMax 0.3
830
831 set PTMin 0.5
832
833 set PTRatioMax 0.2
834}
835
836
837###########
838# b-tagging
839###########
840
841module BTagging BTagging {
842 set JetInputArray JetEnergyScale/jets
843
844 set BitNumber 0
845
846 add EfficiencyFormula {0} {
847
848 (pt <= 10.0) * (0.00) +
849 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.001) + \
850 (abs(eta) < 2.5) * (pt > 500.0 && pt < 20000.0) * (0.001)*(1.0 - pt/20000.) + \
851 (abs(eta) < 2.5) * (pt > 20000.0) * (0.000) + \
852 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.00075) + \
853 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 20000.0) * (0.00075)*(1.0 - pt/20000.) + \
854 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 20000.0) * (0.000) + \
855 (abs(eta) > 4.0) * (0.00)}
856
857 add EfficiencyFormula {4} {
858
859 (pt <= 10.0) * (0.00) +
860 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.04) + \
861 (abs(eta) < 2.5) * (pt > 500.0 && pt < 20000.0) * (0.04)*(1.0 - pt/20000.) + \
862 (abs(eta) < 2.5) * (pt > 20000.0) * (0.000) + \
863 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.03) + \
864 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 20000.0) * (0.03)*(1.0 - pt/20000.) + \
865 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 20000.0) * (0.000) + \
866 (abs(eta) > 4.0) * (0.00)}
867
868 add EfficiencyFormula {5} {
869
870 (pt <= 10.0) * (0.00) +
871 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.85) +
872 (abs(eta) < 2.5) * (pt > 500.0 && pt < 20000.0) * (0.85)*(1.0 - pt/20000.) +
873 (abs(eta) < 2.5) * (pt > 20000.0) * (0.000) +
874 (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.64) +
875 (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 20000.0) * (0.64)*(1.0 - pt/20000.) +
876 (abs(eta) <= 2.5 && abs(eta) < 4.0) * (pt > 20000.0) * (0.000) +
877 (abs(eta) >= 4.0) * (0.00)}
878
879}
880
881###########
882# c-tagging
883###########
884
885module BTagging CTagging {
886 set JetInputArray JetEnergyScale/jets
887
888 set BitNumber 1
889
890 add EfficiencyFormula {0} {
891
892 (pt <= 10.0) * (0.00) +
893 (abs(eta) < 4.0) * (pt > 10.0) * (0.01) + \
894 (abs(eta) > 4.0) * (pt > 10.0) * (0.00)}
895
896 add EfficiencyFormula {4} {
897
898 (pt <= 10.0) * (0.00) +
899 (abs(eta) < 4.0) * (pt > 10.0) * (0.10) + \
900 (abs(eta) > 4.0) * (pt > 10.0) * (0.00)}
901
902 add EfficiencyFormula {5} {
903
904 (pt <= 10.0) * (0.00) +
905 (abs(eta) < 4.0) * (pt > 10.0) * (0.25) + \
906 (abs(eta) > 4.0) * (pt > 10.0) * (0.00)}
907
908}
909
910
911#############
912# tau-tagging
913#############
914
915
916module TauTagging TauTagging {
917 set ParticleInputArray Delphes/allParticles
918 set PartonInputArray Delphes/partons
919 set JetInputArray JetEnergyScale/jets
920
921 set DeltaR 0.5
922
923 set TauPTMin 1.0
924
925 set TauEtaMax 4.0
926
927 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
928 add EfficiencyFormula {0} {
929
930 (pt <= 10.0) * (0.00) +
931 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.01) + \
932 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.01) *(8./9. - pt/30000.) + \
933 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \
934 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.0075) + \
935 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.0075)*(8./9. - pt/30000.) + \
936 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \
937 (abs(eta) > 4.0) * (0.00)}
938
939 add EfficiencyFormula {11} {
940
941 (pt <= 10.0) * (0.00) +
942 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.005) + \
943 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.005) *(8./9. - pt/30000.) + \
944 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \
945 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.00375) + \
946 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.00375)*(8./9. - pt/30000.) + \
947 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \
948 (abs(eta) > 4.0) * (0.00)}
949
950 add EfficiencyFormula {15} {
951
952 (pt <= 10.0) * (0.00) +
953 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.6) + \
954 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.6) *(8./9. - pt/30000.) + \
955 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \
956 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.45) + \
957 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.45)*(8./9. - pt/30000.) + \
958 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \
959 (abs(eta) > 4.0) * (0.00)}
960
961}
962
963#####################################################
964# Find uniquely identified photons/electrons/tau/jets
965#####################################################
966
967module UniqueObjectFinder UniqueObjectFinder {
968# earlier arrays take precedence over later ones
969# add InputArray InputArray OutputArray
970 add InputArray PhotonIsolation/photons photons
971 add InputArray ElectronIsolation/electrons electrons
972 add InputArray MuonIsolation/muons muons
973 add InputArray JetEnergyScale/jets jets
974
975}
976
977###############################################################################################################
978# StatusPidFilter: this module removes all generated particles except electrons, muons, taus, and status == 3 #
979###############################################################################################################
980
981module StatusPidFilter GenParticleFilter {
982
983 set InputArray Delphes/allParticles
984 set OutputArray filteredParticles
985 set PTMin 5.0
986
987}
988
989##################
990# ROOT tree writer
991##################
992
993module TreeWriter TreeWriter {
994# add Branch InputArray BranchName BranchClass
995 add Branch GenParticleFilter/filteredParticles Particle GenParticle
996 add Branch PileUpMerger/vertices Vertex Vertex
997
998 add Branch GenJetFinder/jets GenJet Jet
999 add Branch GenMissingET/momentum GenMissingET MissingET
1000 add Branch GenPileUpMissingET/momentum GenPileUpMissingET MissingET
1001
1002 add Branch UniqueObjectFinder/photons Photon Photon
1003 add Branch UniqueObjectFinder/electrons Electron Electron
1004 add Branch UniqueObjectFinder/muons Muon Muon
1005 add Branch UniqueObjectFinder/jets Jet Jet
1006
1007 add Branch MissingET/momentum MissingET MissingET
1008 add Branch PuppiMissingET/momentum PuppiMissingET MissingET
1009 add Branch ScalarHT/energy ScalarHT ScalarHT
1010}
1011
Note: See TracBrowser for help on using the repository browser.