Fork me on GitHub

Ticket #878: delphes_card_CMS_modify.tcl

File delphes_card_CMS_modify.tcl, 12.2 KB (added by drakemarquis, 9 years ago)
Line 
1#######################################
2# Order of execution of various modules
3#######################################
4
5set ExecutionPath {
6 ParticlePropagator
7
8 ChargedHadronTrackingEfficiency
9 ElectronTrackingEfficiency
10 MuonTrackingEfficiency
11
12 ChargedHadronMomentumSmearing
13 ElectronMomentumSmearing
14 MuonMomentumSmearing
15
16 TrackMerger
17 Calorimeter
18
19 NeutralPionFilter
20 ElectronFilter
21 ECALPhotonElectronPi
22
23 PhotonEfficiency
24 PhotonIsolationECAL
25
26 UniqueObjectFinder
27
28 TreeWriter
29}
30
31#################################
32# Propagate particles in cylinder
33#################################
34
35module ParticlePropagator ParticlePropagator {
36 set InputArray Delphes/stableParticles
37
38 set OutputArray stableParticles
39 set ChargedHadronOutputArray chargedHadrons
40 set ElectronOutputArray electrons
41 set MuonOutputArray muons
42
43 # radius of the magnetic field coverage, in m
44 set Radius 1.29
45 # half-length of the magnetic field coverage, in m
46 set HalfLength 3.00
47
48 # magnetic field
49 set Bz 3.8
50}
51
52####################################
53# Charged hadron tracking efficiency
54####################################
55
56module Efficiency ChargedHadronTrackingEfficiency {
57 set InputArray ParticlePropagator/chargedHadrons
58 set OutputArray chargedHadrons
59
60 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
61
62 # tracking efficiency formula for charged hadrons
63 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
64 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
65 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) +
66 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) +
67 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) +
68 (abs(eta) > 2.5) * (0.00)}
69}
70
71##############################
72# Electron tracking efficiency
73##############################
74
75module Efficiency ElectronTrackingEfficiency {
76 set InputArray ParticlePropagator/electrons
77 set OutputArray electrons
78
79 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
80
81 # tracking efficiency formula for electrons
82 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
83 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) +
84 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) +
85 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) +
86 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) +
87 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) +
88 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) +
89 (abs(eta) > 2.5) * (0.00)}
90}
91
92##########################
93# Muon tracking efficiency
94##########################
95
96module Efficiency MuonTrackingEfficiency {
97 set InputArray ParticlePropagator/muons
98 set OutputArray muons
99
100 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
101
102 # tracking efficiency formula for muons
103 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
104 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) +
105 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) +
106 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
107 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) +
108 (abs(eta) > 2.5) * (0.00)}
109}
110
111########################################
112# Momentum resolution for charged tracks
113########################################
114
115module MomentumSmearing ChargedHadronMomentumSmearing {
116 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
117 set OutputArray chargedHadrons
118
119 # set ResolutionFormula {resolution formula as a function of eta and pt}
120
121 # resolution formula for charged hadrons
122 # based on arXiv:1405.6569
123 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.06^2 + pt^2*1.3e-3^2) +
124 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.10^2 + pt^2*1.7e-3^2) +
125 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.25^2 + pt^2*3.1e-3^2)}
126}
127
128###################################
129# Momentum resolution for electrons
130###################################
131
132module MomentumSmearing ElectronMomentumSmearing {
133 set InputArray ElectronTrackingEfficiency/electrons
134 set OutputArray electrons
135
136 # set ResolutionFormula {resolution formula as a function of eta and energy}
137
138 # resolution formula for electrons
139 # based on arXiv:1405.6569
140 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.06^2 + pt^2*1.3e-3^2) +
141 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.10^2 + pt^2*1.7e-3^2) +
142 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.25^2 + pt^2*3.1e-3^2)}
143}
144
145###############################
146# Momentum resolution for muons
147###############################
148
149module MomentumSmearing MuonMomentumSmearing {
150 set InputArray MuonTrackingEfficiency/muons
151 set OutputArray muons
152
153 # set ResolutionFormula {resolution formula as a function of eta and pt}
154
155 # resolution formula for muons
156 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*2.0e-4^2) +
157 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.02^2 + pt^2*3.0e-4^2) +
158 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*6.0e-4^2)}
159}
160
161##############
162# Track merger
163##############
164
165module Merger TrackMerger {
166# add InputArray InputArray
167 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
168 add InputArray ElectronMomentumSmearing/electrons
169 add InputArray MuonMomentumSmearing/muons
170 set OutputArray tracks
171}
172
173#############
174# Calorimeter
175#############
176
177module Calorimeter Calorimeter {
178 set ParticleInputArray ParticlePropagator/stableParticles
179 set TrackInputArray TrackMerger/tracks
180
181 set TowerOutputArray towers
182 set PhotonOutputArray photons
183
184 set EFlowTrackOutputArray eflowTracks
185 set EFlowPhotonOutputArray eflowPhotons
186 set EFlowNeutralHadronOutputArray eflowNeutralHadrons
187
188 set ECalEnergyMin 0.5
189 set HCalEnergyMin 1.0
190
191 set ECalEnergySignificanceMin 1.0
192 set HCalEnergySignificanceMin 1.0
193
194 set SmearTowerCenter true
195
196 set pi [expr {acos(-1)}]
197
198 # lists of the edges of each tower in eta and phi
199 # each list starts with the lower edge of the first tower
200 # the list ends with the higher edged of the last tower
201
202 # 5 degrees towers
203 set PhiBins {}
204 for {set i -36} {$i <= 36} {incr i} {
205 add PhiBins [expr {$i * $pi/36.0}]
206 }
207 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} {
208 add EtaPhiBins $eta $PhiBins
209 }
210
211 # 10 degrees towers
212 set PhiBins {}
213 for {set i -18} {$i <= 18} {incr i} {
214 add PhiBins [expr {$i * $pi/18.0}]
215 }
216 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} {
217 add EtaPhiBins $eta $PhiBins
218 }
219
220 # 20 degrees towers
221 set PhiBins {}
222 for {set i -9} {$i <= 9} {incr i} {
223 add PhiBins [expr {$i * $pi/9.0}]
224 }
225 foreach eta {-5 -4.7 -4.525 4.7 5} {
226 add EtaPhiBins $eta $PhiBins
227 }
228
229 # default energy fractions {abs(PDG code)} {Fecal Fhcal}
230 add EnergyFraction {0} {0.0 1.0}
231 # energy fractions for e, gamma and pi0
232 add EnergyFraction {11} {1.0 0.0}
233 add EnergyFraction {22} {1.0 0.0}
234 add EnergyFraction {111} {1.0 0.0}
235 # energy fractions for muon, neutrinos and neutralinos
236 add EnergyFraction {12} {0.0 0.0}
237 add EnergyFraction {13} {0.0 0.0}
238 add EnergyFraction {14} {0.0 0.0}
239 add EnergyFraction {16} {0.0 0.0}
240 add EnergyFraction {1000022} {0.0 0.0}
241 add EnergyFraction {1000023} {0.0 0.0}
242 add EnergyFraction {1000025} {0.0 0.0}
243 add EnergyFraction {1000035} {0.0 0.0}
244 add EnergyFraction {1000045} {0.0 0.0}
245 # energy fractions for K0short and Lambda
246 add EnergyFraction {310} {0.3 0.7}
247 add EnergyFraction {3122} {0.3 0.7}
248
249 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
250 set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) +
251 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
252
253 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
254 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +
255 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}
256}
257
258#################
259# Electron filter
260#################
261
262module PdgCodeFilter ElectronFilter {
263 set InputArray Calorimeter/eflowTracks
264 set OutputArray electrons
265 set Invert true
266 add PdgCode {11}
267 add PdgCode {-11}
268}
269
270#################
271# pi0 filter
272#################
273
274module PdgCodeFilter NeutralPionFilter {
275 set InputArray Calorimeter/eflowNeutralHadrons
276 set OutputArray neutralPions
277 set Invert true
278 add PdgCode {111}
279 add PdgCode {-111}
280}
281
282###############
283# Merge Calorimeter/eflowPhotons, NeutralPionFilter/neutralPions and ElectronFilter/electrons
284###############
285
286module Merger ECALPhotonElectronPi {
287 # add InputArray InputArray
288 add InputArray Calorimeter/eflowPhotons
289 add InputArray ElectronFilter/electrons
290 add InputArray NeutralPionFilter/neutralPions
291 set OuptutArray ecalPhotonElectronPi
292}
293
294###################
295# Photon efficiency
296###################
297
298module Efficiency PhotonEfficiency {
299 set InputArray Calorimeter/eflowPhotons
300 set OutputArray photons
301
302 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
303
304 # efficiency formula for photons
305 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
306 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
307 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
308 (abs(eta) > 2.5) * (0.00)}
309}
310
311
312###############
313# Photon isolation at ECAL
314###############
315
316module Isolation PhotonIsolationECAL {
317 set CandidateInputArray Calorimeter/eflowPhotons
318 set IsolationInputArray ECALPhotonElectronPi/ecalPhotonElectronPi
319
320 set OutputArray ecalPhotons
321
322 set UsePTSum true
323
324 set DeltaRMax 0.4
325
326 set PTMin 0.5
327
328 set PTSumMax 4.2
329}
330
331
332
333#####################################################
334# Find uniquely identified photons/electrons/tau/jets
335#####################################################
336
337module UniqueObjectFinder UniqueObjectFinder {
338# earlier arrays take precedence over later ones
339# add InputArray InputArray OutputArray
340 add InputArray PhotonIsolationECAL/photons photons
341}
342
343##################
344# ROOT tree writer
345##################
346
347# tracks, towers and eflow objects are not stored by default in the output.
348# if needed (for jet constituent or other studies), uncomment the relevant
349# "add Branch ..." lines.
350
351module TreeWriter TreeWriter {
352# add Branch InputArray BranchName BranchClass
353 add Branch Delphes/allParticles Particle GenParticle
354
355 add Branch TrackMerger/tracks Track Track
356 add Branch Calorimeter/towers Tower Tower
357
358 add Branch Calorimeter/eflowTracks EFlowTrack Track
359 add Branch Calorimeter/eflowPhotons EFlowPhoton Tower
360 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
361
362 add Branch UniqueObjectFinder/photons Photon Photon
363}