# # Beta card for HL-LHC and HE-LHC studies # # Main authors: Michele Selvaggi (CERN) # # Released on: Dec. 6th, 2017 # # ####################################### # Order of execution of various modules ####################################### set ExecutionPath { ParticlePropagator TrackMergerProp DenseProp DenseMergeTracks DenseTrackFilter ChargedHadronTrackingEfficiency ElectronTrackingEfficiency MuonTrackingEfficiency ChargedHadronMomentumSmearing ElectronMomentumSmearing MuonMomentumSmearing TrackMerger ECal HCal Calorimeter EFlowMerger EFlowFilter PhotonIsolation PhotonEfficiency ElectronFilter ElectronIsolation ElectronEfficiency ChargedHadronFilter MuonIsolation MuonEfficiency MissingET NeutrinoFilter GenJetFinder GenMissingET FastJetFinder FatJetFinder JetEnergyScale JetFlavorAssociation BTagging TauTagging UniqueObjectFinder ScalarHT TreeWriter } ##################################### # Track propagation to calorimeters ##################################### module ParticlePropagator ParticlePropagator { set InputArray Delphes/stableParticles set OutputArray stableParticles set ChargedHadronOutputArray chargedHadrons set ElectronOutputArray electrons set MuonOutputArray muons # radius of the magnetic field coverage, in m set Radius 1.2 # half-length of the magnetic field coverage, in m set HalfLength 3.25 # magnetic field set Bz 3.0 } ############## # Track merger ############## module Merger TrackMergerProp { # add InputArray InputArray add InputArray ParticlePropagator/chargedHadrons add InputArray ParticlePropagator/electrons add InputArray ParticlePropagator/muons set OutputArray tracks } #################################### # Track propagation to pseudo-pixel #################################### module ParticlePropagator DenseProp { set InputArray TrackMergerProp/tracks # radius of the magnetic field coverage, in m set Radius 0.3 set RadiusMax 1.2 # half-length of the magnetic field coverage, in m set HalfLength 0.7 set HalfLengthMax 3.25 # magnetic field set Bz 3.0 } ##################### # Dense Track merger ##################### module Merger DenseMergeTracks { # add InputArray InputArray add InputArray DenseProp/chargedHadrons add InputArray DenseProp/electrons add InputArray DenseProp/muons set OutputArray tracks } ###################### # Dense Track Filter ###################### module DenseTrackFilter DenseTrackFilter { set TrackInputArray DenseMergeTracks/tracks set TrackOutputArray tracks set ChargedHadronOutputArray chargedHadrons set ElectronOutputArray electrons set MuonOutputArray muons set EtaPhiRes 0.003 set EtaMax 4.0 set pi [expr {acos(-1)}] set nbins_phi [expr {$pi/$EtaPhiRes} ] set nbins_phi [expr {int($nbins_phi)} ] set PhiBins {} for {set i -$nbins_phi} {$i <= $nbins_phi} {incr i} { add PhiBins [expr {$i * $pi/$nbins_phi}] } set nbins_eta [expr {$EtaMax/$EtaPhiRes} ] set nbins_eta [expr {int($nbins_eta)} ] for {set i -$nbins_eta} {$i <= $nbins_eta} {incr i} { set eta [expr {$i * $EtaPhiRes}] add EtaPhiBins $eta $PhiBins } } #################################### # Charged hadron tracking efficiency #################################### module Efficiency ChargedHadronTrackingEfficiency { set InputArray DenseTrackFilter/chargedHadrons set OutputArray chargedHadrons # TBC (which eta_max ? which pT min?) # tracking efficiency formula for charged hadrons set EfficiencyFormula { (pt <= 0.5) * (0.00) + \ (abs(eta) <= 1.2) * (pt > 0.5 && pt <= 1.0) * (pt * 0.90) + \ (abs(eta) <= 1.2) * (pt > 1.0) * (0.95) + \ (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 0.5 && pt <= 1.0) * (pt*0.85) + \ (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 1.0) * (0.90) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 0.5 && pt <= 1.0) * (pt*0.80) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0) * (0.85) + \ (abs(eta) > 4.0) * (0.00) } } ############################## # Electron tracking efficiency ############################## module Efficiency ElectronTrackingEfficiency { set InputArray DenseTrackFilter/electrons set OutputArray electrons # TBC (which eta_max ?) # putting same as charged hadrons for now... set EfficiencyFormula { (pt <= 0.5) * (0.00) + \ (abs(eta) <= 1.2) * (pt > 0.5 && pt <= 1.0) * (pt * 0.90) + \ (abs(eta) <= 1.2) * (pt > 1.0) * (0.95) + \ (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 0.5 && pt <= 1.0) * (pt*0.85) + \ (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 1.0) * (0.90)/(-0.033*log10(pt) + 1.033) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 0.5 && pt <= 1.0) * (pt*0.80) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0) * (0.85)/(-0.033*log10(pt) + 1.033) + \ (abs(eta) > 4.0) * (0.00) } } ########################## # Muon tracking efficiency ########################## module Efficiency MuonTrackingEfficiency { set InputArray DenseTrackFilter/muons set OutputArray muons set EfficiencyFormula { (pt <= 0.5) * (0.00) + \ (abs(eta) <= 1.2) * (pt > 0.5 && pt <= 1.0) * (pt * 1.00) + \ (abs(eta) <= 1.2) * (pt > 1.0) * (1.00) + \ (abs(eta) > 1.2 && abs(eta) <= 2.8) * (pt > 0.5 && pt <= 1.0) * (pt*1.00) + \ (abs(eta) > 1.2 && abs(eta) <= 2.8) * (pt > 1.0) * (1.00) + \ (abs(eta) > 2.8 && abs(eta) <= 4.0) * (pt > 0.5 && pt <= 1.0) * (pt*0.95) + \ (abs(eta) > 2.8 && abs(eta) <= 4.0) * (pt > 1.0) * (0.95) + \ (abs(eta) > 4.0) * (0.00) } } ######################################## # Momentum resolution for charged tracks ######################################## module MomentumSmearing ChargedHadronMomentumSmearing { set InputArray ChargedHadronTrackingEfficiency/chargedHadrons set OutputArray chargedHadrons # --- CMS resolution Phase II --- set ResolutionFormula { 2*((abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.00457888) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.004579 + (pt-1.000000)* 0.000045) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.004983 + (pt-10.000000)* 0.000047) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 100.0000) * (0.009244*pt/100.000000) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.00505011) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.005050 + (pt-1.000000)* 0.000033) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.005343 + (pt-10.000000)* 0.000043) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 100.0000) * (0.009172*pt/100.000000) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.00510573) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.005106 + (pt-1.000000)* 0.000023) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.005317 + (pt-10.000000)* 0.000042) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 100.0000) * (0.009077*pt/100.000000) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.00578020) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.005780 + (pt-1.000000)* -0.000000) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.005779 + (pt-10.000000)* 0.000038) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 100.0000) * (0.009177*pt/100.000000) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.00728723) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.007287 + (pt-1.000000)* -0.000031) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.007011 + (pt-10.000000)* 0.000038) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 100.0000) * (0.010429*pt/100.000000) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.01045117) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.010451 + (pt-1.000000)* -0.000051) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.009989 + (pt-10.000000)* 0.000043) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 100.0000) * (0.013867*pt/100.000000) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.01477199) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.014772 + (pt-1.000000)* -0.000128) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.013616 + (pt-10.000000)* 0.000035) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 100.0000) * (0.016800*pt/100.000000) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.01731474) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.017315 + (pt-1.000000)* -0.000208) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.015439 + (pt-10.000000)* 0.000030) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 100.0000) * (0.018161*pt/100.000000) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.01942025) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.019420 + (pt-1.000000)* -0.000417) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.015669 + (pt-10.000000)* 0.000026) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 100.0000) * (0.018039*pt/100.000000) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.02201432) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.022014 + (pt-1.000000)* -0.000667) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.016012 + (pt-10.000000)* 0.000045) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 100.0000) * (0.020098*pt/100.000000) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.02574300) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.025743 + (pt-1.000000)* -0.001118) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.015681 + (pt-10.000000)* 0.000051) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 100.0000) * (0.020289*pt/100.000000) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.02885821) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.028858 + (pt-1.000000)* -0.001345) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.016753 + (pt-10.000000)* 0.000053) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 100.0000) * (0.021524*pt/100.000000) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.03204812) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.032048 + (pt-1.000000)* -0.001212) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.021138 + (pt-10.000000)* 0.000037) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 100.0000) * (0.024477*pt/100.000000) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.03950405) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.039504 + (pt-1.000000)* -0.001386) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.027026 + (pt-10.000000)* 0.000037) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 100.0000) * (0.030392*pt/100.000000) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.04084751) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.040848 + (pt-1.000000)* -0.001780) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.024824 + (pt-10.000000)* 0.000029) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 100.0000) * (0.027445*pt/100.000000) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.04532425) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.045324 + (pt-1.000000)* -0.002497) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.022851 + (pt-10.000000)* 0.000024) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 100.0000) * (0.025053*pt/100.000000) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.06418925) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.064189 + (pt-1.000000)* -0.004055) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.027691 + (pt-10.000000)* 0.000034) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 100.0000) * (0.030710*pt/100.000000) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.07682500) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.076825 + (pt-1.000000)* -0.004510) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.036234 + (pt-10.000000)* 0.000049) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 100.0000) * (0.040629*pt/100.000000) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.09796358) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.097964 + (pt-1.000000)* -0.005758) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.046145 + (pt-10.000000)* 0.000069) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 100.0000) * (0.052345*pt/100.000000) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.13415929) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.134159 + (pt-1.000000)* -0.008283) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.059612 + (pt-10.000000)* 0.000111) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 100.0000) * (0.069617*pt/100.000000)) } } ################################### # Momentum resolution for electrons ################################### module MomentumSmearing ElectronMomentumSmearing { set InputArray ElectronTrackingEfficiency/electrons set OutputArray electrons set ResolutionFormula { 2*((abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.00457888) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.004579 + (pt-1.000000)* 0.000045) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.004983 + (pt-10.000000)* 0.000047) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 100.0000) * (0.009244*pt/100.000000) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.00505011) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.005050 + (pt-1.000000)* 0.000033) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.005343 + (pt-10.000000)* 0.000043) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 100.0000) * (0.009172*pt/100.000000) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.00510573) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.005106 + (pt-1.000000)* 0.000023) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.005317 + (pt-10.000000)* 0.000042) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 100.0000) * (0.009077*pt/100.000000) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.00578020) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.005780 + (pt-1.000000)* -0.000000) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.005779 + (pt-10.000000)* 0.000038) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 100.0000) * (0.009177*pt/100.000000) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.00728723) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.007287 + (pt-1.000000)* -0.000031) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.007011 + (pt-10.000000)* 0.000038) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 100.0000) * (0.010429*pt/100.000000) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.01045117) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.010451 + (pt-1.000000)* -0.000051) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.009989 + (pt-10.000000)* 0.000043) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 100.0000) * (0.013867*pt/100.000000) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.01477199) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.014772 + (pt-1.000000)* -0.000128) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.013616 + (pt-10.000000)* 0.000035) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 100.0000) * (0.016800*pt/100.000000) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.01731474) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.017315 + (pt-1.000000)* -0.000208) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.015439 + (pt-10.000000)* 0.000030) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 100.0000) * (0.018161*pt/100.000000) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.01942025) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.019420 + (pt-1.000000)* -0.000417) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.015669 + (pt-10.000000)* 0.000026) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 100.0000) * (0.018039*pt/100.000000) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.02201432) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.022014 + (pt-1.000000)* -0.000667) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.016012 + (pt-10.000000)* 0.000045) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 100.0000) * (0.020098*pt/100.000000) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.02574300) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.025743 + (pt-1.000000)* -0.001118) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.015681 + (pt-10.000000)* 0.000051) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 100.0000) * (0.020289*pt/100.000000) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.02885821) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.028858 + (pt-1.000000)* -0.001345) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.016753 + (pt-10.000000)* 0.000053) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 100.0000) * (0.021524*pt/100.000000) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.03204812) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.032048 + (pt-1.000000)* -0.001212) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.021138 + (pt-10.000000)* 0.000037) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 100.0000) * (0.024477*pt/100.000000) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.03950405) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.039504 + (pt-1.000000)* -0.001386) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.027026 + (pt-10.000000)* 0.000037) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 100.0000) * (0.030392*pt/100.000000) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.04084751) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.040848 + (pt-1.000000)* -0.001780) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.024824 + (pt-10.000000)* 0.000029) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 100.0000) * (0.027445*pt/100.000000) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.04532425) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.045324 + (pt-1.000000)* -0.002497) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.022851 + (pt-10.000000)* 0.000024) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 100.0000) * (0.025053*pt/100.000000) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.06418925) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.064189 + (pt-1.000000)* -0.004055) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.027691 + (pt-10.000000)* 0.000034) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 100.0000) * (0.030710*pt/100.000000) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.07682500) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.076825 + (pt-1.000000)* -0.004510) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.036234 + (pt-10.000000)* 0.000049) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 100.0000) * (0.040629*pt/100.000000) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.09796358) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.097964 + (pt-1.000000)* -0.005758) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.046145 + (pt-10.000000)* 0.000069) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 100.0000) * (0.052345*pt/100.000000) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.13415929) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.134159 + (pt-1.000000)* -0.008283) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.059612 + (pt-10.000000)* 0.000111) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 100.0000) * (0.069617*pt/100.000000)) } } ############################### # Momentum resolution for muons ############################### module MomentumSmearing MuonMomentumSmearing { set InputArray MuonTrackingEfficiency/muons set OutputArray muons # Equal to Tk resolution up to pT = 100 GeV, then tk slope/5. set ResolutionFormula { ((abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.00457888) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.004579 + (pt-1.000000)* 0.000045) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.004983 + (pt-10.000000)* 0.000047) + \ (abs(eta) >= 0.0000 && abs(eta) < 0.2000) * (pt >= 100.0000) * (0.009244/5.*pt/100.000000 + 4./5.*0.009244) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.00505011) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.005050 + (pt-1.000000)* 0.000033) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.005343 + (pt-10.000000)* 0.000043) + \ (abs(eta) >= 0.2000 && abs(eta) < 0.4000) * (pt >= 100.0000) * (0.009172/5.*pt/100.000000 + 4./5.*0.009172) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.00510573) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.005106 + (pt-1.000000)* 0.000023) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.005317 + (pt-10.000000)* 0.000042) + \ (abs(eta) >= 0.4000 && abs(eta) < 0.6000) * (pt >= 100.0000) * (0.009077/5.*pt/100.000000 + 4./5.*0.009077) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.00578020) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.005780 + (pt-1.000000)* -0.000000) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.005779 + (pt-10.000000)* 0.000038) + \ (abs(eta) >= 0.6000 && abs(eta) < 0.8000) * (pt >= 100.0000) * (0.009177/5.*pt/100.000000 + 4./5.*0.009177) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.00728723) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.007287 + (pt-1.000000)* -0.000031) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.007011 + (pt-10.000000)* 0.000038) + \ (abs(eta) >= 0.8000 && abs(eta) < 1.0000) * (pt >= 100.0000) * (0.010429/5.*pt/100.000000 + 4./5.*0.010429) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.01045117) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.010451 + (pt-1.000000)* -0.000051) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.009989 + (pt-10.000000)* 0.000043) + \ (abs(eta) >= 1.0000 && abs(eta) < 1.2000) * (pt >= 100.0000) * (0.013867/5.*pt/100.000000 + 4./5.*0.013867) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.01477199) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.014772 + (pt-1.000000)* -0.000128) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.013616 + (pt-10.000000)* 0.000035) + \ (abs(eta) >= 1.2000 && abs(eta) < 1.4000) * (pt >= 100.0000) * (0.016800/5.*pt/100.000000 + 4./5.*0.016800) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.01731474) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.017315 + (pt-1.000000)* -0.000208) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.015439 + (pt-10.000000)* 0.000030) + \ (abs(eta) >= 1.4000 && abs(eta) < 1.6000) * (pt >= 100.0000) * (0.018161/5.*pt/100.000000 + 4./5.*0.018161) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.01942025) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.019420 + (pt-1.000000)* -0.000417) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.015669 + (pt-10.000000)* 0.000026) + \ (abs(eta) >= 1.6000 && abs(eta) < 1.8000) * (pt >= 100.0000) * (0.018039/5.*pt/100.000000 + 4./5.*0.018039) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.02201432) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.022014 + (pt-1.000000)* -0.000667) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.016012 + (pt-10.000000)* 0.000045) + \ (abs(eta) >= 1.8000 && abs(eta) < 2.0000) * (pt >= 100.0000) * (0.020098/5.*pt/100.000000 + 4./5.*0.020098) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.02574300) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.025743 + (pt-1.000000)* -0.001118) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.015681 + (pt-10.000000)* 0.000051) + \ (abs(eta) >= 2.0000 && abs(eta) < 2.2000) * (pt >= 100.0000) * (0.020289/5.*pt/100.000000 + 4./5.*0.020289) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.02885821) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.028858 + (pt-1.000000)* -0.001345) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.016753 + (pt-10.000000)* 0.000053) + \ (abs(eta) >= 2.2000 && abs(eta) < 2.4000) * (pt >= 100.0000) * (0.021524/5.*pt/100.000000 + 4./5.*0.021524) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.03204812) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.032048 + (pt-1.000000)* -0.001212) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.021138 + (pt-10.000000)* 0.000037) + \ (abs(eta) >= 2.4000 && abs(eta) < 2.6000) * (pt >= 100.0000) * (0.024477/5.*pt/100.000000 + 4./5.*0.024477) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.03950405) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.039504 + (pt-1.000000)* -0.001386) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.027026 + (pt-10.000000)* 0.000037) + \ (abs(eta) >= 2.6000 && abs(eta) < 2.8000) * (pt >= 100.0000) * (0.030392/5.*pt/100.000000 + 4./5.*0.030392) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.04084751) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.040848 + (pt-1.000000)* -0.001780) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.024824 + (pt-10.000000)* 0.000029) + \ (abs(eta) >= 2.8000 && abs(eta) < 3.0000) * (pt >= 100.0000) * (0.027445/5.*pt/100.000000 + 4./5.*0.027445) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 0.0000 && pt < 1.0000) * (0.04532425) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 1.0000 && pt < 10.0000) * (0.045324 + (pt-1.000000)* -0.002497) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 10.0000 && pt < 100.0000) * (0.022851 + (pt-10.000000)* 0.000024) + \ (abs(eta) >= 3.0000 && abs(eta) < 3.2000) * (pt >= 100.0000) * (0.025053/5.*pt/100.000000 + 4./5.*0.025053) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 0.0000 && pt < 1.0000) * (0.06418925) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 1.0000 && pt < 10.0000) * (0.064189 + (pt-1.000000)* -0.004055) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 10.0000 && pt < 100.0000) * (0.027691 + (pt-10.000000)* 0.000034) + \ (abs(eta) >= 3.2000 && abs(eta) < 3.4000) * (pt >= 100.0000) * (0.030710/5.*pt/100.000000 + 4./5.*0.030710) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 0.0000 && pt < 1.0000) * (0.07682500) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 1.0000 && pt < 10.0000) * (0.076825 + (pt-1.000000)* -0.004510) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 10.0000 && pt < 100.0000) * (0.036234 + (pt-10.000000)* 0.000049) + \ (abs(eta) >= 3.4000 && abs(eta) < 3.6000) * (pt >= 100.0000) * (0.040629/5.*pt/100.000000 + 4./5.*0.040629) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 0.0000 && pt < 1.0000) * (0.09796358) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 1.0000 && pt < 10.0000) * (0.097964 + (pt-1.000000)* -0.005758) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 10.0000 && pt < 100.0000) * (0.046145 + (pt-10.000000)* 0.000069) + \ (abs(eta) >= 3.6000 && abs(eta) < 3.8000) * (pt >= 100.0000) * (0.052345/5.*pt/100.000000 + 4./5.*0.052345) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 0.0000 && pt < 1.0000) * (0.13415929) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 1.0000 && pt < 10.0000) * (0.134159 + (pt-1.000000)* -0.008283) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 10.0000 && pt < 100.0000) * (0.059612 + (pt-10.000000)* 0.000111) + \ (abs(eta) >= 3.8000 && abs(eta) < 4.0000) * (pt >= 100.0000) * (0.069617/5.*pt/100.000000 + 4./5.*0.069617)) } } ############## # Track merger ############## module Merger TrackMerger { # add InputArray InputArray add InputArray ChargedHadronMomentumSmearing/chargedHadrons add InputArray ElectronMomentumSmearing/electrons add InputArray MuonMomentumSmearing/muons set OutputArray tracks } ############# # ECAL ############# module SimpleCalorimeter ECal { set ParticleInputArray ParticlePropagator/stableParticles set TrackInputArray TrackMerger/tracks set TowerOutputArray ecalTowers set EFlowTrackOutputArray eflowTracks set EFlowTowerOutputArray eflowPhotons set IsEcal true set EnergyMin 0.5 set EnergySignificanceMin 1.0 set SmearTowerCenter true set pi [expr {acos(-1)}] # lists of the edges of each tower in eta and phi # each list starts with the lower edge of the first tower # the list ends with the higher edged of the last tower # assume 0.02 x 0.02 resolution in eta,phi in the barrel |eta| < 1.5 set PhiBins {} for {set i -180} {$i <= 180} {incr i} { add PhiBins [expr {$i * $pi/180.0}] } # 0.02 unit in eta up to eta = 1.5 (barrel) for {set i -85} {$i <= 86} {incr i} { set eta [expr {$i * 0.0174}] add EtaPhiBins $eta $PhiBins } # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- ECAL) set PhiBins {} for {set i -180} {$i <= 180} {incr i} { add PhiBins [expr {$i * $pi/180.0}] } # 0.02 unit in eta up to eta = 3 for {set i 1} {$i <= 84} {incr i} { set eta [expr { -2.958 + $i * 0.0174}] add EtaPhiBins $eta $PhiBins } for {set i 1} {$i <= 84} {incr i} { set eta [expr { 1.4964 + $i * 0.0174}] add EtaPhiBins $eta $PhiBins } # take present CMS granularity for HF # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0 set PhiBins {} for {set i -18} {$i <= 18} {incr i} { add PhiBins [expr {$i * $pi/18.0}] } foreach eta {-5 -4.7 -4.525 -4.35 -4.175 -4 -3.825 -3.65 -3.475 -3.3 -3.125 -2.958 3.125 3.3 3.475 3.65 3.825 4 4.175 4.35 4.525 4.7 5} { add EtaPhiBins $eta $PhiBins } add EnergyFraction {0} {0.0} # energy fractions for e, gamma and pi0 add EnergyFraction {11} {1.0} add EnergyFraction {22} {1.0} add EnergyFraction {111} {1.0} # energy fractions for muon, neutrinos and neutralinos add EnergyFraction {12} {0.0} add EnergyFraction {13} {0.0} add EnergyFraction {14} {0.0} add EnergyFraction {16} {0.0} add EnergyFraction {1000022} {0.0} add EnergyFraction {1000023} {0.0} add EnergyFraction {1000025} {0.0} add EnergyFraction {1000035} {0.0} add EnergyFraction {1000045} {0.0} # energy fractions for K0short and Lambda add EnergyFraction {310} {0.3} add EnergyFraction {3122} {0.3} # ECAL is CMS # for the ECAL barrel (|eta| < 1.5), see hep-ex/1306.2016 and 1502.02701 # for the endcaps (1.5 < |eta| < 3.0), we take HGCAL see LHCC-P-008, Fig. 3.39, p.117 set ResolutionFormula { 2*((abs(eta) <= 1.50) * sqrt(energy^2*0.009^2 + energy*0.12^2 + 0.45^2) + (abs(eta) > 1.50 && abs(eta) <= 1.75) * sqrt(energy^2*0.006^2 + energy*0.20^2) + \ (abs(eta) > 1.75 && abs(eta) <= 2.15) * sqrt(energy^2*0.007^2 + energy*0.21^2) + \ (abs(eta) > 2.15 && abs(eta) <= 3.00) * sqrt(energy^2*0.008^2 + energy*0.24^2)) + \ (abs(eta) >= 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.08^2 + energy*1.98^2)} } ############# # HCAL ############# module SimpleCalorimeter HCal { set ParticleInputArray ParticlePropagator/stableParticles set TrackInputArray ECal/eflowTracks set TowerOutputArray hcalTowers set EFlowTrackOutputArray eflowTracks set EFlowTowerOutputArray eflowNeutralHadrons set IsEcal false set EnergyMin 1.0 set EnergySignificanceMin 2.0 set SmearTowerCenter true set pi [expr {acos(-1)}] # lists of the edges of each tower in eta and phi # each list starts with the lower edge of the first tower # the list ends with the higher edged of the last tower # 10 degrees towers set PhiBins {} for {set i -18} {$i <= 18} {incr i} { add PhiBins [expr {$i * $pi/18.0}] } foreach eta {-3.2 -2.5 -2.4 -2.3 -2.2 -2.1 -2 -1.9 -1.8 -1.7 -1.6 -1.5 -1.4 -1.3 -1.2 -1.1 -1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 3.3} { add EtaPhiBins $eta $PhiBins } # 20 degrees towers set PhiBins {} for {set i -9} {$i <= 9} {incr i} { add PhiBins [expr {$i * $pi/9.0}] } foreach eta {-4.9 -4.7 -4.5 -4.3 -4.1 -3.9 -3.7 -3.5 -3.3 -3 -2.8 -2.6 2.8 3 3.2 3.5 3.7 3.9 4.1 4.3 4.5 4.7 4.9} { add EtaPhiBins $eta $PhiBins } # default energy fractions {abs(PDG code)} {Fecal Fhcal} add EnergyFraction {0} {1.0} # energy fractions for e, gamma and pi0 add EnergyFraction {11} {0.0} add EnergyFraction {22} {0.0} add EnergyFraction {111} {0.0} # energy fractions for muon, neutrinos and neutralinos add EnergyFraction {12} {0.0} add EnergyFraction {13} {0.0} add EnergyFraction {14} {0.0} add EnergyFraction {16} {0.0} add EnergyFraction {1000022} {0.0} add EnergyFraction {1000023} {0.0} add EnergyFraction {1000025} {0.0} add EnergyFraction {1000035} {0.0} add EnergyFraction {1000045} {0.0} # energy fractions for K0short and Lambda add EnergyFraction {310} {0.7} add EnergyFraction {3122} {0.7} # HCAL is ALTAS # http://arxiv.org/pdf/hep-ex/0004009v1 # http://villaolmo.mib.infn.it/ICATPP9th_2005/Calorimetry/Schram.p.pdf # set HCalResolutionFormula {resolution formula as a function of eta and energy} set ResolutionFormula { 2*((abs(eta) <= 1.7) * sqrt(energy^2*0.0302^2 + energy*0.5205^2 + 1.59^2) + (abs(eta) > 1.7 && abs(eta) <= 3.2) * sqrt(energy^2*0.0500^2 + energy*0.706^2)) + (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.09420^2 + energy*1.00^2)} } ################# # Electron filter ################# module PdgCodeFilter ElectronFilter { set InputArray HCal/eflowTracks set OutputArray electrons set Invert true add PdgCode {11} add PdgCode {-11} } ###################### # ChargedHadronFilter ###################### module PdgCodeFilter ChargedHadronFilter { set InputArray HCal/eflowTracks set OutputArray chargedHadrons add PdgCode {11} add PdgCode {-11} add PdgCode {13} add PdgCode {-13} } ################################################### # Tower Merger (in case not using e-flow algorithm) ################################################### module Merger Calorimeter { # add InputArray InputArray add InputArray ECal/ecalTowers add InputArray HCal/hcalTowers set OutputArray towers } #################### # Energy flow merger #################### module Merger EFlowMerger { # add InputArray InputArray add InputArray HCal/eflowTracks add InputArray ECal/eflowPhotons add InputArray HCal/eflowNeutralHadrons set OutputArray eflow } ###################### # EFlowFilter ###################### module PdgCodeFilter EFlowFilter { set InputArray EFlowMerger/eflow set OutputArray eflow add PdgCode {11} add PdgCode {-11} add PdgCode {13} add PdgCode {-13} } ################### # Missing ET merger ################### module Merger MissingET { # add InputArray InputArray add InputArray EFlowMerger/eflow set MomentumOutputArray momentum } ################## # Scalar HT merger ################## module Merger ScalarHT { # add InputArray InputArray add InputArray EFlowMerger/eflow set EnergyOutputArray energy } ################# # Neutrino Filter ################# module PdgCodeFilter NeutrinoFilter { set InputArray Delphes/stableParticles set OutputArray filteredParticles set PTMin 0.0 add PdgCode {12} add PdgCode {14} add PdgCode {16} add PdgCode {-12} add PdgCode {-14} add PdgCode {-16} } ##################### # MC truth jet finder ##################### module FastJetFinder GenJetFinder { set InputArray NeutrinoFilter/filteredParticles set OutputArray jets # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt set JetAlgorithm 6 set ParameterR 0.4 set JetPTMin 15.0 } ######################### # Gen Missing ET merger ######################## module Merger GenMissingET { # add InputArray InputArray add InputArray NeutrinoFilter/filteredParticles set MomentumOutputArray momentum } ############ # Jet finder ############ module FastJetFinder FastJetFinder { set InputArray Calorimeter/towers # set InputArray EFlowMerger/eflow set OutputArray jets set JetAlgorithm 6 set ParameterR 0.4 set ComputeNsubjettiness 1 set Beta 1.0 set AxisMode 4 set ComputeSoftDrop 1 set BetaSoftDrop 0.0 set SymmetryCutSoftDrop 0.1 set R0SoftDrop 0.4 set JetPTMin 30.0 } ################## # Fat Jet finder ################## module FastJetFinder FatJetFinder { set InputArray EFlowMerger/eflow set OutputArray jets # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt set JetAlgorithm 6 set ParameterR 0.8 set ComputeNsubjettiness 1 set Beta 1.0 set AxisMode 4 set ComputeSoftDrop 1 set BetaSoftDrop 0.0 set SymmetryCutSoftDrop 0.1 set R0SoftDrop 0.8 set JetPTMin 200.0 } ################## # Jet Energy Scale ################## module EnergyScale JetEnergyScale { set InputArray FastJetFinder/jets set OutputArray jets # scale formula for jets set ScaleFormula {1.00} } ######################## # Jet Flavor Association ######################## module JetFlavorAssociation JetFlavorAssociation { set PartonInputArray Delphes/partons set ParticleInputArray Delphes/allParticles set ParticleLHEFInputArray Delphes/allParticlesLHEF set JetInputArray JetEnergyScale/jets set DeltaR 0.5 set PartonPTMin 5.0 set PartonEtaMax 4.0 } ################## # Photon isolation ################## # TBC: check values for iso cuts module Isolation PhotonIsolation { set CandidateInputArray ECal/eflowPhotons set IsolationInputArray EFlowFilter/eflow set OutputArray photons set DeltaRMax 0.3 set PTMin 0.0 set PTRatioMax 0.1 } ################### # Photon efficiency ################### module Efficiency PhotonEfficiency { set InputArray PhotonIsolation/photons set OutputArray photons # set EfficiencyFormula {efficiency formula as a function of eta and pt} set EfficiencyFormula { (pt <= 1.0) * (0.00) + \ (abs(eta) <= 2.5) * (pt > 1.0 && pt < 5.0) * (0.70) + (abs(eta) <= 2.5) * (pt > 5.0 && pt < 10.0) * (0.85) + (abs(eta) <= 2.5) * (pt > 10.0) * (0.95) + (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0 && pt < 5.0) * (0.60) + (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 5.0 && pt < 10.0) * (0.80) + (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 10.0) * (0.90) + (abs(eta) > 4.0) * (0.00)} } #################### # Electron isolation #################### # TBC: check values for iso cuts module Isolation ElectronIsolation { set CandidateInputArray ElectronFilter/electrons set IsolationInputArray EFlowFilter/eflow set OutputArray electrons set DeltaRMax 0.3 set PTMin 0.0 set PTRatioMax 0.1 } ####################### # Electron efficiency # ####################### module Efficiency ElectronEfficiency { set InputArray ElectronIsolation/electrons set OutputArray electrons # set EfficiencyFormula {efficiency formula as a function of eta and pt} # efficiency formula for electrons (taken from CMS PhaseII card) # efficiency for low pT leptons is set artifically to 100%. Analyzers should rescale according to proper lepton Id set EfficiencyFormula { (pt <= 2.0) * (0.00) + (abs(eta) <= 1.45 ) * (pt > 2.0 && pt <= 4.0) * (0.05) + \ (abs(eta) <= 1.45 ) * (pt > 4.0 && pt <= 6.0) * (0.50) + \ (abs(eta) <= 1.45 ) * (pt > 6.0 && pt <= 8.0) * (0.70) + \ (abs(eta) <= 1.45 ) * (pt > 8.0 && pt <= 10.0) * (0.85) + \ (abs(eta) <= 1.45 ) * (pt > 10.0 && pt <= 30.0) * (0.94) + \ (abs(eta) <= 1.45 ) * (pt > 30.0 && pt <= 50.0) * (0.97) + \ (abs(eta) <= 1.45 ) * (pt > 50.0 && pt <= 70.0) * (0.98) + \ (abs(eta) <= 1.45 ) * (pt > 70.0 ) * (1.0) + \ (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 2.0 && pt <= 4.0) * (0.05) + \ (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 4.0 && pt <= 10.0) * (0.35) + \ (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 10.0 && pt <= 30.0) * (0.40) + \ (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 30.0 && pt <= 70.0) * (0.45) + \ (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 70.0 ) * (0.55) + \ (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 2.0 && pt <= 4.0) * (0.05) + \ (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 4.0 && pt <= 10.0) * (0.75) + \ (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 10.0 && pt <= 30.0) * (0.85) + \ (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 30.0 && pt <= 50.0) * (0.95) + \ (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 50.0 && pt <= 70.0) * (0.95) + \ (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 70.0 ) * (1.0) + \ (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 2.0 && pt <= 4.0) * (0.05) + \ (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 4.0 && pt <= 10.0) * (0.65) + \ (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 10.0 && pt <= 30.0) * (0.75) + \ (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 30.0 && pt <= 50.0) * (0.90) + \ (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 50.0 && pt <= 70.0) * (0.90) + \ (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 70.0 ) * (0.90) + \ (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 2.0 && pt <= 4.0) * (0.05) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 2.0 && pt <= 4.0) * (0.05) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 4.0 && pt <= 10.0) * (0.65) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 10.0 && pt <= 30.0) * (0.75) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 30.0 && pt <= 50.0) * (0.90) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 50.0 && pt <= 70.0) * (0.90) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 70.0 ) * (0.90) + \ (abs(eta) > 4.0) * (0.00) } } ################ # Muon isolation ################ # TBC: check values for iso cuts module Isolation MuonIsolation { set CandidateInputArray MuonMomentumSmearing/muons set IsolationInputArray EFlowFilter/eflow set OutputArray muons set DeltaRMax 0.3 set PTMin 0.0 set PTRatioMax 0.2 } #################### # Muon Efficiency # #################### module Efficiency MuonEfficiency { set InputArray MuonIsolation/muons set OutputArray muons # tracking + TightID efficiency formula for muons set EfficiencyFormula { (pt <= 2.0) * (0.00) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 2.0 && pt <= 4.0) * (0.04) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 4.0 && pt <= 6.0) * (0.43) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 6.0 && pt <= 8.0) * (0.53) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 8.0 && pt <= 10.0) * (0.68) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 10.0 && pt <= 20.0) * (0.81) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 20.0 && pt <= 35.0) * (0.91) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 35.0 && pt <= 50.0) * (0.96) + (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 50.0 && pt <= 14000.0) * (0.91) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 2.0 && pt <= 4.0) * (0.05) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 4.0 && pt <= 6.0) * (0.47) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 6.0 && pt <= 8.0) * (0.56) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 8.0 && pt <= 10.0) * (0.69) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 10.0 && pt <= 20.0) * (0.79) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 20.0 && pt <= 35.0) * (0.93) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 35.0 && pt <= 50.0) * (0.94) + (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 50.0 && pt <= 14000.0) * (0.91) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 2.0 && pt <= 4.0) * (0.16) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 4.0 && pt <= 6.0) * (0.48) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 6.0 && pt <= 8.0) * (0.53) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 8.0 && pt <= 10.0) * (0.66) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 10.0 && pt <= 20.0) * (0.79) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 20.0 && pt <= 35.0) * (0.89) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 35.0 && pt <= 50.0) * (0.95) + (abs(eta) > 1.0 && abs(eta) <= 1.5) * (pt > 50.0 && pt <= 14000.0) * (0.91) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 2.0 && pt <= 4.0) * (0.24) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 4.0 && pt <= 6.0) * (0.44) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 6.0 && pt <= 8.0) * (0.51) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 8.0 && pt <= 10.0) * (0.71) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 10.0 && pt <= 20.0) * (0.77) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 20.0 && pt <= 35.0) * (0.91) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 35.0 && pt <= 50.0) * (0.92) + (abs(eta) > 1.5 && abs(eta) <= 2.0) * (pt > 50.0 && pt <= 14000.0) * (0.91) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 2.0 && pt <= 4.0) * (0.23) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 4.0 && pt <= 6.0) * (0.35) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 6.0 && pt <= 8.0) * (0.43) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 8.0 && pt <= 10.0) * (0.57) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 10.0 && pt <= 20.0) * (0.63) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 20.0 && pt <= 35.0) * (0.71) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 35.0 && pt <= 50.0) * (0.76) + (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 50.0 && pt <= 14000.0) * (0.81) + (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 2.0 && pt <= 4.0) * (0.05) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 4.0 && pt <= 10.0) * (0.65) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 10.0 && pt <= 30.0) * (0.75) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 30.0 && pt <= 50.0) * (0.90) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 50.0 && pt <= 70.0) * (0.90) + \ (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 70.0 ) * (0.90) + \ (abs(eta) > 4.0) * (0.00) } } ########### # b-tagging ########### module BTagging BTagging { set JetInputArray JetEnergyScale/jets set BitNumber 0 add EfficiencyFormula {0} { (pt <= 10.0) * (0.00) + (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.01) + \ (abs(eta) < 2.5) * (pt > 500.0 && pt < 5000.0) * (0.01)*(1.0 - pt/5000.) + \ (abs(eta) < 2.5) * (pt > 5000.0) * (0.00) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.0075) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 5000.0) * (0.0075)*(1.0 - pt/5000.) + \ (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 5000.0) * (0.000) + \ (abs(eta) > 4.0) * (0.00)} add EfficiencyFormula {4} { (pt <= 10.0) * (0.00) + (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.10) + \ (abs(eta) < 2.5) * (pt > 500.0 && pt < 5000.0) * (0.10)*(1.0 - pt/5000.) + \ (abs(eta) < 2.5) * (pt > 5000.0) * (0.000) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.06) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 5000.0) * (0.06)*(1.0 - pt/5000.) + \ (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 5000.0) * (0.000) + \ (abs(eta) > 4.0) * (0.00)} add EfficiencyFormula {5} { (pt <= 10.0) * (0.00) + (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.75) + (abs(eta) < 2.5) * (pt > 500.0 && pt < 5000.0) * (0.75)*(1.0 - pt/5000.) + (abs(eta) < 2.5) * (pt > 5000.0) * (0.000) + (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.60) + (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 5000.0) * (0.60)*(1.0 - pt/5000.) + (abs(eta) <= 2.5 && abs(eta) < 4.0) * (pt > 5000.0) * (0.000) + (abs(eta) >= 4.0) * (0.00)} } ############# # tau-tagging ############# module TauTagging TauTagging { set ParticleInputArray Delphes/allParticles set PartonInputArray Delphes/partons set JetInputArray JetEnergyScale/jets set DeltaR 0.5 set TauPTMin 1.0 set TauEtaMax 4.0 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt} add EfficiencyFormula {0} { (pt <= 10.0) * (0.00) + (abs(eta) < 2.5) * (pt > 10.0 && pt < 1000.0) * (0.01) + \ (abs(eta) < 2.5) * (pt > 1000.0 && pt < 5000.0) * (0.01) *(1. - pt/5000.) + \ (abs(eta) < 2.5) * (pt > 5000.0) * (0.000) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 1000.0) * (0.0075) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 1000.0 && pt < 5000.0) * (0.0075)*(1. - pt/5000.) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0) * (0.00) + \ (abs(eta) > 4.0) * (0.00)} add EfficiencyFormula {11} { (pt <= 10.0) * (0.00) + (abs(eta) < 2.5) * (pt > 10.0 && pt < 1000.0) * (0.005) + \ (abs(eta) < 2.5) * (pt > 1000.0 && pt < 5000.0) * (0.005) *(1. - pt/5000.) + \ (abs(eta) < 2.5) * (pt > 5000.0) * (0.000) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 1000.0) * (0.00375) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 1000.0 && pt < 5000.0) * (0.00375)*(1. - pt/5000.) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0) * (0.00) + \ (abs(eta) > 4.0) * (0.00)} add EfficiencyFormula {15} { (pt <= 10.0) * (0.00) + (abs(eta) < 2.5) * (pt > 10.0 && pt < 1000.0) * (0.6) + \ (abs(eta) < 2.5) * (pt > 1000.0 && pt < 5000.0) * (0.6) *(1. - pt/5000.) + \ (abs(eta) < 2.5) * (pt > 5000.0) * (0.000) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 1000.0) * (0.45) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 1000.0 && pt < 5000.0) * (0.45)*(1. - pt/5000.) + \ (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0) * (0.00) + \ (abs(eta) > 4.0) * (0.00)} } ##################################################### # Find uniquely identified photons/electrons/tau/jets ##################################################### module UniqueObjectFinder UniqueObjectFinder { # earlier arrays take precedence over later ones # add InputArray InputArray OutputArray add InputArray PhotonEfficiency/photons photons add InputArray ElectronEfficiency/electrons electrons add InputArray MuonEfficiency/muons muons add InputArray JetEnergyScale/jets jets } ################## # ROOT tree writer ################## module TreeWriter TreeWriter { # add Branch InputArray BranchName BranchClass add Branch Delphes/allParticles Particle GenParticle add Branch GenJetFinder/jets GenJet Jet add Branch GenMissingET/momentum GenMissingET MissingET add Branch TrackMerger/tracks Track Track add Branch Calorimeter/towers Tower Tower add Branch HCal/eflowTracks EFlowTrack Track add Branch ECal/eflowPhotons EFlowPhoton Tower add Branch HCal/eflowNeutralHadrons EFlowNeutralHadron Tower add Branch UniqueObjectFinder/photons Photon Photon add Branch UniqueObjectFinder/electrons Electron Electron add Branch UniqueObjectFinder/muons Muon Muon add Branch UniqueObjectFinder/jets Jet Jet add Branch FatJetFinder/jets FatJet Jet add Branch MissingET/momentum MissingET MissingET add Branch ScalarHT/energy ScalarHT ScalarHT }