Changes in / [4406bf8:4a0d9d5] in git
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r4406bf8 r4a0d9d5 1362 1362 modules/RunPUPPI.$(SrcSuf) \ 1363 1363 modules/RunPUPPI.h \ 1364 external/PUPPI/puppiCleanContainer.hh \ 1365 external/PUPPI/RecoObj.hh \ 1366 external/PUPPI/puppiParticle.hh \ 1367 external/PUPPI/puppiAlgoBin.hh \ 1364 external/PUPPI/RecoObj2.hh \ 1365 external/PUPPI/AlgoObj.hh \ 1368 1366 classes/DelphesClasses.h \ 1369 1367 classes/DelphesFactory.h \ … … 1801 1799 1802 1800 modules/RunPUPPI.h: \ 1803 classes/DelphesModule.h 1801 classes/DelphesModule.h \ 1802 external/PUPPI/PuppiContainer.hh 1804 1803 @touch $@ 1805 1804 … … 1933 1932 external/fastjet/AreaDefinition.hh \ 1934 1933 external/fastjet/ClusterSequenceAreaBase.hh 1935 @touch $@1936 1937 external/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.hh1943 1934 @touch $@ 1944 1935 -
cards/CMS_PhaseII/CMS_PhaseII_200PU.tcl
r4406bf8 r4a0d9d5 1 set MaxEvents 10 2 1 3 # 2 4 # Phase II - Pile-Up 3 5 # 4 6 # Main authors: Michele Selvaggi (UCL) 5 # 6 # Released on: 7 # 8 # Released on: 7 9 # 8 10 # Version: v01 … … 14 16 15 17 set ExecutionPath { 16 17 PileUpMerger 18 18 19 PileUpMerger 19 20 ParticlePropagator 20 21 … … 28 29 29 30 TrackMerger 30 31 31 32 ECal 32 33 HCal … … 34 35 ElectronFilter 35 36 TrackPileUpSubtractor 36 37 37 38 TowerMerger 38 39 NeutralEFlowMerger … … 40 41 EFlowMerger 41 42 43 LeptonFilterNoLep 44 LeptonFilterLep 45 RunPUPPIBase 42 46 RunPUPPI 47 48 PhotonFilter 43 49 44 50 PhotonIsolation 45 51 PhotonEfficiency 46 52 47 53 ElectronIsolation 48 54 ElectronEfficiency 49 55 50 56 MuonIsolation 51 57 MuonLooseIdEfficiency 52 58 MuonTightIdEfficiency 53 59 54 60 NeutrinoFilter 55 61 56 62 MissingET 63 PuppiMissingET 57 64 GenMissingET 58 65 GenPileUpMissingET … … 62 69 63 70 ScalarHT 64 71 65 72 JetEnergyScale 66 73 … … 72 79 73 80 TauTagging 74 81 75 82 GenParticleFilter 76 83 77 84 TreeWriter 78 85 } … … 91 98 92 99 # pre-generated minbias input file 93 set PileUpFile ../eos/cms/store/group/upgrade/delphes/PhaseII/MinBias_100k.pileup 100 set PileUpFile ../eos/cms/store/group/upgrade/delphes/PhaseII/MinBias_100k.pileup 94 101 95 102 # average expected pile up 96 103 set MeanPileUp 200 97 104 98 105 # maximum spread in the beam direction in m 99 set ZVertexSpread 0. 15106 set ZVertexSpread 0.25 100 107 101 108 # maximum spread in time in s 102 set TVertexSpread 1.5E-09109 set TVertexSpread 800E-12 103 110 104 111 # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s) 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)} 112 set VertexDistributionFormula {exp(-(t^2/160e-12^2/2))*exp(-(z^2/0.053^2/2))} 113 113 114 114 } … … 167 167 set OutputArray electrons 168 168 # tracking efficiency formula for electrons 169 set EfficiencyFormula { 169 set EfficiencyFormula { 170 170 (pt <= 0.2) * (0.00) + \ 171 171 (abs(eta) <= 1.2) * (pt > 0.2 && pt <= 1.0) * (pt * 0.96) + \ … … 199 199 (abs(eta) > 2.8 && abs(eta) <= 4.0) * (pt > 1.0) * (0.95) + \ 200 200 (abs(eta) > 4.0) * (0.00) 201 201 202 202 } 203 203 } … … 212 212 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons 213 213 set OutputArray chargedHadrons 214 # resolution formula for charged hadrons , 215 214 # resolution formula for charged hadrons , 215 216 216 # from http://mersi.web.cern.ch/mersi/layouts/.private/Baseline_tilted_200_Pixel_1_1_1/index.html 217 217 source trackMomentumResolution.tcl … … 229 229 230 230 # resolution formula for electrons 231 231 232 232 # taking something flat in energy for now, ECAL will take over at high energy anyway. 233 233 # inferred from hep-ex/1306.2016 and 1502.02701 234 set ResolutionFormula { 235 234 set ResolutionFormula { 235 236 236 (abs(eta) <= 1.5) * (1+0.64*abs(eta)^2)*(energy*0.028) + 237 237 (abs(eta) > 1.5 && abs(eta) <= 1.75) * (energy*0.037) + 238 238 (abs(eta) > 1.75 && abs(eta) <= 2.15) * (energy*0.038) + 239 239 (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)} 241 241 242 242 } … … 250 250 set OutputArray muons 251 251 # 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 255 255 # 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 257 257 } 258 258 … … 284 284 set EFlowTowerOutputArray eflowPhotons 285 285 286 set IsEcal true 287 286 set IsEcal true 287 288 288 set EnergyMin 0.5 289 289 set EnergySignificanceMin 1.0 … … 298 298 299 299 # assume 0.02 x 0.02 resolution in eta,phi in the barrel |eta| < 1.5 300 300 301 301 set PhiBins {} 302 302 for {set i -180} {$i <= 180} {incr i} { … … 311 311 312 312 # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- ECAL) 313 313 314 314 set PhiBins {} 315 315 for {set i -180} {$i <= 180} {incr i} { … … 328 328 } 329 329 330 # take present CMS granularity for HF 331 330 # take present CMS granularity for HF 331 332 332 # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0 333 333 set PhiBins {} … … 335 335 add PhiBins [expr {$i * $pi/18.0}] 336 336 } 337 337 338 338 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} { 339 339 add EtaPhiBins $eta $PhiBins … … 361 361 362 362 # set ResolutionFormula {resolution formula as a function of eta and energy} 363 363 364 364 # for the ECAL barrel (|eta| < 1.5), see hep-ex/1306.2016 and 1502.02701 365 365 # for the endcaps (1.5 < |eta| < 3.0), we take HGCAL see LHCC-P-008, Fig. 3.39, p.117 366 366 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) + 368 368 (abs(eta) > 1.50 && abs(eta) <= 1.75) * sqrt(energy^2*0.006^2 + energy*0.20^2) + \ 369 369 (abs(eta) > 1.75 && abs(eta) <= 2.15) * sqrt(energy^2*0.007^2 + energy*0.21^2) + \ … … 385 385 set EFlowTowerOutputArray eflowNeutralHadrons 386 386 387 set IsEcal false 388 387 set IsEcal false 388 389 389 set EnergyMin 1.0 390 390 set EnergySignificanceMin 1.0 … … 397 397 # each list starts with the lower edge of the first tower 398 398 # the list ends with the higher edged of the last tower 399 399 400 400 # assume 0.087 x 0.087 resolution in eta,phi in the barrel |eta| < 1.5 401 401 … … 409 409 410 410 # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- HCAL) 411 411 412 412 set PhiBins {} 413 413 for {set i -180} {$i <= 180} {incr i} { … … 426 426 } 427 427 428 # take present CMS granularity for HF 429 428 # take present CMS granularity for HF 429 430 430 # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0 431 431 set PhiBins {} … … 433 433 add PhiBins [expr {$i * $pi/18.0}] 434 434 } 435 435 436 436 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} { 437 437 add EtaPhiBins $eta $PhiBins … … 478 478 } 479 479 480 480 481 ########################## 481 482 # Track pile-up subtractor … … 547 548 ######################################### 548 549 549 module RunPUPPI RunPUPPI { 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 { 550 571 ## input information 551 set TrackInputArray TrackMerger/tracks572 set TrackInputArray LeptonFilterNoLep/eflowTracksNoLeptons 552 573 set NeutralInputArray NeutralEFlowMerger/eflowTowers 553 574 set PVInputArray PileUpMerger/vertices 554 575 set MinPuppiWeight 0.05 555 576 set UseExp false 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 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 570 593 571 594 ## output name … … 573 596 set OutputArrayTracks puppiTracks 574 597 set OutputArrayNeutrals puppiNeutrals 575 } 576 577 598 } 599 600 module Merger RunPUPPI { 601 add InputArray RunPUPPIBase/PuppiParticles 602 add InputArray LeptonFilterLep/eflowTracksLeptons 603 set OutputArray PuppiParticles 604 } 578 605 579 606 ################### … … 588 615 } 589 616 617 module Merger PuppiMissingET { 618 #add InputArray InputArray 619 add InputArray RunPUPPI/PuppiParticles 620 #add InputArray EFlowMerger/eflow 621 set MomentumOutputArray momentum 622 } 623 590 624 ################### 591 # Ger PileUp Missing ET 625 # Ger PileUp Missing ET 592 626 ################### 593 627 … … 636 670 module FastJetFinder GenJetFinder { 637 671 set InputArray NeutrinoFilter/filteredParticles 638 672 639 673 set OutputArray jets 640 674 … … 689 723 690 724 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 691 738 #################### 692 739 # Photon isolation # … … 694 741 695 742 module Isolation PhotonIsolation { 696 743 697 744 # particle for which calculate the isolation 698 set CandidateInputArray ECal/eflowPhotons699 745 set CandidateInputArray PhotonFilter/photons 746 700 747 # isolation collection 701 set IsolationInputArray EFlowMerger/eflow702 748 set IsolationInputArray RunPUPPI/PuppiParticles 749 703 750 # output array 704 751 set OutputArray photons 705 752 753 # veto isolation cand. based on proximity to input cand. 754 set DeltaRMin 0.01 755 set UseMiniCone true 756 706 757 # isolation cone 707 758 set DeltaRMax 0.3 708 709 # minimum pT 759 760 # minimum pT 710 761 set PTMin 1.0 711 762 712 763 # iso ratio to cut 713 764 set PTRatioMax 9999. 765 714 766 } 715 767 … … 721 773 722 774 module Efficiency PhotonEfficiency { 723 775 724 776 ## input particles 725 set InputArray PhotonIsolation/photons 777 set InputArray PhotonIsolation/photons 726 778 ## output particles 727 779 set OutputArray photons … … 741 793 742 794 module Isolation ElectronIsolation { 743 795 744 796 set CandidateInputArray ElectronFilter/electrons 745 797 746 798 # isolation collection 747 set IsolationInputArray EFlowMerger/eflow 748 799 set IsolationInputArray RunPUPPI/PuppiParticles 800 #set IsolationInputArray EFlowMerger/eflow 801 749 802 set OutputArray electrons 750 803 751 804 set DeltaRMax 0.3 752 805 set PTMin 1.0 … … 762 815 763 816 module Efficiency ElectronEfficiency { 764 817 765 818 set InputArray ElectronIsolation/electrons 766 819 set OutputArray electrons 767 820 768 821 # set EfficiencyFormula {efficiency formula as a function of eta and pt} 769 822 # efficiency formula for electrons … … 773 826 (abs(eta) <= 1.45 ) * (pt > 6.0 && pt <= 8.0) * (0.70) + \ 774 827 (abs(eta) <= 1.45 ) * (pt > 8.0 && pt <= 10.0) * (0.85) + \ 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) + \ 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) + \ 779 832 (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 4.0 && pt <= 10.0) * (0.35) + \ 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) + \ 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) + \ 783 836 (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 4.0 && pt <= 10.0) * (0.75) + \ 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) + \ 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) + \ 788 841 (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 4.0 && pt <= 10.0) * (0.65) + \ 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) + \ 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) + \ 793 846 (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 4.0 && pt <= 10.0) * (0.65) + \ 794 847 (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 10.0 && pt <= 30.0) * (0.75) + \ … … 797 850 (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 70.0 ) * (0.90) + \ 798 851 (abs(eta) > 4.0) * (0.00) 799 852 800 853 } 801 854 } … … 807 860 module Isolation MuonIsolation { 808 861 set CandidateInputArray MuonMomentumSmearing/muons 809 862 810 863 # isolation collection 811 set IsolationInputArray EFlowMerger/eflow812 864 set IsolationInputArray RunPUPPI/PuppiParticles 865 813 866 set OutputArray muons 814 867 815 868 set DeltaRMax 0.3 816 869 set PTMin 1.0 … … 885 938 886 939 set BitNumber 1 887 940 888 941 source btagMedium.tcl 889 942 } 890 943 891 892 944 893 945 ############# … … 900 952 set BitNumber 2 901 953 902 source btagTight.tcl 903 } 904 905 906 954 source btagTight.tcl 955 } 907 956 908 957 … … 930 979 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) ) + \ 931 980 (abs(eta) > 2.3) * (0.000) 932 } 981 } 933 982 } 934 983 … … 939 988 940 989 module StatusPidFilter GenParticleFilter { 941 990 942 991 set InputArray Delphes/allParticles 943 992 set OutputArray filteredParticles 944 993 set PTMin 5.0 945 994 946 995 } 947 996 … … 955 1004 add Branch GenParticleFilter/filteredParticles Particle GenParticle 956 1005 add Branch PileUpMerger/vertices Vertex Vertex 957 1006 958 1007 add Branch GenJetFinder/jets GenJet Jet 959 1008 add Branch GenMissingET/momentum GenMissingET MissingET … … 962 1011 # add Branch ECal/eflowPhotons EFlowPhoton Tower 963 1012 # add Branch HCal/eflowNeutralHadrons EFlowNeutralHadron Tower 964 1013 965 1014 add Branch PhotonEfficiency/photons Photon Photon 966 1015 add Branch ElectronEfficiency/electrons Electron Electron 967 1016 add Branch MuonLooseIdEfficiency/muons MuonLoose Muon 968 1017 add Branch MuonTightIdEfficiency/muons MuonTight Muon 969 1018 970 1019 add Branch JetEnergyScale/jets Jet Jet 971 1020 972 1021 add Branch MissingET/momentum MissingET MissingET 1022 add Branch PuppiMissingET/momentum PuppiMissingET MissingET 973 1023 add Branch GenPileUpMissingET/momentum GenPileUpMissingET MissingET 974 1024 add Branch ScalarHT/energy ScalarHT ScalarHT -
cards/delphes_card_CMS.tcl
r4406bf8 r4a0d9d5 271 271 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701 272 272 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*( 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*(abs(eta)-2)^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) + 274 274 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)} 275 275 -
modules/Calorimeter.cc
r4406bf8 r4a0d9d5 625 625 tower->Eem = ecalEnergy; 626 626 tower->Ehad = 0.0; 627 tower->PID = 22; 627 628 628 629 fEFlowPhotonOutputArray->Add(tower); -
modules/Isolation.cc
r4406bf8 r4a0d9d5 110 110 111 111 fUseRhoCorrection = GetBool("UseRhoCorrection", true); 112 113 fDeltaRMin = GetDouble("DeltaRMin", 0.01); 114 fUseMiniCone = GetBool("UseMiniCone", false); 112 115 113 116 fClassifier->fPTMin = GetDouble("PTMin", 0.5); … … 157 160 Double_t sumChargedNoPU, sumChargedPU, sumNeutral, sumAllParticles; 158 161 Double_t sumDBeta, ratioDBeta, sumRhoCorr, ratioRhoCorr, sum, ratio; 159 Int_t counter;162 Bool_t pass = kFALSE; 160 163 Double_t eta = 0.0; 161 164 Double_t rho = 0.0; … … 197 200 sumAllParticles = 0.0; 198 201 199 counter = 0;200 202 itIsolationArray.Reset(); 201 202 203 while((isolation = static_cast<Candidate*>(itIsolationArray.Next()))) 203 204 { 204 205 const TLorentzVector &isolationMomentum = isolation->Momentum; 205 206 206 if(candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax && 207 candidate->GetUniqueID() != isolation->GetUniqueID()) 208 { 207 if(fUseMiniCone) 208 { 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 209 221 sumAllParticles += isolationMomentum.Pt(); 210 222 if(isolation->Charge != 0) … … 223 235 sumNeutral += isolationMomentum.Pt(); 224 236 } 225 ++counter;226 } 237 } 238 227 239 } 228 240 229 241 // find rho 230 242 rho = 0.0; 231 243 if(fRhoInputArray) … … 240 252 } 241 253 } 254 255 242 256 243 257 // correct sum for pile-up contamination -
modules/Isolation.h
r4406bf8 r4a0d9d5 57 57 Double_t fPTSumMax; 58 58 59 Double_t fDeltaRMin; 60 59 61 Bool_t fUsePTSum; 60 62 61 63 Bool_t fUseRhoCorrection; 64 65 Bool_t fUseMiniCone; 62 66 63 67 IsolationClassifier *fClassifier; //! -
modules/RunPUPPI.cc
r4406bf8 r4a0d9d5 1 1 #include "modules/RunPUPPI.h" 2 2 3 #include "PUPPI/ puppiCleanContainer.hh"4 #include "PUPPI/ RecoObj.hh"5 #include "PUPPI/puppiParticle.hh"6 #include "PUPPI/puppiAlgoBin.hh"3 #include "PUPPI/RecoObj2.hh" 4 #include "PUPPI/AlgoObj.hh" 5 //#include "PUPPI/puppiParticle.hh" 6 //#include "PUPPI/puppiAlgoBin.hh" 7 7 8 8 #include "classes/DelphesClasses.h" … … 30 30 31 31 void RunPUPPI::Init(){ 32 33 32 // input collection 34 33 fTrackInputArray = ImportArray(GetString("TrackInputArray", "Calorimeter/towers")); … … 38 37 fPVInputArray = ImportArray(GetString("PVInputArray", "PV")); 39 38 fPVItInputArray = fPVInputArray->MakeIterator(); 40 41 42 // puppi parameters 39 // puppi parameters 40 fApplyNoLep = GetBool("UseNoLep", true); 43 41 fMinPuppiWeight = GetDouble("MinPuppiWeight", 0.01); 44 42 fUseExp = GetBool("UseExp", false); 45 46 // read eta min ranges 43 // read eta min ranges 47 44 ExRootConfParam param = GetParam("EtaMinBin"); 48 45 fEtaMinBin.clear(); 49 46 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fEtaMinBin.push_back(param[iMap].GetDouble()); 50 51 // read eta max ranges 47 // read eta max ranges 52 48 param = GetParam("EtaMaxBin"); 53 49 fEtaMaxBin.clear(); 54 50 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fEtaMaxBin.push_back(param[iMap].GetDouble()); 55 56 // read pt min value 51 // read pt min value 57 52 param = GetParam("PtMinBin"); 58 53 fPtMinBin.clear(); 59 54 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fPtMinBin.push_back(param[iMap].GetDouble()); 60 61 55 // read cone size 62 56 param = GetParam("ConeSizeBin"); 63 57 fConeSizeBin.clear(); 64 58 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fConeSizeBin.push_back(param[iMap].GetDouble()); 65 66 59 // read RMS min pt 67 60 param = GetParam("RMSPtMinBin"); 68 61 fRMSPtMinBin.clear(); 69 62 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fRMSPtMinBin.push_back(param[iMap].GetDouble()); 70 71 // read RMS scale factor 63 // read RMS scale factor 72 64 param = GetParam("RMSScaleFactorBin"); 73 65 fRMSScaleFactorBin.clear(); 74 66 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fRMSScaleFactorBin.push_back(param[iMap].GetDouble()); 75 76 // read neutral pt min cut 67 // read neutral pt min cut 77 68 param = GetParam("NeutralMinEBin"); 78 69 fNeutralMinEBin.clear(); 79 70 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fNeutralMinEBin.push_back(param[iMap].GetDouble()); 80 81 // read neutral pt min slope 71 // read neutral pt min slope 82 72 param = GetParam("NeutralPtSlope"); 83 73 fNeutralPtSlope.clear(); 84 74 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fNeutralPtSlope.push_back(param[iMap].GetDouble()); 85 86 75 // read apply chs 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 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 92 80 param = GetParam("UseCharged"); 93 81 fUseCharged.clear(); 94 82 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fUseCharged.push_back(param[iMap].GetBool()); 95 96 // read apply chs correction 83 // read apply chs correction 97 84 param = GetParam("ApplyLowPUCorr"); 98 85 fApplyLowPUCorr.clear(); 99 86 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fApplyLowPUCorr.push_back(param[iMap].GetBool()); 100 101 87 // read metric id 102 88 param = GetParam("MetricId"); 103 89 fMetricId.clear(); 104 90 for(int iMap = 0; iMap < param.GetSize(); ++iMap) fMetricId.push_back(param[iMap].GetInt()); 105 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()); 106 95 // create output array 107 96 fOutputArray = ExportArray(GetString("OutputArray", "puppiParticles")); 108 97 fOutputTrackArray = ExportArray(GetString("OutputArrayTracks", "puppiTracks")); 109 98 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); 110 136 } 111 137 … … 124 150 TLorentzVector momentum; 125 151 126 DelphesFactory *factory = GetFactory();152 //DelphesFactory *factory = GetFactory(); 127 153 128 154 // loop over input objects 129 fItTrackInputArray ->Reset();130 fItNeutralInputArray ->Reset();131 fPVItInputArray ->Reset();155 fItTrackInputArray ->Reset(); 156 fItNeutralInputArray ->Reset(); 157 fPVItInputArray ->Reset(); 132 158 133 159 std::vector<Candidate *> InputParticles; … … 142 168 std::vector<RecoObj> puppiInputVector; 143 169 puppiInputVector.clear(); 144 170 int lNBad = 0; 145 171 // Loop on charge track candidate 146 172 while((candidate = static_cast<Candidate*>(fItTrackInputArray->Next()))){ 147 148 173 momentum = candidate->Momentum; 149 150 174 RecoObj curRecoObj; 151 175 curRecoObj.pt = momentum.Pt(); … … 154 178 curRecoObj.m = momentum.M(); 155 179 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; 156 182 if (candidate->IsRecoPU and candidate->Charge !=0) { // if it comes fromPU vertexes after the resolution smearing and the dZ matching within resolution 183 lNBad++; 157 184 curRecoObj.id = 2; 158 curRecoObj.vtxId = candidate->IsPU;185 curRecoObj.vtxId = 0.7*(fPVInputArray->GetEntries()); //Hack apply reco vtx efficiency of 70% for calibration 159 186 if(TMath::Abs(candidate->PID) == 11) curRecoObj.pfType = 2; 160 187 else if(TMath::Abs(candidate->PID) == 13) curRecoObj.pfType = 3; … … 183 210 // Loop on neutral calo cells 184 211 while((candidate = static_cast<Candidate*>(fItNeutralInputArray->Next()))){ 185 186 212 momentum = candidate->Momentum; 187 188 213 RecoObj curRecoObj; 189 214 curRecoObj.pt = momentum.Pt(); … … 191 216 curRecoObj.phi = momentum.Phi(); 192 217 curRecoObj.m = momentum.M(); 218 curRecoObj.charge = 0; 193 219 particle = static_cast<Candidate*>(candidate->GetCandidates()->Last()); 194 195 220 196 221 if(candidate->Charge == 0){ … … 210 235 InputParticles.push_back(candidate); 211 236 } 212 213 // Create algorithm list for puppi214 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 243 237 // Create PUPPI container 244 puppiCleanContainer curEvent(puppiInputVector,puppiAlgo,fMinPuppiWeight,fUseExp); 245 std::vector<fastjet::PseudoJet> puppiParticles = curEvent.puppiEvent(); 238 fPuppi->initialize(puppiInputVector); 239 fPuppi->puppiWeights(); 240 std::vector<fastjet::PseudoJet> puppiParticles = fPuppi->puppiParticles(); 246 241 247 242 // Loop on final particles -
modules/RunPUPPI.h
r4406bf8 r4a0d9d5 3 3 4 4 #include "classes/DelphesModule.h" 5 #include "PUPPI/PuppiContainer.hh" 5 6 #include <vector> 6 7 … … 29 30 const TObjArray *fNeutralInputArray; //! 30 31 const TObjArray *fPVInputArray; //! 31 32 PuppiContainer* fPuppi; 32 33 // puppi parameters 33 float fMinPuppiWeight; 34 bool fApplyNoLep; 35 double fMinPuppiWeight; 34 36 bool fUseExp; 35 37 … … 46 48 std::vector<bool> fApplyLowPUCorr; 47 49 std::vector<int> fMetricId; 50 std::vector<int> fCombId; 48 51 49 52 TObjArray *fOutputArray; -
modules/SimpleCalorimeter.cc
r4406bf8 r4a0d9d5 504 504 tower->Eem = (!fIsEcal) ? 0 : energy; 505 505 tower->Ehad = (fIsEcal) ? 0 : energy; 506 506 507 507 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); 508 509 tower->PID = (fIsEcal) ? 22 : 0; 510 508 511 fEFlowTowerOutputArray->Add(tower); 509 512 }
Note:
See TracChangeset
for help on using the changeset viewer.