Fork me on GitHub

Changes in / [4a0d9d5:4406bf8] in git


Ignore:
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r4a0d9d5 r4406bf8  
    13621362        modules/RunPUPPI.$(SrcSuf) \
    13631363        modules/RunPUPPI.h \
    1364         external/PUPPI/RecoObj2.hh \
    1365         external/PUPPI/AlgoObj.hh \
     1364        external/PUPPI/puppiCleanContainer.hh \
     1365        external/PUPPI/RecoObj.hh \
     1366        external/PUPPI/puppiParticle.hh \
     1367        external/PUPPI/puppiAlgoBin.hh \
    13661368        classes/DelphesClasses.h \
    13671369        classes/DelphesFactory.h \
     
    17991801
    18001802modules/RunPUPPI.h: \
    1801         classes/DelphesModule.h \
    1802         external/PUPPI/PuppiContainer.hh
     1803        classes/DelphesModule.h
    18031804        @touch $@
    18041805
     
    19321933        external/fastjet/AreaDefinition.hh \
    19331934        external/fastjet/ClusterSequenceAreaBase.hh
     1935        @touch $@
     1936
     1937external/PUPPI/puppiCleanContainer.hh: \
     1938        external/PUPPI/RecoObj.hh \
     1939        external/PUPPI/puppiParticle.hh \
     1940        external/PUPPI/puppiAlgoBin.hh \
     1941        external/fastjet/internal/base.hh \
     1942        external/fastjet/PseudoJet.hh
    19341943        @touch $@
    19351944
  • cards/CMS_PhaseII/CMS_PhaseII_200PU.tcl

    r4a0d9d5 r4406bf8  
    1 set MaxEvents 10
    2 
    31#
    42#  Phase II - Pile-Up
    53#
    64#  Main authors: Michele Selvaggi (UCL)
    7 #
    8 #  Released on:
     5#                               
     6#  Released on: 
    97#
    108#  Version: v01
     
    1614
    1715set ExecutionPath {
    18 
    19   PileUpMerger
     16 
     17  PileUpMerger
     18 
    2019  ParticlePropagator
    2120
     
    2928
    3029  TrackMerger
    31 
     30 
    3231  ECal
    3332  HCal
     
    3534  ElectronFilter
    3635  TrackPileUpSubtractor
    37 
     36 
    3837  TowerMerger
    3938  NeutralEFlowMerger
     
    4140  EFlowMerger
    4241
    43   LeptonFilterNoLep
    44   LeptonFilterLep
    45   RunPUPPIBase
    4642  RunPUPPI
    47 
    48   PhotonFilter
    4943
    5044  PhotonIsolation
    5145  PhotonEfficiency
    52 
     46 
    5347  ElectronIsolation
    5448  ElectronEfficiency
    55 
     49 
    5650  MuonIsolation
    5751  MuonLooseIdEfficiency
    5852  MuonTightIdEfficiency
    59 
     53 
    6054  NeutrinoFilter
    6155
    6256  MissingET
    63   PuppiMissingET
    6457  GenMissingET
    6558  GenPileUpMissingET
     
    6962
    7063  ScalarHT
    71 
     64 
    7265  JetEnergyScale
    7366
     
    7972
    8073  TauTagging
    81 
     74 
    8275  GenParticleFilter
    83 
     76 
    8477  TreeWriter
    8578}
     
    9891
    9992  # pre-generated minbias input file
    100   set PileUpFile ../eos/cms/store/group/upgrade/delphes/PhaseII/MinBias_100k.pileup
     93  set PileUpFile ../eos/cms/store/group/upgrade/delphes/PhaseII/MinBias_100k.pileup 
    10194
    10295  # average expected pile up
    10396  set MeanPileUp 200
    104 
     97 
    10598  # maximum spread in the beam direction in m
    106   set ZVertexSpread 0.25
     99  set ZVertexSpread 0.15
    107100
    108101  # maximum spread in time in s
    109   set TVertexSpread 800E-12
     102  set TVertexSpread 1.5E-09
    110103
    111104  # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s)
    112   set VertexDistributionFormula {exp(-(t^2/160e-12^2/2))*exp(-(z^2/0.053^2/2))}
     105 
     106  #set VertexDistributionFormula {exp(-(t^2/(2*(0.05/2.99792458E8*exp(-(z^2/(2*(0.05)^2))))^2)))}
     107 
     108 
     109  set VertexDistributionFormula { (abs(t) <= 1.0e-09) * (abs(z) <= 0.15) * (1.00) +
     110                                  (abs(t) >  1.0e-09) * (abs(z) <= 0.15) * (0.00) +
     111                                  (abs(t) <= 1.0e-09) * (abs(z) > 0.15)  * (0.00) +
     112                                  (abs(t) >  1.0e-09) * (abs(z) > 0.15)  * (0.00)}
    113113
    114114}
     
    167167  set OutputArray electrons
    168168  # tracking efficiency formula for electrons
    169   set EfficiencyFormula {
     169  set EfficiencyFormula { 
    170170      (pt <= 0.2) * (0.00) + \
    171171          (abs(eta) <= 1.2) * (pt > 0.2 && pt <= 1.0) * (pt * 0.96) + \
     
    199199          (abs(eta) > 2.8 && abs(eta) <= 4.0) * (pt > 1.0) * (0.95) + \
    200200          (abs(eta) > 4.0) * (0.00)
    201 
     201         
    202202  }
    203203}
     
    212212  set InputArray  ChargedHadronTrackingEfficiency/chargedHadrons
    213213  set OutputArray chargedHadrons
    214   # resolution formula for charged hadrons ,
    215 
     214  # resolution formula for charged hadrons , 
     215 
    216216  # from http://mersi.web.cern.ch/mersi/layouts/.private/Baseline_tilted_200_Pixel_1_1_1/index.html
    217217  source trackMomentumResolution.tcl
     
    229229
    230230  # resolution formula for electrons
    231 
     231 
    232232  # taking something flat in energy for now, ECAL will take over at high energy anyway.
    233233  # inferred from hep-ex/1306.2016 and 1502.02701
    234   set ResolutionFormula {
    235 
     234  set ResolutionFormula { 
     235 
    236236                        (abs(eta) <= 1.5)  * (1+0.64*abs(eta)^2)*(energy*0.028) +
    237237    (abs(eta) > 1.5  && abs(eta) <= 1.75)  * (energy*0.037) +
    238238    (abs(eta) > 1.75  && abs(eta) <= 2.15) * (energy*0.038) +
    239239    (abs(eta) > 2.15  && abs(eta) <= 3.00) * (energy*0.044) +
    240     (abs(eta) > 3.00  && abs(eta) <= 4.00) * (energy*0.10)}
     240    (abs(eta) > 3.00  && abs(eta) <= 4.00) * (energy*0.10)}   
    241241
    242242}
     
    250250  set OutputArray muons
    251251  # resolution formula for muons
    252 
    253   # up to |eta| < 2.8 take measurement from tracking + muon chambers
    254   # for |eta| > 2.8 and pT < 5.0 take measurement from tracking alone taken from
     252 
     253  # up to |eta| < 2.8 take measurement from tracking + muon chambers 
     254  # for |eta| > 2.8 and pT < 5.0 take measurement from tracking alone taken from 
    255255  # http://mersi.web.cern.ch/mersi/layouts/.private/Baseline_tilted_200_Pixel_1_1_1/index.html
    256   source muonMomentumResolution.tcl
     256  source muonMomentumResolution.tcl 
    257257}
    258258
     
    284284  set EFlowTowerOutputArray eflowPhotons
    285285
    286   set IsEcal true
    287 
     286  set IsEcal true 
     287 
    288288  set EnergyMin 0.5
    289289  set EnergySignificanceMin 1.0
     
    298298
    299299  # assume 0.02 x 0.02 resolution in eta,phi in the barrel |eta| < 1.5
    300 
     300 
    301301  set PhiBins {}
    302302  for {set i -180} {$i <= 180} {incr i} {
     
    311311
    312312  # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- ECAL)
    313 
     313 
    314314  set PhiBins {}
    315315  for {set i -180} {$i <= 180} {incr i} {
     
    328328  }
    329329
    330   # take present CMS granularity for HF
    331 
     330  # take present CMS granularity for HF 
     331 
    332332  # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0
    333333  set PhiBins {}
     
    335335    add PhiBins [expr {$i * $pi/18.0}]
    336336  }
    337 
     337 
    338338  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} {
    339339    add EtaPhiBins $eta $PhiBins
     
    361361
    362362  # set ResolutionFormula {resolution formula as a function of eta and energy}
    363 
     363 
    364364  # for the ECAL barrel (|eta| < 1.5), see hep-ex/1306.2016 and 1502.02701
    365365  # for the endcaps (1.5 < |eta| < 3.0), we take HGCAL  see LHCC-P-008, Fig. 3.39, p.117
    366366
    367   set ResolutionFormula {  (abs(eta) <= 1.50)                    * (1+0.64*abs(eta)^2)*sqrt(energy^2*0.009^2 + energy*0.12^2 + 0.45^2) +
     367  set ResolutionFormula {  (abs(eta) <= 1.50)                    * (1+0.64*abs(eta)^2)*sqrt(energy^2*0.009^2 + energy*0.12^2 + 0.45^2) + 
    368368                           (abs(eta) > 1.50 && abs(eta) <= 1.75) * sqrt(energy^2*0.006^2 + energy*0.20^2) + \
    369369                           (abs(eta) > 1.75 && abs(eta) <= 2.15) * sqrt(energy^2*0.007^2 + energy*0.21^2) + \
     
    385385  set EFlowTowerOutputArray eflowNeutralHadrons
    386386
    387   set IsEcal false
    388 
     387  set IsEcal false 
     388 
    389389  set EnergyMin 1.0
    390390  set EnergySignificanceMin 1.0
     
    397397  # each list starts with the lower edge of the first tower
    398398  # the list ends with the higher edged of the last tower
    399 
     399 
    400400  # assume 0.087 x 0.087 resolution in eta,phi in the barrel |eta| < 1.5
    401401
     
    409409
    410410  # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- HCAL)
    411 
     411 
    412412  set PhiBins {}
    413413  for {set i -180} {$i <= 180} {incr i} {
     
    426426  }
    427427
    428   # take present CMS granularity for HF
    429 
     428  # take present CMS granularity for HF 
     429 
    430430  # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0
    431431  set PhiBins {}
     
    433433    add PhiBins [expr {$i * $pi/18.0}]
    434434  }
    435 
     435 
    436436  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} {
    437437    add EtaPhiBins $eta $PhiBins
     
    478478}
    479479
    480 
    481480##########################
    482481# Track pile-up subtractor
     
    548547#########################################
    549548
    550 module PdgCodeFilter LeptonFilterNoLep {
    551   set InputArray HCal/eflowTracks
    552   set OutputArray eflowTracksNoLeptons
    553   set Invert false
    554   add PdgCode {13}
    555   add PdgCode {-13}
    556   add PdgCode {11}
    557   add PdgCode {-11}
    558 }
    559 
    560 module PdgCodeFilter LeptonFilterLep {
    561   set InputArray HCal/eflowTracks
    562   set OutputArray eflowTracksLeptons
    563   set Invert true
    564   add PdgCode {11}
    565   add PdgCode {-11}
    566   add PdgCode {13}
    567   add PdgCode {-13}
    568 }
    569 
    570 module RunPUPPI RunPUPPIBase {
     549module RunPUPPI RunPUPPI {
    571550  ## input information
    572   set TrackInputArray   LeptonFilterNoLep/eflowTracksNoLeptons
     551  set TrackInputArray   TrackMerger/tracks
    573552  set NeutralInputArray NeutralEFlowMerger/eflowTowers
    574553  set PVInputArray      PileUpMerger/vertices
    575554  set MinPuppiWeight    0.05
    576555  set UseExp            false
    577   set UseNoLep          false
    578 
    579   ## define puppi algorithm parameters (more than one for the same eta region is possible)
    580   add EtaMinBin           0.0   1.5   4.0
    581   add EtaMaxBin           1.5   4.0   10.0
    582   add PtMinBin            0.0   0.0   0.0
    583   add ConeSizeBin         0.2   0.2   0.2
    584   add RMSPtMinBin         0.1   0.5   0.5
    585   add RMSScaleFactorBin   1.0   1.0   1.0
    586   add NeutralMinEBin      0.2   0.2   0.5
    587   add NeutralPtSlope      0.006 0.013 0.067
    588   add ApplyCHS            true  true  true
    589   add UseCharged          true  true  false
    590   add ApplyLowPUCorr      true  true  true
    591   add MetricId            5     5     5
    592   add CombId              0     0     0
     556 
     557  ## define puppi algorithm parameters (more than one for the same eta region is possible)                                                                                     
     558  add EtaMinBin           0.    2.5    2.5    3.0   3.0
     559  add EtaMaxBin           2.5   3.0    3.0    10.0  10.0
     560  add PtMinBin            0.    0.5    0.5    0.5   0.5
     561  add ConeSizeBin         0.25  0.25   0.25   0.25  0.25
     562  add RMSPtMinBin         0.1   0.5    0.5    0.5   0.5
     563  add RMSScaleFactorBin   1.0   1.0    1.0    1.0   1.0
     564  add NeutralMinEBin      0.2   1.0    1.0    1.5   1.5
     565  add NeutralPtSlope      0.02  0.02   0.02   0.02  0.02
     566  add ApplyCHS            true  true   true   true  true
     567  add UseCharged          true  false  false  false false
     568  add ApplyLowPUCorr      true  true   true   true  true
     569  add MetricId            5     5      1      5     1
    593570
    594571  ## output name
     
    596573  set OutputArrayTracks   puppiTracks
    597574  set OutputArrayNeutrals puppiNeutrals
    598 }
    599 
    600 module Merger RunPUPPI {
    601   add InputArray RunPUPPIBase/PuppiParticles
    602   add InputArray LeptonFilterLep/eflowTracksLeptons
    603   set OutputArray PuppiParticles
    604 }
     575}
     576
     577
    605578
    606579###################
     
    615588}
    616589
    617 module Merger PuppiMissingET {
    618   #add InputArray InputArray
    619   add InputArray RunPUPPI/PuppiParticles
    620   #add InputArray EFlowMerger/eflow
    621   set MomentumOutputArray momentum
    622 }
    623 
    624590###################
    625 # Ger PileUp Missing ET
     591# Ger PileUp Missing ET 
    626592###################
    627593
     
    670636module FastJetFinder GenJetFinder {
    671637  set InputArray NeutrinoFilter/filteredParticles
    672 
     638 
    673639  set OutputArray jets
    674640
     
    723689
    724690
    725 #################
    726 # Photon filter
    727 #################
    728 
    729 module PdgCodeFilter PhotonFilter {
    730   set InputArray ECal/eflowPhotons
    731   set OutputArray photons
    732   set Invert true
    733   set PTMin 5.0
    734   add PdgCode {22}
    735 }
    736 
    737 
    738691####################
    739692# Photon isolation #
     
    741694
    742695module Isolation PhotonIsolation {
    743 
     696 
    744697  # particle for which calculate the isolation
    745   set CandidateInputArray PhotonFilter/photons
    746 
     698  set CandidateInputArray ECal/eflowPhotons
     699 
    747700  # isolation collection
    748   set IsolationInputArray RunPUPPI/PuppiParticles
    749 
     701  set IsolationInputArray EFlowMerger/eflow
     702 
    750703  # output array
    751704  set OutputArray photons
    752 
    753   # veto isolation cand. based on proximity to input cand.
    754   set DeltaRMin 0.01
    755   set UseMiniCone true
    756 
     705 
    757706  # isolation cone
    758707  set DeltaRMax 0.3
    759 
    760   # minimum pT
     708 
     709  # minimum pT 
    761710  set PTMin     1.0
    762 
     711 
    763712  # iso ratio to cut
    764713  set PTRatioMax 9999.
    765 
    766714}
    767715
     
    773721
    774722module Efficiency PhotonEfficiency {
    775 
     723 
    776724  ## input particles
    777   set InputArray PhotonIsolation/photons
     725  set InputArray PhotonIsolation/photons 
    778726  ## output particles
    779727  set OutputArray photons
     
    793741
    794742module Isolation ElectronIsolation {
    795 
     743 
    796744  set CandidateInputArray ElectronFilter/electrons
    797 
     745 
    798746  # isolation collection
    799   set IsolationInputArray RunPUPPI/PuppiParticles
    800   #set IsolationInputArray EFlowMerger/eflow
    801 
     747  set IsolationInputArray EFlowMerger/eflow
     748 
    802749  set OutputArray electrons
    803 
     750 
    804751  set DeltaRMax 0.3
    805752  set PTMin 1.0
     
    815762
    816763module Efficiency ElectronEfficiency {
    817 
     764 
    818765  set InputArray ElectronIsolation/electrons
    819766  set OutputArray electrons
    820 
     767 
    821768  # set EfficiencyFormula {efficiency formula as a function of eta and pt}
    822769  # efficiency formula for electrons
     
    826773                         (abs(eta) <= 1.45 ) * (pt >  6.0 && pt <= 8.0)   * (0.70) + \
    827774                         (abs(eta) <= 1.45 ) * (pt >  8.0 && pt <= 10.0)  * (0.85) + \
    828                          (abs(eta) <= 1.45 ) * (pt > 10.0 && pt <= 30.0)  * (0.94) + \
    829                          (abs(eta) <= 1.45 ) * (pt > 30.0 && pt <= 50.0)  * (0.97) + \
    830                          (abs(eta) <= 1.45 ) * (pt > 50.0 && pt <= 70.0)  * (0.98) + \
    831                          (abs(eta) <= 1.45 ) * (pt > 70.0 )  * (1.0) + \
     775                         (abs(eta) <= 1.45 ) * (pt > 10.0 && pt <= 30.0)  * (0.94) + \                                                     
     776                         (abs(eta) <= 1.45 ) * (pt > 30.0 && pt <= 50.0)  * (0.97) + \                         
     777                         (abs(eta) <= 1.45 ) * (pt > 50.0 && pt <= 70.0)  * (0.98) + \         
     778                         (abs(eta) <= 1.45 ) * (pt > 70.0 )  * (1.0) + \                                                                                                 
    832779                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt >  4.0 && pt <= 10.0)   * (0.35) + \
    833                          (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 10.0 && pt <= 30.0)   * (0.40) + \
    834                          (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 30.0 && pt <= 70.0)   * (0.45) + \
    835                          (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 70.0 )  * (0.55) + \
     780                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 10.0 && pt <= 30.0)   * (0.40) + \   
     781                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 30.0 && pt <= 70.0)   * (0.45) + \                                 
     782                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 70.0 )  * (0.55) + \   
    836783                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt >  4.0 && pt <= 10.0)  * (0.75) + \
    837                          (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 10.0 && pt <= 30.0)  * (0.85) + \
    838                          (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 30.0 && pt <= 50.0)  * (0.95) + \
    839                          (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 50.0 && pt <= 70.0)  * (0.95) + \
    840                          (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 70.0 )  * (1.0) + \
     784                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 10.0 && pt <= 30.0)  * (0.85) + \                                                     
     785                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 30.0 && pt <= 50.0)  * (0.95) + \                         
     786                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 50.0 && pt <= 70.0)  * (0.95) + \         
     787                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 70.0 )  * (1.0) + \   
    841788                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt >  4.0 && pt <= 10.0)  * (0.65) + \
    842                          (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 10.0 && pt <= 30.0)  * (0.75) + \
    843                          (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 30.0 && pt <= 50.0)  * (0.90) + \
    844                          (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 50.0 && pt <= 70.0)  * (0.90) + \
    845                          (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 70.0 )  * (0.90) + \
     789                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 10.0 && pt <= 30.0)  * (0.75) + \                                                     
     790                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 30.0 && pt <= 50.0)  * (0.90) + \                         
     791                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 50.0 && pt <= 70.0)  * (0.90) + \         
     792                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 70.0 )  * (0.90) + \                                                                           
    846793                         (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 4.0 && pt <= 10.0) * (0.65) + \
    847794                                          (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 10.0 && pt <= 30.0) * (0.75) + \
     
    850797                                          (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 70.0 ) * (0.90) + \
    851798                                          (abs(eta) > 4.0) * (0.00)
    852 
     799 
    853800  }
    854801}
     
    860807module Isolation MuonIsolation {
    861808  set CandidateInputArray MuonMomentumSmearing/muons
    862 
     809 
    863810  # isolation collection
    864   set IsolationInputArray RunPUPPI/PuppiParticles
    865 
     811  set IsolationInputArray EFlowMerger/eflow
     812 
    866813  set OutputArray muons
    867 
     814 
    868815  set DeltaRMax 0.3
    869816  set PTMin 1.0
     
    938885
    939886  set BitNumber 1
    940 
     887 
    941888  source btagMedium.tcl
    942889}
    943890
     891 
    944892
    945893#############
     
    952900  set BitNumber 2
    953901
    954   source btagTight.tcl
    955 }
     902  source btagTight.tcl
     903}
     904
     905
     906
    956907
    957908
     
    979930  add EfficiencyFormula {15} { (abs(eta) < 2.3) * 0.97*0.77*( (0.32 + 0.01*pt - 0.000054*pt*pt )*(pt<100)+0.78*(pt>100) ) + \
    980931                               (abs(eta) > 2.3) * (0.000)
    981                              }
     932                             } 
    982933}
    983934
     
    988939
    989940module StatusPidFilter GenParticleFilter {
    990 
     941 
    991942    set InputArray  Delphes/allParticles
    992943    set OutputArray filteredParticles
    993944    set PTMin 5.0
    994 
     945   
    995946}
    996947
     
    1004955  add Branch GenParticleFilter/filteredParticles Particle GenParticle
    1005956  add Branch PileUpMerger/vertices Vertex Vertex
    1006 
     957 
    1007958  add Branch GenJetFinder/jets GenJet Jet
    1008959  add Branch GenMissingET/momentum GenMissingET MissingET
     
    1011962#  add Branch ECal/eflowPhotons EFlowPhoton Tower
    1012963#  add Branch HCal/eflowNeutralHadrons EFlowNeutralHadron Tower
    1013 
     964 
    1014965  add Branch PhotonEfficiency/photons Photon Photon
    1015966  add Branch ElectronEfficiency/electrons Electron Electron
    1016967  add Branch MuonLooseIdEfficiency/muons MuonLoose Muon
    1017968  add Branch MuonTightIdEfficiency/muons MuonTight Muon
    1018 
     969   
    1019970  add Branch JetEnergyScale/jets Jet Jet
    1020 
     971 
    1021972  add Branch MissingET/momentum MissingET MissingET
    1022   add Branch PuppiMissingET/momentum PuppiMissingET MissingET
    1023973  add Branch GenPileUpMissingET/momentum GenPileUpMissingET MissingET
    1024974  add Branch ScalarHT/energy ScalarHT ScalarHT
  • cards/delphes_card_CMS.tcl

    r4a0d9d5 r4406bf8  
    271271  # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701
    272272  set ECalResolutionFormula {                  (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
    273                              (abs(eta) > 1.5 && abs(eta) <= 2.5) * (2.16 + 5.6*(abs(eta)-2)^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
     273                             (abs(eta) > 1.5 && abs(eta) <= 2.5) * (2.16 + 5.6*(eta-2)^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
    274274                             (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
    275275
  • modules/Calorimeter.cc

    r4a0d9d5 r4406bf8  
    625625    tower->Eem = ecalEnergy;
    626626    tower->Ehad = 0.0;
    627     tower->PID = 22;
    628627
    629628    fEFlowPhotonOutputArray->Add(tower);
  • modules/Isolation.cc

    r4a0d9d5 r4406bf8  
    110110
    111111  fUseRhoCorrection = GetBool("UseRhoCorrection", true);
    112 
    113   fDeltaRMin = GetDouble("DeltaRMin", 0.01);
    114   fUseMiniCone = GetBool("UseMiniCone", false);
    115112
    116113  fClassifier->fPTMin = GetDouble("PTMin", 0.5);
     
    160157  Double_t sumChargedNoPU, sumChargedPU, sumNeutral, sumAllParticles;
    161158  Double_t sumDBeta, ratioDBeta, sumRhoCorr, ratioRhoCorr, sum, ratio;
    162   Bool_t pass = kFALSE;
     159  Int_t counter;
    163160  Double_t eta = 0.0;
    164161  Double_t rho = 0.0;
     
    200197    sumAllParticles = 0.0;
    201198
     199    counter = 0;
    202200    itIsolationArray.Reset();
     201
    203202    while((isolation = static_cast<Candidate*>(itIsolationArray.Next())))
    204203    {
    205204      const TLorentzVector &isolationMomentum = isolation->Momentum;
    206205
    207       if(fUseMiniCone)
     206      if(candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax &&
     207         candidate->GetUniqueID() != isolation->GetUniqueID())
    208208      {
    209          pass = candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax &&
    210          candidateMomentum.DeltaR(isolationMomentum) > fDeltaRMin;
    211       }
    212       else
    213       {
    214          pass = candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax &&
    215          candidate->GetUniqueID() != isolation->GetUniqueID();
    216       }
    217 
    218       if(pass)
    219       {
    220 
    221209        sumAllParticles += isolationMomentum.Pt();
    222210        if(isolation->Charge != 0)
     
    235223          sumNeutral += isolationMomentum.Pt();
    236224        }
     225        ++counter;
    237226      }
    238 
    239227    }
    240228
    241    // find rho
     229    // find rho
    242230    rho = 0.0;
    243231    if(fRhoInputArray)
     
    253241    }
    254242
    255 
    256 
    257243    // correct sum for pile-up contamination
    258244    sumDBeta = sumChargedNoPU + TMath::Max(sumNeutral - 0.5*sumChargedPU, 0.0);
  • modules/Isolation.h

    r4a0d9d5 r4406bf8  
    5757  Double_t fPTSumMax;
    5858
    59   Double_t fDeltaRMin;
    60 
    6159  Bool_t fUsePTSum;
    6260
    6361  Bool_t fUseRhoCorrection;
    64 
    65   Bool_t fUseMiniCone;
    6662
    6763  IsolationClassifier *fClassifier; //!
  • modules/RunPUPPI.cc

    r4a0d9d5 r4406bf8  
    11#include "modules/RunPUPPI.h"
    22
    3 #include "PUPPI/RecoObj2.hh"
    4 #include "PUPPI/AlgoObj.hh"
    5 //#include "PUPPI/puppiParticle.hh"
    6 //#include "PUPPI/puppiAlgoBin.hh"
     3#include "PUPPI/puppiCleanContainer.hh"
     4#include "PUPPI/RecoObj.hh"
     5#include "PUPPI/puppiParticle.hh"
     6#include "PUPPI/puppiAlgoBin.hh"
    77
    88#include "classes/DelphesClasses.h"
     
    3030
    3131void RunPUPPI::Init(){
     32
    3233  // input collection
    3334  fTrackInputArray     = ImportArray(GetString("TrackInputArray", "Calorimeter/towers"));
     
    3738  fPVInputArray        = ImportArray(GetString("PVInputArray", "PV"));
    3839  fPVItInputArray      = fPVInputArray->MakeIterator();
    39   // puppi parameters                                 
    40   fApplyNoLep     = GetBool("UseNoLep", true);   
     40
     41
     42  // puppi parameters                                     
    4143  fMinPuppiWeight = GetDouble("MinPuppiWeight", 0.01);
    4244  fUseExp         = GetBool("UseExp", false);
    43   // read eta min ranges
     45
     46  // read eta min ranges                                                                                                                                                           
    4447  ExRootConfParam param = GetParam("EtaMinBin");
    4548  fEtaMinBin.clear();
    4649  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fEtaMinBin.push_back(param[iMap].GetDouble());
    47   // read eta max ranges
     50
     51  // read eta max ranges                                                                                                                                                           
    4852  param = GetParam("EtaMaxBin");
    4953  fEtaMaxBin.clear();
    5054  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fEtaMaxBin.push_back(param[iMap].GetDouble());
    51   // read pt min value
     55
     56  // read pt min value                                                                                                                                                           
    5257  param = GetParam("PtMinBin");
    5358  fPtMinBin.clear();
    5459  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fPtMinBin.push_back(param[iMap].GetDouble());
     60
    5561  // read cone size                                                                                                                                                           
    5662  param = GetParam("ConeSizeBin");
    5763  fConeSizeBin.clear();
    5864  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fConeSizeBin.push_back(param[iMap].GetDouble());
     65
    5966  // read RMS min pt                                                                                                                                             
    6067  param = GetParam("RMSPtMinBin");
    6168  fRMSPtMinBin.clear();
    6269  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fRMSPtMinBin.push_back(param[iMap].GetDouble());
    63   // read RMS scale factor
     70
     71  // read RMS scale factor                                                                                                                                                           
    6472  param = GetParam("RMSScaleFactorBin");
    6573  fRMSScaleFactorBin.clear();
    6674  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fRMSScaleFactorBin.push_back(param[iMap].GetDouble());
    67   // read neutral pt min cut
     75
     76  // read neutral pt min cut                                                                                                                                                           
    6877  param = GetParam("NeutralMinEBin");
    6978  fNeutralMinEBin.clear();
    7079  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fNeutralMinEBin.push_back(param[iMap].GetDouble());
    71   // read neutral pt min slope
     80
     81  // read neutral pt min slope                                                                                                                                                           
    7282  param = GetParam("NeutralPtSlope");
    7383  fNeutralPtSlope.clear();
    7484  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fNeutralPtSlope.push_back(param[iMap].GetDouble());
     85
    7586  // read apply chs                                                                                                                                                           
    76   //param = GetParam("ApplyCHS");
    77   //fApplyCHS.clear();
    78   //for(int iMap = 0; iMap < param.GetSize(); ++iMap) fApplyCHS.push_back(param[iMap].GetBool());
    79   // read use charged
     87  param = GetParam("ApplyCHS");
     88  fApplyCHS.clear();
     89  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fApplyCHS.push_back(param[iMap].GetBool());
     90
     91  // read use charged                                                                                                                                                           
    8092  param = GetParam("UseCharged");
    8193  fUseCharged.clear();
    8294  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fUseCharged.push_back(param[iMap].GetBool());
    83   // read apply chs correction
     95
     96  // read apply chs correction                                                                                                                                                           
    8497  param = GetParam("ApplyLowPUCorr");
    8598  fApplyLowPUCorr.clear();
    8699  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fApplyLowPUCorr.push_back(param[iMap].GetBool());
     100 
    87101  // read metric id                                                                                                                                                         
    88102  param = GetParam("MetricId");
    89103  fMetricId.clear();
    90104  for(int iMap = 0; iMap < param.GetSize(); ++iMap) fMetricId.push_back(param[iMap].GetInt());
    91   // scheme for combining
    92   param = GetParam("CombId");
    93   fCombId.clear();
    94   for(int iMap = 0; iMap < param.GetSize(); ++iMap) fCombId.push_back(param[iMap].GetInt());
     105
    95106  // create output array
    96107  fOutputArray        = ExportArray(GetString("OutputArray", "puppiParticles"));
    97108  fOutputTrackArray   = ExportArray(GetString("OutputArrayTracks", "puppiTracks"));
    98109  fOutputNeutralArray = ExportArray(GetString("OutputArrayNeutrals", "puppiNeutrals"));
    99   // Create algorithm list for puppi
    100   std::vector<AlgoObj> puppiAlgo;
    101   if(puppiAlgo.empty()){
    102     if(!(fEtaMinBin.size() == fEtaMaxBin.size() and fEtaMinBin.size() == fPtMinBin.size() and fEtaMinBin.size() == fConeSizeBin.size() and fEtaMinBin.size() == fRMSPtMinBin.size()
    103          and fEtaMinBin.size() == fRMSScaleFactorBin.size() and fEtaMinBin.size() == fNeutralMinEBin.size() and  fEtaMinBin.size() == fNeutralPtSlope.size()
    104          and fEtaMinBin.size() == fUseCharged.size()
    105          and fEtaMinBin.size() == fApplyLowPUCorr.size() and fEtaMinBin.size() == fMetricId.size())) {
    106       std::cerr<<" Error in PUPPI configuration, algo info should have the same size --> exit from the code"<<std::endl;
    107       std::exit(EXIT_FAILURE);
    108     }
    109   }
    110   for( size_t iAlgo =  0 ; iAlgo < fEtaMinBin.size() ; iAlgo++){
    111     AlgoObj algoTmp ;
    112     algoTmp.etaMin            = fEtaMinBin.at(iAlgo);
    113     algoTmp.etaMax            = fEtaMaxBin.at(iAlgo);
    114     algoTmp.ptMin             = fPtMinBin.at(iAlgo);
    115     algoTmp.minNeutralPt      = fNeutralMinEBin.at(iAlgo);
    116     algoTmp.minNeutralPtSlope = fNeutralPtSlope.at(iAlgo);
    117     //Eta Extrapolation stuff is missing
    118     //Loop through file requiring algos for same bins to be adjacent
    119     while(iAlgo < fEtaMinBin.size() and algoTmp.etaMin == fEtaMinBin.at(iAlgo) and algoTmp.etaMax == fEtaMaxBin.at(iAlgo)) {
    120       AlgoSubObj algoSubTmp;
    121       algoSubTmp.metricId          = fMetricId.at(iAlgo);
    122       algoSubTmp.useCharged        = fUseCharged.at(iAlgo);
    123       algoSubTmp.applyLowPUCorr    = fApplyLowPUCorr.at(iAlgo);
    124       algoSubTmp.combId            = fCombId.at(iAlgo);
    125       algoSubTmp.coneSize          = fConeSizeBin.at(iAlgo);
    126       algoSubTmp.rmsPtMin          = fRMSPtMinBin.at(iAlgo);
    127       algoSubTmp.rmsScaleFactor    = fRMSScaleFactorBin.at(iAlgo);
    128       algoTmp.subAlgos.push_back(algoSubTmp);
    129       iAlgo++;
    130     }
    131     iAlgo--;
    132     //if(std::find(puppiAlgo.begin(),puppiAlgo.end(),algoTmp) != puppiAlgo.end()) continue;   
    133     puppiAlgo.push_back(algoTmp);     
    134   }
    135   fPuppi  = new PuppiContainer(true,fUseExp,fMinPuppiWeight,puppiAlgo);
    136110}
    137111
     
    150124  TLorentzVector momentum;
    151125
    152   //DelphesFactory *factory = GetFactory();
     126  DelphesFactory *factory = GetFactory();
    153127
    154128  // loop over input objects
    155   fItTrackInputArray   ->Reset();
    156   fItNeutralInputArray ->Reset();
    157   fPVItInputArray      ->Reset();
     129  fItTrackInputArray->Reset();
     130  fItNeutralInputArray->Reset();
     131  fPVItInputArray->Reset();
    158132
    159133  std::vector<Candidate *> InputParticles;
     
    168142  std::vector<RecoObj> puppiInputVector;
    169143  puppiInputVector.clear();
    170   int lNBad  = 0;
     144
    171145  // Loop on charge track candidate
    172146  while((candidate = static_cast<Candidate*>(fItTrackInputArray->Next()))){   
     147
    173148      momentum = candidate->Momentum;
     149     
    174150      RecoObj curRecoObj;
    175151      curRecoObj.pt  = momentum.Pt();
     
    178154      curRecoObj.m   = momentum.M(); 
    179155      particle = static_cast<Candidate*>(candidate->GetCandidates()->Last());
    180       //if(fApplyNoLep && TMath::Abs(candidate->PID) == 11) continue; //Dumb cut to minimize the nolepton on electron
    181       //if(fApplyNoLep && TMath::Abs(candidate->PID) == 13) continue;
    182156      if (candidate->IsRecoPU and candidate->Charge !=0) { // if it comes fromPU vertexes after the resolution smearing and the dZ matching within resolution
    183         lNBad++;
    184157        curRecoObj.id    = 2;
    185         curRecoObj.vtxId = 0.7*(fPVInputArray->GetEntries()); //Hack apply reco vtx efficiency of 70% for calibration
     158        curRecoObj.vtxId = candidate->IsPU;
    186159        if(TMath::Abs(candidate->PID) == 11)      curRecoObj.pfType = 2;
    187160        else if(TMath::Abs(candidate->PID) == 13) curRecoObj.pfType = 3;
     
    210183  // Loop on neutral calo cells
    211184  while((candidate = static_cast<Candidate*>(fItNeutralInputArray->Next()))){
     185
    212186      momentum = candidate->Momentum;
     187
    213188      RecoObj curRecoObj;
    214189      curRecoObj.pt  = momentum.Pt();
     
    216191      curRecoObj.phi = momentum.Phi();
    217192      curRecoObj.m   = momentum.M();
    218       curRecoObj.charge = 0;
    219193      particle = static_cast<Candidate*>(candidate->GetCandidates()->Last());
     194
    220195
    221196      if(candidate->Charge == 0){
     
    235210      InputParticles.push_back(candidate);
    236211  }
     212
     213  // Create algorithm list for puppi
     214  std::vector<puppiAlgoBin> puppiAlgo;
     215  if(puppiAlgo.empty()){
     216   if(!(fEtaMinBin.size() == fEtaMaxBin.size() and fEtaMinBin.size() == fPtMinBin.size() and fEtaMinBin.size() == fConeSizeBin.size() and fEtaMinBin.size() == fRMSPtMinBin.size()
     217       and fEtaMinBin.size() == fRMSScaleFactorBin.size() and fEtaMinBin.size() == fNeutralMinEBin.size() and  fEtaMinBin.size() == fNeutralPtSlope.size()
     218       and fEtaMinBin.size() == fApplyCHS.size()  and fEtaMinBin.size() == fUseCharged.size()
     219       and fEtaMinBin.size() == fApplyLowPUCorr.size() and fEtaMinBin.size() == fMetricId.size())) {
     220    std::cerr<<" Error in PUPPI configuration, algo info should have the same size --> exit from the code"<<std::endl;
     221    std::exit(EXIT_FAILURE);
     222   }
     223
     224   for( size_t iAlgo =  0 ; iAlgo < fEtaMinBin.size() ; iAlgo++){
     225    puppiAlgoBin algoTmp ;
     226    algoTmp.fEtaMin_ = fEtaMinBin.at(iAlgo);
     227    algoTmp.fEtaMax_ = fEtaMaxBin.at(iAlgo);
     228    algoTmp.fPtMin_  = fPtMinBin.at(iAlgo);
     229    algoTmp.fConeSize_        = fConeSizeBin.at(iAlgo);
     230    algoTmp.fRMSPtMin_        = fRMSPtMinBin.at(iAlgo);
     231    algoTmp.fRMSScaleFactor_  = fRMSScaleFactorBin.at(iAlgo);
     232    algoTmp.fNeutralMinE_     = fNeutralMinEBin.at(iAlgo);
     233    algoTmp.fNeutralPtSlope_  = fNeutralPtSlope.at(iAlgo);
     234    algoTmp.fApplyCHS_        = fApplyCHS.at(iAlgo);
     235    algoTmp.fUseCharged_      = fUseCharged.at(iAlgo);
     236    algoTmp.fApplyLowPUCorr_  = fApplyLowPUCorr.at(iAlgo);
     237    algoTmp.fMetricId_        = fMetricId.at(iAlgo);
     238    if(std::find(puppiAlgo.begin(),puppiAlgo.end(),algoTmp) != puppiAlgo.end()) continue;   
     239    puppiAlgo.push_back(algoTmp);     
     240   }
     241  } 
     242
    237243  // Create PUPPI container
    238   fPuppi->initialize(puppiInputVector);
    239   fPuppi->puppiWeights();
    240   std::vector<fastjet::PseudoJet> puppiParticles = fPuppi->puppiParticles();
     244  puppiCleanContainer curEvent(puppiInputVector,puppiAlgo,fMinPuppiWeight,fUseExp);
     245  std::vector<fastjet::PseudoJet> puppiParticles = curEvent.puppiEvent();
    241246
    242247  // Loop on final particles
  • modules/RunPUPPI.h

    r4a0d9d5 r4406bf8  
    33
    44#include "classes/DelphesModule.h"
    5 #include "PUPPI/PuppiContainer.hh"
    65#include <vector>
    76
     
    3029  const TObjArray *fNeutralInputArray; //!
    3130  const TObjArray *fPVInputArray; //!                                                                                                                                                     
    32   PuppiContainer* fPuppi;
     31 
    3332  // puppi parameters
    34   bool fApplyNoLep;
    35   double fMinPuppiWeight;
     33  float fMinPuppiWeight;
    3634  bool fUseExp;
    3735 
     
    4846  std::vector<bool>  fApplyLowPUCorr;
    4947  std::vector<int>   fMetricId;
    50   std::vector<int>   fCombId;
    5148
    5249  TObjArray *fOutputArray;
  • modules/SimpleCalorimeter.cc

    r4a0d9d5 r4406bf8  
    504504    tower->Eem = (!fIsEcal) ? 0 : energy;
    505505    tower->Ehad = (fIsEcal) ? 0 : energy;
    506    
     506
    507507    tower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy);
    508    
    509     tower->PID = (fIsEcal) ? 22 : 0;
    510    
    511508    fEFlowTowerOutputArray->Add(tower);
    512509  }
Note: See TracChangeset for help on using the changeset viewer.