Changes in / [b9ae4c3:ec5e04b] in git
- Files:
-
- 1 added
- 21 deleted
- 101 edited
Legend:
- Unmodified
- Added
- Removed
-
CHANGELOG
rb9ae4c3 rec5e04b 1 3.4.0:2 - corrected granularities for ECAL and HCAL in CMS default cards3 - improved particle flow algorithm4 - updated FastJet library to 3.2.15 - updated Nsubjettiness library to 2.2.46 - added scripts that produce validation plots7 - added DelphesROOT reader8 - added TrackSmearing and BeamSpotFilter modules9 - completed TimeSmearing module10 - added preliminary version of vertex clustering algorithm in 3/4D, VertexFinder and VertexFinder4D (special thanks to A. Hart and L. Gray)11 - fixed muon efficiency at high energy12 - replaced gaussian smearing with lognormal in MomentumSmearing module13 14 1 3.3.3: 15 2 - improved compatibility with ROOT >= 6.04 -
Makefile
rb9ae4c3 rec5e04b 137 137 tmp/examples/Example1.$(ObjSuf): \ 138 138 examples/Example1.cpp \ 139 classes/DelphesClasses.h \140 external/ExRootAnalysis/ExRootTreeReader.h \141 external/ExRootAnalysis/ExRootTreeWriter.h \142 external/ExRootAnalysis/ExRootTreeBranch.h \143 external/ExRootAnalysis/ExRootResult.h \144 external/ExRootAnalysis/ExRootUtilities.h145 Validation$(ExeSuf): \146 tmp/examples/Validation.$(ObjSuf)147 148 tmp/examples/Validation.$(ObjSuf): \149 examples/Validation.cpp \150 139 classes/DelphesClasses.h \ 151 140 external/ExRootAnalysis/ExRootTreeReader.h \ … … 161 150 root2pileup$(ExeSuf) \ 162 151 stdhep2pileup$(ExeSuf) \ 163 Example1$(ExeSuf) \ 164 Validation$(ExeSuf) 152 Example1$(ExeSuf) 165 153 166 154 EXECUTABLE_OBJ += \ … … 171 159 tmp/converters/root2pileup.$(ObjSuf) \ 172 160 tmp/converters/stdhep2pileup.$(ObjSuf) \ 173 tmp/examples/Example1.$(ObjSuf) \ 174 tmp/examples/Validation.$(ObjSuf) 161 tmp/examples/Example1.$(ObjSuf) 175 162 176 163 DelphesHepMC$(ExeSuf): \ … … 196 183 classes/DelphesLHEFReader.h \ 197 184 external/ExRootAnalysis/ExRootTreeWriter.h \ 198 external/ExRootAnalysis/ExRootTreeBranch.h \199 external/ExRootAnalysis/ExRootProgressBar.h200 DelphesROOT$(ExeSuf): \201 tmp/readers/DelphesROOT.$(ObjSuf)202 203 tmp/readers/DelphesROOT.$(ObjSuf): \204 readers/DelphesROOT.cpp \205 modules/Delphes.h \206 classes/DelphesStream.h \207 classes/DelphesClasses.h \208 classes/DelphesFactory.h \209 external/ExRootAnalysis/ExRootTreeWriter.h \210 external/ExRootAnalysis/ExRootTreeReader.h \211 185 external/ExRootAnalysis/ExRootTreeBranch.h \ 212 186 external/ExRootAnalysis/ExRootProgressBar.h … … 226 200 DelphesHepMC$(ExeSuf) \ 227 201 DelphesLHEF$(ExeSuf) \ 228 DelphesROOT$(ExeSuf) \229 202 DelphesSTDHEP$(ExeSuf) 230 203 … … 232 205 tmp/readers/DelphesHepMC.$(ObjSuf) \ 233 206 tmp/readers/DelphesLHEF.$(ObjSuf) \ 234 tmp/readers/DelphesROOT.$(ObjSuf) \235 207 tmp/readers/DelphesSTDHEP.$(ObjSuf) 236 208 … … 347 319 modules/EnergySmearing.h \ 348 320 modules/MomentumSmearing.h \ 349 modules/TrackSmearing.h \350 321 modules/ImpactParameterSmearing.h \ 351 322 modules/TimeSmearing.h \ … … 371 342 modules/StatusPidFilter.h \ 372 343 modules/PdgCodeFilter.h \ 373 modules/BeamSpotFilter.h \374 modules/RecoPuFilter.h \375 344 modules/Cloner.h \ 376 345 modules/Weighter.h \ … … 378 347 modules/JetFlavorAssociation.h \ 379 348 modules/JetFakeParticle.h \ 380 modules/VertexSorter.h \381 modules/VertexFinder.h \382 modules/VertexFinderDA4D.h \383 349 modules/ExampleModule.h 384 350 tmp/modules/ModulesDict$(PcmSuf): \ … … 587 553 classes/DelphesFactory.h \ 588 554 classes/DelphesFormula.h 589 tmp/modules/BeamSpotFilter.$(ObjSuf): \590 modules/BeamSpotFilter.$(SrcSuf) \591 modules/BeamSpotFilter.h \592 classes/DelphesClasses.h \593 classes/DelphesFactory.h \594 classes/DelphesFormula.h \595 external/ExRootAnalysis/ExRootResult.h \596 external/ExRootAnalysis/ExRootFilter.h \597 external/ExRootAnalysis/ExRootClassifier.h598 555 tmp/modules/Calorimeter.$(ObjSuf): \ 599 556 modules/Calorimeter.$(SrcSuf) \ … … 828 785 external/ExRootAnalysis/ExRootFilter.h \ 829 786 external/ExRootAnalysis/ExRootClassifier.h 830 tmp/modules/RecoPuFilter.$(ObjSuf): \831 modules/RecoPuFilter.$(SrcSuf) \832 modules/RecoPuFilter.h \833 classes/DelphesClasses.h \834 classes/DelphesFactory.h \835 classes/DelphesFormula.h \836 external/ExRootAnalysis/ExRootResult.h \837 external/ExRootAnalysis/ExRootFilter.h \838 external/ExRootAnalysis/ExRootClassifier.h839 787 tmp/modules/SimpleCalorimeter.$(ObjSuf): \ 840 788 modules/SimpleCalorimeter.$(SrcSuf) \ … … 898 846 modules/TrackPileUpSubtractor.$(SrcSuf) \ 899 847 modules/TrackPileUpSubtractor.h \ 900 classes/DelphesClasses.h \901 classes/DelphesFactory.h \902 classes/DelphesFormula.h \903 external/ExRootAnalysis/ExRootResult.h \904 external/ExRootAnalysis/ExRootFilter.h \905 external/ExRootAnalysis/ExRootClassifier.h906 tmp/modules/TrackSmearing.$(ObjSuf): \907 modules/TrackSmearing.$(SrcSuf) \908 modules/TrackSmearing.h \909 848 classes/DelphesClasses.h \ 910 849 classes/DelphesFactory.h \ … … 929 868 classes/DelphesFactory.h \ 930 869 classes/DelphesFormula.h \ 931 external/ExRootAnalysis/ExRootResult.h \932 external/ExRootAnalysis/ExRootFilter.h \933 external/ExRootAnalysis/ExRootClassifier.h934 tmp/modules/VertexFinder.$(ObjSuf): \935 modules/VertexFinder.$(SrcSuf) \936 modules/VertexFinder.h \937 classes/DelphesClasses.h \938 classes/DelphesFactory.h \939 classes/DelphesFormula.h \940 classes/DelphesPileUpReader.h \941 external/ExRootAnalysis/ExRootResult.h \942 external/ExRootAnalysis/ExRootFilter.h \943 external/ExRootAnalysis/ExRootClassifier.h944 tmp/modules/VertexFinderDA4D.$(ObjSuf): \945 modules/VertexFinderDA4D.$(SrcSuf) \946 modules/VertexFinderDA4D.h \947 classes/DelphesClasses.h \948 classes/DelphesFactory.h \949 classes/DelphesFormula.h \950 classes/DelphesPileUpReader.h \951 external/ExRootAnalysis/ExRootResult.h \952 external/ExRootAnalysis/ExRootFilter.h \953 external/ExRootAnalysis/ExRootClassifier.h954 tmp/modules/VertexSorter.$(ObjSuf): \955 modules/VertexSorter.$(SrcSuf) \956 modules/VertexSorter.h \957 classes/DelphesClasses.h \958 classes/DelphesFactory.h \959 classes/DelphesFormula.h \960 classes/DelphesPileUpReader.h \961 870 external/ExRootAnalysis/ExRootResult.h \ 962 871 external/ExRootAnalysis/ExRootFilter.h \ … … 1022 931 tmp/modules/AngularSmearing.$(ObjSuf) \ 1023 932 tmp/modules/BTagging.$(ObjSuf) \ 1024 tmp/modules/BeamSpotFilter.$(ObjSuf) \1025 933 tmp/modules/Calorimeter.$(ObjSuf) \ 1026 934 tmp/modules/Cloner.$(ObjSuf) \ … … 1047 955 tmp/modules/PileUpJetID.$(ObjSuf) \ 1048 956 tmp/modules/PileUpMerger.$(ObjSuf) \ 1049 tmp/modules/RecoPuFilter.$(ObjSuf) \1050 957 tmp/modules/SimpleCalorimeter.$(ObjSuf) \ 1051 958 tmp/modules/StatusPidFilter.$(ObjSuf) \ … … 1056 963 tmp/modules/TrackCountingTauTagging.$(ObjSuf) \ 1057 964 tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \ 1058 tmp/modules/TrackSmearing.$(ObjSuf) \1059 965 tmp/modules/TreeWriter.$(ObjSuf) \ 1060 966 tmp/modules/UniqueObjectFinder.$(ObjSuf) \ 1061 tmp/modules/VertexFinder.$(ObjSuf) \1062 tmp/modules/VertexFinderDA4D.$(ObjSuf) \1063 tmp/modules/VertexSorter.$(ObjSuf) \1064 967 tmp/modules/Weighter.$(ObjSuf) 1065 968 … … 1307 1210 external/fastjet/plugins/Jade/JadePlugin.$(SrcSuf) \ 1308 1211 external/fastjet/ClusterSequence.hh \ 1309 external/fastjet/NNH.hh \ 1310 external/fastjet/NNFJN2Plain.hh 1212 external/fastjet/NNH.hh 1311 1213 tmp/external/fastjet/plugins/NestedDefs/NestedDefsPlugin.$(ObjSuf): \ 1312 1214 external/fastjet/plugins/NestedDefs/NestedDefsPlugin.$(SrcSuf) \ … … 1350 1252 external/fastjet/tools/Filter.$(SrcSuf) \ 1351 1253 external/fastjet/tools/Filter.hh \ 1352 external/fastjet/tools/Recluster.hh \ 1353 external/fastjet/tools/Subtractor.hh 1254 external/fastjet/tools/Recluster.hh 1354 1255 tmp/external/fastjet/tools/GridMedianBackgroundEstimator.$(ObjSuf): \ 1355 1256 external/fastjet/tools/GridMedianBackgroundEstimator.$(SrcSuf) \ … … 1668 1569 tmp/external/tcl/tclVar.$(ObjSuf) 1669 1570 1670 modules/VertexFinderDA4D.h: \1671 classes/DelphesModule.h1672 @touch $@1673 1674 modules/TrackSmearing.h: \1675 classes/DelphesModule.h1676 @touch $@1677 1678 1571 external/fastjet/ClusterSequence.hh: \ 1679 1572 external/fastjet/PseudoJet.hh \ … … 1683 1576 external/fastjet/LimitedWarning.hh \ 1684 1577 external/fastjet/FunctionOfPseudoJet.hh \ 1685 external/fastjet/ClusterSequenceStructure.hh \ 1686 external/fastjet/internal/deprecated.hh 1578 external/fastjet/ClusterSequenceStructure.hh 1687 1579 @touch $@ 1688 1580 … … 1690 1582 external/fastjet/internal/ClosestPair2DBase.hh \ 1691 1583 external/fastjet/internal/SearchTree.hh \ 1692 external/fastjet/internal/MinHeap.hh \ 1693 external/fastjet/SharedPtr.hh 1584 external/fastjet/internal/MinHeap.hh 1694 1585 @touch $@ 1695 1586 … … 1724 1615 external/fastjet/internal/numconsts.hh \ 1725 1616 external/fastjet/PseudoJet.hh \ 1726 external/fastjet/internal/deprecated.hh \1727 1617 external/fastjet/ClusterSequence.hh 1728 1618 @touch $@ … … 1930 1820 external/fastjet/internal/BasicRandom.hh \ 1931 1821 external/fastjet/Selector.hh \ 1932 external/fastjet/LimitedWarning.hh \ 1933 external/fastjet/internal/deprecated.hh 1822 external/fastjet/LimitedWarning.hh 1934 1823 @touch $@ 1935 1824 … … 1940 1829 @touch $@ 1941 1830 1942 modules/VertexSorter.h: \1943 classes/DelphesModule.h1944 @touch $@1945 1946 1831 modules/Delphes.h: \ 1947 classes/DelphesModule.h1948 @touch $@1949 1950 modules/VertexFinder.h: \1951 1832 classes/DelphesModule.h 1952 1833 @touch $@ … … 1994 1875 external/fastjet/PseudoJet.hh \ 1995 1876 external/fastjet/Error.hh \ 1996 external/fastjet/LimitedWarning.hh \ 1997 external/fastjet/internal/deprecated.hh 1877 external/fastjet/LimitedWarning.hh 1998 1878 @touch $@ 1999 1879 … … 2005 1885 external/fastjet/ClusterSequence.hh \ 2006 1886 external/fastjet/LimitedWarning.hh \ 2007 external/fastjet/Selector.hh \ 2008 external/fastjet/internal/deprecated.hh 1887 external/fastjet/Selector.hh 2009 1888 @touch $@ 2010 1889 … … 2020 1899 2021 1900 modules/BTagging.h: \ 2022 classes/DelphesModule.h2023 @touch $@2024 2025 modules/RecoPuFilter.h: \2026 1901 classes/DelphesModule.h 2027 1902 @touch $@ … … 2126 2001 2127 2002 modules/FastJetFinder.h: \ 2128 classes/DelphesModule.h2129 @touch $@2130 2131 modules/BeamSpotFilter.h: \2132 2003 classes/DelphesModule.h 2133 2004 @touch $@ -
README
rb9ae4c3 rec5e04b 4 4 Commands to get the code: 5 5 6 wget http://cp3.irmp.ucl.ac.be/downloads/Delphes-3. 4.0.tar.gz6 wget http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.3.3.tar.gz 7 7 8 tar -zxf Delphes-3. 4.0.tar.gz8 tar -zxf Delphes-3.3.3.tar.gz 9 9 10 10 Commands to compile the code: 11 11 12 cd Delphes-3. 4.012 cd Delphes-3.3.3 13 13 14 14 make -
VERSION
rb9ae4c3 rec5e04b 1 3. 4.01 3.3.3 -
cards/converter_card.tcl
rb9ae4c3 rec5e04b 13 13 module TreeWriter TreeWriter { 14 14 # add Branch InputArray BranchName BranchClass 15 add Branch Delphes/ stableParticles Particle GenParticle15 add Branch Delphes/allParticles Particle GenParticle 16 16 } 17 17 -
cards/delphes_card_ATLAS.tcl
rb9ae4c3 rec5e04b 141 141 142 142 # resolution formula for charged hadrons 143 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.0 6^2 + pt^2*1.3e-3^2) +144 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0. 10^2 + pt^2*1.7e-3^2) +145 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0. 25^2 + pt^2*3.1e-3^2)}143 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) + 144 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) + 145 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)} 146 146 } 147 147 -
cards/delphes_card_ATLAS_PileUp.tcl
rb9ae4c3 rec5e04b 177 177 # resolution formula for charged hadrons 178 178 # based on arXiv:1405.6569 179 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.0 6^2 + pt^2*1.3e-3^2) +180 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0. 10^2 + pt^2*1.7e-3^2) +181 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0. 25^2 + pt^2*3.1e-3^2)}179 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) + 180 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) + 181 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)} 182 182 } 183 183 -
cards/delphes_card_CMS.tcl
rb9ae4c3 rec5e04b 15 15 16 16 TrackMerger 17 18 ECal19 HCal20 21 17 Calorimeter 22 18 EFlowMerger … … 128 124 set EfficiencyFormula { (pt <= 0.1) * (0.00) + 129 125 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + 130 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e3) * (0.99) + 131 (abs(eta) <= 1.5) * (pt > 1.0e3 ) * (0.99 * exp(0.5 - pt*5.0e-4)) + 132 126 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + 133 127 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + 134 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e3) * (0.98) + 135 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e3) * (0.98 * exp(0.5 - pt*5.0e-4)) + 128 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + 136 129 (abs(eta) > 2.5) * (0.00)} 137 130 } … … 149 142 # resolution formula for charged hadrons 150 143 # based on arXiv:1405.6569 151 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.0 6^2 + pt^2*1.3e-3^2) +152 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0. 10^2 + pt^2*1.7e-3^2) +153 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0. 25^2 + pt^2*3.1e-3^2)}144 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) + 145 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) + 146 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)} 154 147 } 155 148 … … 199 192 } 200 193 201 202 203 194 ############# 204 # ECAL195 # Calorimeter 205 196 ############# 206 197 207 module SimpleCalorimeter ECal{198 module Calorimeter Calorimeter { 208 199 set ParticleInputArray ParticlePropagator/stableParticles 209 200 set TrackInputArray TrackMerger/tracks 210 201 211 set TowerOutputArray ecalTowers 202 set TowerOutputArray towers 203 set PhotonOutputArray photons 204 212 205 set EFlowTrackOutputArray eflowTracks 213 set EFlowTowerOutputArray eflowPhotons 214 215 set IsEcal true 216 217 set EnergyMin 0.5 218 set EnergySignificanceMin 2.0 219 220 set SmearTowerCenter true 221 222 set pi [expr {acos(-1)}] 223 224 # lists of the edges of each tower in eta and phi 225 # each list starts with the lower edge of the first tower 226 # the list ends with the higher edged of the last tower 227 228 # assume 0.02 x 0.02 resolution in eta,phi in the barrel |eta| < 1.5 229 230 set PhiBins {} 231 for {set i -180} {$i <= 180} {incr i} { 232 add PhiBins [expr {$i * $pi/180.0}] 233 } 234 235 # 0.02 unit in eta up to eta = 1.5 (barrel) 236 for {set i -85} {$i <= 86} {incr i} { 237 set eta [expr {$i * 0.0174}] 238 add EtaPhiBins $eta $PhiBins 239 } 240 241 # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- ECAL) 242 243 set PhiBins {} 244 for {set i -180} {$i <= 180} {incr i} { 245 add PhiBins [expr {$i * $pi/180.0}] 246 } 247 248 # 0.02 unit in eta up to eta = 3 249 for {set i 1} {$i <= 84} {incr i} { 250 set eta [expr { -2.958 + $i * 0.0174}] 251 add EtaPhiBins $eta $PhiBins 252 } 253 254 for {set i 1} {$i <= 84} {incr i} { 255 set eta [expr { 1.4964 + $i * 0.0174}] 256 add EtaPhiBins $eta $PhiBins 257 } 258 259 # take present CMS granularity for HF 260 261 # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0 262 set PhiBins {} 263 for {set i -18} {$i <= 18} {incr i} { 264 add PhiBins [expr {$i * $pi/18.0}] 265 } 266 267 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} { 268 add EtaPhiBins $eta $PhiBins 269 } 270 271 272 add EnergyFraction {0} {0.0} 273 # energy fractions for e, gamma and pi0 274 add EnergyFraction {11} {1.0} 275 add EnergyFraction {22} {1.0} 276 add EnergyFraction {111} {1.0} 277 # energy fractions for muon, neutrinos and neutralinos 278 add EnergyFraction {12} {0.0} 279 add EnergyFraction {13} {0.0} 280 add EnergyFraction {14} {0.0} 281 add EnergyFraction {16} {0.0} 282 add EnergyFraction {1000022} {0.0} 283 add EnergyFraction {1000023} {0.0} 284 add EnergyFraction {1000025} {0.0} 285 add EnergyFraction {1000035} {0.0} 286 add EnergyFraction {1000045} {0.0} 287 # energy fractions for K0short and Lambda 288 add EnergyFraction {310} {0.3} 289 add EnergyFraction {3122} {0.3} 290 291 # set ResolutionFormula {resolution formula as a function of eta and energy} 292 293 # for the ECAL barrel (|eta| < 1.5), see hep-ex/1306.2016 and 1502.02701 294 295 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 296 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701 297 set ResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) + 298 (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) + 299 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)} 300 301 } 302 303 304 ############# 305 # HCAL 306 ############# 307 308 module SimpleCalorimeter HCal { 309 set ParticleInputArray ParticlePropagator/stableParticles 310 set TrackInputArray ECal/eflowTracks 311 312 set TowerOutputArray hcalTowers 313 set EFlowTrackOutputArray eflowTracks 314 set EFlowTowerOutputArray eflowNeutralHadrons 315 316 set IsEcal false 317 318 set EnergyMin 1.0 319 set EnergySignificanceMin 2.0 206 set EFlowPhotonOutputArray eflowPhotons 207 set EFlowNeutralHadronOutputArray eflowNeutralHadrons 208 209 set ECalEnergyMin 0.5 210 set HCalEnergyMin 1.0 211 212 set ECalEnergySignificanceMin 1.0 213 set HCalEnergySignificanceMin 1.0 320 214 321 215 set SmearTowerCenter true … … 355 249 356 250 # default energy fractions {abs(PDG code)} {Fecal Fhcal} 357 add EnergyFraction {0} { 1.0}251 add EnergyFraction {0} {0.0 1.0} 358 252 # energy fractions for e, gamma and pi0 359 add EnergyFraction {11} { 0.0}360 add EnergyFraction {22} { 0.0}361 add EnergyFraction {111} { 0.0}253 add EnergyFraction {11} {1.0 0.0} 254 add EnergyFraction {22} {1.0 0.0} 255 add EnergyFraction {111} {1.0 0.0} 362 256 # energy fractions for muon, neutrinos and neutralinos 363 add EnergyFraction {12} {0.0 }364 add EnergyFraction {13} {0.0 }365 add EnergyFraction {14} {0.0 }366 add EnergyFraction {16} {0.0 }367 add EnergyFraction {1000022} {0.0 }368 add EnergyFraction {1000023} {0.0 }369 add EnergyFraction {1000025} {0.0 }370 add EnergyFraction {1000035} {0.0 }371 add EnergyFraction {1000045} {0.0 }257 add EnergyFraction {12} {0.0 0.0} 258 add EnergyFraction {13} {0.0 0.0} 259 add EnergyFraction {14} {0.0 0.0} 260 add EnergyFraction {16} {0.0 0.0} 261 add EnergyFraction {1000022} {0.0 0.0} 262 add EnergyFraction {1000023} {0.0 0.0} 263 add EnergyFraction {1000025} {0.0 0.0} 264 add EnergyFraction {1000035} {0.0 0.0} 265 add EnergyFraction {1000045} {0.0 0.0} 372 266 # energy fractions for K0short and Lambda 373 add EnergyFraction {310} {0.7} 374 add EnergyFraction {3122} {0.7} 267 add EnergyFraction {310} {0.3 0.7} 268 add EnergyFraction {3122} {0.3 0.7} 269 270 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 271 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701 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*(abs(eta)-2)^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) + 274 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)} 375 275 376 276 # set HCalResolutionFormula {resolution formula as a function of eta and energy} 377 set ResolutionFormula {(abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +277 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + 378 278 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)} 379 380 } 381 382 383 ################# 384 # Electron filter 385 ################# 386 387 module PdgCodeFilter ElectronFilter { 388 set InputArray HCal/eflowTracks 389 set OutputArray electrons 390 set Invert true 391 add PdgCode {11} 392 add PdgCode {-11} 393 } 394 395 ################################################### 396 # Tower Merger (in case not using e-flow algorithm) 397 ################################################### 398 399 module Merger Calorimeter { 400 # add InputArray InputArray 401 add InputArray ECal/ecalTowers 402 add InputArray HCal/hcalTowers 403 set OutputArray towers 404 } 405 406 279 } 407 280 408 281 #################### … … 412 285 module Merger EFlowMerger { 413 286 # add InputArray InputArray 414 add InputArray HCal/eflowTracks415 add InputArray ECal/eflowPhotons416 add InputArray HCal/eflowNeutralHadrons287 add InputArray Calorimeter/eflowTracks 288 add InputArray Calorimeter/eflowPhotons 289 add InputArray Calorimeter/eflowNeutralHadrons 417 290 set OutputArray eflow 418 291 } … … 423 296 424 297 module Efficiency PhotonEfficiency { 425 set InputArray ECal/eflowPhotons298 set InputArray Calorimeter/eflowPhotons 426 299 set OutputArray photons 427 300 … … 452 325 } 453 326 327 ################# 328 # Electron filter 329 ################# 330 331 module PdgCodeFilter ElectronFilter { 332 set InputArray Calorimeter/eflowTracks 333 set OutputArray electrons 334 set Invert true 335 add PdgCode {11} 336 add PdgCode {-11} 337 } 454 338 455 339 ##################### … … 498 382 499 383 # efficiency formula for muons 500 set EfficiencyFormula { (pt <= 10.0) * (0.00) + 501 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + 502 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0) * (0.95) + 384 set EfficiencyFormula { (pt <= 10.0) * (0.00) + 385 (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + 386 (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + 387 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + 388 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + 503 389 (abs(eta) > 2.4) * (0.00)} 504 390 } … … 716 602 add Branch Calorimeter/towers Tower Tower 717 603 718 add Branch HCal/eflowTracks EFlowTrack Track719 add Branch ECal/eflowPhotons EFlowPhoton Tower720 add Branch HCal/eflowNeutralHadrons EFlowNeutralHadron Tower604 add Branch Calorimeter/eflowTracks EFlowTrack Track 605 add Branch Calorimeter/eflowPhotons EFlowPhoton Tower 606 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower 721 607 722 608 add Branch GenJetFinder/jets GenJet Jet 723 609 add Branch GenMissingET/momentum GenMissingET MissingET 724 610 725 611 add Branch UniqueObjectFinder/jets Jet Jet 726 612 add Branch UniqueObjectFinder/electrons Electron Electron -
cards/delphes_card_CMS_NoFastJet.tcl
rb9ae4c3 rec5e04b 15 15 16 16 TrackMerger 17 18 ECal19 HCal20 21 17 Calorimeter 22 18 EFlowMerger 23 24 19 } 25 20 … … 98 93 set EfficiencyFormula { (pt <= 0.1) * (0.00) + 99 94 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + 100 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e3) * (0.99) + 101 (abs(eta) <= 1.5) * (pt > 1.0e3 ) * (0.99 * exp(0.5 - pt*5.0e-4)) + 102 95 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + 103 96 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + 104 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e3) * (0.98) + 105 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e3) * (0.98 * exp(0.5 - pt*5.0e-4)) + 97 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + 106 98 (abs(eta) > 2.5) * (0.00)} 107 108 99 } 109 100 … … 137 128 # resolution formula for electrons 138 129 # based on arXiv:1405.6569 139 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.0 3^2 + pt^2*1.3e-3^2) +140 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0. 05^2 + pt^2*1.7e-3^2) +141 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0. 15^2 + pt^2*3.1e-3^2)}130 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.06^2 + pt^2*1.3e-3^2) + 131 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.10^2 + pt^2*1.7e-3^2) + 132 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.25^2 + pt^2*3.1e-3^2)} 142 133 } 143 134 … … 153 144 154 145 # resolution formula for muons 155 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.0e-4^2) + 156 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*1.5e-4^2) + 157 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*3.5e-4^2)} 158 } 159 146 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*2.0e-4^2) + 147 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.02^2 + pt^2*3.0e-4^2) + 148 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*6.0e-4^2)} 149 } 160 150 161 151 ############## … … 172 162 173 163 ############# 174 # ECAL164 # Calorimeter 175 165 ############# 176 166 177 module SimpleCalorimeter ECal{167 module Calorimeter Calorimeter { 178 168 set ParticleInputArray ParticlePropagator/stableParticles 179 169 set TrackInputArray TrackMerger/tracks 180 170 181 set TowerOutputArray ecalTowers 171 set TowerOutputArray towers 172 set PhotonOutputArray photons 173 182 174 set EFlowTrackOutputArray eflowTracks 183 set EFlowTowerOutputArray eflowPhotons 184 185 set IsEcal true 186 187 set EnergyMin 0.5 188 set EnergySignificanceMin 2.0 189 190 set SmearTowerCenter true 191 192 set pi [expr {acos(-1)}] 193 194 # lists of the edges of each tower in eta and phi 195 # each list starts with the lower edge of the first tower 196 # the list ends with the higher edged of the last tower 197 198 # assume 0.02 x 0.02 resolution in eta,phi in the barrel |eta| < 1.5 199 200 set PhiBins {} 201 for {set i -180} {$i <= 180} {incr i} { 202 add PhiBins [expr {$i * $pi/180.0}] 203 } 204 205 # 0.02 unit in eta up to eta = 1.5 (barrel) 206 for {set i -85} {$i <= 86} {incr i} { 207 set eta [expr {$i * 0.0174}] 208 add EtaPhiBins $eta $PhiBins 209 } 210 211 # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- ECAL) 212 213 set PhiBins {} 214 for {set i -180} {$i <= 180} {incr i} { 215 add PhiBins [expr {$i * $pi/180.0}] 216 } 217 218 # 0.02 unit in eta up to eta = 3 219 for {set i 1} {$i <= 84} {incr i} { 220 set eta [expr { -2.958 + $i * 0.0174}] 221 add EtaPhiBins $eta $PhiBins 222 } 223 224 for {set i 1} {$i <= 84} {incr i} { 225 set eta [expr { 1.4964 + $i * 0.0174}] 226 add EtaPhiBins $eta $PhiBins 227 } 228 229 # take present CMS granularity for HF 230 231 # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0 232 set PhiBins {} 233 for {set i -18} {$i <= 18} {incr i} { 234 add PhiBins [expr {$i * $pi/18.0}] 235 } 236 237 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} { 238 add EtaPhiBins $eta $PhiBins 239 } 240 241 242 add EnergyFraction {0} {0.0} 243 # energy fractions for e, gamma and pi0 244 add EnergyFraction {11} {1.0} 245 add EnergyFraction {22} {1.0} 246 add EnergyFraction {111} {1.0} 247 # energy fractions for muon, neutrinos and neutralinos 248 add EnergyFraction {12} {0.0} 249 add EnergyFraction {13} {0.0} 250 add EnergyFraction {14} {0.0} 251 add EnergyFraction {16} {0.0} 252 add EnergyFraction {1000022} {0.0} 253 add EnergyFraction {1000023} {0.0} 254 add EnergyFraction {1000025} {0.0} 255 add EnergyFraction {1000035} {0.0} 256 add EnergyFraction {1000045} {0.0} 257 # energy fractions for K0short and Lambda 258 add EnergyFraction {310} {0.3} 259 add EnergyFraction {3122} {0.3} 260 261 # set ResolutionFormula {resolution formula as a function of eta and energy} 262 263 # for the ECAL barrel (|eta| < 1.5), see hep-ex/1306.2016 and 1502.02701 264 265 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 266 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701 267 set ResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) + 268 (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) + 269 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)} 270 271 } 272 273 274 ############# 275 # HCAL 276 ############# 277 278 module SimpleCalorimeter HCal { 279 set ParticleInputArray ParticlePropagator/stableParticles 280 set TrackInputArray ECal/eflowTracks 281 282 set TowerOutputArray hcalTowers 283 set EFlowTrackOutputArray eflowTracks 284 set EFlowTowerOutputArray eflowNeutralHadrons 285 286 set IsEcal false 287 288 set EnergyMin 1.0 289 set EnergySignificanceMin 2.0 175 set EFlowPhotonOutputArray eflowPhotons 176 set EFlowNeutralHadronOutputArray eflowNeutralHadrons 177 178 set ECalEnergyMin 0.5 179 set HCalEnergyMin 1.0 180 181 set ECalEnergySignificanceMin 1.0 182 set HCalEnergySignificanceMin 1.0 290 183 291 184 set SmearTowerCenter true … … 325 218 326 219 # default energy fractions {abs(PDG code)} {Fecal Fhcal} 327 add EnergyFraction {0} { 1.0}220 add EnergyFraction {0} {0.0 1.0} 328 221 # energy fractions for e, gamma and pi0 329 add EnergyFraction {11} { 0.0}330 add EnergyFraction {22} { 0.0}331 add EnergyFraction {111} { 0.0}222 add EnergyFraction {11} {1.0 0.0} 223 add EnergyFraction {22} {1.0 0.0} 224 add EnergyFraction {111} {1.0 0.0} 332 225 # energy fractions for muon, neutrinos and neutralinos 333 add EnergyFraction {12} {0.0 }334 add EnergyFraction {13} {0.0 }335 add EnergyFraction {14} {0.0 }336 add EnergyFraction {16} {0.0 }337 add EnergyFraction {1000022} {0.0 }338 add EnergyFraction {1000023} {0.0 }339 add EnergyFraction {1000025} {0.0 }340 add EnergyFraction {1000035} {0.0 }341 add EnergyFraction {1000045} {0.0 }226 add EnergyFraction {12} {0.0 0.0} 227 add EnergyFraction {13} {0.0 0.0} 228 add EnergyFraction {14} {0.0 0.0} 229 add EnergyFraction {16} {0.0 0.0} 230 add EnergyFraction {1000022} {0.0 0.0} 231 add EnergyFraction {1000023} {0.0 0.0} 232 add EnergyFraction {1000025} {0.0 0.0} 233 add EnergyFraction {1000035} {0.0 0.0} 234 add EnergyFraction {1000045} {0.0 0.0} 342 235 # energy fractions for K0short and Lambda 343 add EnergyFraction {310} {0.7} 344 add EnergyFraction {3122} {0.7} 236 add EnergyFraction {310} {0.3 0.7} 237 add EnergyFraction {3122} {0.3 0.7} 238 239 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 240 set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + 241 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)} 345 242 346 243 # set HCalResolutionFormula {resolution formula as a function of eta and energy} 347 set ResolutionFormula {(abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +244 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + 348 245 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)} 349 350 } 351 352 ################################################### 353 # Tower Merger (in case not using e-flow algorithm) 354 ################################################### 355 356 module Merger Calorimeter { 357 # add InputArray InputArray 358 add InputArray ECal/ecalTowers 359 add InputArray HCal/hcalTowers 360 set OutputArray towers 361 } 362 246 } 363 247 364 248 #################### … … 368 252 module Merger EFlowMerger { 369 253 # add InputArray InputArray 370 add InputArray HCal/eflowTracks371 add InputArray ECal/eflowPhotons372 add InputArray HCal/eflowNeutralHadrons254 add InputArray Calorimeter/eflowTracks 255 add InputArray Calorimeter/eflowPhotons 256 add InputArray Calorimeter/eflowNeutralHadrons 373 257 set OutputArray eflow 374 258 } 375 -
cards/delphes_card_CMS_PileUp.tcl
rb9ae4c3 rec5e04b 17 17 18 18 TrackMerger 19 20 ECal 21 HCal 22 19 Calorimeter 23 20 ElectronFilter 24 21 TrackPileUpSubtractor … … 48 45 49 46 MissingET 50 47 51 48 JetFlavorAssociation 52 49 … … 85 82 # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s) 86 83 set VertexDistributionFormula {exp(-(t^2/160e-12^2/2))*exp(-(z^2/0.053^2/2))} 87 84 88 85 89 86 } … … 163 160 set EfficiencyFormula { (pt <= 0.1) * (0.00) + 164 161 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + 165 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e3) * (0.99) + 166 (abs(eta) <= 1.5) * (pt > 1.0e3 ) * (0.99 * exp(0.5 - pt*5.0e-4)) + 167 162 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + 168 163 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + 169 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e3) * (0.98) + 170 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e3) * (0.98 * exp(0.5 - pt*5.0e-4)) + 164 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + 171 165 (abs(eta) > 2.5) * (0.00)} 172 166 } … … 184 178 # resolution formula for charged hadrons 185 179 # based on arXiv:1405.6569 186 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.0 6^2 + pt^2*1.3e-3^2) +187 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0. 10^2 + pt^2*1.7e-3^2) +188 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0. 25^2 + pt^2*3.1e-3^2)}180 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) + 181 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) + 182 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)} 189 183 } 190 184 … … 235 229 236 230 ############# 237 # ECAL231 # Calorimeter 238 232 ############# 239 233 240 module SimpleCalorimeter ECal{234 module Calorimeter Calorimeter { 241 235 set ParticleInputArray ParticlePropagator/stableParticles 242 236 set TrackInputArray TrackMerger/tracks 243 237 244 set TowerOutputArray ecalTowers 238 set TowerOutputArray towers 239 set PhotonOutputArray photons 240 245 241 set EFlowTrackOutputArray eflowTracks 246 set EFlowTowerOutputArray eflowPhotons 247 248 set IsEcal true 249 250 set EnergyMin 0.5 251 set EnergySignificanceMin 2.0 252 253 set SmearTowerCenter true 254 255 set pi [expr {acos(-1)}] 256 257 # lists of the edges of each tower in eta and phi 258 # each list starts with the lower edge of the first tower 259 # the list ends with the higher edged of the last tower 260 261 # assume 0.02 x 0.02 resolution in eta,phi in the barrel |eta| < 1.5 262 263 set PhiBins {} 264 for {set i -180} {$i <= 180} {incr i} { 265 add PhiBins [expr {$i * $pi/180.0}] 266 } 267 268 # 0.02 unit in eta up to eta = 1.5 (barrel) 269 for {set i -85} {$i <= 86} {incr i} { 270 set eta [expr {$i * 0.0174}] 271 add EtaPhiBins $eta $PhiBins 272 } 273 274 # assume 0.02 x 0.02 resolution in eta,phi in the endcaps 1.5 < |eta| < 3.0 (HGCAL- ECAL) 275 276 set PhiBins {} 277 for {set i -180} {$i <= 180} {incr i} { 278 add PhiBins [expr {$i * $pi/180.0}] 279 } 280 281 # 0.02 unit in eta up to eta = 3 282 for {set i 1} {$i <= 84} {incr i} { 283 set eta [expr { -2.958 + $i * 0.0174}] 284 add EtaPhiBins $eta $PhiBins 285 } 286 287 for {set i 1} {$i <= 84} {incr i} { 288 set eta [expr { 1.4964 + $i * 0.0174}] 289 add EtaPhiBins $eta $PhiBins 290 } 291 292 # take present CMS granularity for HF 293 294 # 0.175 x (0.175 - 0.35) resolution in eta,phi in the HF 3.0 < |eta| < 5.0 295 set PhiBins {} 296 for {set i -18} {$i <= 18} {incr i} { 297 add PhiBins [expr {$i * $pi/18.0}] 298 } 299 300 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} { 301 add EtaPhiBins $eta $PhiBins 302 } 303 304 305 add EnergyFraction {0} {0.0} 306 # energy fractions for e, gamma and pi0 307 add EnergyFraction {11} {1.0} 308 add EnergyFraction {22} {1.0} 309 add EnergyFraction {111} {1.0} 310 # energy fractions for muon, neutrinos and neutralinos 311 add EnergyFraction {12} {0.0} 312 add EnergyFraction {13} {0.0} 313 add EnergyFraction {14} {0.0} 314 add EnergyFraction {16} {0.0} 315 add EnergyFraction {1000022} {0.0} 316 add EnergyFraction {1000023} {0.0} 317 add EnergyFraction {1000025} {0.0} 318 add EnergyFraction {1000035} {0.0} 319 add EnergyFraction {1000045} {0.0} 320 # energy fractions for K0short and Lambda 321 add EnergyFraction {310} {0.3} 322 add EnergyFraction {3122} {0.3} 323 324 # set ResolutionFormula {resolution formula as a function of eta and energy} 325 326 # for the ECAL barrel (|eta| < 1.5), see hep-ex/1306.2016 and 1502.02701 327 328 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 329 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701 330 set ResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) + 331 (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) + 332 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)} 333 334 } 335 336 337 ############# 338 # HCAL 339 ############# 340 341 module SimpleCalorimeter HCal { 342 set ParticleInputArray ParticlePropagator/stableParticles 343 set TrackInputArray ECal/eflowTracks 344 345 set TowerOutputArray hcalTowers 346 set EFlowTrackOutputArray eflowTracks 347 set EFlowTowerOutputArray eflowNeutralHadrons 348 349 set IsEcal false 350 351 set EnergyMin 1.0 352 set EnergySignificanceMin 2.0 242 set EFlowPhotonOutputArray eflowPhotons 243 set EFlowNeutralHadronOutputArray eflowNeutralHadrons 244 245 set ECalEnergyMin 0.5 246 set HCalEnergyMin 1.0 247 248 set ECalEnergySignificanceMin 1.0 249 set HCalEnergySignificanceMin 1.0 353 250 354 251 set SmearTowerCenter true … … 388 285 389 286 # default energy fractions {abs(PDG code)} {Fecal Fhcal} 390 add EnergyFraction {0} { 1.0}287 add EnergyFraction {0} {0.0 1.0} 391 288 # energy fractions for e, gamma and pi0 392 add EnergyFraction {11} { 0.0}393 add EnergyFraction {22} { 0.0}394 add EnergyFraction {111} { 0.0}289 add EnergyFraction {11} {1.0 0.0} 290 add EnergyFraction {22} {1.0 0.0} 291 add EnergyFraction {111} {1.0 0.0} 395 292 # energy fractions for muon, neutrinos and neutralinos 396 add EnergyFraction {12} {0.0 }397 add EnergyFraction {13} {0.0 }398 add EnergyFraction {14} {0.0 }399 add EnergyFraction {16} {0.0 }400 add EnergyFraction {1000022} {0.0 }401 add EnergyFraction {1000023} {0.0 }402 add EnergyFraction {1000025} {0.0 }403 add EnergyFraction {1000035} {0.0 }404 add EnergyFraction {1000045} {0.0 }293 add EnergyFraction {12} {0.0 0.0} 294 add EnergyFraction {13} {0.0 0.0} 295 add EnergyFraction {14} {0.0 0.0} 296 add EnergyFraction {16} {0.0 0.0} 297 add EnergyFraction {1000022} {0.0 0.0} 298 add EnergyFraction {1000023} {0.0 0.0} 299 add EnergyFraction {1000025} {0.0 0.0} 300 add EnergyFraction {1000035} {0.0 0.0} 301 add EnergyFraction {1000045} {0.0 0.0} 405 302 # energy fractions for K0short and Lambda 406 add EnergyFraction {310} {0.7} 407 add EnergyFraction {3122} {0.7} 303 add EnergyFraction {310} {0.3 0.7} 304 add EnergyFraction {3122} {0.3 0.7} 305 306 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 307 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701 308 set ECalResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) + 309 (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) + 310 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)} 408 311 409 312 # set HCalResolutionFormula {resolution formula as a function of eta and energy} 410 set ResolutionFormula {(abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +313 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + 411 314 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)} 412 413 315 } 414 316 … … 418 320 419 321 module PdgCodeFilter ElectronFilter { 420 set InputArray HCal/eflowTracks322 set InputArray Calorimeter/eflowTracks 421 323 set OutputArray electrons 422 324 set Invert true … … 425 327 } 426 328 427 ###################################################428 # Tower Merger (in case not using e-flow algorithm)429 ###################################################430 431 module Merger Calorimeter {432 # add InputArray InputArray433 add InputArray ECal/ecalTowers434 add InputArray HCal/hcalTowers435 set OutputArray towers436 }437 438 439 329 ########################## 440 330 # Track pile-up subtractor … … 443 333 module TrackPileUpSubtractor TrackPileUpSubtractor { 444 334 # add InputArray InputArray OutputArray 445 add InputArray HCal/eflowTracks eflowTracks335 add InputArray Calorimeter/eflowTracks eflowTracks 446 336 add InputArray ElectronFilter/electrons electrons 447 337 add InputArray MuonMomentumSmearing/muons muons … … 453 343 } 454 344 455 456 345 #################### 457 # Neutral Tower merger346 # Neutral tower merger 458 347 #################### 459 348 460 349 module Merger NeutralTowerMerger { 461 350 # add InputArray InputArray 462 add InputArray ECal/eflowPhotons 463 add InputArray HCal/eflowNeutralHadrons 464 set OutputArray towers 351 add InputArray Calorimeter/eflowPhotons 352 add InputArray Calorimeter/eflowNeutralHadrons 353 set OutputArray eflowTowers 354 } 355 356 ################################## 357 # Energy flow merger (all tracks) 358 ################################## 359 360 module Merger EFlowMergerAllTracks { 361 # add InputArray InputArray 362 add InputArray TrackMerger/tracks 363 add InputArray Calorimeter/eflowPhotons 364 add InputArray Calorimeter/eflowNeutralHadrons 365 set OutputArray eflow 465 366 } 466 367 … … 470 371 #################### 471 372 472 module Merger EFlowMergerAllTracks {473 # add InputArray InputArray474 add InputArray HCal/eflowTracks475 add InputArray ECal/eflowPhotons476 add InputArray HCal/eflowNeutralHadrons477 set OutputArray eflow478 }479 480 481 482 483 ####################484 # Energy flow merger485 ####################486 487 373 module Merger EFlowMerger { 488 374 # add InputArray InputArray 489 375 add InputArray TrackPileUpSubtractor/eflowTracks 490 add InputArray ECal/eflowPhotons491 add InputArray HCal/eflowNeutralHadrons376 add InputArray Calorimeter/eflowPhotons 377 add InputArray Calorimeter/eflowNeutralHadrons 492 378 set OutputArray eflow 493 379 } 380 381 494 382 495 383 ############# … … 562 450 } 563 451 452 453 564 454 ############ 565 455 # Jet finder … … 588 478 module PileUpJetID PileUpJetID { 589 479 set JetInputArray FastJetFinder/jets 590 set TrackInputArray HCal/eflowTracks591 set NeutralInputArray NeutralTowerMerger/ towers480 set TrackInputArray Calorimeter/eflowTracks 481 set NeutralInputArray NeutralTowerMerger/eflowTowers 592 482 593 483 set VertexInputArray PileUpMerger/vertices … … 634 524 635 525 module Efficiency PhotonEfficiency { 636 set InputArray ECal/eflowPhotons526 set InputArray Calorimeter/eflowPhotons 637 527 set OutputArray photons 638 528 … … 711 601 712 602 # efficiency formula for muons 713 set EfficiencyFormula { (pt <= 10.0) * (0.00) + 714 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + 715 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0) * (0.95) + 603 set EfficiencyFormula { (pt <= 10.0) * (0.00) + 604 (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + 605 (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + 606 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + 607 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + 716 608 (abs(eta) > 2.4) * (0.00)} 717 718 609 } 719 610 … … 766 657 767 658 module JetFlavorAssociation JetFlavorAssociation { 768 659 769 660 set PartonInputArray Delphes/partons 770 661 set ParticleInputArray Delphes/allParticles 771 662 set ParticleLHEFInputArray Delphes/allParticlesLHEF 772 663 set JetInputArray JetEnergyScale/jets 773 664 774 665 set DeltaR 0.5 775 666 set PartonPTMin 1.0 … … 792 683 793 684 # based on arXiv:1211.4462 794 685 795 686 # default efficiency formula (misidentification rate) 796 687 add EfficiencyFormula {0} {0.01+0.000038*pt} -
classes/DelphesClasses.cc
rb9ae4c3 rec5e04b 41 41 CompBase *Tower::fgCompare = CompE<Tower>::Instance(); 42 42 CompBase *HectorHit::fgCompare = CompE<HectorHit>::Instance(); 43 CompBase *Vertex::fgCompare = CompSumPT2<Vertex>::Instance();44 43 CompBase *Candidate::fgCompare = CompMomentumPt<Candidate>::Instance(); 45 44 … … 122 121 Charge(0), Mass(0.0), 123 122 IsPU(0), IsRecoPU(0), IsConstituent(0), IsFromConversion(0), 124 ClusterIndex(-1), ClusterNDF(0), ClusterSigma(0), SumPT2(0), BTVSumPT2(0), GenDeltaZ(0), GenSumPT2(0),125 123 Flavor(0), FlavorAlgo(0), FlavorPhys(0), 126 124 BTag(0), BTagAlgo(0), BTagPhys(0), … … 129 127 Momentum(0.0, 0.0, 0.0, 0.0), 130 128 Position(0.0, 0.0, 0.0, 0.0), 131 PositionError(0.0, 0.0, 0.0, 0.0),132 InitialPosition(0.0, 0.0, 0.0, 0.0),133 129 Area(0.0, 0.0, 0.0, 0.0), 134 L(0), 135 D0(0), ErrorD0(0), 136 DZ(0), ErrorDZ(0), 137 P(0), ErrorP(0), 138 PT(0), ErrorPT(0), 139 CtgTheta(0), ErrorCtgTheta(0), 140 Phi(0), ErrorPhi(0), 141 Xd(0), Yd(0), Zd(0), 130 Dxy(0), SDxy(0), Xd(0), Yd(0), Zd(0), 142 131 TrackResolution(0), 143 132 NCharged(0), … … 256 245 object.IsConstituent = IsConstituent; 257 246 object.IsFromConversion = IsFromConversion; 258 object.ClusterIndex = ClusterIndex;259 object.ClusterNDF = ClusterNDF;260 object.ClusterSigma = ClusterSigma;261 object.SumPT2 = SumPT2;262 object.BTVSumPT2 = BTVSumPT2;263 object.GenDeltaZ = GenDeltaZ;264 object.GenSumPT2 = GenSumPT2;265 247 object.Flavor = Flavor; 266 248 object.FlavorAlgo = FlavorAlgo; … … 280 262 object.Momentum = Momentum; 281 263 object.Position = Position; 282 object.InitialPosition = InitialPosition;283 object.PositionError = PositionError;284 264 object.Area = Area; 285 object.L = L; 286 object.ErrorT = ErrorT; 287 object.D0 = D0; 288 object.ErrorD0 = ErrorD0; 289 object.DZ = DZ; 290 object.ErrorDZ = ErrorDZ; 291 object.P = P; 292 object.ErrorP = ErrorP; 293 object.PT = PT; 294 object.ErrorPT = ErrorPT; 295 object.CtgTheta = CtgTheta ; 296 object.ErrorCtgTheta = ErrorCtgTheta; 297 object.Phi = Phi; 298 object.ErrorPhi = ErrorPhi; 265 object.Dxy = Dxy; 266 object.SDxy = SDxy; 299 267 object.Xd = Xd; 300 268 object.Yd = Yd; … … 314 282 object.SumPtChargedPU = SumPtChargedPU; 315 283 object.SumPt = SumPt; 316 object.ClusterIndex = ClusterIndex; 317 object.ClusterNDF = ClusterNDF; 318 object.ClusterSigma = ClusterSigma; 319 object.SumPT2 = SumPT2; 320 284 321 285 object.FracPt[0] = FracPt[0]; 322 286 object.FracPt[1] = FracPt[1]; … … 399 363 Momentum.SetXYZT(0.0, 0.0, 0.0, 0.0); 400 364 Position.SetXYZT(0.0, 0.0, 0.0, 0.0); 401 InitialPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);402 365 Area.SetXYZT(0.0, 0.0, 0.0, 0.0); 403 L = 0.0; 404 ErrorT = 0.0; 405 D0 = 0.0; 406 ErrorD0 = 0.0; 407 DZ = 0.0; 408 ErrorDZ = 0.0; 409 P =0.0; 410 ErrorP =0.0; 411 PT = 0.0; 412 ErrorPT = 0.0; 413 CtgTheta = 0.0; 414 ErrorCtgTheta = 0.0; 415 Phi = 0.0; 416 ErrorPhi = 0.0; 366 Dxy = 0.0; 367 SDxy = 0.0; 417 368 Xd = 0.0; 418 369 Yd = 0.0; … … 436 387 SumPt = -999; 437 388 438 ClusterIndex = -1;439 ClusterNDF = -99;440 ClusterSigma = 0.0;441 SumPT2 = 0.0;442 BTVSumPT2 = 0.0;443 GenDeltaZ = 0.0;444 GenSumPT2 = 0.0;445 446 389 FracPt[0] = 0.0; 447 390 FracPt[1] = 0.0; -
classes/DelphesClasses.h
rb9ae4c3 rec5e04b 49 49 Long64_t Number; // event number 50 50 51 Float_t ReadTime; // read time52 Float_t ProcTime; // processing time51 Float_t ReadTime; 52 Float_t ProcTime; 53 53 54 54 ClassDef(Event, 1) … … 147 147 Float_t Pz; // particle momentum vector (z component) | hepevt.phep[number][2] 148 148 149 Float_t P; // particle momentum150 149 Float_t PT; // particle transverse momentum 151 150 Float_t Eta; // particle pseudorapidity … … 153 152 154 153 Float_t Rapidity; // particle rapidity 155 Float_t CtgTheta; // particle cotangent of theta156 157 Float_t D0; // particle transverse impact parameter158 Float_t DZ; // particle longitudinal impact parameter159 154 160 155 Float_t T; // particle vertex position (t component) | hepevt.vhep[number][3] … … 168 163 TLorentzVector P4() const; 169 164 170 ClassDef(GenParticle, 2) 171 }; 172 173 //--------------------------------------------------------------------------- 174 175 class Vertex: public SortableObject 176 { 177 public: 178 165 ClassDef(GenParticle, 1) 166 }; 167 168 //--------------------------------------------------------------------------- 169 170 class Vertex: public TObject 171 { 172 public: 179 173 Float_t T; // vertex position (t component) 180 174 Float_t X; // vertex position (x component) … … 182 176 Float_t Z; // vertex position (z component) 183 177 184 Double_t ErrorT; // vertex position error (t component) 185 Double_t ErrorX; // vertex position error (x component) 186 Double_t ErrorY; // vertex position error (y component) 187 Double_t ErrorZ; // vertex position error (z component) 188 189 Int_t Index; // vertex index 190 Int_t NDF; // number of degrees of freedom 191 192 Double_t Sigma; // vertex position (z component) error 193 Double_t SumPT2; // sum pt^2 of tracks attached to the vertex 194 Double_t GenSumPT2; // sum pt^2 of gen tracks attached to the vertex 195 196 Double_t GenDeltaZ; // distance in z to closest generated vertex 197 Double_t BTVSumPT2; // sum pt^2 of tracks attached to the secondary vertex 198 199 TRefArray Constituents; // references to constituents 200 201 static CompBase *fgCompare; //! 202 const CompBase *GetCompare() const { return fgCompare; } 203 204 ClassDef(Vertex, 3) 178 ClassDef(Vertex, 1) 205 179 }; 206 180 … … 262 236 Float_t E; // photon energy 263 237 264 Float_t T; // 238 Float_t T; //particle arrival time of flight 265 239 266 240 Float_t EhadOverEem; // ratio of the hadronic versus electromagnetic energy deposited in the calorimeter … … 268 242 TRefArray Particles; // references to generated particles 269 243 270 Float_t IsolationVar; // isolation variable 271 Float_t IsolationVarRhoCorr; // isolation variable 272 Float_t SumPtCharged; // isolation variable 273 Float_t SumPtNeutral; // isolation variable 274 Float_t SumPtChargedPU; // isolation variable 275 Float_t SumPt; // isolation variable 244 // Isolation variables 245 246 Float_t IsolationVar; 247 Float_t IsolationVarRhoCorr; 248 Float_t SumPtCharged; 249 Float_t SumPtNeutral; 250 Float_t SumPtChargedPU; 251 Float_t SumPt; 276 252 277 253 static CompBase *fgCompare; //! … … 293 269 Float_t Phi; // electron azimuthal angle 294 270 295 Float_t T; // 271 Float_t T; //particle arrival time of flight 296 272 297 273 Int_t Charge; // electron charge … … 301 277 TRef Particle; // reference to generated particle 302 278 303 Float_t IsolationVar; // isolation variable 304 Float_t IsolationVarRhoCorr; // isolation variable 305 Float_t SumPtCharged; // isolation variable 306 Float_t SumPtNeutral; // isolation variable 307 Float_t SumPtChargedPU; // isolation variable 308 Float_t SumPt; // isolation variable 279 // Isolation variables 280 281 Float_t IsolationVar; 282 Float_t IsolationVarRhoCorr; 283 Float_t SumPtCharged; 284 Float_t SumPtNeutral; 285 Float_t SumPtChargedPU; 286 Float_t SumPt; 309 287 310 288 static CompBase *fgCompare; //! … … 326 304 Float_t Phi; // muon azimuthal angle 327 305 328 Float_t T; // 306 Float_t T; //particle arrival time of flight 329 307 330 308 Int_t Charge; // muon charge … … 332 310 TRef Particle; // reference to generated particle 333 311 334 Float_t IsolationVar; // isolation variable 335 Float_t IsolationVarRhoCorr; // isolation variable 336 Float_t SumPtCharged; // isolation variable 337 Float_t SumPtNeutral; // isolation variable 338 Float_t SumPtChargedPU; // isolation variable 339 Float_t SumPt; // isolation variable 312 // Isolation variables 313 314 Float_t IsolationVar; 315 Float_t IsolationVarRhoCorr; 316 Float_t SumPtCharged; 317 Float_t SumPtNeutral; 318 Float_t SumPtChargedPU; 319 Float_t SumPt; 340 320 341 321 static CompBase *fgCompare; //! … … 364 344 Float_t DeltaPhi; // jet radius in azimuthal angle 365 345 366 UInt_t Flavor; // jet flavor367 UInt_t FlavorAlgo; // jet flavor368 UInt_t FlavorPhys; // jet flavor346 UInt_t Flavor; 347 UInt_t FlavorAlgo; 348 UInt_t FlavorPhys; 369 349 370 350 UInt_t BTag; // 0 or 1 for a jet that has been tagged as containing a heavy quark 371 UInt_t BTagAlgo; // 0 or 1 for a jet that has been tagged as containing a heavy quark372 UInt_t BTagPhys; // 0 or 1 for a jet that has been tagged as containing a heavy quark351 UInt_t BTagAlgo; 352 UInt_t BTagPhys; 373 353 374 354 UInt_t TauTag; // 0 or 1 for a jet that has been tagged as a tau … … 417 397 Int_t Charge; // track charge 418 398 419 Float_t P; // track momentum420 399 Float_t PT; // track transverse momentum 400 421 401 Float_t Eta; // track pseudorapidity 422 402 Float_t Phi; // track azimuthal angle 423 Float_t CtgTheta; // track cotangent of theta424 403 425 404 Float_t EtaOuter; // track pseudorapidity at the tracker edge 426 405 Float_t PhiOuter; // track azimuthal angle at the tracker edge 427 406 428 Float_t T; // track vertex position (t component)429 407 Float_t X; // track vertex position (x component) 430 408 Float_t Y; // track vertex position (y component) 431 409 Float_t Z; // track vertex position (z component) 432 433 Float_t TOuter; // track position (t component) at the tracker edge 410 Float_t T; // track vertex position (z component) 411 434 412 Float_t XOuter; // track position (x component) at the tracker edge 435 413 Float_t YOuter; // track position (y component) at the tracker edge 436 414 Float_t ZOuter; // track position (z component) at the tracker edge 437 438 Float_t Xd; // X coordinate of point of closest approach to vertex 439 Float_t Yd; // Y coordinate of point of closest approach to vertex 440 Float_t Zd; // Z coordinate of point of closest approach to vertex 441 442 Float_t L; // track path length 443 Float_t D0; // track transverse impact parameter 444 Float_t DZ; // track longitudinal impact parameter 445 446 Float_t ErrorP; // track momentum error 447 Float_t ErrorPT; // track transverse momentum error 448 Float_t ErrorPhi; // track azimuthal angle error 449 Float_t ErrorCtgTheta; // track cotangent of theta error 450 451 Float_t ErrorT; // time measurement error 452 Float_t ErrorD0; // track transverse impact parameter error 453 Float_t ErrorDZ; // track longitudinal impact parameter error 415 Float_t TOuter; // track position (z component) at the tracker edge 416 417 Float_t Dxy; // track signed transverse impact parameter 418 Float_t SDxy; // signed error on the track signed transverse impact parameter 419 Float_t Xd; // X coordinate of point of closest approach to vertex 420 Float_t Yd; // Y coordinate of point of closest approach to vertex 421 Float_t Zd; // Z coordinate of point of closest approach to vertex 454 422 455 423 TRef Particle; // reference to generated particle 456 424 457 Int_t VertexIndex; // reference to vertex 458 459 static CompBase *fgCompare; //! 460 const CompBase *GetCompare() const { return fgCompare; } 461 462 TLorentzVector P4() const; 463 464 ClassDef(Track, 3) 425 static CompBase *fgCompare; //! 426 const CompBase *GetCompare() const { return fgCompare; } 427 428 TLorentzVector P4() const; 429 430 ClassDef(Track, 2) 465 431 }; 466 432 … … 560 526 Float_t DeltaPhi; 561 527 562 TLorentzVector Momentum, Position, InitialPosition, PositionError, Area; 563 564 Float_t L; // path length 565 Float_t ErrorT; // path length 566 Float_t D0; 567 Float_t ErrorD0; 568 Float_t DZ; 569 Float_t ErrorDZ; 570 Float_t P; 571 Float_t ErrorP; 572 Float_t PT; 573 Float_t ErrorPT; 574 Float_t CtgTheta; 575 Float_t ErrorCtgTheta; 576 Float_t Phi; 577 Float_t ErrorPhi; 578 528 TLorentzVector Momentum, Position, Area; 529 530 Float_t Dxy; 531 Float_t SDxy; 579 532 Float_t Xd; 580 533 Float_t Yd; … … 582 535 583 536 // tracking resolution 584 537 585 538 Float_t TrackResolution; 586 539 … … 609 562 Float_t SumPt; 610 563 611 // vertex variables612 613 Int_t ClusterIndex;614 Int_t ClusterNDF;615 Double_t ClusterSigma;616 Double_t SumPT2;617 Double_t BTVSumPT2;618 Double_t GenDeltaZ;619 Double_t GenSumPT2;620 621 564 // N-subjettiness variables 622 565 … … 652 595 void SetFactory(DelphesFactory *factory) { fFactory = factory; } 653 596 654 ClassDef(Candidate, 5)597 ClassDef(Candidate, 4) 655 598 }; 656 599 -
classes/SortableObject.h
rb9ae4c3 rec5e04b 156 156 return -1; 157 157 else if(t1->ET < t2->ET) 158 return 1;159 else160 return 0;161 }162 };163 164 //---------------------------------------------------------------------------165 166 template <typename T>167 class CompSumPT2: public CompBase168 {169 CompSumPT2() {}170 public:171 static CompSumPT2 *Instance()172 {173 static CompSumPT2 single;174 return &single;175 }176 177 Int_t Compare(const TObject *obj1, const TObject *obj2) const178 {179 const T *t1 = static_cast<const T*>(obj1);180 const T *t2 = static_cast<const T*>(obj2);181 if(t1->SumPT2 > t2->SumPT2)182 return -1;183 else if(t1->SumPT2 < t2->SumPT2)184 158 return 1; 185 159 else -
doc/RootTreeDescription.html
rb9ae4c3 rec5e04b 27 27 <td></td> 28 28 </tr> 29 <tr class="odd">30 <td>ReadTime</td>31 <td>read time</td>32 <td></td>33 </tr>34 <tr class="even">35 <td>ProcTime</td>36 <td>processing time</td>37 <td></td>38 </tr>39 29 <tr class="class"><td colspan="3" id="LHCOEvent">class LHCOEvent</td></tr> 40 30 <tr class="odd"> … … 79 69 <td> hepup.AQCDUP</td> 80 70 </tr> 81 <tr class="class"><td colspan="3" id="LHEFWeight">class LHEFWeight</td></tr>82 <tr class="even">83 <td>ID</td>84 <td>weight ID</td>85 <td></td>86 </tr>87 <tr class="odd">88 <td>Weight</td>89 <td>weight value</td>90 <td></td>91 </tr>92 71 <tr class="class"><td colspan="3" id="HepMCEvent">class HepMCEvent</td></tr> 93 72 <tr class="odd"> … … 228 207 </tr> 229 208 <tr class="odd"> 230 <td>P</td>231 <td>particle momentum</td>232 <td></td>233 </tr>234 <tr class="even">235 209 <td>PT</td> 236 210 <td>particle transverse momentum</td> 237 211 <td></td> 238 212 </tr> 239 <tr class=" odd">213 <tr class="even"> 240 214 <td>Eta</td> 241 215 <td>particle pseudorapidity</td> 242 216 <td></td> 243 217 </tr> 244 <tr class=" even">218 <tr class="odd"> 245 219 <td>Phi</td> 246 220 <td>particle azimuthal angle</td> 247 221 <td></td> 248 222 </tr> 249 <tr class=" odd">223 <tr class="even"> 250 224 <td>Rapidity</td> 251 225 <td>particle rapidity</td> 252 <td></td>253 </tr>254 <tr class="even">255 <td>CtgTheta</td>256 <td>particle cotangent of theta</td>257 <td></td>258 </tr>259 <tr class="odd">260 <td>D0</td>261 <td>particle transverse impact parameter</td>262 <td></td>263 </tr>264 <tr class="even">265 <td>DZ</td>266 <td>particle longitudinal impact parameter</td>267 226 <td></td> 268 227 </tr> … … 308 267 <td></td> 309 268 </tr> 310 <tr class="even"> 311 <td>ErrorT</td> 312 <td>vertex position error (t component)</td> 313 <td></td> 314 </tr> 315 <tr class="odd"> 316 <td>ErrorX</td> 317 <td>vertex position error (x component)</td> 318 <td></td> 319 </tr> 320 <tr class="even"> 321 <td>ErrorY</td> 322 <td>vertex position error (y component)</td> 323 <td></td> 324 </tr> 325 <tr class="odd"> 326 <td>ErrorZ</td> 327 <td>vertex position error (z component)</td> 328 <td></td> 329 </tr> 330 <tr class="even"> 331 <td>Index</td> 332 <td>vertex index</td> 333 <td></td> 334 </tr> 335 <tr class="odd"> 336 <td>NDF</td> 337 <td>number of degrees of freedom</td> 338 <td></td> 339 </tr> 340 <tr class="even"> 341 <td>Sigma</td> 342 <td>vertex position (z component) error</td> 343 <td></td> 344 </tr> 345 <tr class="odd"> 346 <td>SumPT2</td> 347 <td>sum pt^2 of tracks attached to the vertex</td> 348 <td></td> 349 </tr> 350 <tr class="even"> 351 <td>GenSumPT2</td> 352 <td>sum pt^2 of gen tracks attached to the vertex</td> 353 <td></td> 354 </tr> 355 <tr class="odd"> 356 <td>GenDeltaZ</td> 357 <td>distance in z to closest generated vertex</td> 358 <td></td> 359 </tr> 360 <tr class="even"> 361 <td>BTVSumPT2</td> 362 <td>sum pt^2 of tracks attached to the secondary vertex</td> 363 <td></td> 364 </tr> 365 <tr class="odd"> 269 <tr class="class"><td colspan="3" id="MissingET">class MissingET</td></tr> 270 <tr class="even"> 271 <td>MET</td> 272 <td>mising transverse energy</td> 273 <td></td> 274 </tr> 275 <tr class="odd"> 276 <td>Eta</td> 277 <td>mising energy pseudorapidity</td> 278 <td></td> 279 </tr> 280 <tr class="even"> 281 <td>Phi</td> 282 <td>mising energy azimuthal angle</td> 283 <td></td> 284 </tr> 285 <tr class="class"><td colspan="3" id="ScalarHT">class ScalarHT</td></tr> 286 <tr class="even"> 287 <td>HT</td> 288 <td>scalar sum of transverse momenta</td> 289 <td></td> 290 </tr> 291 <tr class="class"><td colspan="3" id="Rho">class Rho</td></tr> 292 <tr class="even"> 293 <td>Rho</td> 294 <td>rho energy density</td> 295 <td></td> 296 </tr> 297 <tr class="odd"> 298 <td>Edges[2]</td> 299 <td>pseudorapidity range edges</td> 300 <td></td> 301 </tr> 302 <tr class="class"><td colspan="3" id="Weight">class Weight</td></tr> 303 <tr class="even"> 304 <td>Weight</td> 305 <td>weight for the event</td> 306 <td></td> 307 </tr> 308 <tr class="class"><td colspan="3" id="Photon">class Photon</td></tr> 309 <tr class="even"> 310 <td>PT</td> 311 <td>photon transverse momentum</td> 312 <td></td> 313 </tr> 314 <tr class="odd"> 315 <td>Eta</td> 316 <td>photon pseudorapidity</td> 317 <td></td> 318 </tr> 319 <tr class="even"> 320 <td>Phi</td> 321 <td>photon azimuthal angle</td> 322 <td></td> 323 </tr> 324 <tr class="odd"> 325 <td>E</td> 326 <td>photon energy</td> 327 <td></td> 328 </tr> 329 <tr class="even"> 330 <td>EhadOverEem</td> 331 <td>ratio of the hadronic versus electromagnetic energy deposited in the calorimeter</td> 332 <td></td> 333 </tr> 334 <tr class="odd"> 335 <td>Particles</td> 336 <td>references to generated particles</td> 337 <td></td> 338 </tr> 339 <tr class="class"><td colspan="3" id="Electron">class Electron</td></tr> 340 <tr class="even"> 341 <td>PT</td> 342 <td>electron transverse momentum</td> 343 <td></td> 344 </tr> 345 <tr class="odd"> 346 <td>Eta</td> 347 <td>electron pseudorapidity</td> 348 <td></td> 349 </tr> 350 <tr class="even"> 351 <td>Phi</td> 352 <td>electron azimuthal angle</td> 353 <td></td> 354 </tr> 355 <tr class="odd"> 356 <td>Charge</td> 357 <td>electron charge</td> 358 <td></td> 359 </tr> 360 <tr class="even"> 361 <td>EhadOverEem</td> 362 <td>ratio of the hadronic versus electromagnetic energy deposited in the calorimeter</td> 363 <td></td> 364 </tr> 365 <tr class="odd"> 366 <td>Particle</td> 367 <td>reference to generated particle</td> 368 <td></td> 369 </tr> 370 <tr class="class"><td colspan="3" id="Muon">class Muon</td></tr> 371 <tr class="even"> 372 <td>PT</td> 373 <td>muon transverse momentum</td> 374 <td></td> 375 </tr> 376 <tr class="odd"> 377 <td>Eta</td> 378 <td>muon pseudorapidity</td> 379 <td></td> 380 </tr> 381 <tr class="even"> 382 <td>Phi</td> 383 <td>muon azimuthal angle</td> 384 <td></td> 385 </tr> 386 <tr class="odd"> 387 <td>Charge</td> 388 <td>muon charge</td> 389 <td></td> 390 </tr> 391 <tr class="even"> 392 <td>Particle</td> 393 <td>reference to generated particle</td> 394 <td></td> 395 </tr> 396 <tr class="class"><td colspan="3" id="Jet">class Jet</td></tr> 397 <tr class="even"> 398 <td>PT</td> 399 <td>jet transverse momentum</td> 400 <td></td> 401 </tr> 402 <tr class="odd"> 403 <td>Eta</td> 404 <td>jet pseudorapidity</td> 405 <td></td> 406 </tr> 407 <tr class="even"> 408 <td>Phi</td> 409 <td>jet azimuthal angle</td> 410 <td></td> 411 </tr> 412 <tr class="odd"> 413 <td>Mass</td> 414 <td>jet invariant mass</td> 415 <td></td> 416 </tr> 417 <tr class="even"> 418 <td>BTag</td> 419 <td>0 or 1 for a jet that has been tagged as containing a heavy quark</td> 420 <td></td> 421 </tr> 422 <tr class="odd"> 423 <td>TauTag</td> 424 <td>0 or 1 for a jet that has been tagged as a tau</td> 425 <td></td> 426 </tr> 427 <tr class="even"> 428 <td>Charge</td> 429 <td>tau charge</td> 430 <td></td> 431 </tr> 432 <tr class="odd"> 433 <td>EhadOverEem</td> 434 <td>ratio of the hadronic versus electromagnetic energy deposited in the calorimeter</td> 435 <td></td> 436 </tr> 437 <tr class="even"> 438 <td>NCharged</td> 439 <td>number of charged constituents </td> 440 <td></td> 441 </tr> 442 <tr class="odd"> 443 <td>NNeutrals</td> 444 <td>number of neutral constituents </td> 445 <td></td> 446 </tr> 447 <tr class="even"> 448 <td>Beta</td> 449 <td>(sum pt of charged pile-up constituents)/(sum pt of charged constituents) </td> 450 <td></td> 451 </tr> 452 <tr class="odd"> 453 <td>BetaStar</td> 454 <td>(sum pt of charged constituents coming from hard interaction)/(sum pt of charged constituents) </td> 455 <td></td> 456 </tr> 457 <tr class="even"> 458 <td>MeanSqDeltaR</td> 459 <td>average distance (squared) between constituent and jet weighted by pt (squared) of constituent</td> 460 <td></td> 461 </tr> 462 <tr class="odd"> 463 <td>PTD</td> 464 <td>average pt between constituent and jet weighted by pt of constituent</td> 465 <td></td> 466 </tr> 467 <tr class="even"> 468 <td>FracPt[5]</td> 469 <td>(sum pt of constituents within a ring 0.1*i < DeltaR < 0.1*(i+1))/(sum pt of constituents) </td> 470 <td></td> 471 </tr> 472 <tr class="odd"> 473 <td>Tau1</td> 474 <td>1-subjettiness</td> 475 <td></td> 476 </tr> 477 <tr class="even"> 478 <td>Tau2</td> 479 <td>2-subjettiness</td> 480 <td></td> 481 </tr> 482 <tr class="odd"> 483 <td>Tau3</td> 484 <td>3-subjettiness</td> 485 <td></td> 486 </tr> 487 <tr class="even"> 488 <td>Tau4</td> 489 <td>4-subjettiness</td> 490 <td></td> 491 </tr> 492 <tr class="odd"> 493 <td>Tau5</td> 494 <td>5-subjettiness</td> 495 <td></td> 496 </tr> 497 <tr class="even"> 366 498 <td>Constituents</td> 367 499 <td>references to constituents</td> 368 500 <td></td> 369 501 </tr> 370 <tr class="class"><td colspan="3" id="MissingET">class MissingET</td></tr> 371 <tr class="even"> 372 <td>MET</td> 373 <td>mising transverse energy</td> 374 <td></td> 375 </tr> 376 <tr class="odd"> 377 <td>Eta</td> 378 <td>mising energy pseudorapidity</td> 379 <td></td> 380 </tr> 381 <tr class="even"> 382 <td>Phi</td> 383 <td>mising energy azimuthal angle</td> 384 <td></td> 385 </tr> 386 <tr class="class"><td colspan="3" id="ScalarHT">class ScalarHT</td></tr> 387 <tr class="even"> 388 <td>HT</td> 389 <td>scalar sum of transverse momenta</td> 390 <td></td> 391 </tr> 392 <tr class="class"><td colspan="3" id="Rho">class Rho</td></tr> 393 <tr class="even"> 394 <td>Rho</td> 395 <td>rho energy density</td> 396 <td></td> 397 </tr> 398 <tr class="odd"> 399 <td>Edges[2]</td> 400 <td>pseudorapidity range edges</td> 401 <td></td> 402 </tr> 403 <tr class="class"><td colspan="3" id="Weight">class Weight</td></tr> 404 <tr class="even"> 405 <td>Weight</td> 406 <td>weight for the event</td> 407 <td></td> 408 </tr> 409 <tr class="class"><td colspan="3" id="Photon">class Photon</td></tr> 410 <tr class="even"> 411 <td>PT</td> 412 <td>photon transverse momentum</td> 413 <td></td> 414 </tr> 415 <tr class="odd"> 416 <td>Eta</td> 417 <td>photon pseudorapidity</td> 418 <td></td> 419 </tr> 420 <tr class="even"> 421 <td>Phi</td> 422 <td>photon azimuthal angle</td> 423 <td></td> 424 </tr> 425 <tr class="odd"> 426 <td>E</td> 427 <td>photon energy</td> 428 <td></td> 429 </tr> 430 <tr class="even"> 431 <td>T</td> 432 <td>particle arrival time of flight</td> 433 <td></td> 434 </tr> 435 <tr class="odd"> 436 <td>EhadOverEem</td> 437 <td>ratio of the hadronic versus electromagnetic energy deposited in the calorimeter</td> 438 <td></td> 439 </tr> 440 <tr class="even"> 502 <tr class="odd"> 441 503 <td>Particles</td> 442 504 <td>references to generated particles</td> 443 505 <td></td> 444 506 </tr> 445 <tr class="odd"> 446 <td>IsolationVar</td> 447 <td>isolation variable</td> 448 <td></td> 449 </tr> 450 <tr class="even"> 451 <td>IsolationVarRhoCorr</td> 452 <td>isolation variable</td> 453 <td></td> 454 </tr> 455 <tr class="odd"> 456 <td>SumPtCharged</td> 457 <td>isolation variable</td> 458 <td></td> 459 </tr> 460 <tr class="even"> 461 <td>SumPtNeutral</td> 462 <td>isolation variable</td> 463 <td></td> 464 </tr> 465 <tr class="odd"> 466 <td>SumPtChargedPU</td> 467 <td>isolation variable</td> 468 <td></td> 469 </tr> 470 <tr class="even"> 471 <td>SumPt</td> 472 <td>isolation variable</td> 473 <td></td> 474 </tr> 475 <tr class="class"><td colspan="3" id="Electron">class Electron</td></tr> 507 <tr class="class"><td colspan="3" id="Track">class Track</td></tr> 508 <tr class="even"> 509 <td>PID</td> 510 <td>HEP ID number</td> 511 <td></td> 512 </tr> 513 <tr class="odd"> 514 <td>Charge</td> 515 <td>track charge</td> 516 <td></td> 517 </tr> 476 518 <tr class="even"> 477 519 <td>PT</td> 478 <td>electron transverse momentum</td> 479 <td></td> 480 </tr> 481 <tr class="odd"> 482 <td>Eta</td> 483 <td>electron pseudorapidity</td> 484 <td></td> 485 </tr> 486 <tr class="even"> 487 <td>Phi</td> 488 <td>electron azimuthal angle</td> 489 <td></td> 490 </tr> 491 <tr class="odd"> 520 <td>track transverse momentum</td> 521 <td></td> 522 </tr> 523 <tr class="odd"> 524 <td>Eta</td> 525 <td>track pseudorapidity</td> 526 <td></td> 527 </tr> 528 <tr class="even"> 529 <td>Phi</td> 530 <td>track azimuthal angle</td> 531 <td></td> 532 </tr> 533 <tr class="odd"> 534 <td>EtaOuter</td> 535 <td>track pseudorapidity at the tracker edge</td> 536 <td></td> 537 </tr> 538 <tr class="even"> 539 <td>PhiOuter</td> 540 <td>track azimuthal angle at the tracker edge</td> 541 <td></td> 542 </tr> 543 <tr class="odd"> 544 <td>X</td> 545 <td>track vertex position (x component)</td> 546 <td></td> 547 </tr> 548 <tr class="even"> 549 <td>Y</td> 550 <td>track vertex position (y component)</td> 551 <td></td> 552 </tr> 553 <tr class="odd"> 554 <td>Z</td> 555 <td>track vertex position (z component)</td> 556 <td></td> 557 </tr> 558 <tr class="even"> 492 559 <td>T</td> 493 <td>particle arrival time of flight</td> 494 <td></td> 495 </tr> 496 <tr class="even"> 497 <td>Charge</td> 498 <td>electron charge</td> 499 <td></td> 500 </tr> 501 <tr class="odd"> 502 <td>EhadOverEem</td> 503 <td>ratio of the hadronic versus electromagnetic energy deposited in the calorimeter</td> 504 <td></td> 505 </tr> 506 <tr class="even"> 560 <td>track vertex position (z component)</td> 561 <td></td> 562 </tr> 563 <tr class="odd"> 564 <td>XOuter</td> 565 <td>track position (x component) at the tracker edge</td> 566 <td></td> 567 </tr> 568 <tr class="even"> 569 <td>YOuter</td> 570 <td>track position (y component) at the tracker edge</td> 571 <td></td> 572 </tr> 573 <tr class="odd"> 574 <td>ZOuter</td> 575 <td>track position (z component) at the tracker edge</td> 576 <td></td> 577 </tr> 578 <tr class="even"> 579 <td>TOuter</td> 580 <td>track position (z component) at the tracker edge</td> 581 <td></td> 582 </tr> 583 <tr class="odd"> 507 584 <td>Particle</td> 508 585 <td>reference to generated particle</td> 509 586 <td></td> 510 587 </tr> 511 <tr class="odd"> 512 <td>IsolationVar</td> 513 <td>isolation variable</td> 514 <td></td> 515 </tr> 516 <tr class="even"> 517 <td>IsolationVarRhoCorr</td> 518 <td>isolation variable</td> 519 <td></td> 520 </tr> 521 <tr class="odd"> 522 <td>SumPtCharged</td> 523 <td>isolation variable</td> 524 <td></td> 525 </tr> 526 <tr class="even"> 527 <td>SumPtNeutral</td> 528 <td>isolation variable</td> 529 <td></td> 530 </tr> 531 <tr class="odd"> 532 <td>SumPtChargedPU</td> 533 <td>isolation variable</td> 534 <td></td> 535 </tr> 536 <tr class="even"> 537 <td>SumPt</td> 538 <td>isolation variable</td> 539 <td></td> 540 </tr> 541 <tr class="class"><td colspan="3" id="Muon">class Muon</td></tr> 542 <tr class="even"> 543 <td>PT</td> 544 <td>muon transverse momentum</td> 545 <td></td> 546 </tr> 547 <tr class="odd"> 548 <td>Eta</td> 549 <td>muon pseudorapidity</td> 550 <td></td> 551 </tr> 552 <tr class="even"> 553 <td>Phi</td> 554 <td>muon azimuthal angle</td> 588 <tr class="class"><td colspan="3" id="Tower">class Tower</td></tr> 589 <tr class="even"> 590 <td>ET</td> 591 <td>calorimeter tower transverse energy</td> 592 <td></td> 593 </tr> 594 <tr class="odd"> 595 <td>Eta</td> 596 <td>calorimeter tower pseudorapidity</td> 597 <td></td> 598 </tr> 599 <tr class="even"> 600 <td>Phi</td> 601 <td>calorimeter tower azimuthal angle</td> 602 <td></td> 603 </tr> 604 <tr class="odd"> 605 <td>E</td> 606 <td>calorimeter tower energy</td> 607 <td></td> 608 </tr> 609 <tr class="even"> 610 <td>Eem</td> 611 <td>calorimeter tower electromagnetic energy</td> 612 <td></td> 613 </tr> 614 <tr class="odd"> 615 <td>Ehad</td> 616 <td>calorimeter tower hadronic energy</td> 617 <td></td> 618 </tr> 619 <tr class="even"> 620 <td>Edges[4]</td> 621 <td>calorimeter tower edges</td> 622 <td></td> 623 </tr> 624 <tr class="odd"> 625 <td>Particles</td> 626 <td>references to generated particles</td> 627 <td></td> 628 </tr> 629 <tr class="class"><td colspan="3" id="HectorHit">class HectorHit</td></tr> 630 <tr class="even"> 631 <td>E</td> 632 <td>reconstructed energy [GeV]</td> 633 <td></td> 634 </tr> 635 <tr class="odd"> 636 <td>Tx</td> 637 <td>angle of the momentum in the horizontal (x,z) plane [urad]</td> 638 <td></td> 639 </tr> 640 <tr class="even"> 641 <td>Ty</td> 642 <td>angle of the momentum in the verical (y,z) plane [urad]</td> 555 643 <td></td> 556 644 </tr> 557 645 <tr class="odd"> 558 646 <td>T</td> 559 <td>particle arrival time of flight</td> 560 <td></td> 561 </tr> 562 <tr class="even"> 563 <td>Charge</td> 564 <td>muon charge</td> 647 <td>time of flight to the detector [s]</td> 648 <td></td> 649 </tr> 650 <tr class="even"> 651 <td>X</td> 652 <td>horizontal distance to the beam [um]</td> 653 <td></td> 654 </tr> 655 <tr class="odd"> 656 <td>Y</td> 657 <td>vertical distance to the beam [um]</td> 658 <td></td> 659 </tr> 660 <tr class="even"> 661 <td>S</td> 662 <td>distance to the interaction point [m]</td> 565 663 <td></td> 566 664 </tr> … … 570 668 <td></td> 571 669 </tr> 572 <tr class="even">573 <td>IsolationVar</td>574 <td>isolation variable</td>575 <td></td>576 </tr>577 <tr class="odd">578 <td>IsolationVarRhoCorr</td>579 <td>isolation variable</td>580 <td></td>581 </tr>582 <tr class="even">583 <td>SumPtCharged</td>584 <td>isolation variable</td>585 <td></td>586 </tr>587 <tr class="odd">588 <td>SumPtNeutral</td>589 <td>isolation variable</td>590 <td></td>591 </tr>592 <tr class="even">593 <td>SumPtChargedPU</td>594 <td>isolation variable</td>595 <td></td>596 </tr>597 <tr class="odd">598 <td>SumPt</td>599 <td>isolation variable</td>600 <td></td>601 </tr>602 <tr class="class"><td colspan="3" id="Jet">class Jet</td></tr>603 <tr class="even">604 <td>PT</td>605 <td>jet transverse momentum</td>606 <td></td>607 </tr>608 <tr class="odd">609 <td>Eta</td>610 <td>jet pseudorapidity</td>611 <td></td>612 </tr>613 <tr class="even">614 <td>Phi</td>615 <td>jet azimuthal angle</td>616 <td></td>617 </tr>618 <tr class="odd">619 <td>Mass</td>620 <td>jet invariant mass</td>621 <td></td>622 </tr>623 <tr class="even">624 <td>Flavor</td>625 <td>jet flavor</td>626 <td></td>627 </tr>628 <tr class="odd">629 <td>FlavorAlgo</td>630 <td>jet flavor</td>631 <td></td>632 </tr>633 <tr class="even">634 <td>FlavorPhys</td>635 <td>jet flavor</td>636 <td></td>637 </tr>638 <tr class="odd">639 <td>BTag</td>640 <td>0 or 1 for a jet that has been tagged as containing a heavy quark</td>641 <td></td>642 </tr>643 <tr class="even">644 <td>BTagAlgo</td>645 <td>0 or 1 for a jet that has been tagged as containing a heavy quark</td>646 <td></td>647 </tr>648 <tr class="odd">649 <td>BTagPhys</td>650 <td>0 or 1 for a jet that has been tagged as containing a heavy quark</td>651 <td></td>652 </tr>653 <tr class="even">654 <td>TauTag</td>655 <td>0 or 1 for a jet that has been tagged as a tau</td>656 <td></td>657 </tr>658 <tr class="odd">659 <td>Charge</td>660 <td>tau charge</td>661 <td></td>662 </tr>663 <tr class="even">664 <td>EhadOverEem</td>665 <td>ratio of the hadronic versus electromagnetic energy deposited in the calorimeter</td>666 <td></td>667 </tr>668 <tr class="odd">669 <td>NCharged</td>670 <td>number of charged constituents</td>671 <td></td>672 </tr>673 <tr class="even">674 <td>NNeutrals</td>675 <td>number of neutral constituents</td>676 <td></td>677 </tr>678 <tr class="odd">679 <td>Beta</td>680 <td>(sum pt of charged pile-up constituents)/(sum pt of charged constituents)</td>681 <td></td>682 </tr>683 <tr class="even">684 <td>BetaStar</td>685 <td>(sum pt of charged constituents coming from hard interaction)/(sum pt of charged constituents)</td>686 <td></td>687 </tr>688 <tr class="odd">689 <td>MeanSqDeltaR</td>690 <td>average distance (squared) between constituent and jet weighted by pt (squared) of constituent</td>691 <td></td>692 </tr>693 <tr class="even">694 <td>PTD</td>695 <td>average pt between constituent and jet weighted by pt of constituent</td>696 <td></td>697 </tr>698 <tr class="odd">699 <td>FracPt[5]</td>700 <td>(sum pt of constituents within a ring 0.1*i < DeltaR < 0.1*(i+1))/(sum pt of constituents)</td>701 <td></td>702 </tr>703 <tr class="even">704 <td>Tau[5]</td>705 <td>N-subjettiness</td>706 <td></td>707 </tr>708 <tr class="odd">709 <td>TrimmedP4[5]</td>710 <td>first entry (i = 0) is the total Trimmed Jet 4-momenta and from i = 1 to 4 are the trimmed subjets 4-momenta</td>711 <td></td>712 </tr>713 <tr class="even">714 <td>PrunedP4[5]</td>715 <td>first entry (i = 0) is the total Pruned Jet 4-momenta and from i = 1 to 4 are the pruned subjets 4-momenta</td>716 <td></td>717 </tr>718 <tr class="odd">719 <td>SoftDroppedP4[5]</td>720 <td>first entry (i = 0) is the total SoftDropped Jet 4-momenta and from i = 1 to 4 are the pruned subjets 4-momenta</td>721 <td></td>722 </tr>723 <tr class="even">724 <td>NSubJetsTrimmed</td>725 <td>number of subjets trimmed</td>726 <td></td>727 </tr>728 <tr class="odd">729 <td>NSubJetsPruned</td>730 <td>number of subjets pruned</td>731 <td></td>732 </tr>733 <tr class="even">734 <td>NSubJetsSoftDropped</td>735 <td>number of subjets soft-dropped</td>736 <td></td>737 </tr>738 <tr class="odd">739 <td>Constituents</td>740 <td>references to constituents</td>741 <td></td>742 </tr>743 <tr class="even">744 <td>Particles</td>745 <td>references to generated particles</td>746 <td></td>747 </tr>748 <tr class="class"><td colspan="3" id="Track">class Track</td></tr>749 <tr class="even">750 <td>PID</td>751 <td>HEP ID number</td>752 <td></td>753 </tr>754 <tr class="odd">755 <td>Charge</td>756 <td>track charge</td>757 <td></td>758 </tr>759 <tr class="even">760 <td>P</td>761 <td>track momentum</td>762 <td></td>763 </tr>764 <tr class="odd">765 <td>PT</td>766 <td>track transverse momentum</td>767 <td></td>768 </tr>769 <tr class="even">770 <td>Eta</td>771 <td>track pseudorapidity</td>772 <td></td>773 </tr>774 <tr class="odd">775 <td>Phi</td>776 <td>track azimuthal angle</td>777 <td></td>778 </tr>779 <tr class="even">780 <td>CtgTheta</td>781 <td>track cotangent of theta</td>782 <td></td>783 </tr>784 <tr class="odd">785 <td>EtaOuter</td>786 <td>track pseudorapidity at the tracker edge</td>787 <td></td>788 </tr>789 <tr class="even">790 <td>PhiOuter</td>791 <td>track azimuthal angle at the tracker edge</td>792 <td></td>793 </tr>794 <tr class="odd">795 <td>T</td>796 <td>track vertex position (t component)</td>797 <td></td>798 </tr>799 <tr class="even">800 <td>X</td>801 <td>track vertex position (x component)</td>802 <td></td>803 </tr>804 <tr class="odd">805 <td>Y</td>806 <td>track vertex position (y component)</td>807 <td></td>808 </tr>809 <tr class="even">810 <td>Z</td>811 <td>track vertex position (z component)</td>812 <td></td>813 </tr>814 <tr class="odd">815 <td>TOuter</td>816 <td>track position (t component) at the tracker edge</td>817 <td></td>818 </tr>819 <tr class="even">820 <td>XOuter</td>821 <td>track position (x component) at the tracker edge</td>822 <td></td>823 </tr>824 <tr class="odd">825 <td>YOuter</td>826 <td>track position (y component) at the tracker edge</td>827 <td></td>828 </tr>829 <tr class="even">830 <td>ZOuter</td>831 <td>track position (z component) at the tracker edge</td>832 <td></td>833 </tr>834 <tr class="odd">835 <td>Xd</td>836 <td>X coordinate of point of closest approach to vertex</td>837 <td></td>838 </tr>839 <tr class="even">840 <td>Yd</td>841 <td>Y coordinate of point of closest approach to vertex</td>842 <td></td>843 </tr>844 <tr class="odd">845 <td>Zd</td>846 <td>Z coordinate of point of closest approach to vertex</td>847 <td></td>848 </tr>849 <tr class="even">850 <td>L</td>851 <td>track path length</td>852 <td></td>853 </tr>854 <tr class="odd">855 <td>D0</td>856 <td>track transverse impact parameter</td>857 <td></td>858 </tr>859 <tr class="even">860 <td>DZ</td>861 <td>track longitudinal impact parameter</td>862 <td></td>863 </tr>864 <tr class="odd">865 <td>ErrorP</td>866 <td>track momentum error</td>867 <td></td>868 </tr>869 <tr class="even">870 <td>ErrorPT</td>871 <td>track transverse momentum error</td>872 <td></td>873 </tr>874 <tr class="odd">875 <td>ErrorPhi</td>876 <td>track azimuthal angle error</td>877 <td></td>878 </tr>879 <tr class="even">880 <td>ErrorCtgTheta</td>881 <td>track cotangent of theta error</td>882 <td></td>883 </tr>884 <tr class="odd">885 <td>ErrorT</td>886 <td>time measurement error</td>887 <td></td>888 </tr>889 <tr class="even">890 <td>ErrorD0</td>891 <td>track transverse impact parameter error</td>892 <td></td>893 </tr>894 <tr class="odd">895 <td>ErrorDZ</td>896 <td>track longitudinal impact parameter error</td>897 <td></td>898 </tr>899 <tr class="even">900 <td>Particle</td>901 <td>reference to generated particle</td>902 <td></td>903 </tr>904 <tr class="odd">905 <td>VertexIndex</td>906 <td>reference to vertex</td>907 <td></td>908 </tr>909 <tr class="class"><td colspan="3" id="Tower">class Tower</td></tr>910 <tr class="even">911 <td>ET</td>912 <td>calorimeter tower transverse energy</td>913 <td></td>914 </tr>915 <tr class="odd">916 <td>Eta</td>917 <td>calorimeter tower pseudorapidity</td>918 <td></td>919 </tr>920 <tr class="even">921 <td>Phi</td>922 <td>calorimeter tower azimuthal angle</td>923 <td></td>924 </tr>925 <tr class="odd">926 <td>E</td>927 <td>calorimeter tower energy</td>928 <td></td>929 </tr>930 <tr class="even">931 <td>T</td>932 <td>ecal deposit time, averaged by sqrt(EM energy) over all particles, not smeared</td>933 <td></td>934 </tr>935 <tr class="odd">936 <td>NTimeHits</td>937 <td>number of hits contributing to time measurement</td>938 <td></td>939 </tr>940 <tr class="even">941 <td>Eem</td>942 <td>calorimeter tower electromagnetic energy</td>943 <td></td>944 </tr>945 <tr class="odd">946 <td>Ehad</td>947 <td>calorimeter tower hadronic energy</td>948 <td></td>949 </tr>950 <tr class="even">951 <td>Edges[4]</td>952 <td>calorimeter tower edges</td>953 <td></td>954 </tr>955 <tr class="odd">956 <td>Particles</td>957 <td>references to generated particles</td>958 <td></td>959 </tr>960 <tr class="class"><td colspan="3" id="HectorHit">class HectorHit</td></tr>961 <tr class="even">962 <td>E</td>963 <td>reconstructed energy [GeV]</td>964 <td></td>965 </tr>966 <tr class="odd">967 <td>Tx</td>968 <td>angle of the momentum in the horizontal (x,z) plane [urad]</td>969 <td></td>970 </tr>971 <tr class="even">972 <td>Ty</td>973 <td>angle of the momentum in the verical (y,z) plane [urad]</td>974 <td></td>975 </tr>976 <tr class="odd">977 <td>T</td>978 <td>time of flight to the detector [s]</td>979 <td></td>980 </tr>981 <tr class="even">982 <td>X</td>983 <td>horizontal distance to the beam [um]</td>984 <td></td>985 </tr>986 <tr class="odd">987 <td>Y</td>988 <td>vertical distance to the beam [um]</td>989 <td></td>990 </tr>991 <tr class="even">992 <td>S</td>993 <td>distance to the interaction point [m]</td>994 <td></td>995 </tr>996 <tr class="odd">997 <td>Particle</td>998 <td>reference to generated particle</td>999 <td></td>1000 </tr>1001 670 </table> 1002 671 </body></html> -
doc/genMakefile.tcl
rb9ae4c3 rec5e04b 263 263 executableDeps {converters/*.cpp} {examples/*.cpp} 264 264 265 executableDeps {readers/DelphesHepMC.cpp} {readers/DelphesLHEF.cpp} {readers/DelphesSTDHEP.cpp} {readers/DelphesROOT.cpp}265 executableDeps {readers/DelphesHepMC.cpp} {readers/DelphesLHEF.cpp} {readers/DelphesSTDHEP.cpp} 266 266 267 267 puts {ifeq ($(HAS_CMSSW),true)} -
doc/update_fastjet.sh
rb9ae4c3 rec5e04b 1 version=3. 2.11 version=3.1.3 2 2 3 3 wget http://fastjet.fr/repo/fastjet-${version}.tar.gz … … 93 93 94 94 sed -i 's/#include "siscone\//#include "/' SISCone/SISConePlugin.cc 95 sed -i 's/#include <siscone\/config.h>/#include "config.h"/' SISCone/split_merge.h 95 96 96 cd - -
examples/Pythia8/configParticleGun.cmnd
rb9ae4c3 rec5e04b 3 3 ! 1) Settings used in the main program. 4 4 5 Main:numberOfEvents = 10000 ! number of events to generate5 Main:numberOfEvents = 10000 ! number of events to generate 6 6 Main:timesAllowErrors = 3 ! how many aborts before run stops 7 Main:spareFlag1 = on ! true means particle gun 8 Main:spareMode1 = 11 ! 1-5 - di-quark, 21 - di-gluon, 11 - single electron, 13 - single muon, 15 - single tau, 22 - single photon 9 Main:spareParm1 = 10000 ! max pt 10 Main:spareParm2 = 2.5 ! max eta 7 Main:spareFlag1 = on ! true means particle gun 8 Main:spareMode1 = 11 ! 1-5 - di-quark, 21 - di-gluon, 11 - single electron, 13 - single muon, 22 - single photon 9 Main:spareParm1 = 10000 ! max pt 11 10 12 11 ! 2) Settings related to output in init(), next() and stat(). -
external/fastjet/CircularRange.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: CircularRange.hh 4074 2016-03-08 09:09:25Z soyez$2 // $Id: CircularRange.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 35 35 #include "fastjet/RangeDefinition.hh" 36 36 #include "fastjet/Error.hh" 37 #include "fastjet/internal/deprecated.hh"38 37 39 38 // for backwards compatibility: one should now use SelectorCircle, … … 51 50 public: 52 51 /// constructor 53 FASTJET_DEPRECATED_MSG("CircularRange is deprecated since FastJet 3.0. Use SelectorCircle instead")54 52 CircularRange() {_set_invalid_rapphi();} 55 53 56 54 /// initialise CircularRange with a jet 57 FASTJET_DEPRECATED_MSG("CircularRange is deprecated since FastJet 3.0. Use SelectorCircle instead")58 55 CircularRange(const fastjet::PseudoJet & jet, double distance) { 59 56 _distance = distance; … … 63 60 64 61 /// initialise CircularRange with a (rap,phi) point 65 FASTJET_DEPRECATED_MSG("CircularRange is deprecated since FastJet 3.0. Use SelectorCircle instead")66 62 CircularRange(double rap, double phi, double distance) { 67 63 _distance = distance; … … 71 67 72 68 /// initialise CircularRange with just the radius parameter 73 FASTJET_DEPRECATED_MSG("CircularRange is deprecated since FastJet 3.0. Use SelectorCircle instead")74 69 CircularRange(double distance) { 75 70 _set_invalid_rapphi(); … … 81 76 82 77 /// return description of range 83 virtual inline std::string description() const FASTJET_OVERRIDE{78 virtual inline std::string description() const { 84 79 std::ostringstream ostr; 85 80 ostr << "CircularRange: within distance "<< _distance << " of given jet or point." ; … … 88 83 /// returns true since this range is localizable (i.e. set_position 89 84 /// does something meaningful) 90 virtual inline bool is_localizable() const FASTJET_OVERRIDE{ return true; }85 virtual inline bool is_localizable() const { return true; } 91 86 92 87 /// return bool according to whether (rap,phi) is in range 93 virtual inline bool is_in_range(double rap, double phi) const FASTJET_OVERRIDE{88 virtual inline bool is_in_range(double rap, double phi) const { 94 89 if (! _rapphi_are_valid()) { 95 90 throw Error("Circular range used without a center having being defined (use set_position())"); … … 103 98 104 99 /// return the minimal and maximal rapidity of this range 105 virtual inline void get_rap_limits(double & rapmin, double & rapmax) const FASTJET_OVERRIDE{100 virtual inline void get_rap_limits(double & rapmin, double & rapmax) const { 106 101 rapmin = _rapjet - _distance; 107 102 rapmax = _rapjet + _distance; } -
external/fastjet/ClosestPair2D.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.cc 4059 2016-03-03 20:49:48Z soyez$2 // $Id: ClosestPair2D.cc 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 145 145 146 146 // and create the search tree 147 _trees[ishift] = SharedPtr<Tree>(new Tree(shuffles, max_size));147 _trees[ishift] = auto_ptr<Tree>(new Tree(shuffles, max_size)); 148 148 149 149 // now we look for the closest-pair candidates on this tree … … 174 174 mindists2[i] = _points[i].neighbour_dist2;} 175 175 176 _heap = SharedPtr<MinHeap>(new MinHeap(mindists2, max_size));176 _heap = auto_ptr<MinHeap>(new MinHeap(mindists2, max_size)); 177 177 } 178 178 -
external/fastjet/ClusterSequence.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence.cc 4154 2016-07-20 16:20:48Z soyez $2 // $Id: ClusterSequence.cc 3809 2015-02-20 13:05:13Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 152 152 // set the pointer in the wrapper to this object to NULL to say that 153 153 // we're going out of scope 154 if (_structure_shared_ptr ){155 ClusterSequenceStructure* csi = dynamic_cast<ClusterSequenceStructure*>(_structure_shared_ptr .get());154 if (_structure_shared_ptr()){ 155 ClusterSequenceStructure* csi = dynamic_cast<ClusterSequenceStructure*>(_structure_shared_ptr()); 156 156 // normally the csi is purely internal so it really should not be 157 157 // NULL i.e assert should be OK … … 724 724 } 725 725 726 //bool code_should_never_reach_here = false; 727 //assert(code_should_never_reach_here); 728 729 assert(0 && "Code should never reach here"); 730 726 bool code_should_never_reach_here = false; 727 assert(code_should_never_reach_here); 731 728 return N2MHTLazy9; 732 729 … … 778 775 779 776 780 ClusterSequence & ClusterSequence::operator=(const ClusterSequence & cs) {781 // self assignment is trivial782 if (&cs != this) {783 _deletes_self_when_unused = false;784 transfer_from_sequence(cs);785 }786 return *this;787 }788 789 777 //---------------------------------------------------------------------- 790 778 // transfer the sequence contained in other_seq into our own; … … 827 815 828 816 // clean up existing structure 829 if (_structure_shared_ptr ) {817 if (_structure_shared_ptr()) { 830 818 // If there are jets associated with an old version of the CS and 831 819 // a new one, keeping track of when to delete the CS becomes more … … 835 823 // anything that is currently associated with the cluster sequence 836 824 // should be told that its cluster sequence no longer exists 837 ClusterSequenceStructure* csi = dynamic_cast<ClusterSequenceStructure*>(_structure_shared_ptr .get());825 ClusterSequenceStructure* csi = dynamic_cast<ClusterSequenceStructure*>(_structure_shared_ptr()); 838 826 assert(csi != NULL); 839 827 csi->set_associated_cs(NULL); … … 1467 1455 // initialise the history in a standard way 1468 1456 void ClusterSequence::_add_step_to_history ( 1469 //NO_LONGER_USED: const int step_number, 1470 const int parent1, 1457 const int step_number, const int parent1, 1471 1458 const int parent2, const int jetp_index, 1472 1459 const double dij) { … … 1482 1469 1483 1470 int local_step = _history.size()-1; 1484 //#ifndef __NO_ASSERTS__ 1485 //assert(local_step == step_number); 1486 //#endif 1471 assert(local_step == step_number); 1487 1472 1488 1473 // sanity check: make sure the particles have not already been recombined … … 1684 1669 int hist_j = _jets[jet_j].cluster_hist_index(); 1685 1670 1686 _add_step_to_history( min(hist_i, hist_j), max(hist_i,hist_j),1671 _add_step_to_history(newstep_k, min(hist_i, hist_j), max(hist_i,hist_j), 1687 1672 newjet_k, dij); 1688 1689 // _add_step_to_history(newstep_k, min(hist_i, hist_j), max(hist_i,hist_j),1690 // newjet_k, dij);1691 1692 1673 1693 1674 } … … 1699 1680 void ClusterSequence::_do_iB_recombination_step( 1700 1681 const int jet_i, const double diB) { 1682 // get history index 1683 int newstep_k = _history.size(); 1684 1701 1685 // recombine the jet with the beam 1702 _add_step_to_history( _jets[jet_i].cluster_hist_index(),BeamJet,1686 _add_step_to_history(newstep_k,_jets[jet_i].cluster_hist_index(),BeamJet, 1703 1687 Invalid, diB); 1704 1705 // // get history index1706 // int newstep_k = _history.size();1707 //1708 // _add_step_to_history(newstep_k,_jets[jet_i].cluster_hist_index(),BeamJet,1709 // Invalid, diB);1710 1688 1711 1689 } -
external/fastjet/ClusterSequence.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: ClusterSequence.hh 4154 2016-07-20 16:20:48Z soyez$5 // $Id: ClusterSequence.hh 3911 2015-07-02 12:09:58Z salam $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 49 49 #include "fastjet/ClusterSequenceStructure.hh" 50 50 51 #include "fastjet/internal/deprecated.hh"52 53 51 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 54 52 … … 82 80 } 83 81 84 /// explicit assignment operator for a ClusterSequence85 ClusterSequence & operator=(const ClusterSequence & cs);86 87 82 // virtual ClusterSequence destructor, in case any derived class 88 83 // thinks of needing a destructor at some point … … 367 362 /// As of FJ v3.1, this is deprecated, in line with the deprecation 368 363 /// of auto_ptr in C++11 369 #ifdef FASTJET_HAVE_AUTO_PTR_INTERFACE 370 FASTJET_DEPRECATED_MSG("Please use ClusterSequence::plugin_associate_extras(Extras * extras_in)) instead") 371 inline void plugin_associate_extras(std::auto_ptr<Extras> extras_in){ 364 inline void plugin_associate_extras(std::auto_ptr<Extras> extras_in) { 372 365 _extras.reset(extras_in.release()); 373 366 } 374 #endif375 367 376 368 /// returns true when the plugin is allowed to run the show. … … 738 730 void _fast_NsqrtN_cluster(); 739 731 740 void _add_step_to_history( //const int step_number, 741 const int parent1, 742 const int parent2, const int jetp_index, 743 const double dij); 732 void _add_step_to_history(const int step_number, const int parent1, 733 const int parent2, const int jetp_index, 734 const double dij); 744 735 745 736 /// internal routine associated with the construction of the unique … … 1046 1037 template <class J> inline double ClusterSequence::_bj_dist( 1047 1038 const J * const jetA, const J * const jetB) const { 1048 //#define FASTJET_NEW_DELTA_PHI1049 #ifndef FASTJET_NEW_DELTA_PHI1050 //GPS+MC old version of Delta phi calculation1051 1039 double dphi = std::abs(jetA->phi - jetB->phi); 1052 1040 double deta = (jetA->eta - jetB->eta); 1053 1041 if (dphi > pi) {dphi = twopi - dphi;} 1054 #else1055 //GPS+MC testing for 2015-02-faster-deltaR21056 double dphi = pi-std::abs(pi-std::abs(jetA->phi - jetB->phi));1057 double deta = (jetA->eta - jetB->eta);1058 #endif1059 1042 return dphi*dphi + deta*deta; 1060 1043 } -
external/fastjet/ClusterSequence1GhostPassiveArea.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence1GhostPassiveArea.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequence1GhostPassiveArea.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 70 70 /// AreaBase one rather than the ActiveArea one (which for which we 71 71 /// do not have the information). 72 virtual double n_empty_jets(const Selector & selector) const FASTJET_OVERRIDE{72 virtual double n_empty_jets(const Selector & selector) const { 73 73 return ClusterSequenceAreaBase::n_empty_jets(selector); 74 74 } -
external/fastjet/ClusterSequenceActiveArea.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveArea.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequenceActiveArea.hh 3619 2014-08-13 14:17:19Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 74 74 const bool & writeout_combinations = false) ; 75 75 76 virtual double area (const PseudoJet & jet) const FASTJET_OVERRIDE{76 virtual double area (const PseudoJet & jet) const { 77 77 return _average_area[jet.cluster_hist_index()];}; 78 virtual double area_error (const PseudoJet & jet) const FASTJET_OVERRIDE{78 virtual double area_error (const PseudoJet & jet) const { 79 79 return _average_area2[jet.cluster_hist_index()];}; 80 80 81 virtual PseudoJet area_4vector (const PseudoJet & jet) const FASTJET_OVERRIDE{81 virtual PseudoJet area_4vector (const PseudoJet & jet) const { 82 82 return _average_area_4vector[jet.cluster_hist_index()];}; 83 83 … … 110 110 /// 111 111 /// The selector passed as an argument needs to apply jet by jet. 112 virtual double empty_area(const Selector & selector) const FASTJET_OVERRIDE;112 virtual double empty_area(const Selector & selector) const; 113 113 114 114 /// return the true number of empty jets (replaces 115 115 /// ClusterSequenceAreaBase::n_empty_jets(...)) 116 virtual double n_empty_jets(const Selector & selector) const FASTJET_OVERRIDE;116 virtual double n_empty_jets(const Selector & selector) const; 117 117 118 118 protected: -
external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 97 97 98 98 /// returns the area of a jet 99 virtual double area (const PseudoJet & jet) const FASTJET_OVERRIDE;99 virtual double area (const PseudoJet & jet) const; 100 100 101 101 /// returns a four vector corresponding to the sum (E-scheme) of the … … 103 103 /// for a small contiguous area the p_t of the extended_area jet is 104 104 /// equal to area of the jet. 105 virtual PseudoJet area_4vector (const PseudoJet & jet) const FASTJET_OVERRIDE;105 virtual PseudoJet area_4vector (const PseudoJet & jet) const; 106 106 107 107 /// true if a jet is made exclusively of ghosts 108 virtual bool is_pure_ghost(const PseudoJet & jet) const FASTJET_OVERRIDE;108 virtual bool is_pure_ghost(const PseudoJet & jet) const; 109 109 110 110 /// true if the entry in the history index corresponds to a … … 114 114 115 115 /// this class does have explicit ghosts 116 virtual bool has_explicit_ghosts() const FASTJET_OVERRIDE{return true;}116 virtual bool has_explicit_ghosts() const {return true;} 117 117 118 118 /// return the total area, corresponding to a given Selector, that … … 120 120 /// 121 121 /// The selector needs to apply jet by jet 122 virtual double empty_area(const Selector & selector) const FASTJET_OVERRIDE;122 virtual double empty_area(const Selector & selector) const; 123 123 124 124 /// returns the total area under study -
external/fastjet/ClusterSequenceArea.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceArea.hh 4098 2016-03-15 16:38:22Z salam$2 // $Id: ClusterSequenceArea.hh 3484 2014-07-29 21:39:39Z soyez $ 3 3 // 4 4 // Copyright (c) 2006-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 80 80 81 81 /// return the area associated with the given jet 82 virtual double area (const PseudoJet & jet) const FASTJET_OVERRIDE{82 virtual double area (const PseudoJet & jet) const { 83 83 return _area_base->area(jet);} 84 84 85 85 /// return the error (uncertainty) associated with the determination 86 86 /// of the area of this jet 87 virtual double area_error (const PseudoJet & jet) const FASTJET_OVERRIDE{87 virtual double area_error (const PseudoJet & jet) const { 88 88 return _area_base->area_error(jet);} 89 89 90 90 /// return the 4-vector area 91 virtual PseudoJet area_4vector(const PseudoJet & jet) const FASTJET_OVERRIDE{91 virtual PseudoJet area_4vector(const PseudoJet & jet) const { 92 92 return _area_base->area_4vector(jet);} 93 93 … … 110 110 /// jet (see the BackgroundEstimator and Subtractor tools for more 111 111 /// advanced usage) 112 virtual double empty_area(const Selector & selector) const FASTJET_OVERRIDE{112 virtual double empty_area(const Selector & selector) const { 113 113 return _area_base->empty_area(selector);} 114 114 … … 122 122 /// jet (see the BackgroundEstimator and Subtractor tools for more 123 123 /// advanced usage) 124 virtual double n_empty_jets(const Selector & selector) const FASTJET_OVERRIDE{124 virtual double n_empty_jets(const Selector & selector) const { 125 125 return _area_base->n_empty_jets(selector); 126 126 } 127 127 128 128 /// true if a jet is made exclusively of ghosts 129 virtual bool is_pure_ghost(const PseudoJet & jet) const FASTJET_OVERRIDE{129 virtual bool is_pure_ghost(const PseudoJet & jet) const { 130 130 return _area_base->is_pure_ghost(jet); 131 131 } 132 132 133 133 /// true if this ClusterSequence has explicit ghosts 134 virtual bool has_explicit_ghosts() const FASTJET_OVERRIDE{134 virtual bool has_explicit_ghosts() const { 135 135 return _area_base->has_explicit_ghosts(); 136 136 } … … 144 144 /// jet (see the BackgroundEstimator and Subtractor tools for more 145 145 /// advanced usage) 146 //FASTJET_DEPRECATED_MSG("ClusterSequenceArea::get_median_rho_and_sigma(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")147 146 virtual void get_median_rho_and_sigma(const std::vector<PseudoJet> & all_jets, 148 147 const Selector & selector, … … 150 149 double & median, double & sigma, 151 150 double & mean_area, 152 bool all_are_incl = false) const FASTJET_OVERRIDE{151 bool all_are_incl = false) const { 153 152 _warn_if_range_unsuitable(selector); 154 ClusterSequenceAreaBase:: _get_median_rho_and_sigma(153 ClusterSequenceAreaBase::get_median_rho_and_sigma( 155 154 all_jets, selector, use_area_4vector, 156 155 median, sigma, mean_area, all_are_incl); … … 161 160 /// since we've overridden the 5-argument version above, we have to 162 161 /// override the 4-argument version too. 163 //FASTJET_DEPRECATED_MSG("ClusterSequenceArea::get_median_rho_and_sigma(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")164 162 virtual void get_median_rho_and_sigma(const Selector & selector, 165 163 bool use_area_4vector, 166 double & median, double & sigma) const FASTJET_OVERRIDE{167 ClusterSequenceAreaBase:: _get_median_rho_and_sigma(selector,use_area_4vector,168 164 double & median, double & sigma) const { 165 ClusterSequenceAreaBase::get_median_rho_and_sigma(selector,use_area_4vector, 166 median,sigma); 169 167 } 170 168 … … 173 171 /// since we've overridden the multi-argument version above, we have to 174 172 /// override the 5-argument version too. 175 //FASTJET_DEPRECATED_MSG("ClusterSequenceArea::get_median_rho_and_sigma(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")176 173 virtual void get_median_rho_and_sigma(const Selector & selector, 177 174 bool use_area_4vector, 178 175 double & median, double & sigma, 179 double & mean_area) const FASTJET_OVERRIDE{180 ClusterSequenceAreaBase:: _get_median_rho_and_sigma(selector,use_area_4vector,181 176 double & mean_area) const { 177 ClusterSequenceAreaBase::get_median_rho_and_sigma(selector,use_area_4vector, 178 median,sigma, mean_area); 182 179 } 183 180 … … 186 183 /// additionally checks compatibility between "range" and region in which 187 184 /// ghosts are thrown. 188 //FASTJET_DEPRECATED_MSG("ClusterSequenceArea::parabolic_pt_per_unit_area(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")189 185 virtual void parabolic_pt_per_unit_area(double & a, double & b, 190 186 const Selector & selector, 191 187 double exclude_above=-1.0, 192 bool use_area_4vector=false) const FASTJET_OVERRIDE { 193 return _parabolic_pt_per_unit_area(a,b,selector,exclude_above,use_area_4vector); 188 bool use_area_4vector=false) const { 189 _warn_if_range_unsuitable(selector); 190 ClusterSequenceAreaBase::parabolic_pt_per_unit_area( 191 a,b,selector, exclude_above, use_area_4vector); 194 192 } 195 193 … … 206 204 const JetDefinition & jet_def); 207 205 208 SharedPtr<ClusterSequenceAreaBase> _area_base;206 std::auto_ptr<ClusterSequenceAreaBase> _area_base; 209 207 AreaDefinition _area_def; 210 208 static LimitedWarning _range_warnings; 211 209 static LimitedWarning _explicit_ghosts_repeats_warnings; 212 213 // the following set of private methods are all deprecated. Their214 // role is simply to hide the corresponding methods (without the215 // first underscore) from the public interface so that they can be216 // used internally until all the deprecated methods are removed.217 // DO NOT USE ANY OF THESE METHODS: THEY ARE DEPRECATED AND WILL BE218 // REMOVED.219 virtual void _parabolic_pt_per_unit_area(double & a, double & b,220 const Selector & selector,221 double exclude_above=-1.0,222 bool use_area_4vector=false) const FASTJET_OVERRIDE {223 _warn_if_range_unsuitable(selector);224 ClusterSequenceAreaBase::_parabolic_pt_per_unit_area(225 a,b,selector, exclude_above, use_area_4vector);226 }227 210 228 211 }; … … 271 254 } 272 255 // now copy across the information from the area base class 273 _area_base = SharedPtr<ClusterSequenceAreaBase>(_area_base_ptr);256 _area_base = std::auto_ptr<ClusterSequenceAreaBase>(_area_base_ptr); 274 257 transfer_from_sequence(*_area_base); 275 258 } -
external/fastjet/ClusterSequenceAreaBase.cc
rb9ae4c3 rec5e04b 1 1 2 2 //FJSTARTHEADER 3 // $Id: ClusterSequenceAreaBase.cc 4079 2016-03-09 12:20:03Z soyez$3 // $Id: ClusterSequenceAreaBase.cc 3433 2014-07-23 08:17:03Z salam $ 4 4 // 5 5 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 79 79 } 80 80 81 // this is deprecated but used by other deprecated methods. So we hide82 // the implementation in a protected method so that (i) it can still83 // be used internally (without generating a compile-time warning when84 // building FastJet) and the interface can be marked as deprecated.85 // This can disappear once all the public interfaces have disappeared.86 81 double ClusterSequenceAreaBase::median_pt_per_unit_area(const Selector & selector) const { 87 return _median_pt_per_unit_area(selector); 88 } 89 90 // the hidden implementation 91 double ClusterSequenceAreaBase::_median_pt_per_unit_area(const Selector & selector) const { 92 return _median_pt_per_unit_something(selector,false); 93 } 94 95 96 97 // this is deprecated but used by other deprecated methods. So we hide 98 // the implementation in a protected method so that (i) it can still 99 // be used internally (without generating a compile-time warning when 100 // building FastJet) and the interface can be marked as deprecated. 101 // This can disappear once all the public interfaces have disappeared. 82 return median_pt_per_unit_something(selector,false); 83 } 84 102 85 double ClusterSequenceAreaBase::median_pt_per_unit_area_4vector(const Selector & selector) const { 103 return _median_pt_per_unit_area_4vector(selector); 104 } 105 106 // the deprecated interface 107 double ClusterSequenceAreaBase::_median_pt_per_unit_area_4vector(const Selector & selector) const { 108 return _median_pt_per_unit_something(selector,true); 109 } 110 111 112 //---------------------------------------------------------------------- 113 // this is deprecated but used by other deprecated methods. So we hide 114 // the implementation in a protected method so that (i) it can still 115 // be used internally (without generating a compile-time warning when 116 // building FastJet) and the interface can be marked as deprecated. 117 // This can disappear once all the public interfaces have disappeared. 86 return median_pt_per_unit_something(selector,true); 87 } 88 89 90 //---------------------------------------------------------------------- 91 /// the median of (pt/area) for jets contained within range, counting 92 /// the empty area as if it were made up of a collection of empty 93 /// jets each of area (0.55 * pi R^2). 118 94 double ClusterSequenceAreaBase::median_pt_per_unit_something( 119 95 const Selector & selector, bool use_area_4vector) const { 120 return _median_pt_per_unit_something(selector, use_area_4vector); 121 } 122 123 // the median of (pt/area) for jets contained within range, counting 124 // the empty area as if it were made up of a collection of empty 125 // jets each of area (0.55 * pi R^2). 126 double ClusterSequenceAreaBase::_median_pt_per_unit_something( 127 const Selector & selector, bool use_area_4vector) const { 96 128 97 double median, sigma, mean_area; 129 _get_median_rho_and_sigma(selector, use_area_4vector, median, sigma, mean_area);98 get_median_rho_and_sigma(selector, use_area_4vector, median, sigma, mean_area); 130 99 return median; 131 } 132 133 134 //---------------------------------------------------------------------- 135 /// fits a form pt_per_unit_area(y) = a + b*y^2 for jets in range. 136 /// exclude_above allows one to exclude large values of pt/area from 137 /// fit. use_area_4vector = true uses the 4vector areas. 100 101 } 102 103 104 //---------------------------------------------------------------------- 105 /// fits a form pt_per_unit_area(y) = a + b*y^2 for jets in range. 106 /// exclude_above allows one to exclude large values of pt/area from fit. 107 /// use_area_4vector = true uses the 4vector areas. 138 108 void ClusterSequenceAreaBase::parabolic_pt_per_unit_area( 139 double & a, double & b, const Selector & selector,140 double exclude_above, bool use_area_4vector) const {141 return _parabolic_pt_per_unit_area(a, b, selector, exclude_above, use_area_4vector);142 }143 144 void ClusterSequenceAreaBase::_parabolic_pt_per_unit_area(145 109 double & a, double & b, const Selector & selector, 146 110 double exclude_above, bool use_area_4vector) const { … … 197 161 198 162 199 //---------------------------------------------------------------------- 163 200 164 void ClusterSequenceAreaBase::get_median_rho_and_sigma( 201 165 const Selector & selector, bool use_area_4vector, 202 166 double & median, double & sigma, double & mean_area) const { 203 _get_median_rho_and_sigma(selector, use_area_4vector, median, sigma, mean_area);204 }205 206 void ClusterSequenceAreaBase::_get_median_rho_and_sigma(207 const Selector & selector, bool use_area_4vector,208 double & median, double & sigma, double & mean_area) const {209 167 210 168 vector<PseudoJet> incl_jets = inclusive_jets(); 211 _get_median_rho_and_sigma(incl_jets, selector, use_area_4vector, 212 median, sigma, mean_area, true); 213 } 169 get_median_rho_and_sigma(incl_jets, selector, use_area_4vector, 170 median, sigma, mean_area, true); 171 } 172 214 173 215 174 void ClusterSequenceAreaBase::get_median_rho_and_sigma( 216 const vector<PseudoJet> & all_jets,217 const Selector & selector, bool use_area_4vector,218 double & median, double & sigma, double & mean_area,219 bool all_are_incl) const {220 _get_median_rho_and_sigma(all_jets, selector, use_area_4vector,221 median, sigma, mean_area, all_are_incl);222 }223 224 void ClusterSequenceAreaBase::_get_median_rho_and_sigma(225 175 const vector<PseudoJet> & all_jets, 226 176 const Selector & selector, bool use_area_4vector, … … 338 288 339 289 340 // return a vector of all subtracted jets, using area_4vector, given rho.341 // Only inclusive_jets above ptmin are subtracted and returned.342 // the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()),343 // i.e. not necessarily ordered in pt once subtracted290 /// return a vector of all subtracted jets, using area_4vector, given rho. 291 /// Only inclusive_jets above ptmin are subtracted and returned. 292 /// the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()), 293 /// i.e. not necessarily ordered in pt once subtracted 344 294 vector<PseudoJet> ClusterSequenceAreaBase::subtracted_jets(const double rho, 345 295 const double ptmin) 346 296 const { 347 return _subtracted_jets(rho,ptmin);348 }349 350 vector<PseudoJet> ClusterSequenceAreaBase::_subtracted_jets(const double rho,351 const double ptmin)352 const {353 297 vector<PseudoJet> sub_jets; 354 298 vector<PseudoJet> jets_local = sorted_by_pt(inclusive_jets(ptmin)); 355 299 for (unsigned i=0; i<jets_local.size(); i++) { 356 PseudoJet sub_jet = _subtracted_jet(jets_local[i],rho);300 PseudoJet sub_jet = subtracted_jet(jets_local[i],rho); 357 301 sub_jets.push_back(sub_jet); 358 302 } … … 360 304 } 361 305 362 // return a vector of subtracted jets, using area_4vector.363 // Only inclusive_jets above ptmin are subtracted and returned.364 // the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()),365 // i.e. not necessarily ordered in pt once subtracted306 /// return a vector of subtracted jets, using area_4vector. 307 /// Only inclusive_jets above ptmin are subtracted and returned. 308 /// the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()), 309 /// i.e. not necessarily ordered in pt once subtracted 366 310 vector<PseudoJet> ClusterSequenceAreaBase::subtracted_jets( 367 311 const Selector & selector, 368 312 const double ptmin) 369 313 const { 370 double rho = _median_pt_per_unit_area_4vector(selector);371 return _subtracted_jets(rho,ptmin);314 double rho = median_pt_per_unit_area_4vector(selector); 315 return subtracted_jets(rho,ptmin); 372 316 } 373 317 … … 376 320 PseudoJet ClusterSequenceAreaBase::subtracted_jet(const PseudoJet & jet, 377 321 const double rho) const { 378 return _subtracted_jet(jet, rho);379 }380 381 PseudoJet ClusterSequenceAreaBase::_subtracted_jet(const PseudoJet & jet,382 const double rho) const {383 322 PseudoJet area4vect = area_4vector(jet); 384 323 PseudoJet sub_jet; … … 404 343 PseudoJet ClusterSequenceAreaBase::subtracted_jet(const PseudoJet & jet, 405 344 const Selector & selector) const { 406 return _subtracted_jet(jet, selector); 407 } 408 409 PseudoJet ClusterSequenceAreaBase::_subtracted_jet(const PseudoJet & jet, 410 const Selector & selector) const { 411 double rho = _median_pt_per_unit_area_4vector(selector); 412 PseudoJet sub_jet = _subtracted_jet(jet, rho); 345 double rho = median_pt_per_unit_area_4vector(selector); 346 PseudoJet sub_jet = subtracted_jet(jet, rho); 413 347 return sub_jet; 414 348 } … … 419 353 const double rho, 420 354 bool use_area_4vector) const { 421 return _subtracted_pt(jet, rho, use_area_4vector);422 }423 424 double ClusterSequenceAreaBase::_subtracted_pt(const PseudoJet & jet,425 const double rho,426 bool use_area_4vector) const {427 355 if ( use_area_4vector ) { 428 PseudoJet sub_jet = _subtracted_jet(jet,rho);356 PseudoJet sub_jet = subtracted_jet(jet,rho); 429 357 return sub_jet.perp(); 430 358 } else { … … 441 369 bool use_area_4vector) const { 442 370 if ( use_area_4vector ) { 443 PseudoJet sub_jet = _subtracted_jet(jet,selector);371 PseudoJet sub_jet = subtracted_jet(jet,selector); 444 372 return sub_jet.perp(); 445 373 } else { 446 double rho = _median_pt_per_unit_area(selector);447 return _subtracted_pt(jet,rho,false);374 double rho = median_pt_per_unit_area(selector); 375 return subtracted_pt(jet,rho,false); 448 376 } 449 377 } -
external/fastjet/ClusterSequenceAreaBase.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceAreaBase.hh 4098 2016-03-15 16:38:22Z salam $2 // $Id: ClusterSequenceAreaBase.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 35 35 #include "fastjet/LimitedWarning.hh" 36 36 #include "fastjet/Selector.hh" 37 #include "fastjet/internal/deprecated.hh"38 37 39 38 FASTJET_BEGIN_NAMESPACE … … 145 144 /// apply jet-by-jet (see the BackgroundEstimator and Subtractor 146 145 /// tools for more generic usages) 147 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::median_pt_per_unit_area(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")148 146 double median_pt_per_unit_area(const Selector & selector) const; 149 147 … … 153 151 /// The selector passed as an argument has to have a finite area and 154 152 /// apply jet-by-jet 155 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::median_pt_per_unit_area_4vector(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")156 153 double median_pt_per_unit_area_4vector(const Selector & selector) const; 157 154 … … 160 157 /// - something_is_area_4vect = false -> use plain area 161 158 /// - something_is_area_4vect = true -> use 4-vector area 162 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::median_pt_per_unit_something(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead") 163 double median_pt_per_unit_something(const Selector & selector, 164 bool use_area_4vector) const; 159 double median_pt_per_unit_something( 160 const Selector & selector, bool use_area_4vector) const; 165 161 166 162 /// using jets withing the selector range (and with 4-vector areas if … … 188 184 /// using a scalar area causes one to neglect terms of relative 189 185 /// order $R^2/8$ in the jet $p_t$. 190 //FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::get_median_rho_and_sigma(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")191 186 virtual void get_median_rho_and_sigma(const Selector & selector, 192 187 bool use_area_4vector, … … 213 208 /// apply jet-by-jet (see the BackgroundEstimator and Subtractor 214 209 /// tools for more generic usages) 215 //FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::get_median_rho_and_sigma(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")216 210 virtual void get_median_rho_and_sigma(const std::vector<PseudoJet> & all_jets, 217 211 const Selector & selector, … … 227 221 /// apply jet-by-jet (see the BackgroundEstimator and Subtractor 228 222 /// tools for more generic usages) 229 //FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::get_median_rho_and_sigma(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")230 223 virtual void get_median_rho_and_sigma(const Selector & selector, 231 bool use_area_4vector, 232 double & median, double & sigma) const{ 233 return _get_median_rho_and_sigma(selector, use_area_4vector, median, sigma); 224 bool use_area_4vector, 225 double & median, double & sigma) const { 226 double mean_area; 227 get_median_rho_and_sigma(selector, use_area_4vector, 228 median, sigma, mean_area); 234 229 } 235 230 … … 243 238 /// apply jet-by-jet (see the BackgroundEstimator and Subtractor 244 239 /// tools for more generic usages) 245 //FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::parabolic_pt_per_unit_area(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead")246 240 virtual void parabolic_pt_per_unit_area(double & a, double & b, 247 241 const Selector & selector, … … 253 247 /// the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()), 254 248 /// i.e. not necessarily ordered in pt once subtracted 255 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::subtracted_jets(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead")256 249 std::vector<PseudoJet> subtracted_jets(const double rho, 257 250 const double ptmin=0.0) const; … … 265 258 /// apply jet-by-jet (see the BackgroundEstimator and Subtractor 266 259 /// tools for more generic usages) 267 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::subtracted_jets(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead")268 260 std::vector<PseudoJet> subtracted_jets(const Selector & selector, 269 261 const double ptmin=0.0) const; 270 262 271 263 /// return a subtracted jet, using area_4vector, given rho 272 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::subtracted_jet(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead")273 264 PseudoJet subtracted_jet(const PseudoJet & jet, 274 265 const double rho) const; … … 282 273 /// apply jet-by-jet (see the BackgroundEstimator and Subtractor 283 274 /// tools for more generic usages) 284 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::subtracted_jet(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead")285 275 PseudoJet subtracted_jet(const PseudoJet & jet, 286 276 const Selector & selector) const; 287 277 288 278 /// return the subtracted pt, given rho 289 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::subtracted_pt(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead")290 279 double subtracted_pt(const PseudoJet & jet, 291 280 const double rho, … … 299 288 /// apply jet-by-jet (see the BackgroundEstimator and Subtractor 300 289 /// tools for more generic usages) 301 FASTJET_DEPRECATED_MSG("ClusterSequenceAreaBase::subtracted_pt(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead")302 290 double subtracted_pt(const PseudoJet & jet, 303 291 const Selector & selector, … … 308 296 void _check_selector_good_for_median(const Selector &selector) const; 309 297 310 // the following set of protected methods are all deprecated. Their311 // role is simply to hide the corresponding methods (without the312 // first underscore) from the public interface so that they can be313 // used internally until all the deprecated methods are removed.314 // DO NOT USE ANY OF THESE METHODS: THEY ARE DEPRECATED AND WILL BE315 // REMOVED.316 virtual void _get_median_rho_and_sigma(const Selector & selector,317 bool use_area_4vector,318 double & median, double & sigma,319 double & mean_area) const;320 virtual void _get_median_rho_and_sigma(const std::vector<PseudoJet> & all_jets,321 const Selector & selector,322 bool use_area_4vector,323 double & median, double & sigma,324 double & mean_area,325 bool all_are_inclusive = false) const;326 virtual void _get_median_rho_and_sigma(const Selector & selector,327 bool use_area_4vector,328 double & median, double & sigma) const {329 double mean_area;330 _get_median_rho_and_sigma(selector, use_area_4vector,331 median, sigma, mean_area);332 }333 virtual void _parabolic_pt_per_unit_area(double & a, double & b,334 const Selector & selector,335 double exclude_above=-1.0,336 bool use_area_4vector=false) const;337 298 338 299 private: … … 344 305 /// check the jet algorithm is suitable (and if not issue a warning) 345 306 void _check_jet_alg_good_for_median() const; 346 347 // the following set of private methods are all deprecated. Their 348 // role is simply to hide the corresponding methods (without the 349 // first underscore) from the public interface so that they can be 350 // used internally until all the deprecated methods are removed. 351 // DO NOT USE ANY OF THESE METHODS: THEY ARE DEPRECATED AND WILL BE 352 // REMOVED. 353 double _median_pt_per_unit_area(const Selector & selector) const; 354 double _median_pt_per_unit_area_4vector(const Selector & selector) const; 355 double _median_pt_per_unit_something(const Selector & selector, 356 bool use_area_4vector) const; 357 std::vector<PseudoJet> _subtracted_jets(const double rho, 358 const double ptmin=0.0) const; 359 PseudoJet _subtracted_jet(const PseudoJet & jet, 360 const double rho) const; 361 PseudoJet _subtracted_jet(const PseudoJet & jet, 362 const Selector & selector) const; 363 double _subtracted_pt(const PseudoJet & jet, 364 const double rho, 365 bool use_area_4vector=false) const; 307 366 308 }; 367 309 -
external/fastjet/ClusterSequencePassiveArea.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequencePassiveArea.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequencePassiveArea.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 65 65 /// return an empty area that's appropriate to the passive area 66 66 /// determination carried out 67 virtual double empty_area(const Selector & selector) const FASTJET_OVERRIDE;67 virtual double empty_area(const Selector & selector) const; 68 68 69 69 private: -
external/fastjet/ClusterSequenceStructure.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceStructure.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequenceStructure.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 76 76 77 77 /// description 78 virtual std::string description() const FASTJET_OVERRIDE{ 79 return "PseudoJet with an associated ClusterSequence"; 80 } 78 virtual std::string description() const{ return "PseudoJet with an associated ClusterSequence"; } 81 79 82 80 //------------------------------------------------------------- … … 87 85 //------------------------------------------------------------- 88 86 /// returns true if there is an associated ClusterSequence 89 virtual bool has_associated_cluster_sequence() const FASTJET_OVERRIDE{ return true;}87 virtual bool has_associated_cluster_sequence() const{ return true;} 90 88 91 89 /// get a (const) pointer to the parent ClusterSequence (NULL if 92 90 /// inexistent) 93 virtual const ClusterSequence* associated_cluster_sequence() const FASTJET_OVERRIDE;91 virtual const ClusterSequence* associated_cluster_sequence() const; 94 92 95 93 /// returns true if there is a valid associated ClusterSequence 96 virtual bool has_valid_cluster_sequence() const FASTJET_OVERRIDE;94 virtual bool has_valid_cluster_sequence() const; 97 95 98 96 /// if the jet has a valid associated cluster sequence then return a 99 97 /// pointer to it; otherwise throw an error 100 virtual const ClusterSequence * validated_cs() const FASTJET_OVERRIDE;98 virtual const ClusterSequence * validated_cs() const; 101 99 102 100 #ifndef __FJCORE__ 103 101 /// if the jet has valid area information then return a pointer to 104 102 /// the associated ClusterSequenceAreaBase object; otherwise throw an error 105 virtual const ClusterSequenceAreaBase * validated_csab() const FASTJET_OVERRIDE;103 virtual const ClusterSequenceAreaBase * validated_csab() const; 106 104 #endif // __FJCORE__ 107 105 … … 127 125 /// an Error is thrown if this PseudoJet has no currently valid 128 126 /// associated ClusterSequence 129 virtual bool has_partner(const PseudoJet &reference, PseudoJet &partner) const FASTJET_OVERRIDE;127 virtual bool has_partner(const PseudoJet &reference, PseudoJet &partner) const; 130 128 131 129 /// check if it has been recombined with another PseudoJet in which … … 135 133 /// an Error is thrown if this PseudoJet has no currently valid 136 134 /// associated ClusterSequence 137 virtual bool has_child(const PseudoJet &reference, PseudoJet &child) const FASTJET_OVERRIDE;135 virtual bool has_child(const PseudoJet &reference, PseudoJet &child) const; 138 136 139 137 /// check if it is the product of a recombination, in which case … … 143 141 /// an Error is thrown if this PseudoJet has no currently valid 144 142 /// associated ClusterSequence 145 virtual bool has_parents(const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const FASTJET_OVERRIDE;143 virtual bool has_parents(const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const; 146 144 147 145 /// check if the reference PseudoJet is contained in the second one … … 153 151 /// false is returned if the 2 PseudoJet do not belong the same 154 152 /// ClusterSequence 155 virtual bool object_in_jet(const PseudoJet &reference, const PseudoJet &jet) const FASTJET_OVERRIDE;153 virtual bool object_in_jet(const PseudoJet &reference, const PseudoJet &jet) const; 156 154 157 155 /// return true if the structure supports constituents. … … 159 157 /// an Error is thrown if this PseudoJet has no currently valid 160 158 /// associated ClusterSequence 161 virtual bool has_constituents() const FASTJET_OVERRIDE;159 virtual bool has_constituents() const; 162 160 163 161 /// retrieve the constituents. … … 165 163 /// an Error is thrown if this PseudoJet has no currently valid 166 164 /// associated ClusterSequence 167 virtual std::vector<PseudoJet> constituents(const PseudoJet &reference) const FASTJET_OVERRIDE;165 virtual std::vector<PseudoJet> constituents(const PseudoJet &reference) const; 168 166 169 167 … … 172 170 /// an Error is thrown if this PseudoJet has no currently valid 173 171 /// associated ClusterSequence 174 virtual bool has_exclusive_subjets() const FASTJET_OVERRIDE;172 virtual bool has_exclusive_subjets() const; 175 173 176 174 /// return a vector of all subjets of the current jet (in the sense … … 185 183 /// an Error is thrown if this PseudoJet has no currently valid 186 184 /// associated ClusterSequence 187 virtual std::vector<PseudoJet> exclusive_subjets(const PseudoJet &reference, const double & dcut) const FASTJET_OVERRIDE;185 virtual std::vector<PseudoJet> exclusive_subjets(const PseudoJet &reference, const double & dcut) const; 188 186 189 187 /// return the size of exclusive_subjets(...); still n ln n with same … … 193 191 /// an Error is thrown if this PseudoJet has no currently valid 194 192 /// associated ClusterSequence 195 virtual int n_exclusive_subjets(const PseudoJet &reference, const double & dcut) const FASTJET_OVERRIDE;193 virtual int n_exclusive_subjets(const PseudoJet &reference, const double & dcut) const; 196 194 197 195 /// return the list of subjets obtained by unclustering the supplied … … 203 201 /// an Error is thrown if this PseudoJet has no currently valid 204 202 /// associated ClusterSequence 205 virtual std::vector<PseudoJet> exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const FASTJET_OVERRIDE;203 virtual std::vector<PseudoJet> exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const; 206 204 207 205 /// return the dij that was present in the merging nsub+1 -> nsub … … 210 208 /// an Error is thrown if this PseudoJet has no currently valid 211 209 /// associated ClusterSequence 212 virtual double exclusive_subdmerge(const PseudoJet &reference, int nsub) const FASTJET_OVERRIDE;210 virtual double exclusive_subdmerge(const PseudoJet &reference, int nsub) const; 213 211 214 212 /// return the maximum dij that occurred in the whole event at the … … 218 216 /// an Error is thrown if this PseudoJet has no currently valid 219 217 /// associated ClusterSequence 220 virtual double exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const FASTJET_OVERRIDE;218 virtual double exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const; 221 219 222 220 … … 226 224 /// by convention, a jet associated with a ClusterSequence will have 227 225 /// its parents as pieces 228 virtual bool has_pieces(const PseudoJet &reference) const FASTJET_OVERRIDE;226 virtual bool has_pieces(const PseudoJet &reference) const; 229 227 230 228 /// by convention, a jet associated with a ClusterSequence will have … … 237 235 /// sequence. If the cluster sequence has gone out of scope, an 238 236 /// error will be thrown 239 virtual std::vector<PseudoJet> pieces(const PseudoJet &reference) const FASTJET_OVERRIDE;237 virtual std::vector<PseudoJet> pieces(const PseudoJet &reference) const; 240 238 241 239 … … 246 244 247 245 /// check if it has a defined area 248 virtual bool has_area() const FASTJET_OVERRIDE;246 virtual bool has_area() const; 249 247 250 248 /// return the jet (scalar) area. 251 249 /// throws an Error if there is no support for area in the parent CS 252 virtual double area(const PseudoJet &reference) const FASTJET_OVERRIDE;250 virtual double area(const PseudoJet &reference) const; 253 251 254 252 /// return the error (uncertainty) associated with the determination 255 253 /// of the area of this jet. 256 254 /// throws an Error if there is no support for area in the parent CS 257 virtual double area_error(const PseudoJet &reference) const FASTJET_OVERRIDE;255 virtual double area_error(const PseudoJet &reference) const; 258 256 259 257 /// return the jet 4-vector area. 260 258 /// throws an Error if there is no support for area in the parent CS 261 virtual PseudoJet area_4vector(const PseudoJet &reference) const FASTJET_OVERRIDE;259 virtual PseudoJet area_4vector(const PseudoJet &reference) const; 262 260 263 261 /// true if this jet is made exclusively of ghosts. 264 262 /// throws an Error if there is no support for area in the parent CS 265 virtual bool is_pure_ghost(const PseudoJet &reference) const FASTJET_OVERRIDE;263 virtual bool is_pure_ghost(const PseudoJet &reference) const; 266 264 267 265 #endif // __FJCORE__ -
external/fastjet/ClusterSequenceVoronoiArea.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceVoronoiArea.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequenceVoronoiArea.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 65 65 66 66 /// return the area associated with the given jet 67 virtual inline double area(const PseudoJet & jet) const FASTJET_OVERRIDE{67 virtual inline double area(const PseudoJet & jet) const { 68 68 return _voronoi_area[jet.cluster_hist_index()];} 69 69 … … 72 72 /// made of sums of centres of all Voronoi cells in jet, each 73 73 /// contributing with a normalisation equal to the area of the cell 74 virtual inline PseudoJet area_4vector(const PseudoJet & jet) const FASTJET_OVERRIDE{74 virtual inline PseudoJet area_4vector(const PseudoJet & jet) const { 75 75 return _voronoi_area_4vector[jet.cluster_hist_index()];} 76 76 77 77 /// return the error of the area associated with the given jet 78 78 /// (0 by definition for a voronoi area) 79 virtual inline double area_error(const PseudoJet & /*jet*/) const FASTJET_OVERRIDE{79 virtual inline double area_error(const PseudoJet & /*jet*/) const { 80 80 return 0.0;} 81 81 -
external/fastjet/ClusterSequence_CP2DChan.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_CP2DChan.cc 4045 2016-03-03 10:01:55Z salam $2 // $Id: ClusterSequence_CP2DChan.cc 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 46 46 public: 47 47 int orig, mirror; 48 MirrorInfo(int a, int b) : orig(a), mirror(b) {} 49 MirrorInfo() : orig(0), mirror(0) {} // set dummy values to keep static code checkers happy48 MirrorInfo(int a, int b) : orig(a), mirror(b) {}; 49 MirrorInfo() {}; 50 50 }; 51 51 -
external/fastjet/ClusterSequence_Delaunay.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_Delaunay.cc 4059 2016-03-03 20:49:48Z soyez$2 // $Id: ClusterSequence_Delaunay.cc 3918 2015-07-03 14:19:13Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 69 69 70 70 // initialise our DNN structure with the set of points 71 SharedPtr<DynamicNearestNeighbours> DNN;72 constbool verbose = false;71 auto_ptr<DynamicNearestNeighbours> DNN; 72 bool verbose = false; 73 73 #ifndef DROP_CGAL // strategy = NlnN* are not supported if we drop CGAL... 74 74 bool ignore_nearest_is_mirror = (_Rparam < twopi); -
external/fastjet/CompositeJetStructure.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: CompositeJetStructure.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: CompositeJetStructure.hh 3652 2014-09-03 13:31:13Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 64 64 65 65 /// description 66 virtual std::string description() const FASTJET_OVERRIDE;66 virtual std::string description() const; 67 67 68 68 // things reimplemented from the base structure … … 70 70 /// true unless the jet has no pieces (see also the description of 71 71 /// constituents() below) 72 virtual bool has_constituents() const FASTJET_OVERRIDE;72 virtual bool has_constituents() const; 73 73 74 74 /// return the constituents (i.e. the union of the constituents of each piece) … … 78 78 /// Note that as a consequence, a composite jet with no pieces will 79 79 /// have an empty vector as constituents 80 virtual std::vector<PseudoJet> constituents(const PseudoJet &jet) const FASTJET_OVERRIDE;80 virtual std::vector<PseudoJet> constituents(const PseudoJet &jet) const; 81 81 82 82 //------------------------------------------------------------------- … … 84 84 //------------------------------------------------------------------- 85 85 /// true if it has pieces (always the case) 86 virtual bool has_pieces(const PseudoJet & /*jet*/) const FASTJET_OVERRIDE{return true;}86 virtual bool has_pieces(const PseudoJet & /*jet*/) const {return true;} 87 87 88 88 /// returns the pieces 89 virtual std::vector<PseudoJet> pieces(const PseudoJet &jet) const FASTJET_OVERRIDE;89 virtual std::vector<PseudoJet> pieces(const PseudoJet &jet) const; 90 90 91 91 // area-related material … … 93 93 94 94 /// check if it has a well-defined area 95 virtual bool has_area() const FASTJET_OVERRIDE;95 virtual bool has_area() const; 96 96 97 97 /// return the jet (scalar) area. 98 virtual double area(const PseudoJet &reference) const FASTJET_OVERRIDE;98 virtual double area(const PseudoJet &reference) const; 99 99 100 100 /// return the error (uncertainty) associated with the determination … … 102 102 /// 103 103 /// Be conservative: return the sum of the errors 104 virtual double area_error(const PseudoJet &reference) const FASTJET_OVERRIDE;104 virtual double area_error(const PseudoJet &reference) const; 105 105 106 106 /// return the jet 4-vector area. 107 virtual PseudoJet area_4vector(const PseudoJet &reference) const FASTJET_OVERRIDE;107 virtual PseudoJet area_4vector(const PseudoJet &reference) const; 108 108 109 109 /// true if this jet is made exclusively of ghosts. 110 110 /// 111 111 /// In this case, it will be true if all pieces are pure ghost 112 virtual bool is_pure_ghost(const PseudoJet &reference) const FASTJET_OVERRIDE;112 virtual bool is_pure_ghost(const PseudoJet &reference) const; 113 113 114 114 //unused: // allows one to modify the area information -
external/fastjet/DnnPlane.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.cc 391 7 2015-07-03 14:07:50Z salam $2 // $Id: DnnPlane.cc 3918 2015-07-03 14:19:13Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/Error.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: Error.hh 380 7 2015-02-20 11:16:55Z soyez $5 // $Id: Error.hh 3809 2015-02-20 13:05:13Z soyez $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 114 114 }; 115 115 116 116 117 FASTJET_END_NAMESPACE 117 118 -
external/fastjet/GhostedAreaSpec.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: GhostedAreaSpec.hh 4074 2016-03-08 09:09:25Z soyez$2 // $Id: GhostedAreaSpec.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 39 39 #include "fastjet/Selector.hh" 40 40 #include "fastjet/LimitedWarning.hh" 41 #include "fastjet/internal/deprecated.hh"42 41 43 42 // … … 174 173 /// 175 174 /// FJ2 placement is now deprecated. 176 FASTJET_DEPRECATED_MSG("This is deprecated since we strongly recomment to use the new ghost placement instead")177 175 void set_fj2_placement(bool val); 178 176 -
external/fastjet/JetDefinition.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: JetDefinition.cc 4074 2016-03-08 09:09:25Z soyez $2 // $Id: JetDefinition.cc 3677 2014-09-09 22:45:25Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 45 45 JetDefinition::JetDefinition(JetAlgorithm jet_algorithm_in, 46 46 double R_in, 47 Strategy strategy_in, 47 48 RecombinationScheme recomb_scheme_in, 48 Strategy strategy_in,49 49 int nparameters) : 50 50 _jet_algorithm(jet_algorithm_in), _Rparam(R_in), _strategy(strategy_in) { … … 185 185 186 186 // do not forget to delete the existing recombiner if needed 187 if (_shared_recombiner ) _shared_recombiner.reset();187 if (_shared_recombiner()) _shared_recombiner.reset(); 188 188 189 189 _recombiner = 0; -
external/fastjet/JetDefinition.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: JetDefinition.hh 4074 2016-03-08 09:09:25Z soyez $5 // $Id: JetDefinition.hh 3677 2014-09-09 22:45:25Z soyez $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 35 35 #include "fastjet/internal/numconsts.hh" 36 36 #include "fastjet/PseudoJet.hh" 37 #include "fastjet/internal/deprecated.hh"38 37 #include<string> 39 38 #include<memory> … … 269 268 RecombinationScheme recomb_scheme_in = E_scheme, 270 269 Strategy strategy_in = Best) { 271 *this = JetDefinition(jet_algorithm_in, R_in, recomb_scheme_in, strategy_in, 1);270 *this = JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 1); 272 271 } 273 272 … … 278 277 Strategy strategy_in = Best) { 279 278 double dummyR = 0.0; 280 *this = JetDefinition(jet_algorithm_in, dummyR, recomb_scheme_in, strategy_in, 0);279 *this = JetDefinition(jet_algorithm_in, dummyR, strategy_in, recomb_scheme_in, 0); 281 280 } 282 281 … … 288 287 RecombinationScheme recomb_scheme_in = E_scheme, 289 288 Strategy strategy_in = Best) { 290 *this = JetDefinition(jet_algorithm_in, R_in, recomb_scheme_in, strategy_in, 2);289 *this = JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 2); 291 290 set_extra_param(xtra_param_in); 292 291 } … … 345 344 _strategy = plugin_strategy; 346 345 _Rparam = _plugin->R(); 347 _extra_param = 0.0; // a dummy value to keep static code checkers happy348 346 _jet_algorithm = plugin_algorithm; 349 347 set_recombination_scheme(E_scheme); 350 348 } 351 349 350 352 351 /// constructor to fully specify a jet-definition (together with 353 352 /// information about how algorithically to run it). 354 JetDefinition(JetAlgorithm jet_algorithm_in,355 double R_in,356 RecombinationScheme recomb_scheme_in,357 Strategy strategy_in,358 int nparameters_in);359 360 /// constructor to fully specify a jet-definition (together with361 /// information about how algorithically to run it).362 353 /// 363 354 /// the ordering of arguments here is old and deprecated (except 364 355 /// as the common constructor for internal use) 365 FASTJET_DEPRECATED_MSG("This argument ordering is deprecated. Use JetDefinition(alg, R, strategy, scheme[, n_parameters]) instead")366 356 JetDefinition(JetAlgorithm jet_algorithm_in, 367 357 double R_in, 368 358 Strategy strategy_in, 369 359 RecombinationScheme recomb_scheme_in = E_scheme, 370 int nparameters_in = 1){ 371 (*this) = JetDefinition(jet_algorithm_in,R_in,recomb_scheme_in,strategy_in,nparameters_in); 372 } 373 360 int nparameters_in = 1); 374 361 375 362 /// cluster the supplied particles and returns a vector of resulting … … 401 388 /// Recombiner *) may lead to memory corruption. 402 389 void set_recombiner(const Recombiner * recomb) { 403 if (_shared_recombiner ) _shared_recombiner.reset(recomb);390 if (_shared_recombiner()) _shared_recombiner.reset(recomb); 404 391 _recombiner = recomb; 405 392 _default_recombiner = DefaultRecombiner(external_scheme); … … 534 521 _recomb_scheme(recomb_scheme) {} 535 522 536 virtual std::string description() const FASTJET_OVERRIDE;523 virtual std::string description() const; 537 524 538 525 /// recombine pa and pb and put result into pab 539 526 virtual void recombine(const PseudoJet & pa, const PseudoJet & pb, 540 PseudoJet & pab) const FASTJET_OVERRIDE;541 542 virtual void preprocess(PseudoJet & p) const FASTJET_OVERRIDE;527 PseudoJet & pab) const; 528 529 virtual void preprocess(PseudoJet & p) const; 543 530 544 531 /// return the index of the recombination scheme -
external/fastjet/LazyTiling25.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling25.cc 380 7 2015-02-20 11:16:55Z soyez $2 // $Id: LazyTiling25.cc 3808 2015-02-20 11:24:53Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 369 369 double dist = _distance_to_tile(jet, *near_tile) - tile_edge_security_margin; 370 370 // cout << " max info looked at tile " << *near_tile - &_tiles[0] 371 // 372 // << " -> diff = " << dist-(*near_tile)->max_NN_dist<< endl;371 // << ", dist = " << dist << " " << (*near_tile)->max_NN_dist 372 // << endl; 373 373 if (dist > (*near_tile)->max_NN_dist) continue; 374 374 … … 665 665 int n_near_tiles = 0; 666 666 667 // GS comment:668 //669 // At this stage, we have perforned the clustering in670 // ClusterSequence and we need to update the NNs. The objects we671 // deal with are jetA and oldB (the once that have been clustered)672 // as well as jetB (the result of the clustering)673 //674 // There are two types of objects we need to update:675 // - find jetB NN676 // - update the NN of points which had jetA or jetB as their NN677 //678 // Wile we find jetB's NN, browsing relevant tiles near jetB, we679 // also search for points which had jetA or jetB as their680 // NN. These are tagged. Then we list the relevant tiles where we681 // can potentially have points to update (i.e. points which had682 // jetA and oldB as NN) in the yet untagged relevant tiles near683 // jetA and oldB.684 //685 // DEBUG:686 // if (jetB != NULL) {687 // cout << "jetA = " << jetA->_jets_index << " (tile " << jetA->tile_index << "), "688 // << "oldB = " << oldB._jets_index << " (tile " << oldB. tile_index << "), "689 // << "jetB = " << jetB->_jets_index << " (tile " << jetB->tile_index << ")" << endl;690 // } else {691 // cout << "jetA = " << jetA->_jets_index << " (tile " << jetA->tile_index << ")" << endl;692 // }693 694 667 // Initialise jetB's NN distance as well as updating it for other 695 668 // particles. While doing so, examine whether jetA or old jetB was … … 706 679 bool relevant_for_near_tile = dist_to_tile <= (*near_tile)->max_NN_dist; 707 680 bool relevant = relevant_for_jetB || relevant_for_near_tile; 708 709 // cout << " Relevance of tile " << *near_tile - & _tiles[0]710 // << " wrt jetB is " << relevant << endl;711 712 681 if (! relevant) continue; 713 682 // now label this tile as having been considered (so that we … … 733 702 // and one new jet. 734 703 int n_done_tiles = n_near_tiles; 735 //cout << "Looking at relevant tiles to update for jetA" << endl;736 704 _add_untagged_neighbours_to_tile_union_using_max_info(jetA, 737 705 tile_union, n_near_tiles); 738 706 if (jetB != NULL) { 739 // cout << "Looking at relevant tiles to update for oldB" << endl;740 707 _add_untagged_neighbours_to_tile_union_using_max_info(&oldB, 741 708 tile_union,n_near_tiles); -
external/fastjet/LazyTiling9.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9.cc 380 7 2015-02-20 11:16:55Z soyez $2 // $Id: LazyTiling9.cc 3808 2015-02-20 11:24:53Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/LazyTiling9Alt.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9Alt.cc 380 7 2015-02-20 11:16:55Z soyez $2 // $Id: LazyTiling9Alt.cc 3808 2015-02-20 11:24:53Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/LazyTiling9SeparateGhosts.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9SeparateGhosts.cc 380 7 2015-02-20 11:16:55Z soyez $2 // $Id: LazyTiling9SeparateGhosts.cc 3808 2015-02-20 11:24:53Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/NNH.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNH.hh 4034 2016-03-02 00:20:27Z soyez$5 // $Id: NNH.hh 3433 2014-07-23 08:17:03Z salam $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 32 32 //FJENDHEADER 33 33 34 #include <fastjet/NNBase.hh> 34 #include<fastjet/ClusterSequence.hh> 35 35 36 36 37 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 38 39 /// @ingroup advanced_usage 40 /// \class _NoInfo 41 /// dummy class, used as a default template argument 42 class _NoInfo {}; 43 44 /// @ingroup advanced_usage 45 /// \class NNHInfo 46 /// template that will help initialise a BJ with a PseudoJet and extra information 47 template<class I> class NNHInfo { 48 public: 49 NNHInfo() : _info(NULL) {} 50 NNHInfo(I * info) : _info(info) {} 51 template<class NNBJ> void init_jet(NNBJ * briefjet, const fastjet::PseudoJet & jet, int index) { briefjet->init(jet, index, _info);} 52 private: 53 I * _info; 54 }; 55 56 /// @ingroup advanced_usage 57 /// Specialisation of NNHInfo for cases where there is no extra info 58 template<> class NNHInfo<_NoInfo> { 59 public: 60 NNHInfo() {} 61 NNHInfo(_NoInfo * ) {} 62 template<class NNBJ> void init_jet(NNBJ * briefjet, const fastjet::PseudoJet & jet, int index) { briefjet->init(jet, index);} 63 }; 64 37 65 38 66 //---------------------------------------------------------------------- … … 40 68 /// \class NNH 41 69 /// Help solve closest pair problems with generic interparticle and 42 /// beam distance (generic case) 43 /// 44 /// (see NNBase.hh for an introductory description) 45 /// 46 /// This variant provides an implementation for any distance measure. 47 /// It is templated with a BJ (brief jet) classand can be used with or 48 /// without an extra "Information" template, i.e. NNH<BJ> or NNH<BJ,I> 70 /// beam distance. 71 /// 72 /// Class to help solve closest pair problems with generic interparticle 73 /// distances and a beam distance, using Anderberg's Nearest Neighbour 74 /// Heuristic. 75 /// 76 /// It is templated with a BJ (brief jet) class --- BJ should 77 /// basically cache the minimal amount of information that is needed 78 /// to efficiently calculate interparticle distances and particle-beam 79 /// distances. 80 /// 81 /// This class can be used with or without an extra "Information" template, 82 /// i.e. NNB<BJ> or NNH<BJ,I> 49 83 /// 50 84 /// For the NNH<BJ> version of the class to function, BJ must provide … … 54 88 /// - double BJ::distance(const BJ * other_bj_jet); // distance between this and other_bj_jet 55 89 /// - double BJ::beam_distance() ; // distance to the beam 56 /// 90 /// 57 91 /// For the NNH<BJ,I> version to function, the BJ::init(...) member 58 92 /// must accept an extra argument … … 60 94 /// - void BJ::init(const PseudoJet & jet, I * info); // initialise with a PseudoJet + info 61 95 /// 62 /// NOTE: THE DISTANCE MUST BE SYMMETRIC I.E. SATISFY63 /// a.distance(b) == b.distance(a)96 /// where info might be a pointer to a class that contains, e.g., information 97 /// about R, or other parameters of the jet algorithm 64 98 /// 65 99 /// For an example of how the NNH<BJ> class is used, see the Jade (and … … 73 107 /// implementations. 74 108 /// 75 template<class BJ, class I = _NoInfo> class NNH : public NNBase<I> { 109 /// 110 /// Implementation note: this class derives from NNHInfo, which deals 111 /// with storing any global information that is needed during the clustering 112 113 template<class BJ, class I = _NoInfo> class NNH : public NNHInfo<I> { 76 114 public: 77 115 78 116 /// constructor with an initial set of jets (which will be assigned indices 79 117 /// 0 ... jets.size()-1 80 NNH(const std::vector<PseudoJet> & jets) : NNBase<I>() {start(jets);} 81 NNH(const std::vector<PseudoJet> & jets, I * info) : NNBase<I>(info) {start(jets);} 82 83 // initialisation from a given list of particles 118 NNH(const std::vector<PseudoJet> & jets) {start(jets);} 119 NNH(const std::vector<PseudoJet> & jets, I * info) : NNHInfo<I>(info) {start(jets);} 120 84 121 void start(const std::vector<PseudoJet> & jets); 85 122 -
external/fastjet/PseudoJet.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.cc 4100 2016-03-15 20:50:22Z salam $2 // $Id: PseudoJet.cc 3652 2014-09-03 13:31:13Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 409 409 string PseudoJet::description() const{ 410 410 // the "default" case of a PJ which does not belong to any cluster sequence 411 if (!_structure )411 if (!_structure()) 412 412 return "standard PseudoJet (with no associated clustering information)"; 413 413 414 414 // for all the other cases, the description comes from the structure 415 return _structure ->description();415 return _structure()->description(); 416 416 } 417 417 … … 429 429 // ClusterSequence 430 430 bool PseudoJet::has_associated_cluster_sequence() const{ 431 return (_structure ) && (_structure->has_associated_cluster_sequence());431 return (_structure()) && (_structure->has_associated_cluster_sequence()); 432 432 } 433 433 … … 446 446 // ClusterSequence that is still valid 447 447 bool PseudoJet::has_valid_cluster_sequence() const{ 448 return (_structure ) && (_structure->has_valid_cluster_sequence());448 return (_structure()) && (_structure->has_valid_cluster_sequence()); 449 449 } 450 450 … … 467 467 468 468 //---------------------------------------------------------------------- 469 // return true if there is some stru cture associated with this PseudoJet469 // return true if there is some strusture associated with this PseudoJet 470 470 bool PseudoJet::has_structure() const{ 471 return bool(_structure);471 return _structure(); 472 472 } 473 473 … … 478 478 // return NULL if there is no associated structure 479 479 const PseudoJetStructureBase* PseudoJet::structure_ptr() const { 480 //if (!_structure) return NULL;481 return _structure .get();480 if (!_structure()) return NULL; 481 return _structure(); 482 482 } 483 483 … … 493 493 // underlying structure. 494 494 PseudoJetStructureBase* PseudoJet::structure_non_const_ptr(){ 495 //if (!_structure) return NULL;496 return _structure .get();495 if (!_structure()) return NULL; 496 return _structure(); 497 497 } 498 498 … … 503 503 // throw an error if there is no associated structure 504 504 const PseudoJetStructureBase* PseudoJet::validated_structure_ptr() const { 505 if (!_structure )505 if (!_structure()) 506 506 throw Error("Trying to access the structure of a PseudoJet which has no associated structure"); 507 return _structure .get();507 return _structure(); 508 508 } 509 509 … … 573 573 // returns true if the PseudoJet has constituents 574 574 bool PseudoJet::has_constituents() const{ 575 return (_structure ) && (_structure->has_constituents());575 return (_structure()) && (_structure->has_constituents()); 576 576 } 577 577 … … 586 586 // returns true if the PseudoJet has support for exclusive subjets 587 587 bool PseudoJet::has_exclusive_subjets() const{ 588 return (_structure ) && (_structure->has_exclusive_subjets());588 return (_structure()) && (_structure->has_exclusive_subjets()); 589 589 } 590 590 … … 670 670 // ClusterSequence have no pieces and this methos will return false. 671 671 bool PseudoJet::has_pieces() const{ 672 return ((_structure ) && (_structure->has_pieces(*this)));672 return ((_structure()) && (_structure->has_pieces(*this))); 673 673 } 674 674 … … 766 766 767 767 768 769 //---------------------------------------------------------------------- 770 /// given a vector of values with a one-to-one correspondence with the 771 /// vector of objects, sort objects into an order such that the 772 /// associated values would be in increasing order 773 template<class T> vector<T> objects_sorted_by_values( 774 const vector<T> & objects, 775 const vector<double> & values) { 776 777 assert(objects.size() == values.size()); 778 779 // get a vector of indices 780 vector<int> indices(values.size()); 781 for (size_t i = 0; i < indices.size(); i++) {indices[i] = i;} 782 783 // sort the indices 784 sort_indices(indices, values); 785 786 // copy the objects 787 vector<T> objects_sorted(objects.size()); 788 789 // place the objects in the correct order 790 for (size_t i = 0; i < indices.size(); i++) { 791 objects_sorted[i] = objects[indices[i]]; 792 } 793 794 return objects_sorted; 795 } 796 768 797 //---------------------------------------------------------------------- 769 798 /// return a vector of jets sorted into decreasing kt2 -
external/fastjet/PseudoJet.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: PseudoJet.hh 3566 2014-08-11 15:36:34Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 437 437 /// retrieve a pointer to the (const) user information 438 438 const UserInfoBase * user_info_ptr() const{ 439 // the line below is not needed since the next line would anyway 440 // return NULL in that case 441 //if (!_user_info) return NULL; 439 if (!_user_info()) return NULL; 442 440 return _user_info.get(); 443 441 } … … 843 841 inline bool operator!=( const double val, const PseudoJet & a) {return !(a==val);} 844 842 845 /// returns the 4-vector dot product of a and b846 843 inline double dot_product(const PseudoJet & a, const PseudoJet & b) { 847 844 return a.E()*b.E() - a.px()*b.px() - a.py()*b.py() - a.pz()*b.pz(); … … 883 880 /// touch the values vector in the process). 884 881 template<class T> std::vector<T> objects_sorted_by_values(const std::vector<T> & objects, 885 const std::vector<double> & values) { 886 //assert(objects.size() == values.size()); 887 if (objects.size() != values.size()){ 888 throw Error("fastjet::objects_sorted_by_values(...): the size of the 'objects' vector must match the size of the 'values' vector"); 889 } 890 891 // get a vector of indices 892 std::vector<int> indices(values.size()); 893 for (size_t i = 0; i < indices.size(); i++) {indices[i] = i;} 894 895 // sort the indices 896 sort_indices(indices, values); 897 898 // copy the objects 899 std::vector<T> objects_sorted(objects.size()); 900 901 // place the objects in the correct order 902 for (size_t i = 0; i < indices.size(); i++) { 903 objects_sorted[i] = objects[indices[i]]; 904 } 905 906 return objects_sorted; 907 } 882 const std::vector<double> & values); 908 883 909 884 /// \if internal_doc … … 995 970 template<typename TransformerType> 996 971 bool PseudoJet::has_structure_of() const{ 997 if (!_structure ) return false;972 if (!_structure()) return false; 998 973 999 974 return dynamic_cast<const typename TransformerType::StructureType *>(_structure.get()) != 0; … … 1005 980 template<typename TransformerType> 1006 981 const typename TransformerType::StructureType & PseudoJet::structure_of() const{ 1007 if (!_structure )982 if (!_structure()) 1008 983 throw Error("Trying to access the structure of a PseudoJet without an associated structure"); 1009 984 -
external/fastjet/RangeDefinition.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: RangeDefinition.hh 4074 2016-03-08 09:09:25Z soyez$2 // $Id: RangeDefinition.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 35 35 #include "fastjet/Error.hh" 36 36 #include "fastjet/LimitedWarning.hh" 37 #include "fastjet/internal/deprecated.hh"38 37 #include<sstream> 39 38 #include<iostream> … … 52 51 public: 53 52 /// default constructor 54 FASTJET_DEPRECATED_MSG("RangeDefinition is deprecated since FastJet 3.0. Use the Selector mechanism instead")55 53 RangeDefinition() { _warn_deprecated(); } 56 54 57 55 /// constructor for a range definition given by |y|<rapmax 58 FASTJET_DEPRECATED_MSG("RangeDefinition is deprecated since FastJet 3.0. Use the Selector mechanism instead")59 56 RangeDefinition(double rapmax) { _warn_deprecated(); 60 57 assert ( rapmax > 0.0 ); -
external/fastjet/RectangularGrid.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: RectangularGrid.cc 377 3 2014-12-22 22:44:46Z soyez$2 // $Id: RectangularGrid.cc 3771 2014-12-22 21:13:22Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/RectangularGrid.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: RectangularGrid.hh 4047 2016-03-03 13:21:49Z soyez$5 // $Id: RectangularGrid.hh 3771 2014-12-22 21:13:22Z salam $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 118 118 RectangularGrid(); 119 119 120 virtual int n_tiles() const FASTJET_OVERRIDE{return _ntotal;}120 virtual int n_tiles() const {return _ntotal;} 121 121 122 virtual int n_good_tiles() const FASTJET_OVERRIDE{return _ngood;}122 virtual int n_good_tiles() const {return _ngood;} 123 123 124 124 // this was being kept inline, but it seems to make little 125 125 // difference whether it is or not (at least on Gavin's mac) 126 virtual int tile_index(const PseudoJet & p) const FASTJET_OVERRIDE;126 virtual int tile_index(const PseudoJet & p) const; 127 127 128 128 /// returns whether a given tile is good 129 129 // tested in "issue" 2014-08-08-testing-rect-grid 130 virtual bool tile_is_good(int itile) const FASTJET_OVERRIDE { 131 return _tile_selector.worker() ? _is_good[itile] : true; 132 } 130 virtual bool tile_is_good(int itile) const {return _tile_selector.worker() ? _is_good[itile] : true;} 133 131 134 132 /// returns the area of tile itile. 135 virtual double tile_area(int /* itile */) const FASTJET_OVERRIDE { 136 return mean_tile_area(); 137 } 133 virtual double tile_area(int /* itile */) const {return mean_tile_area();} 138 134 139 135 /// returns the mean area of tiles. 140 virtual double mean_tile_area() const FASTJET_OVERRIDE{return _dphi*_dy;};136 virtual double mean_tile_area() const {return _dphi*_dy;}; 141 137 142 138 /// returns a textual description of the grid 143 virtual std::string description() const FASTJET_OVERRIDE;139 virtual std::string description() const; 144 140 145 141 /// returns the minimum rapidity extent of the grid … … 153 149 154 150 /// returns true if the grid is in a suitably initialised state 155 virtual bool is_initialised() const FASTJET_OVERRIDE{return _ntotal > 0;}151 virtual bool is_initialised() const {return _ntotal > 0;} 156 152 157 153 private: -
external/fastjet/SharedPtr.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: SharedPtr.hh 4051 2016-03-03 14:33:38Z soyez$5 // $Id: SharedPtr.hh 3433 2014-07-23 08:17:03Z salam $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 38 38 // for our SharedPtr simply to be derived from the STL TR1 one. 39 39 // #define __FASTJET_USETR1SHAREDPTR 40 41 #include "fastjet/internal/deprecated.hh"42 40 43 41 #ifdef __FASTJET_USETR1SHAREDPTR … … 74 72 SharedPtr(const SharedPtr<T> & t) : std::tr1::shared_ptr<T>(t) {} 75 73 // for some reason operator() doesn't get inherited 76 #ifdef FASTJET_HAVE_EXPLICIT_FOR_OPERATORS77 explicit78 #endif79 74 inline operator bool() const {return (this->get()!=NULL);} 80 75 /// return the pointer we're pointing to … … 216 211 } 217 212 218 /// return the pointer we're pointing to 219 /// 220 /// Since FastJet 3.2.0, this is depracated since it is no longer 221 /// part of std::shared_ptr<T>. Use SharedPtr<T>::get() instead 222 FASTJET_DEPRECATED_MSG("Use SharedPtr<T>::get() instead") 213 /// return the pointer we're pointing to 223 214 T* operator ()() const{ 224 215 if (_ptr==NULL) return NULL; … … 266 257 /// conversion to bool 267 258 /// This will allow you to use the indirection nicely 268 #ifdef FASTJET_HAVE_EXPLICIT_FOR_OPERATORS269 explicit270 #endif271 259 inline operator bool() const{ 272 260 return (get()!=NULL); -
external/fastjet/TilingExtent.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: TilingExtent.cc 4034 2016-03-02 00:20:27Z soyez$2 // $Id: TilingExtent.cc 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 41 41 _determine_rapidity_extent(cs.jets()); 42 42 } 43 44 TilingExtent::TilingExtent(const vector<PseudoJet> &particles) { 45 _determine_rapidity_extent(particles); 46 } 47 43 48 44 void TilingExtent::_determine_rapidity_extent(const vector<PseudoJet> & particles) { 49 45 // have a binning of rapidity that goes from -nrap to nrap -
external/fastjet/VERSION
rb9ae4c3 rec5e04b 1 3. 2.11 3.1.3 -
external/fastjet/WrappedStructure.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: WrappedStructure.hh 4047 2016-03-03 13:21:49Z soyez$2 // $Id: WrappedStructure.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 57 57 WrappedStructure(const SharedPtr<PseudoJetStructureBase> & to_be_shared) 58 58 : _structure(to_be_shared){ 59 if (!_structure )59 if (!_structure()) 60 60 throw Error("Trying to construct a wrapped structure around an empty (NULL) structure"); 61 61 } … … 65 65 66 66 /// description 67 virtual std::string description() const FASTJET_OVERRIDE{67 virtual std::string description() const{ 68 68 return "PseudoJet wrapping the structure ("+_structure->description()+")"; 69 69 } … … 76 76 //------------------------------------------------------------- 77 77 /// returns true if there is an associated ClusterSequence 78 virtual bool has_associated_cluster_sequence() const FASTJET_OVERRIDE{78 virtual bool has_associated_cluster_sequence() const { 79 79 return _structure->has_associated_cluster_sequence(); 80 80 } … … 82 82 /// get a (const) pointer to the parent ClusterSequence (NULL if 83 83 /// inexistent) 84 virtual const ClusterSequence* associated_cluster_sequence() const FASTJET_OVERRIDE{84 virtual const ClusterSequence* associated_cluster_sequence() const{ 85 85 return _structure->associated_cluster_sequence(); 86 86 } … … 88 88 /// returns true if this PseudoJet has an associated and still 89 89 /// valid ClusterSequence. 90 virtual bool has_valid_cluster_sequence() const FASTJET_OVERRIDE{90 virtual bool has_valid_cluster_sequence() const { 91 91 return _structure->has_valid_cluster_sequence(); 92 92 } … … 94 94 /// if the jet has a valid associated cluster sequence then return a 95 95 /// pointer to it; otherwise throw an error 96 virtual const ClusterSequence * validated_cs() const FASTJET_OVERRIDE{96 virtual const ClusterSequence * validated_cs() const{ 97 97 return _structure->validated_cs(); 98 98 } … … 100 100 /// if the jet has valid area information then return a pointer to 101 101 /// the associated ClusterSequenceAreaBase object; otherwise throw an error 102 virtual const ClusterSequenceAreaBase * validated_csab() const FASTJET_OVERRIDE{102 virtual const ClusterSequenceAreaBase * validated_csab() const{ 103 103 return _structure->validated_csab(); 104 104 } … … 120 120 /// 121 121 /// By default, throws an Error 122 virtual bool has_partner(const PseudoJet &reference, PseudoJet &partner) const FASTJET_OVERRIDE{122 virtual bool has_partner(const PseudoJet &reference, PseudoJet &partner) const{ 123 123 return _structure->has_partner(reference, partner); 124 124 } … … 129 129 /// 130 130 /// By default, throws an Error 131 virtual bool has_child(const PseudoJet &reference, PseudoJet &child) const FASTJET_OVERRIDE{131 virtual bool has_child(const PseudoJet &reference, PseudoJet &child) const{ 132 132 return _structure->has_child(reference, child); 133 133 } … … 138 138 /// 139 139 /// By default, throws an Error 140 virtual bool has_parents(const PseudoJet &reference, 141 PseudoJet &parent1, PseudoJet &parent2) const FASTJET_OVERRIDE{ 140 virtual bool has_parents(const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const{ 142 141 return _structure->has_parents(reference, parent1, parent2); 143 142 } … … 147 146 /// 148 147 /// By default, throws an Error 149 virtual bool object_in_jet(const PseudoJet &reference, 150 const PseudoJet &jet) const FASTJET_OVERRIDE{ 148 virtual bool object_in_jet(const PseudoJet &reference, const PseudoJet &jet) const{ 151 149 return _structure->object_in_jet(reference, jet); 152 150 } … … 156 154 /// 157 155 /// false by default 158 virtual bool has_constituents() const FASTJET_OVERRIDE{156 virtual bool has_constituents() const { 159 157 return _structure->has_constituents(); 160 158 } … … 163 161 /// 164 162 /// By default, throws an Error 165 virtual std::vector<PseudoJet> constituents(const PseudoJet &reference) const FASTJET_OVERRIDE{163 virtual std::vector<PseudoJet> constituents(const PseudoJet &reference) const{ 166 164 return _structure->constituents(reference); 167 165 } 168 166 169 167 /// return true if the structure supports exclusive_subjets. 170 virtual bool has_exclusive_subjets() const FASTJET_OVERRIDE{168 virtual bool has_exclusive_subjets() const { 171 169 return _structure->has_exclusive_subjets(); 172 170 } … … 182 180 /// 183 181 /// By default, throws an Error 184 virtual std::vector<PseudoJet> exclusive_subjets(const PseudoJet &reference, 185 const double & dcut) const FASTJET_OVERRIDE{ 182 virtual std::vector<PseudoJet> exclusive_subjets(const PseudoJet &reference, const double & dcut) const{ 186 183 return _structure->exclusive_subjets(reference, dcut); 187 184 } … … 192 189 /// 193 190 /// By default, throws an Error 194 virtual int n_exclusive_subjets(const PseudoJet &reference, 195 const double & dcut) const FASTJET_OVERRIDE{ 191 virtual int n_exclusive_subjets(const PseudoJet &reference, const double & dcut) const{ 196 192 return _structure->n_exclusive_subjets(reference, dcut); 197 193 } … … 202 198 /// 203 199 /// By default, throws an Error 204 virtual std::vector<PseudoJet> exclusive_subjets_up_to (const PseudoJet &reference, 205 int nsub) const FASTJET_OVERRIDE{ 200 virtual std::vector<PseudoJet> exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const{ 206 201 return _structure->exclusive_subjets_up_to (reference, nsub); 207 202 } … … 211 206 /// 212 207 /// By default, throws an Error 213 virtual double exclusive_subdmerge(const PseudoJet &reference, int nsub) const FASTJET_OVERRIDE{208 virtual double exclusive_subdmerge(const PseudoJet &reference, int nsub) const{ 214 209 return _structure->exclusive_subdmerge(reference, nsub); 215 210 } … … 220 215 /// 221 216 /// By default, throws an Error 222 virtual double exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const FASTJET_OVERRIDE{217 virtual double exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const{ 223 218 return _structure->exclusive_subdmerge_max(reference, nsub); 224 219 } … … 231 226 /// 232 227 /// false by default 233 virtual bool has_pieces(const PseudoJet &reference) const FASTJET_OVERRIDE{228 virtual bool has_pieces(const PseudoJet &reference) const { 234 229 return _structure->has_pieces(reference); 235 230 } … … 238 233 /// 239 234 /// By default, throws an Error 240 virtual std::vector<PseudoJet> pieces(const PseudoJet &reference) const FASTJET_OVERRIDE{235 virtual std::vector<PseudoJet> pieces(const PseudoJet &reference) const{ 241 236 return _structure->pieces(reference); 242 237 } … … 249 244 /// 250 245 /// false by default 251 virtual bool has_area() const FASTJET_OVERRIDE{246 virtual bool has_area() const { 252 247 return _structure->has_area(); 253 248 } … … 256 251 /// 257 252 /// By default, throws an Error 258 virtual double area(const PseudoJet &reference) const FASTJET_OVERRIDE{253 virtual double area(const PseudoJet &reference) const{ 259 254 return _structure->area(reference); 260 255 } … … 264 259 /// 265 260 /// By default, throws an Error 266 virtual double area_error(const PseudoJet &reference) const FASTJET_OVERRIDE{261 virtual double area_error(const PseudoJet &reference) const{ 267 262 return _structure->area_error(reference); 268 263 } … … 271 266 /// 272 267 /// By default, throws an Error 273 virtual PseudoJet area_4vector(const PseudoJet &reference) const FASTJET_OVERRIDE{268 virtual PseudoJet area_4vector(const PseudoJet &reference) const{ 274 269 return _structure->area_4vector(reference); 275 270 } … … 278 273 /// 279 274 /// By default, throws an Error 280 virtual bool is_pure_ghost(const PseudoJet &reference) const FASTJET_OVERRIDE{275 virtual bool is_pure_ghost(const PseudoJet &reference) const{ 281 276 return _structure->is_pure_ghost(reference); 282 277 } -
external/fastjet/config_auto.h
rb9ae4c3 rec5e04b 64 64 #endif 65 65 66 /* compile the deprecated parts of the interface using auto-ptr */ 67 #ifndef FASTJET_HAVE_AUTO_PTR_INTERFACE 68 #define FASTJET_HAVE_AUTO_PTR_INTERFACE /**/ 69 #endif 70 71 /* compiler supports c++14 deprecated keyword */ 72 /* #undef HAVE_CXX14_DEPRECATED */ 66 /* defined if C++11 features have been enabled */ 67 /* #undef HAVE_CXX11_FEATURES */ 73 68 74 69 /* defined if demangling is enabled at configure time and is supported through … … 86 81 #endif 87 82 88 /* compiler supports the "explicit" keyword for operators */89 /* #undef HAVE_EXPLICIT_FOR_OPERATORS */90 91 /* compiler supports GNU c++ deprecated attribute */92 #ifndef FASTJET_HAVE_GNUCXX_DEPRECATED93 #define FASTJET_HAVE_GNUCXX_DEPRECATED /**/94 #endif95 96 83 /* Define to 1 if you have the <inttypes.h> header file. */ 97 84 #ifndef FASTJET_HAVE_INTTYPES_H … … 109 96 #endif 110 97 111 /* compiler supports the "override" keyword */112 /* #undef HAVE_OVERRIDE */113 114 98 /* Define to 1 if you have the <stdint.h> header file. */ 115 99 #ifndef FASTJET_HAVE_STDINT_H … … 147 131 #endif 148 132 149 /* Define to the sub-directory where libtool stores uninstalled libraries. */ 133 /* Define to the sub-directory in which libtool stores uninstalled libraries. 134 */ 150 135 #ifndef FASTJET_LT_OBJDIR 151 136 #define FASTJET_LT_OBJDIR ".libs/" … … 169 154 /* Define to the full name and version of this package. */ 170 155 #ifndef FASTJET_PACKAGE_STRING 171 #define FASTJET_PACKAGE_STRING "FastJet 3. 2.1"156 #define FASTJET_PACKAGE_STRING "FastJet 3.1.3" 172 157 #endif 173 158 … … 177 162 #endif 178 163 179 /* Define to the home page for this package. */180 #ifndef FASTJET_PACKAGE_URL181 #define FASTJET_PACKAGE_URL ""182 #endif183 184 164 /* Define to the version of this package. */ 185 165 #ifndef FASTJET_PACKAGE_VERSION 186 #define FASTJET_PACKAGE_VERSION "3. 2.1"166 #define FASTJET_PACKAGE_VERSION "3.1.3" 187 167 #endif 188 168 … … 194 174 /* Version number of package */ 195 175 #ifndef FASTJET_VERSION 196 #define FASTJET_VERSION "3. 2.1"176 #define FASTJET_VERSION "3.1.3" 197 177 #endif 198 178 … … 204 184 /* Minor version of this package */ 205 185 #ifndef FASTJET_VERSION_MINOR 206 #define FASTJET_VERSION_MINOR 2186 #define FASTJET_VERSION_MINOR 1 207 187 #endif 208 188 209 189 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 210 190 #ifndef FASTJET_VERSION_NUMBER 211 #define FASTJET_VERSION_NUMBER 30 201191 #define FASTJET_VERSION_NUMBER 30103 212 192 #endif 213 193 214 194 /* Patch version of this package */ 215 195 #ifndef FASTJET_VERSION_PATCHLEVEL 216 #define FASTJET_VERSION_PATCHLEVEL 1196 #define FASTJET_VERSION_PATCHLEVEL 3 217 197 #endif 218 198 -
external/fastjet/config_raw.h
rb9ae4c3 rec5e04b 38 38 #define ENABLE_PLUGIN_TRACKJET /**/ 39 39 40 /* compile the deprecated parts of the interface using auto-ptr */ 41 #define HAVE_AUTO_PTR_INTERFACE /**/ 42 43 /* compiler supports c++14 deprecated keyword */ 44 /* #undef HAVE_CXX14_DEPRECATED */ 40 /* defined if C++11 features have been enabled */ 41 /* #undef HAVE_CXX11_FEATURES */ 45 42 46 43 /* defined if demangling is enabled at configure time and is supported through … … 54 51 #define HAVE_EXECINFO_H 1 55 52 56 /* compiler supports the "explicit" keyword for operators */57 /* #undef HAVE_EXPLICIT_FOR_OPERATORS */58 59 /* compiler supports GNU c++ deprecated attribute */60 #define HAVE_GNUCXX_DEPRECATED /**/61 62 53 /* Define to 1 if you have the <inttypes.h> header file. */ 63 54 #define HAVE_INTTYPES_H 1 … … 68 59 /* Define to 1 if you have the <memory.h> header file. */ 69 60 #define HAVE_MEMORY_H 1 70 71 /* compiler supports the "override" keyword */72 /* #undef HAVE_OVERRIDE */73 61 74 62 /* Define to 1 if you have the <stdint.h> header file. */ … … 93 81 #define HAVE_UNISTD_H 1 94 82 95 /* Define to the sub-directory where libtool stores uninstalled libraries. */ 83 /* Define to the sub-directory in which libtool stores uninstalled libraries. 84 */ 96 85 #define LT_OBJDIR ".libs/" 97 86 … … 106 95 107 96 /* Define to the full name and version of this package. */ 108 #define PACKAGE_STRING "FastJet 3. 2.1"97 #define PACKAGE_STRING "FastJet 3.1.3" 109 98 110 99 /* Define to the one symbol short name of this package. */ 111 100 #define PACKAGE_TARNAME "fastjet" 112 101 113 /* Define to the home page for this package. */114 #define PACKAGE_URL ""115 116 102 /* Define to the version of this package. */ 117 #define PACKAGE_VERSION "3. 2.1"103 #define PACKAGE_VERSION "3.1.3" 118 104 119 105 /* Define to 1 if you have the ANSI C header files. */ … … 121 107 122 108 /* Version number of package */ 123 #define VERSION "3. 2.1"109 #define VERSION "3.1.3" 124 110 125 111 /* Major version of this package */ … … 127 113 128 114 /* Minor version of this package */ 129 #define VERSION_MINOR 2115 #define VERSION_MINOR 1 130 116 131 117 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 132 #define VERSION_NUMBER 30 201118 #define VERSION_NUMBER 30103 133 119 134 120 /* Patch version of this package */ 135 #define VERSION_PATCHLEVEL 1121 #define VERSION_PATCHLEVEL 3 136 122 137 123 /* Pre-release version of this package */ -
external/fastjet/config_win.h
rb9ae4c3 rec5e04b 1 #define FASTJET_PACKAGE_STRING "FastJet 3.2.1" 2 #define FASTJET_PACKAGE_VERSION "3.2.1" 3 #define FASTJET_VERSION "3.2.1" 4 #define FASTJET_VERSION_MAJOR 3 5 #define FASTJET_VERSION_MINOR 2 6 #define FASTJET_VERSION_PATCHLEVEL 1 7 #define FASTJET_VERSION_NUMBER 30201 1 #define FASTJET_PACKAGE_STRING "FastJet 3.1.3" 2 #define FASTJET_PACKAGE_VERSION "3.1.3" 3 #define FASTJET_VERSION "3.1.3" 4 #define FASTJET_VERSION_MAJOR 3.1.3 5 #define FASTJET_VERSION_MINOR 3.1.3 6 #define FASTJET_VERSION_PATCHLEVEL 3.1.3 7 #define FASTJET_VERSION_PRERELEASE "3.1.3" 8 #define FASTJET_VERSION_NUMBER 00000 8 9 9 10 /* The ATLASCone plugin is disabled by default*/ -
external/fastjet/contribs/Nsubjettiness/ChangeLog
rb9ae4c3 rec5e04b 1 2016-06-08 <jthaler>2 Fixed bug in MeasureDefinition.cc where axes were not completely defined,3 leading to problems with multi-pass axes4 2016-04-04 <jthaler>5 Fixed Njettiness.cc to give value of _current_tau_components even if less6 than N constituents7 Delete extraneous code in example_advanced_usage.cc8 2016-03-29 <jthaler>9 Update for FJ 3.2.0 to deal with SharedPtr () deprecation10 1 2015-09-28 <jthaler> 11 2 Updated NEWS for 2.2.1 release. -
external/fastjet/contribs/Nsubjettiness/MeasureDefinition.cc
rb9ae4c3 rec5e04b 5 5 // Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason 6 6 // 7 // $Id: MeasureDefinition.cc 946 2016-06-14 19:11:27Z jthaler $7 // $Id: MeasureDefinition.cc 819 2015-06-12 21:23:24Z jthaler $ 8 8 //---------------------------------------------------------------------- 9 9 // This file is part of FastJet contrib. … … 524 524 old_axes[k].set_rap( seedAxes[k].rap() ); 525 525 old_axes[k].set_phi( seedAxes[k].phi() ); 526 old_axes[k].set_mom( seedAxes[k].modp() );527 526 } 528 527 -
external/fastjet/contribs/Nsubjettiness/NEWS
rb9ae4c3 rec5e04b 32 32 N-jettiness as a jet finder using the new ConicalGeometric measure. 33 33 34 -- 2.2.4: (Jun 14, 2016) Fixed bug where multi-pass minimization could yield35 pathological axes (thanks Gregory Soyez)36 -- 2.2.3: (Apr 4, 2016) Fixed bug where a jet with fewer than N constituents37 could give random value for tau_N (thanks Nathan Hartland)38 -- 2.2.2: (Mar 29, 2016) Updating SharedPtr interface for FJ 3.239 34 -- 2.2.1: (Sept 28, 2015) Fix of small Makefile bug 40 35 -- 2.2.0: (Sept 7, 2015) Inclusion of the XCone jet algorithm, as well as a -
external/fastjet/contribs/Nsubjettiness/Njettiness.cc
rb9ae4c3 rec5e04b 5 5 // Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason 6 6 // 7 // $Id: Njettiness.cc 933 2016-04-04 22:23:32Z jthaler $7 // $Id: Njettiness.cc 821 2015-06-15 18:50:53Z jthaler $ 8 8 //---------------------------------------------------------------------- 9 9 // This file is part of FastJet contrib. … … 46 46 // setAxes for Manual mode 47 47 void Njettiness::setAxes(const std::vector<fastjet::PseudoJet> & myAxes) { 48 if (_axes_def ->needsManualAxes()) {48 if (_axes_def()->needsManualAxes()) { 49 49 _currentAxes = myAxes; 50 50 } else { … … 59 59 _currentAxes = inputJets; 60 60 _currentAxes.resize(n_jets,fastjet::PseudoJet(0.0,0.0,0.0,0.0)); 61 62 // Put in empty tau components 63 std::vector<double> dummy_jet_pieces; 64 _current_tau_components = TauComponents(UNDEFINED_SHAPE, 65 dummy_jet_pieces, 66 0.0, 67 1.0, 68 _currentAxes, 69 _currentAxes 70 ); 61 _current_tau_components = TauComponents(); 71 62 _seedAxes = _currentAxes; 72 63 _currentPartition = TauPartition(n_jets); // empty partition 73 64 } else { 74 assert(_axes_def ); // this should never fail.65 assert(_axes_def()); // this should never fail. 75 66 76 if (_axes_def ->needsManualAxes()) { // if manual mode67 if (_axes_def()->needsManualAxes()) { // if manual mode 77 68 // take current axes as seeds 78 69 _seedAxes = _currentAxes; 79 70 80 71 // refine axes if requested 81 _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def .get());72 _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def()); 82 73 } else { // non-manual axes 83 74 84 75 //set starting point for minimization 85 _seedAxes = _axes_def->get_starting_axes(n_jets,inputJets,_measure_def .get());76 _seedAxes = _axes_def->get_starting_axes(n_jets,inputJets,_measure_def()); 86 77 87 78 // refine axes as needed 88 _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def .get());79 _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def()); 89 80 90 81 // NOTE: The above two function calls are combined in "AxesDefinition::get_axes" -
external/fastjet/contribs/Nsubjettiness/VERSION
rb9ae4c3 rec5e04b 1 2.2. 41 2.2.1 -
external/fastjet/internal/ClosestPair2D.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.hh 4059 2016-03-03 20:49:48Z soyez$2 // $Id: ClosestPair2D.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 38 38 #include "fastjet/internal/SearchTree.hh" 39 39 #include "fastjet/internal/MinHeap.hh" 40 #include "fastjet/SharedPtr.hh"41 40 42 41 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh … … 135 134 136 135 137 triplet< SharedPtr<Tree> > _trees;138 SharedPtr<MinHeap>_heap;136 triplet<std::auto_ptr<Tree> > _trees; 137 std::auto_ptr<MinHeap> _heap; 139 138 std::vector<Point> _points; 140 139 std::stack<Point *> _available_points; -
external/fastjet/internal/ClosestPair2DBase.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2DBase.hh 4049 2016-03-03 13:45:47Z salam $2 // $Id: ClosestPair2DBase.hh 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 48 48 double x, y; 49 49 50 Coord2D() : x(0.0), y(0.0){};50 Coord2D() {}; 51 51 52 52 Coord2D(double a, double b): x(a), y(b) {}; -
external/fastjet/internal/DnnPlane.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.hh 391 7 2015-07-03 14:07:50Z salam $2 // $Id: DnnPlane.hh 3918 2015-07-03 14:19:13Z salam $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/internal/LazyTiling9Alt.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9Alt.hh 380 7 2015-02-20 11:16:55Z soyez $5 // $Id: LazyTiling9Alt.hh 3808 2015-02-20 11:24:53Z soyez $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/internal/TilingExtent.hh
rb9ae4c3 rec5e04b 5 5 6 6 //FJSTARTHEADER 7 // $Id: TilingExtent.hh 4034 2016-03-02 00:20:27Z soyez$7 // $Id: TilingExtent.hh 3433 2014-07-23 08:17:03Z salam $ 8 8 // 9 9 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 46 46 TilingExtent(ClusterSequence & cs); 47 47 48 /// constructor that takes a list of PseudoJets49 TilingExtent(const std::vector<PseudoJet> &particles);50 51 48 /// returns the suggested minimum rapidity for the tiling 52 49 double minrap() const {return _minrap;} -
external/fastjet/internal/base.hh
rb9ae4c3 rec5e04b 1 1 2 2 //FJSTARTHEADER 3 // $Id: base.hh 4047 2016-03-03 13:21:49Z soyez$3 // $Id: base.hh 3433 2014-07-23 08:17:03Z salam $ 4 4 // 5 5 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 33 33 #define __FASTJET_FASTJET_BASE_HH__ 34 34 35 #include "fastjet/config.h"36 37 35 /// \namespace fastjet 38 36 /// the FastJet namespace … … 45 43 #define FASTJET_END_NAMESPACE } 46 44 47 // define a macro to mark virtual function in derived classes as48 // overriding the base-class definition49 #ifdef FASTJET_HAVE_OVERRIDE50 #define FASTJET_OVERRIDE override51 #else52 #define FASTJET_OVERRIDE53 #endif54 55 45 #endif // __FASTJET_FASTJET_BASE_HH__ -
external/fastjet/plugins/Jade/JadePlugin.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: JadePlugin.cc 4063 2016-03-04 10:31:40Z salam $2 // $Id: JadePlugin.cc 3433 2014-07-23 08:17:03Z salam $ 3 3 // 4 4 // Copyright (c) 2007-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 35 35 //#include "fastjet/internal/ClusterSequence_N2.icc" 36 36 #include "fastjet/NNH.hh" 37 #include "fastjet/NNFJN2Plain.hh"38 37 39 38 // other stuff … … 52 51 //---------------------------------------------------------------------- 53 52 /// class to help run a JADE algorithm 54 ///55 /// This class works both with NNH and NNFJN2Plain clustering56 /// helpers. They both use the same init(...) call, but for the57 /// clustering:58 ///59 /// - NNH uses distance(...) and beam_distance()60 /// - NNFJPlainN2 uses geometrical_distance(...), momentum_factor()61 /// and geometrical_beam_distance()62 ///63 /// For NNFJPlainN2 the 2 E_i E_j (1-cos theta_{ij}) factor64 /// gets broken up into65 ///66 /// sqrt(2)*min(E_i,E_j) * [sqrt(2)*max(E_i,E_j) (1 - cos \theta_{ij})]67 ///68 /// The second factor is what we call the "geometrical_distance" even69 /// though it isn't actually purely geometrical. But the fact that it70 /// gets multiplied by min(E_i,E_j) to get the full distance is71 /// sufficient for the validity of the FJ lemma, allowing for the use72 /// of NNFJN2Plain.73 53 class JadeBriefJet { 74 54 public: … … 89 69 } 90 70 91 double geometrical_distance(const JadeBriefJet * jet) const {92 double dij = 1 - nx*jet->nx93 - ny*jet->ny94 - nz*jet->nz;95 dij *= max(rt2E,jet->rt2E);96 return dij;97 }98 99 double momentum_factor() const {100 return rt2E;101 }102 103 71 double beam_distance() const { 104 72 return numeric_limits<double>::max(); 105 73 } 106 74 107 double geometrical_beam_distance() const {108 // get a number that is almost the same as max(), just a little109 // smaller so as to ensure that when we divide it by rt2E and then110 // multiply it again, we won't get an overflow111 const double almost_max = numeric_limits<double>::max() * (1 - 1e-13);112 return almost_max / rt2E;113 }114 115 75 private: 116 76 double rt2E, nx, ny, nz; … … 122 82 ostringstream desc; 123 83 desc << "e+e- JADE algorithm plugin"; 124 switch(_strategy) {125 case strategy_NNH:126 desc << ", using NNH strategy"; break;127 case strategy_NNFJN2Plain:128 desc << ", using NNFJN2Plain strategy"; break;129 default:130 throw Error("Unrecognized strategy in JadePlugin");131 }132 133 84 return desc.str(); 134 85 } 135 86 136 // //---------------------------------------------------------------------- 137 // void JadePlugin::run_clustering(ClusterSequence & cs) const { 138 // int njets = cs.jets().size(); 139 // 140 // //SharedPtr<NNBase<> > nn; 141 // NNBase<> * nn; 142 // switch(_strategy) { 143 // case strategy_NNH: 144 // //nn.reset(new NNH<JadeBriefJet>(cs.jets())); 145 // nn = new NNH<JadeBriefJet>(cs.jets()); 146 // break; 147 // case strategy_NNFJN2Plain: 148 // //nn.reset(new NNFJN2Plain<JadeBriefJet>(cs.jets())); 149 // nn = new NNFJN2Plain<JadeBriefJet>(cs.jets()); 150 // break; 151 // default: 152 // throw Error("Unrecognized strategy in JadePlugin"); 153 // } 154 // //NNH<JadeBriefJet> nnh(cs.jets()); 155 // //NNFJN2Plain<JadeBriefJet> nnh(cs.jets()); 156 // 157 // // if testing against Hoeth's implementation, need to rescale the 158 // // dij by Q^2. 159 // //double Q2 = cs.Q2(); 160 // 161 // while (njets > 0) { 162 // int i, j, k; 163 // double dij = nn->dij_min(i, j); 164 // 165 // if (j >= 0) { 166 // cs.plugin_record_ij_recombination(i, j, dij, k); 167 // nn->merge_jets(i, j, cs.jets()[k], k); 168 // } else { 169 // double diB = cs.jets()[i].E()*cs.jets()[i].E(); // get new diB 170 // cs.plugin_record_iB_recombination(i, diB); 171 // nn->remove_jet(i); 172 // } 173 // njets--; 174 // } 175 // delete nn; 176 // } 177 178 179 template<class N> void JadePlugin::_actual_run_clustering(ClusterSequence & cs) const { 180 87 //---------------------------------------------------------------------- 88 void JadePlugin::run_clustering(ClusterSequence & cs) const { 181 89 int njets = cs.jets().size(); 182 183 N nn(cs.jets()); 90 NNH<JadeBriefJet> nnh(cs.jets()); 184 91 185 92 // if testing against Hoeth's implementation, need to rescale the … … 189 96 while (njets > 0) { 190 97 int i, j, k; 191 double dij = nn .dij_min(i, j);98 double dij = nnh.dij_min(i, j); 192 99 193 100 if (j >= 0) { 194 101 cs.plugin_record_ij_recombination(i, j, dij, k); 195 nn .merge_jets(i, j, cs.jets()[k], k);102 nnh.merge_jets(i, j, cs.jets()[k], k); 196 103 } else { 197 104 double diB = cs.jets()[i].E()*cs.jets()[i].E(); // get new diB 198 105 cs.plugin_record_iB_recombination(i, diB); 199 nn .remove_jet(i);106 nnh.remove_jet(i); 200 107 } 201 108 njets--; 202 109 } 203 204 110 } 205 111 206 //----------------------------------------------------------------------207 void JadePlugin::run_clustering(ClusterSequence & cs) const {208 209 switch(_strategy) {210 case strategy_NNH:211 _actual_run_clustering<NNH<JadeBriefJet> >(cs);212 break;213 case strategy_NNFJN2Plain:214 _actual_run_clustering<NNFJN2Plain<JadeBriefJet> >(cs);215 break;216 default:217 throw Error("Unrecognized strategy in JadePlugin");218 }219 }220 221 222 112 FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh -
external/fastjet/plugins/Jade/fastjet/JadePlugin.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: JadePlugin.hh 4061 2016-03-03 21:51:25Z salam $5 // $Id: JadePlugin.hh 3433 2014-07-23 08:17:03Z salam $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 77 77 class JadePlugin : public JetDefinition::Plugin { 78 78 public: 79 /// enum that contains the two clustering strategy options; for80 /// higher multiplicities, strategy_NNFJN2Plain is about a factor of81 /// two faster.82 enum Strategy { strategy_NNH = 0, strategy_NNFJN2Plain = 1};83 84 79 /// Main constructor for the Jade Plugin class. 85 JadePlugin ( Strategy strategy = strategy_NNFJN2Plain) : _strategy(strategy){}80 JadePlugin (){} 86 81 87 82 /// copy constructor … … 105 100 private: 106 101 107 template<class N> void _actual_run_clustering(ClusterSequence &) const;108 109 Strategy _strategy;110 102 }; 111 103 -
external/fastjet/plugins/SISCone/SISConePlugin.cc
rb9ae4c3 rec5e04b 78 78 // static members declaration // 79 79 ///////////////////////////////////////////// 80 SharedPtr<SISConePlugin> SISConePlugin::stored_plugin;81 SharedPtr<std::vector<PseudoJet> > SISConePlugin::stored_particles;82 SharedPtr<Csiscone> SISConePlugin::stored_siscone;80 std::auto_ptr<SISConePlugin> SISConePlugin::stored_plugin; 81 std::auto_ptr<std::vector<PseudoJet> > SISConePlugin::stored_particles; 82 std::auto_ptr<Csiscone> SISConePlugin::stored_siscone; 83 83 84 84 -
external/fastjet/plugins/SISCone/config.h
rb9ae4c3 rec5e04b 1 #ifndef _SISCONE_CONFIG_H 2 #define _SISCONE_CONFIG_H 1 3 4 /* siscone/config.h. Generated automatically at end of configure. */ 5 /* siscone/config_raw.h. Generated from config.h.in by configure. */ 1 /* siscone/config.h. Generated from config.h.in by configure. */ 6 2 /* config.h.in. Generated from configure.ac by autoheader. */ 7 3 8 4 /* Define to 1 if you have the <dlfcn.h> header file. */ 9 #ifndef SISCONE_HAVE_DLFCN_H 10 #define SISCONE_HAVE_DLFCN_H 1 11 #endif 5 #define HAVE_DLFCN_H 1 12 6 13 7 /* Define to 1 if you have the <inttypes.h> header file. */ 14 #ifndef SISCONE_HAVE_INTTYPES_H 15 #define SISCONE_HAVE_INTTYPES_H 1 16 #endif 8 #define HAVE_INTTYPES_H 1 17 9 18 10 /* Define to 1 if you have the `m' library (-lm). */ 19 #ifndef SISCONE_HAVE_LIBM 20 #define SISCONE_HAVE_LIBM 1 21 #endif 11 #define HAVE_LIBM 1 22 12 23 13 /* Define to 1 if you have the <memory.h> header file. */ 24 #ifndef SISCONE_HAVE_MEMORY_H 25 #define SISCONE_HAVE_MEMORY_H 1 26 #endif 14 #define HAVE_MEMORY_H 1 27 15 28 16 /* Define to 1 if you have the <stdint.h> header file. */ 29 #ifndef SISCONE_HAVE_STDINT_H 30 #define SISCONE_HAVE_STDINT_H 1 31 #endif 17 #define HAVE_STDINT_H 1 32 18 33 19 /* Define to 1 if you have the <stdlib.h> header file. */ 34 #ifndef SISCONE_HAVE_STDLIB_H 35 #define SISCONE_HAVE_STDLIB_H 1 36 #endif 20 #define HAVE_STDLIB_H 1 37 21 38 22 /* Define to 1 if you have the <strings.h> header file. */ 39 #ifndef SISCONE_HAVE_STRINGS_H 40 #define SISCONE_HAVE_STRINGS_H 1 41 #endif 23 #define HAVE_STRINGS_H 1 42 24 43 25 /* Define to 1 if you have the <string.h> header file. */ 44 #ifndef SISCONE_HAVE_STRING_H 45 #define SISCONE_HAVE_STRING_H 1 46 #endif 26 #define HAVE_STRING_H 1 47 27 48 28 /* Define to 1 if you have the <sys/stat.h> header file. */ 49 #ifndef SISCONE_HAVE_SYS_STAT_H 50 #define SISCONE_HAVE_SYS_STAT_H 1 51 #endif 29 #define HAVE_SYS_STAT_H 1 52 30 53 31 /* Define to 1 if you have the <sys/types.h> header file. */ 54 #ifndef SISCONE_HAVE_SYS_TYPES_H 55 #define SISCONE_HAVE_SYS_TYPES_H 1 56 #endif 32 #define HAVE_SYS_TYPES_H 1 57 33 58 34 /* Define to 1 if you have the <unistd.h> header file. */ 59 #ifndef SISCONE_HAVE_UNISTD_H 60 #define SISCONE_HAVE_UNISTD_H 1 61 #endif 35 #define HAVE_UNISTD_H 1 62 36 63 /* Define to the sub-directory where libtool stores uninstalled libraries. */ 64 #ifndef SISCONE_LT_OBJDIR 65 #define SISCONE_LT_OBJDIR ".libs/" 66 #endif 37 /* Define to the sub-directory in which libtool stores uninstalled libraries. 38 */ 39 #define LT_OBJDIR ".libs/" 67 40 68 41 /* Name of package */ 69 #ifndef SISCONE_PACKAGE 70 #define SISCONE_PACKAGE "siscone" 71 #endif 42 #define PACKAGE "siscone" 72 43 73 44 /* Define to the address where bug reports for this package should be sent. */ 74 #ifndef SISCONE_PACKAGE_BUGREPORT 75 #define SISCONE_PACKAGE_BUGREPORT "" 76 #endif 45 #define PACKAGE_BUGREPORT "" 77 46 78 47 /* Define to the full name of this package. */ 79 #ifndef SISCONE_PACKAGE_NAME 80 #define SISCONE_PACKAGE_NAME "SISCone" 81 #endif 48 #define PACKAGE_NAME "SISCone" 82 49 83 50 /* Define to the full name and version of this package. */ 84 #ifndef SISCONE_PACKAGE_STRING 85 #define SISCONE_PACKAGE_STRING "SISCone 3.0.3" 86 #endif 51 #define PACKAGE_STRING "SISCone 3.0.0" 87 52 88 53 /* Define to the one symbol short name of this package. */ 89 #ifndef SISCONE_PACKAGE_TARNAME 90 #define SISCONE_PACKAGE_TARNAME "siscone" 91 #endif 92 93 /* Define to the home page for this package. */ 94 #ifndef SISCONE_PACKAGE_URL 95 #define SISCONE_PACKAGE_URL "" 96 #endif 54 #define PACKAGE_TARNAME "siscone" 97 55 98 56 /* Define to the version of this package. */ 99 #ifndef SISCONE_PACKAGE_VERSION 100 #define SISCONE_PACKAGE_VERSION "3.0.3" 101 #endif 57 #define PACKAGE_VERSION "3.0.0" 102 58 103 59 /* Define to 1 if you have the ANSI C header files. */ 104 #ifndef SISCONE_STDC_HEADERS 105 #define SISCONE_STDC_HEADERS 1 106 #endif 107 108 /* use unique_ptr instead of auto_ptr */ 109 /* #undef USES_UNIQUE_PTR_AS_AUTO_PTR */ 60 #define STDC_HEADERS 1 110 61 111 62 /* Version number of package */ 112 #ifndef SISCONE_VERSION 113 #define SISCONE_VERSION "3.0.3" 114 #endif 115 116 /* once: _SISCONE_CONFIG_H */ 117 #endif 63 #define VERSION "3.0.0" -
external/fastjet/plugins/SISCone/defines.h
rb9ae4c3 rec5e04b 22 22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 23 23 // // 24 // $Revision:: 401$//25 // $Date:: 20 16-05-19 16:44:37 +0200 (Thu, 19 May 2016) $//24 // $Revision:: 225 $// 25 // $Date:: 2008-05-20 16:59:47 +0200 (Tue, 20 May 2008) $// 26 26 /////////////////////////////////////////////////////////////////////////////// 27 27 … … 35 35 // defined in siscone.h 36 36 // Otherwise, config.h 37 // It is also defined as " SISCONE_PACKAGE_NAME" in config.h but this method37 // It is also defined as "PACKAGE_NAME" in config.h but this method 38 38 // might lead to conflicts 39 //#define PROGRAM SISCONE_PACKAGE_NAME39 //#define PROGRAM PACKAGE_NAME 40 40 41 41 // program version … … 43 43 // siscone::siscone_version 44 44 // defined in siscone.h 45 // It is also defined as " SISCONE_VERSION" in config.h but this method45 // It is also defined as "VERSION" in config.h but this method 46 46 // might lead to conflicts 47 47 -
external/fastjet/plugins/SISCone/fastjet/SISConePlugin.hh
rb9ae4c3 rec5e04b 191 191 // part needed for the cache 192 192 // variables for caching the results and the input 193 static SharedPtr<SISConePlugin > stored_plugin;194 static SharedPtr<std::vector<PseudoJet> > stored_particles;195 static SharedPtr<siscone::Csiscone > stored_siscone;193 static std::auto_ptr<SISConePlugin > stored_plugin; 194 static std::auto_ptr<std::vector<PseudoJet> > stored_particles; 195 static std::auto_ptr<siscone::Csiscone > stored_siscone; 196 196 }; 197 197 -
external/fastjet/plugins/SISCone/fastjet/SISConeSphericalPlugin.hh
rb9ae4c3 rec5e04b 166 166 // part needed for the cache 167 167 // variables for caching the results and the input 168 static SharedPtr<SISConeSphericalPlugin > stored_plugin;169 static SharedPtr<std::vector<PseudoJet> > stored_particles;170 static SharedPtr<siscone_spherical::CSphsiscone> stored_siscone;168 static std::auto_ptr<SISConeSphericalPlugin > stored_plugin; 169 static std::auto_ptr<std::vector<PseudoJet> > stored_particles; 170 static std::auto_ptr<siscone_spherical::CSphsiscone> stored_siscone; 171 171 }; 172 172 -
external/fastjet/plugins/SISCone/siscone.cc
rb9ae4c3 rec5e04b 21 21 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 22 22 // // 23 // $Revision:: 403$//24 // $Date:: 201 6-05-19 16:52:05 +0200 (Thu, 19 May 2016) $//23 // $Revision:: 371 $// 24 // $Date:: 2014-09-09 10:05:32 +0200 (Tue, 09 Sep 2014) $// 25 25 /////////////////////////////////////////////////////////////////////////////// 26 26 27 //#ifdef HAVE_CONFIG_H 27 28 #include "config.h" 29 //#else 30 //#define PACKAGE_NAME "SISCone" 31 //#define VERSION "3.0.0" 32 //#warning "No config.h file available, using preset values" 33 //#endif 34 28 35 #include "ranlux.h" 29 36 #include "momentum.h" … … 247 254 // print the banner 248 255 if (_banner_ostr != 0){ 249 ios::fmtflags flags_to_restore(_banner_ostr->flags());250 251 256 (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl; 252 257 (*_banner_ostr) << "# SISCone version " << setw(28) << left << siscone_version() << "o" << endl; … … 264 269 265 270 _banner_ostr->flush(); 266 _banner_ostr->flags(flags_to_restore);267 271 } 268 272 } … … 275 279 * return SISCone package name. 276 280 * This is nothing but "SISCone", it is a replacement to the 277 * SISCONE_PACKAGE_NAME string defined in config.h and which is not278 * guaranteed to be public.281 * PACKAGE_NAME string defined in config.h and which is not 282 * public by default. 279 283 * return the SISCone name as a string 280 284 */ 281 285 string siscone_package_name(){ 282 return SISCONE_PACKAGE_NAME;286 return PACKAGE_NAME; 283 287 } 284 288 … … 289 293 */ 290 294 string siscone_version(){ 291 return SISCONE_VERSION;292 } 293 294 } 295 return VERSION; 296 } 297 298 } -
external/fastjet/plugins/SISCone/siscone.h
rb9ae4c3 rec5e04b 22 22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 23 23 // // 24 // $Revision:: 401$//25 // $Date:: 201 6-05-19 16:44:37 +0200 (Thu, 19 May 2016) $//24 // $Revision:: 369 $// 25 // $Date:: 2014-09-04 16:57:55 +0200 (Thu, 04 Sep 2014) $// 26 26 /////////////////////////////////////////////////////////////////////////////// 27 27 … … 160 160 * return SISCone package name. 161 161 * This is nothing but "SISCone", it is a replacement to the 162 * SISCONE_PACKAGE_NAME string defined in config.h and which is not163 * guaranteed to be public.162 * PACKAGE_NAME string defined in config.h and which is not 163 * public by default. 164 164 * \return the SISCone name as a string 165 165 */ -
external/fastjet/plugins/SISCone/split_merge.cc
rb9ae4c3 rec5e04b 21 21 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 22 22 // // 23 // $Revision:: 3 90 $//24 // $Date:: 201 6-03-03 11:06:52 +0100 (Thu, 03 Mar 2016) $//23 // $Revision:: 370 $// 24 // $Date:: 2014-09-04 17:03:15 +0200 (Thu, 04 Sep 2014) $// 25 25 /////////////////////////////////////////////////////////////////////////////// 26 26 … … 54 54 pt_tilde = 0.0; 55 55 sm_var2 = 0.0; 56 pass = CJET_INEXISTENT_PASS; // initialised to a value that should57 // notappear in the end (after clustering)58 56 } 59 57 … … 661 659 662 660 #ifdef DEBUG_SPLIT_MERGE 663 cout << "PR-Jet " << jets.size() << " [size " << jet.contents.size() << "]:";661 cout << "PR-Jet " << jets.size() << " [size " << next_jet.contents.size() << "]:"; 664 662 #endif 665 663 … … 1181 1179 } 1182 1180 1183 //return 0.0;1184 } 1185 1186 } 1181 return 0.0; 1182 } 1183 1184 } -
external/fastjet/plugins/SISCone/split_merge.h
rb9ae4c3 rec5e04b 22 22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 23 23 // // 24 // $Revision:: 405$//25 // $Date:: 201 6-05-23 20:15:02 +0200 (Mon, 23 May 2016) $//24 // $Revision:: 367 $// 25 // $Date:: 2014-09-04 15:57:37 +0200 (Thu, 04 Sep 2014) $// 26 26 /////////////////////////////////////////////////////////////////////////////// 27 27 … … 29 29 #define __SPLIT_MERGE_H__ 30 30 31 #include "config.h"32 31 #include "defines.h" 33 32 #include "geom_2d.h" … … 40 39 41 40 namespace siscone{ 42 43 const int CJET_INEXISTENT_PASS = -2;44 41 45 42 /** … … 78 75 /// pass at which the jet has been found 79 76 /// It starts at 0 (first pass), -1 means infinite rapidity 80 /// (it will be initialised to "CJET_INEXISTENT_PASS" which should81 /// never appear after clustering)82 77 int pass; 83 78 }; … … 446 441 // jet information 447 442 /// list of jet candidates 448 #ifdef SISCONE_USES_UNIQUE_PTR_AS_AUTO_PTR449 std::unique_ptr<std::multiset<Cjet,Csplit_merge_ptcomparison> > candidates;450 #else451 443 std::auto_ptr<std::multiset<Cjet,Csplit_merge_ptcomparison> > candidates; 452 #endif 453 444 454 445 /// minimal pt2 455 446 double pt_min2; -
external/fastjet/plugins/SISCone/vicinity.cc
rb9ae4c3 rec5e04b 21 21 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 22 22 // // 23 // $Revision:: 388$//24 // $Date:: 20 16-03-03 10:42:25 +0100 (Thu, 03 Mar 2016) $//23 // $Revision:: 123 $// 24 // $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007) $// 25 25 /////////////////////////////////////////////////////////////////////////////// 26 26 … … 80 80 VR2 = VR = 0.0; 81 81 82 ve_list = NULL;83 82 set_particle_list(_particle_list); 84 83 } -
external/fastjet/tools/Filter.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: Filter.cc 4080 2016-03-09 15:01:57Z soyez $2 // $Id: Filter.cc 3760 2014-12-19 10:05:10Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 31 31 #include "fastjet/tools/Filter.hh" 32 32 #include "fastjet/tools/Recluster.hh" 33 #include "fastjet/tools/Subtractor.hh"34 33 #include <fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh> 35 34 #include <cassert> … … 99 98 } else if (_rho!=0){ 100 99 if (subjets.size()>0){ 101 //const ClusterSequenceAreaBase *csab = subjets[0].validated_csab();100 const ClusterSequenceAreaBase *csab = subjets[0].validated_csab(); 102 101 for (unsigned int i=0;i<subjets.size();i++){ 103 //subjets[i]=csab->subtracted_jet(subjets[i], _rho); 104 subjets[i]=Subtractor(_rho)(subjets[i]); 102 subjets[i]=csab->subtracted_jet(subjets[i], _rho); 105 103 } 106 104 } -
external/fastjet/tools/Filter.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: Filter.hh 384 6 2015-03-08 08:35:43Z soyez $5 // $Id: Filter.hh 3845 2015-03-08 08:35:36Z soyez $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 143 143 /// deciding which ones to keep. It takes precedence over a non-zero rho. 144 144 void set_subtractor(const FunctionOfPseudoJet<PseudoJet> * subtractor_in) {_subtractor = subtractor_in;} 145 146 /// Set a subtractor that is applied to all individual subjets before147 /// deciding which ones to keep. It takes precedence over a non-zero rho.148 const FunctionOfPseudoJet<PseudoJet> * subtractor() const{ return _subtractor;}149 145 150 146 /// runs the filtering and sets kept and rejected to be the jets of interest -
external/fastjet/tools/GridMedianBackgroundEstimator.hh
rb9ae4c3 rec5e04b 3 3 4 4 //FJSTARTHEADER 5 // $Id: GridMedianBackgroundEstimator.hh 3 969 2015-09-21 08:57:59Z salam $5 // $Id: GridMedianBackgroundEstimator.hh 3778 2014-12-24 09:28:09Z salam $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 194 194 /// determination of rho_m. 195 195 /// 196 /// Note that support for sigma_m is automatic i fone has sigma and196 /// Note that support for sigma_m is automatic is one has sigma and 197 197 /// rho_m support. 198 198 bool has_rho_m() const {return _enable_rho_m;} -
external/fastjet/tools/JetMedianBackgroundEstimator.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: JetMedianBackgroundEstimator.cc 4047 2016-03-03 13:21:49Z soyez $2 // $Id: JetMedianBackgroundEstimator.cc 3517 2014-08-01 14:23:13Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 194 194 195 195 _csi = jets[0].structure_shared_ptr(); 196 ClusterSequenceStructure * csi = dynamic_cast<ClusterSequenceStructure*>(_csi .get());196 ClusterSequenceStructure * csi = dynamic_cast<ClusterSequenceStructure*>(_csi()); 197 197 const ClusterSequenceAreaBase * csab = csi->validated_csab(); 198 198 … … 467 467 468 468 // determine the number of empty jets 469 const ClusterSequenceAreaBase * csab = (dynamic_cast<ClusterSequenceStructure*>(_csi .get()))->validated_csab();469 const ClusterSequenceAreaBase * csab = (dynamic_cast<ClusterSequenceStructure*>(_csi()))->validated_csab(); 470 470 if (csab->has_explicit_ghosts()) { 471 471 _empty_area = 0.0; … … 503 503 // throw an error otherwise 504 504 void JetMedianBackgroundEstimator::_check_csa_alive() const{ 505 ClusterSequenceStructure* csa = dynamic_cast<ClusterSequenceStructure*>(_csi .get());505 ClusterSequenceStructure* csa = dynamic_cast<ClusterSequenceStructure*>(_csi()); 506 506 if (csa == 0) { 507 507 throw Error("JetMedianBackgroundEstimator: there is no cluster sequence associated with the JetMedianBackgroundEstimator"); 508 508 } 509 if (! dynamic_cast<ClusterSequenceStructure*>(_csi .get())->has_associated_cluster_sequence())509 if (! dynamic_cast<ClusterSequenceStructure*>(_csi())->has_associated_cluster_sequence()) 510 510 throw Error("JetMedianBackgroundEstimator: modifications are no longer possible as the underlying ClusterSequence has gone out of scope"); 511 511 } … … 521 521 // cluster sequence 522 522 if (_jet_def.jet_algorithm() == undefined_jet_algorithm){ 523 const ClusterSequence * cs = dynamic_cast<ClusterSequenceStructure*>(_csi .get())->validated_cs();523 const ClusterSequence * cs = dynamic_cast<ClusterSequenceStructure*>(_csi())->validated_cs(); 524 524 jet_def = &(cs->jet_def()); 525 525 } -
external/fastjet/tools/Recluster.hh
rb9ae4c3 rec5e04b 2 2 #define __FASTJET_TOOLS_RECLUSTER_HH__ 3 3 4 // $Id: Recluster.hh 37 53 2014-12-17 15:19:55Z salam$4 // $Id: Recluster.hh 3760 2014-12-19 10:05:10Z soyez $ 5 5 // 6 6 // Copyright (c) 2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez -
external/fastjet/tools/Subtractor.cc
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.cc 3 970 2015-09-21 10:31:17Z salam$2 // $Id: Subtractor.cc 3670 2014-09-08 14:17:59Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 39 39 const double Subtractor::_invalid_rho = -numeric_limits<double>::infinity(); 40 40 41 LimitedWarning Subtractor::_unused_rho_m_warning;42 41 43 42 //---------------------------------------------------------------------- -
external/fastjet/tools/Subtractor.hh
rb9ae4c3 rec5e04b 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.hh 3 970 2015-09-21 10:31:17Z salam$2 // $Id: Subtractor.hh 3670 2014-09-08 14:17:59Z soyez $ 3 3 // 4 4 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 203 203 static const double _invalid_rho; 204 204 205 staticLimitedWarning _unused_rho_m_warning;205 mutable LimitedWarning _unused_rho_m_warning; 206 206 }; 207 207 -
modules/Calorimeter.cc
rb9ae4c3 rec5e04b 58 58 fItParticleInputArray(0), fItTrackInputArray(0) 59 59 { 60 60 Int_t i; 61 61 62 fECalResolutionFormula = new DelphesFormula; 62 63 fHCalResolutionFormula = new DelphesFormula; 63 64 64 fECalTowerTrackArray = new TObjArray; 65 fItECalTowerTrackArray = fECalTowerTrackArray->MakeIterator(); 66 67 fHCalTowerTrackArray = new TObjArray; 68 fItHCalTowerTrackArray = fHCalTowerTrackArray->MakeIterator(); 69 65 for(i = 0; i < 2; ++i) 66 { 67 fECalTowerTrackArray[i] = new TObjArray; 68 fItECalTowerTrackArray[i] = fECalTowerTrackArray[i]->MakeIterator(); 69 70 fHCalTowerTrackArray[i] = new TObjArray; 71 fItHCalTowerTrackArray[i] = fHCalTowerTrackArray[i]->MakeIterator(); 72 } 70 73 } 71 74 … … 74 77 Calorimeter::~Calorimeter() 75 78 { 76 79 Int_t i; 80 77 81 if(fECalResolutionFormula) delete fECalResolutionFormula; 78 82 if(fHCalResolutionFormula) delete fHCalResolutionFormula; 79 83 80 if(fECalTowerTrackArray) delete fECalTowerTrackArray; 81 if(fItECalTowerTrackArray) delete fItECalTowerTrackArray; 82 83 if(fHCalTowerTrackArray) delete fHCalTowerTrackArray; 84 if(fItHCalTowerTrackArray) delete fItHCalTowerTrackArray; 85 84 for(i = 0; i < 2; ++i) 85 { 86 if(fECalTowerTrackArray[i]) delete fECalTowerTrackArray[i]; 87 if(fItECalTowerTrackArray[i]) delete fItECalTowerTrackArray[i]; 88 89 if(fHCalTowerTrackArray[i]) delete fHCalTowerTrackArray[i]; 90 if(fItHCalTowerTrackArray[i]) delete fItHCalTowerTrackArray[i]; 91 } 86 92 } 87 93 … … 213 219 Double_t ecalEnergy, hcalEnergy; 214 220 Double_t ecalSigma, hcalSigma; 215 Double_t energyGuess;216 221 Int_t pdgCode; 217 222 … … 363 368 fHCalTowerEnergy = 0.0; 364 369 365 fECalTrackEnergy = 0.0;366 f HCalTrackEnergy= 0.0;367 368 f ECalTrackSigma= 0.0;369 fHCalTrack Sigma= 0.0;370 370 fECalTrackEnergy[0] = 0.0; 371 fECalTrackEnergy[1] = 0.0; 372 373 fHCalTrackEnergy[0] = 0.0; 374 fHCalTrackEnergy[1] = 0.0; 375 371 376 fTowerTrackHits = 0; 372 377 fTowerPhotonHits = 0; 373 378 374 fECalTowerTrackArray->Clear(); 375 fHCalTowerTrackArray->Clear(); 376 379 fECalTowerTrackArray[0]->Clear(); 380 fECalTowerTrackArray[1]->Clear(); 381 382 fHCalTowerTrackArray[0]->Clear(); 383 fHCalTowerTrackArray[1]->Clear(); 377 384 } 378 385 … … 399 406 if(fECalTrackFractions[number] > 1.0E-9 && fHCalTrackFractions[number] < 1.0E-9) 400 407 { 401 fECalTrackEnergy += ecalEnergy; 402 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 403 if(ecalSigma/momentum.E() < track->TrackResolution) energyGuess = ecalEnergy; 404 else energyGuess = momentum.E(); 405 406 fECalTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess; 407 fECalTowerTrackArray->Add(track); 408 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 409 if(ecalSigma/momentum.E() < track->TrackResolution) 410 { 411 fECalTrackEnergy[0] += ecalEnergy; 412 fECalTowerTrackArray[0]->Add(track); 413 } 414 else 415 { 416 fECalTrackEnergy[1] += ecalEnergy; 417 fECalTowerTrackArray[1]->Add(track); 418 } 408 419 } 409 410 420 else if(fECalTrackFractions[number] < 1.0E-9 && fHCalTrackFractions[number] > 1.0E-9) 411 421 { 412 fHCalTrackEnergy += hcalEnergy;413 422 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 414 if(hcalSigma/momentum.E() < track->TrackResolution) energyGuess = hcalEnergy; 415 else energyGuess = momentum.E(); 416 417 fHCalTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess; 418 fHCalTowerTrackArray->Add(track); 423 if(hcalSigma/momentum.E() < track->TrackResolution) 424 { 425 fHCalTrackEnergy[0] += hcalEnergy; 426 fHCalTowerTrackArray[0]->Add(track); 427 } 428 else 429 { 430 fHCalTrackEnergy[1] += hcalEnergy; 431 fHCalTowerTrackArray[1]->Add(track); 432 } 419 433 } 420 421 434 else if(fECalTrackFractions[number] < 1.0E-9 && fHCalTrackFractions[number] < 1.0E-9) 422 435 { … … 463 476 Double_t energy, pt, eta, phi; 464 477 Double_t ecalEnergy, hcalEnergy; 465 Double_t ecalNeutralEnergy, hcalNeutralEnergy;466 467 478 Double_t ecalSigma, hcalSigma; 468 Double_t ecalNeutralSigma, hcalNeutralSigma; 469 470 Double_t weightTrack, weightCalo, bestEnergyEstimate, rescaleFactor; 471 479 472 480 TLorentzVector momentum; 473 481 TFractionMap::iterator itFractionMap; … … 476 484 477 485 if(!fTower) return; 486 478 487 479 488 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fECalTowerEnergy); … … 545 554 fTowerOutputArray->Add(fTower); 546 555 } 547 556 548 557 // fill energy flow candidates 549 fECalTrackSigma = TMath::Sqrt(fECalTrackSigma); 550 fHCalTrackSigma = TMath::Sqrt(fHCalTrackSigma); 551 552 //compute neutral excesses 553 ecalNeutralEnergy = max( (ecalEnergy - fECalTrackEnergy) , 0.0); 554 hcalNeutralEnergy = max( (hcalEnergy - fHCalTrackEnergy) , 0.0); 555 556 ecalNeutralSigma = ecalNeutralEnergy / TMath::Sqrt(fECalTrackSigma*fECalTrackSigma + ecalSigma*ecalSigma); 557 hcalNeutralSigma = hcalNeutralEnergy / TMath::Sqrt(fHCalTrackSigma*fHCalTrackSigma + hcalSigma*hcalSigma); 558 559 // if ecal neutral excess is significant, simply create neutral EflowPhoton tower and clone each track into eflowtrack 560 if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin) 558 559 ecalEnergy -= fECalTrackEnergy[1]; 560 hcalEnergy -= fHCalTrackEnergy[1]; 561 562 fItECalTowerTrackArray[0]->Reset(); 563 while((track = static_cast<Candidate*>(fItECalTowerTrackArray[0]->Next()))) 564 { 565 mother = track; 566 track = static_cast<Candidate*>(track->Clone()); 567 track->AddCandidate(mother); 568 569 track->Momentum *= ecalEnergy/fECalTrackEnergy[0]; 570 571 fEFlowTrackOutputArray->Add(track); 572 } 573 574 fItECalTowerTrackArray[1]->Reset(); 575 while((track = static_cast<Candidate*>(fItECalTowerTrackArray[1]->Next()))) 576 { 577 mother = track; 578 track = static_cast<Candidate*>(track->Clone()); 579 track->AddCandidate(mother); 580 581 fEFlowTrackOutputArray->Add(track); 582 } 583 584 fItHCalTowerTrackArray[0]->Reset(); 585 while((track = static_cast<Candidate*>(fItHCalTowerTrackArray[0]->Next()))) 586 { 587 mother = track; 588 track = static_cast<Candidate*>(track->Clone()); 589 track->AddCandidate(mother); 590 591 track->Momentum *= hcalEnergy/fHCalTrackEnergy[0]; 592 593 fEFlowTrackOutputArray->Add(track); 594 } 595 596 fItHCalTowerTrackArray[1]->Reset(); 597 while((track = static_cast<Candidate*>(fItHCalTowerTrackArray[1]->Next()))) 598 { 599 mother = track; 600 track = static_cast<Candidate*>(track->Clone()); 601 track->AddCandidate(mother); 602 603 fEFlowTrackOutputArray->Add(track); 604 } 605 606 if(fECalTowerTrackArray[0]->GetEntriesFast() > 0) ecalEnergy = 0.0; 607 if(fHCalTowerTrackArray[0]->GetEntriesFast() > 0) hcalEnergy = 0.0; 608 609 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, ecalEnergy); 610 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, hcalEnergy); 611 612 if(ecalEnergy < fECalEnergyMin || ecalEnergy < fECalEnergySignificanceMin*ecalSigma) ecalEnergy = 0.0; 613 if(hcalEnergy < fHCalEnergyMin || hcalEnergy < fHCalEnergySignificanceMin*hcalSigma) hcalEnergy = 0.0; 614 615 energy = ecalEnergy + hcalEnergy; 616 617 if(ecalEnergy > 0.0) 561 618 { 562 619 // create new photon tower 563 620 tower = static_cast<Candidate*>(fTower->Clone()); 564 pt = ecalNeutralEnergy / TMath::CosH(eta); 565 566 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, ecalNeutralEnergy); 567 tower->Eem = ecalNeutralEnergy; 621 622 pt = ecalEnergy / TMath::CosH(eta); 623 624 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, ecalEnergy); 625 tower->Eem = ecalEnergy; 568 626 tower->Ehad = 0.0; 569 627 tower->PID = 22; 570 628 571 629 fEFlowPhotonOutputArray->Add(tower); 572 573 //clone tracks 574 fItECalTowerTrackArray->Reset(); 575 while((track = static_cast<Candidate*>(fItECalTowerTrackArray->Next()))) 576 { 577 mother = track; 578 track = static_cast<Candidate*>(track->Clone()); 579 track->AddCandidate(mother); 580 581 fEFlowTrackOutputArray->Add(track); 582 } 583 584 } 585 586 // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the calorimeter and tracking 587 else if(fECalTrackEnergy > 0.0) 588 { 589 weightTrack = (fECalTrackSigma > 0.0) ? 1 / (fECalTrackSigma*fECalTrackSigma) : 0.0; 590 weightCalo = (ecalSigma > 0.0) ? 1 / (ecalSigma*ecalSigma) : 0.0; 591 592 bestEnergyEstimate = (weightTrack*fECalTrackEnergy + weightCalo*ecalEnergy) / (weightTrack + weightCalo); 593 rescaleFactor = bestEnergyEstimate/fECalTrackEnergy; 594 595 //rescale tracks 596 fItECalTowerTrackArray->Reset(); 597 while((track = static_cast<Candidate*>(fItECalTowerTrackArray->Next()))) 598 { 599 mother = track; 600 track = static_cast<Candidate*>(track->Clone()); 601 track->AddCandidate(mother); 602 603 track->Momentum *= rescaleFactor; 604 605 fEFlowTrackOutputArray->Add(track); 606 } 607 } 608 609 610 // if hcal neutral excess is significant, simply create neutral EflowNeutralHadron tower and clone each track into eflowtrack 611 if(hcalNeutralEnergy > fHCalEnergyMin && hcalNeutralSigma > fHCalEnergySignificanceMin) 612 { 613 // create new photon tower 630 } 631 if(hcalEnergy > 0.0) 632 { 633 // create new neutral hadron tower 614 634 tower = static_cast<Candidate*>(fTower->Clone()); 615 pt = hcalNeutralEnergy / TMath::CosH(eta); 616 617 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, hcalNeutralEnergy); 618 tower-> Ehad = hcalNeutralEnergy;635 636 pt = hcalEnergy / TMath::CosH(eta); 637 638 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, hcalEnergy); 619 639 tower->Eem = 0.0; 620 640 tower->Ehad = hcalEnergy; 641 621 642 fEFlowNeutralHadronOutputArray->Add(tower); 622 623 //clone tracks 624 fItHCalTowerTrackArray->Reset(); 625 while((track = static_cast<Candidate*>(fItHCalTowerTrackArray->Next()))) 626 { 627 mother = track; 628 track = static_cast<Candidate*>(track->Clone()); 629 track->AddCandidate(mother); 630 631 fEFlowTrackOutputArray->Add(track); 632 } 633 634 } 635 636 // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the calorimeter and tracking 637 else if(fHCalTrackEnergy > 0.0) 638 { 639 weightTrack = (fHCalTrackSigma > 0.0) ? 1 / (fHCalTrackSigma*fHCalTrackSigma) : 0.0; 640 weightCalo = (hcalSigma > 0.0) ? 1 / (hcalSigma*hcalSigma) : 0.0; 641 642 bestEnergyEstimate = (weightTrack*fHCalTrackEnergy + weightCalo*hcalEnergy) / (weightTrack + weightCalo); 643 rescaleFactor = bestEnergyEstimate / fHCalTrackEnergy; 644 645 //rescale tracks 646 fItHCalTowerTrackArray->Reset(); 647 while((track = static_cast<Candidate*>(fItHCalTowerTrackArray->Next()))) 648 { 649 mother = track; 650 track = static_cast<Candidate*>(track->Clone()); 651 track->AddCandidate(mother); 652 653 track->Momentum *= rescaleFactor; 654 655 fEFlowTrackOutputArray->Add(track); 656 } 657 } 658 659 643 } 660 644 } 661 645 -
modules/Calorimeter.h
rb9ae4c3 rec5e04b 58 58 Double_t fTowerEta, fTowerPhi, fTowerEdges[4]; 59 59 Double_t fECalTowerEnergy, fHCalTowerEnergy; 60 Double_t fECalTrackEnergy , fHCalTrackEnergy;60 Double_t fECalTrackEnergy[2], fHCalTrackEnergy[2]; 61 61 62 62 Double_t fTimingEnergyMin; … … 70 70 Double_t fECalEnergySignificanceMin; 71 71 Double_t fHCalEnergySignificanceMin; 72 73 Double_t fECalTrackSigma;74 Double_t fHCalTrackSigma;75 72 76 73 Bool_t fSmearTowerCenter; … … 106 103 TObjArray *fEFlowNeutralHadronOutputArray; //! 107 104 108 TObjArray *fECalTowerTrackArray ; //!109 TIterator *fItECalTowerTrackArray ; //!105 TObjArray *fECalTowerTrackArray[2]; //! 106 TIterator *fItECalTowerTrackArray[2]; //! 110 107 111 TObjArray *fHCalTowerTrackArray ; //!112 TIterator *fItHCalTowerTrackArray ; //!108 TObjArray *fHCalTowerTrackArray[2]; //! 109 TIterator *fItHCalTowerTrackArray[2]; //! 113 110 114 111 void FinalizeTower(); -
modules/ImpactParameterSmearing.cc
rb9ae4c3 rec5e04b 96 96 { 97 97 Candidate *candidate, *particle, *mother; 98 Double_t xd, yd, zd, d 0, sx, sy, sz, dd0;98 Double_t xd, yd, zd, dxy, sx, sy, sz, ddxy; 99 99 Double_t pt, eta, px, py, phi, e; 100 100 … … 103 103 { 104 104 105 // take momentum before smearing (otherwise apply double smearing on d 0)105 // take momentum before smearing (otherwise apply double smearing on dxy) 106 106 particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0)); 107 107 … … 131 131 132 132 // calculate impact parameter (after-smearing) 133 d 0= (xd*py - yd*px)/pt;133 dxy = (xd*py - yd*px)/pt; 134 134 135 dd 0= gRandom->Gaus(0.0, fFormula->Eval(pt, eta, phi, e));135 ddxy = gRandom->Gaus(0.0, fFormula->Eval(pt, eta, phi, e)); 136 136 137 137 // fill smeared values in candidate … … 143 143 candidate->Zd = zd; 144 144 145 candidate->D 0 = d0;146 candidate-> ErrorD0 = dd0;145 candidate->Dxy = dxy; 146 candidate->SDxy = ddxy; 147 147 148 148 candidate->AddCandidate(mother); -
modules/ModulesLinkDef.h
rb9ae4c3 rec5e04b 35 35 #include "modules/EnergySmearing.h" 36 36 #include "modules/MomentumSmearing.h" 37 #include "modules/TrackSmearing.h"38 37 #include "modules/ImpactParameterSmearing.h" 39 38 #include "modules/TimeSmearing.h" … … 59 58 #include "modules/StatusPidFilter.h" 60 59 #include "modules/PdgCodeFilter.h" 61 #include "modules/BeamSpotFilter.h"62 60 #include "modules/RecoPuFilter.h" 63 61 #include "modules/Cloner.h" … … 66 64 #include "modules/JetFlavorAssociation.h" 67 65 #include "modules/JetFakeParticle.h" 68 #include "modules/VertexSorter.h"69 #include "modules/VertexFinder.h"70 #include "modules/VertexFinderDA4D.h"71 66 #include "modules/ExampleModule.h" 72 67 … … 86 81 #pragma link C++ class EnergySmearing+; 87 82 #pragma link C++ class MomentumSmearing+; 88 #pragma link C++ class TrackSmearing+;89 83 #pragma link C++ class ImpactParameterSmearing+; 90 84 #pragma link C++ class TimeSmearing+; … … 110 104 #pragma link C++ class StatusPidFilter+; 111 105 #pragma link C++ class PdgCodeFilter+; 112 #pragma link C++ class BeamSpotFilter+;113 106 #pragma link C++ class RecoPuFilter+; 114 107 #pragma link C++ class Cloner+; … … 117 110 #pragma link C++ class JetFlavorAssociation+; 118 111 #pragma link C++ class JetFakeParticle+; 119 #pragma link C++ class VertexSorter+;120 #pragma link C++ class VertexFinder+;121 #pragma link C++ class VertexFinderDA4D+;122 112 #pragma link C++ class ExampleModule+; 123 113 -
modules/MomentumSmearing.cc
rb9ae4c3 rec5e04b 96 96 { 97 97 Candidate *candidate, *mother; 98 Double_t pt, eta, phi, e , res;98 Double_t pt, eta, phi, e; 99 99 100 100 fItInputArray->Reset(); … … 107 107 pt = candidateMomentum.Pt(); 108 108 e = candidateMomentum.E(); 109 res = fFormula->Eval(pt, eta, phi, e); 110 109 111 110 // apply smearing formula 112 //pt = gRandom->Gaus(pt, fFormula->Eval(pt, eta, phi, e) * pt);111 pt = gRandom->Gaus(pt, fFormula->Eval(pt, eta, phi, e) * pt); 113 112 114 res = ( res > 1.0 ) ? 1.0 : res; 115 116 pt = LogNormal(pt, res * pt ); 117 118 //if(pt <= 0.0) continue; 113 if(pt <= 0.0) continue; 119 114 120 115 mother = candidate; … … 123 118 phi = candidateMomentum.Phi(); 124 119 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt*TMath::CosH(eta)); 125 //candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e); 126 candidate->TrackResolution = res; 120 candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e); 127 121 candidate->AddCandidate(mother); 128 122 … … 130 124 } 131 125 } 132 //----------------------------------------------------------------133 134 Double_t MomentumSmearing::LogNormal(Double_t mean, Double_t sigma)135 {136 Double_t a, b;137 138 if(mean > 0.0)139 {140 b = TMath::Sqrt(TMath::Log((1.0 + (sigma*sigma)/(mean*mean))));141 a = TMath::Log(mean) - 0.5*b*b;142 143 return TMath::Exp(a + b*gRandom->Gaus(0.0, 1.0));144 }145 else146 {147 return 0.0;148 }149 }150 151 126 152 127 //------------------------------------------------------------------------------ -
modules/MomentumSmearing.h
rb9ae4c3 rec5e04b 47 47 private: 48 48 49 Double_t LogNormal(Double_t mean, Double_t sigma);50 51 49 DelphesFormula *fFormula; //! 52 50 -
modules/ParticlePropagator.cc
rb9ae4c3 rec5e04b 66 66 { 67 67 } 68 69 68 70 69 //------------------------------------------------------------------------------ … … 92 91 fItInputArray = fInputArray->MakeIterator(); 93 92 94 // import beamspot95 try96 {97 fBeamSpotInputArray = ImportArray(GetString("BeamSpotInputArray", "BeamSpotFilter/beamSpotParticle"));98 }99 catch(runtime_error &e)100 {101 fBeamSpotInputArray = 0;102 }103 93 // create output arrays 104 94 … … 121 111 { 122 112 Candidate *candidate, *mother; 123 TLorentzVector candidatePosition, candidateMomentum , beamSpotPosition;113 TLorentzVector candidatePosition, candidateMomentum; 124 114 Double_t px, py, pz, pt, pt2, e, q; 125 115 Double_t x, y, z, t, r, phi; … … 130 120 Double_t tmp, discr, discr2; 131 121 Double_t delta, gammam, omega, asinrho; 132 Double_t rcu, rc2, xd, yd, zd; 133 Double_t l, d0, dz, p, ctgTheta, phip, etap, alpha; 134 Double_t bsx, bsy, bsz; 122 Double_t rcu, rc2, dxy, xd, yd, zd; 135 123 136 124 const Double_t c_light = 2.99792458E8; 137 138 if (!fBeamSpotInputArray || fBeamSpotInputArray->GetSize () == 0)139 beamSpotPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);140 else141 {142 Candidate &beamSpotCandidate = *((Candidate *) fBeamSpotInputArray->At(0));143 beamSpotPosition = beamSpotCandidate.Position;144 }145 125 146 126 fItInputArray->Reset(); … … 152 132 y = candidatePosition.Y()*1.0E-3; 153 133 z = candidatePosition.Z()*1.0E-3; 154 155 bsx = beamSpotPosition.X()*1.0E-3;156 bsy = beamSpotPosition.Y()*1.0E-3;157 bsz = beamSpotPosition.Z()*1.0E-3;158 159 134 q = candidate->Charge; 160 135 … … 207 182 z_t = z + pz*t; 208 183 209 l = TMath::Sqrt( (x_t - x)*(x_t - x) + (y_t - y)*(y_t - y) + (z_t - z)*(z_t - z));210 211 184 mother = candidate; 212 185 candidate = static_cast<Candidate*>(candidate->Clone()); 213 186 214 candidate->InitialPosition = candidatePosition;215 187 candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*e*1.0E3); 216 candidate->L = l*1.0E3;217 188 218 189 candidate->Momentum = candidateMomentum; … … 268 239 zd = z + (TMath::Sqrt(xd*xd + yd*yd) - TMath::Sqrt(x*x + y*y))*pz/pt; 269 240 270 // use perigee momentum rather than original particle 271 // momentum, since the orignal particle momentum isn't known 272 273 px = TMath::Sign(1.0,r) * pt * (-y_c / r_c); 274 py = TMath::Sign(1.0,r) * pt * (x_c / r_c); 275 etap = candidateMomentum.Eta(); 276 phip = TMath::ATan2(py, px); 277 278 candidateMomentum.SetPtEtaPhiE(pt, etap, phip, candidateMomentum.E()); 279 280 // calculate additional track parameters (correct for beamspot position) 281 282 d0 = ( (x - bsx) * py - (y - bsy) * px) / pt; 283 dz = z - ((x - bsx) * px + (y - bsy) * py) / pt * (pz / pt); 284 p = candidateMomentum.P(); 285 ctgTheta = 1.0 / TMath::Tan (candidateMomentum.Theta ()); 286 241 // calculate impact paramater 242 dxy = (xd*py - yd*px)/pt; 287 243 288 244 // 3. time evaluation t = TMath::Min(t_r, t_z) … … 331 287 r_t = TMath::Hypot(x_t, y_t); 332 288 333 334 // compute path length for an helix335 336 alpha = pz*1.0E9 / c_light / gammam;337 l = t * TMath::Sqrt(alpha*alpha + r*r*omega*omega);338 339 289 if(r_t > 0.0) 340 290 { 341 342 // store these variables before cloning343 candidate->D0 = d0*1.0E3;344 candidate->DZ = dz*1.0E3;345 candidate->P = p;346 candidate->PT = pt;347 candidate->CtgTheta = ctgTheta;348 candidate->Phi = phip;349 350 291 mother = candidate; 351 292 candidate = static_cast<Candidate*>(candidate->Clone()); 352 293 353 candidate->InitialPosition = candidatePosition;354 294 candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*c_light*1.0E3); 355 295 356 296 candidate->Momentum = candidateMomentum; 357 358 candidate->L = l*1.0E3; 359 360 candidate->Xd = xd*1.0E3; 297 candidate->Dxy = dxy*1.0E3; 298 candidate->Xd = xd*1.0E3; 361 299 candidate->Yd = yd*1.0E3; 362 300 candidate->Zd = zd*1.0E3; -
modules/ParticlePropagator.h
rb9ae4c3 rec5e04b 35 35 class TClonesArray; 36 36 class TIterator; 37 class TLorentzVector;38 37 39 38 class ParticlePropagator: public DelphesModule … … 56 55 57 56 const TObjArray *fInputArray; //! 58 const TObjArray *fBeamSpotInputArray; //!59 57 60 58 TObjArray *fOutputArray; //! -
modules/PileUpMerger.cc
rb9ae4c3 rec5e04b 115 115 TDatabasePDG *pdg = TDatabasePDG::Instance(); 116 116 TParticlePDG *pdgParticle; 117 Int_t pid , nch, nvtx = -1;117 Int_t pid; 118 118 Float_t x, y, z, t, vx, vy; 119 Float_t px, py, pz, e , pt;120 Double_t dz, dphi, dt , sumpt2, dz0, dt0;119 Float_t px, py, pz, e; 120 Double_t dz, dphi, dt; 121 121 Int_t numberOfEvents, event, numberOfParticles; 122 122 Long64_t allEntries, entry; … … 132 132 fFunction->GetRandom2(dz, dt); 133 133 134 dz0 = -1.0e6;135 dt0 = -1.0e6;136 137 134 dt *= c_light*1.0E3; // necessary in order to make t in mm/c 138 135 dz *= 1.0E3; // necessary in order to make z in mm 139 140 //cout<<dz<<","<<dt<<endl;141 142 136 vx = 0.0; 143 137 vy = 0.0; 144 145 138 numberOfParticles = fInputArray->GetEntriesFast(); 146 nch = 0;147 sumpt2 = 0.0;148 149 factory = GetFactory();150 vertex = factory->NewCandidate();151 152 139 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) 153 140 { … … 156 143 z = candidate->Position.Z(); 157 144 t = candidate->Position.T(); 158 pt = candidate->Momentum.Pt(); 159 160 // take postion and time from first stable particle 161 if (dz0 < -999999.0) 162 dz0 = z; 163 if (dt0 < -999999.0) 164 dt0 = t; 165 166 // cancel any possible offset in position and time the input file 167 candidate->Position.SetZ(z - dz0 + dz); 168 candidate->Position.SetT(t - dt0 + dt); 169 170 candidate->IsPU = 0; 171 145 candidate->Position.SetZ(z + dz); 146 candidate->Position.SetT(t + dt); 172 147 fParticleOutputArray->Add(candidate); 173 174 if(TMath::Abs(candidate->Charge) > 1.0E-9)175 {176 nch++;177 sumpt2 += pt*pt;178 vertex->AddCandidate(candidate);179 }180 148 } 181 149 182 150 if(numberOfParticles > 0) 183 151 { 184 vx /= sumpt2; 185 vy /= sumpt2; 186 } 187 188 nvtx++; 152 vx /= numberOfParticles; 153 vy /= numberOfParticles; 154 } 155 156 factory = GetFactory(); 157 158 vertex = factory->NewCandidate(); 189 159 vertex->Position.SetXYZT(vx, vy, dz, dt); 190 vertex->ClusterIndex = nvtx;191 vertex->ClusterNDF = nch;192 vertex->SumPT2 = sumpt2;193 vertex->GenSumPT2 = sumpt2;194 160 fVertexOutputArray->Add(vertex); 195 161 … … 204 170 numberOfEvents = gRandom->Integer(2*fMeanPileUp + 1); 205 171 break; 206 case 2:207 numberOfEvents = fMeanPileUp;208 break;209 172 default: 210 173 numberOfEvents = gRandom->Poisson(fMeanPileUp); … … 213 176 214 177 allEntries = fReader->GetEntries(); 215 216 178 217 179 for(event = 0; event < numberOfEvents; ++event) … … 236 198 vx = 0.0; 237 199 vy = 0.0; 238 239 200 numberOfParticles = 0; 240 sumpt2 = 0.0;241 242 //factory = GetFactory();243 vertex = factory->NewCandidate();244 245 201 while(fReader->ReadParticle(pid, x, y, z, t, px, py, pz, e)) 246 202 { … … 259 215 candidate->Momentum.SetPxPyPzE(px, py, pz, e); 260 216 candidate->Momentum.RotateZ(dphi); 261 pt = candidate->Momentum.Pt();262 217 263 218 x -= fInputBeamSpotX; … … 269 224 vx += candidate->Position.X(); 270 225 vy += candidate->Position.Y(); 271 272 226 ++numberOfParticles; 273 if(TMath::Abs(candidate->Charge) > 1.0E-9)274 {275 nch++;276 sumpt2 += pt*pt;277 vertex->AddCandidate(candidate);278 }279 227 280 228 fParticleOutputArray->Add(candidate); … … 287 235 } 288 236 289 nvtx++; 290 237 vertex = factory->NewCandidate(); 291 238 vertex->Position.SetXYZT(vx, vy, dz, dt); 292 293 vertex->ClusterIndex = nvtx;294 vertex->ClusterNDF = nch;295 vertex->SumPT2 = sumpt2;296 vertex->GenSumPT2 = sumpt2;297 298 239 vertex->IsPU = 1; 299 240 300 241 fVertexOutputArray->Add(vertex); 301 302 } 303 } 304 305 //------------------------------------------------------------------------------ 242 } 243 } 244 245 //------------------------------------------------------------------------------ -
modules/SimpleCalorimeter.cc
rb9ae4c3 rec5e04b 58 58 fItParticleInputArray(0), fItTrackInputArray(0) 59 59 { 60 60 Int_t i; 61 61 62 fResolutionFormula = new DelphesFormula; 62 fTowerTrackArray = new TObjArray; 63 fItTowerTrackArray = fTowerTrackArray->MakeIterator(); 64 63 64 for(i = 0; i < 2; ++i) 65 { 66 fTowerTrackArray[i] = new TObjArray; 67 fItTowerTrackArray[i] = fTowerTrackArray[i]->MakeIterator(); 68 } 65 69 } 66 70 … … 69 73 SimpleCalorimeter::~SimpleCalorimeter() 70 74 { 71 75 Int_t i; 76 72 77 if(fResolutionFormula) delete fResolutionFormula; 73 if(fTowerTrackArray) delete fTowerTrackArray; 74 if(fItTowerTrackArray) delete fItTowerTrackArray; 75 78 79 for(i = 0; i < 2; ++i) 80 { 81 if(fTowerTrackArray[i]) delete fTowerTrackArray[i]; 82 if(fItTowerTrackArray[i]) delete fItTowerTrackArray[i]; 83 } 76 84 } 77 85 … … 191 199 Double_t energy; 192 200 Double_t sigma; 193 Double_t energyGuess;194 195 201 Int_t pdgCode; 196 202 … … 334 340 fTowerEnergy = 0.0; 335 341 336 fTrackEnergy = 0.0;337 fTrack Sigma= 0.0;342 fTrackEnergy[0] = 0.0; 343 fTrackEnergy[1] = 0.0; 338 344 339 345 fTowerTime = 0.0; … … 345 351 fTowerPhotonHits = 0; 346 352 347 fTowerTrackArray->Clear(); 348 } 353 fTowerTrackArray[0]->Clear(); 354 fTowerTrackArray[1]->Clear(); 355 } 349 356 350 357 // check for track hits … … 364 371 if(fTrackFractions[number] > 1.0E-9) 365 372 { 366 367 // compute total charged energy 368 fTrackEnergy += energy; 369 sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 370 if(sigma/momentum.E() < track->TrackResolution) energyGuess = energy; 371 else energyGuess = momentum.E(); 372 373 fTrackSigma += ((track->TrackResolution)*energyGuess)*((track->TrackResolution)*energyGuess); 374 fTowerTrackArray->Add(track); 373 sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 374 if(sigma/momentum.E() < track->TrackResolution) 375 { 376 fTrackEnergy[0] += energy; 377 fTowerTrackArray[0]->Add(track); 378 } 379 else 380 { 381 fTrackEnergy[1] += energy; 382 fTowerTrackArray[1]->Add(track); 383 } 375 384 } 376 377 385 else 378 386 { … … 395 403 fTowerEnergy += energy; 396 404 397 fTowerTime += energy*position.T();398 fTowerTimeWeight += energy;405 fTowerTime += TMath::Sqrt(energy)*position.T(); 406 fTowerTimeWeight += TMath::Sqrt(energy); 399 407 400 408 fTower->AddCandidate(particle); … … 410 418 { 411 419 Candidate *tower, *track, *mother; 412 Double_t energy, neutralEnergy,pt, eta, phi;413 Double_t sigma , neutralSigma;420 Double_t energy, pt, eta, phi; 421 Double_t sigma; 414 422 Double_t time; 415 416 Double_t weightTrack, weightCalo, bestEnergyEstimate, rescaleFactor;417 423 418 424 TLorentzVector momentum; … … 430 436 431 437 if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0; 432 433 438 434 439 if(fSmearTowerCenter) … … 459 464 if(energy > 0.0) fTowerOutputArray->Add(fTower); 460 465 461 462 // e-flow candidates 463 464 //compute neutral excess 465 466 fTrackSigma = TMath::Sqrt(fTrackSigma); 467 neutralEnergy = max( (energy - fTrackEnergy) , 0.0); 468 469 //compute sigma_trk total 470 neutralSigma = neutralEnergy / TMath::Sqrt(fTrackSigma*fTrackSigma+ sigma*sigma); 471 472 // if neutral excess is significant, simply create neutral Eflow tower and clone each track into eflowtrack 473 if(neutralEnergy > fEnergyMin && neutralSigma > fEnergySignificanceMin) 466 // fill e-flow candidates 467 468 energy -= fTrackEnergy[1]; 469 470 fItTowerTrackArray[0]->Reset(); 471 while((track = static_cast<Candidate*>(fItTowerTrackArray[0]->Next()))) 472 { 473 mother = track; 474 track = static_cast<Candidate*>(track->Clone()); 475 track->AddCandidate(mother); 476 477 track->Momentum *= energy/fTrackEnergy[0]; 478 479 fEFlowTrackOutputArray->Add(track); 480 } 481 482 fItTowerTrackArray[1]->Reset(); 483 while((track = static_cast<Candidate*>(fItTowerTrackArray[1]->Next()))) 484 { 485 mother = track; 486 track = static_cast<Candidate*>(track->Clone()); 487 track->AddCandidate(mother); 488 489 fEFlowTrackOutputArray->Add(track); 490 } 491 492 if(fTowerTrackArray[0]->GetEntriesFast() > 0) energy = 0.0; 493 494 sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy); 495 if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0; 496 497 // save energy excess as an energy flow tower 498 if(energy > 0.0) 474 499 { 475 500 // create new photon tower 476 501 tower = static_cast<Candidate*>(fTower->Clone()); 477 pt = neutralEnergy / TMath::CosH(eta); 478 479 tower->Eem = (!fIsEcal) ? 0 : neutralEnergy; 480 tower->Ehad = (fIsEcal) ? 0 : neutralEnergy; 502 pt = energy / TMath::CosH(eta); 503 504 tower->Eem = (!fIsEcal) ? 0 : energy; 505 tower->Ehad = (fIsEcal) ? 0 : energy; 506 507 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); 508 481 509 tower->PID = (fIsEcal) ? 22 : 0; 482 483 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, neutralEnergy); 510 484 511 fEFlowTowerOutputArray->Add(tower); 485 486 fItTowerTrackArray->Reset(); 487 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 488 { 489 mother = track; 490 track = static_cast<Candidate*>(track->Clone()); 491 track->AddCandidate(mother); 492 493 fEFlowTrackOutputArray->Add(track); 494 } 495 } 496 497 // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the calorimeter and tracking 498 else if (fTrackEnergy > 0.0) 499 { 500 weightTrack = (fTrackSigma > 0.0) ? 1 / (fTrackSigma*fTrackSigma) : 0.0; 501 weightCalo = (sigma > 0.0) ? 1 / (sigma*sigma) : 0.0; 502 503 bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo); 504 rescaleFactor = bestEnergyEstimate/fTrackEnergy; 505 506 fItTowerTrackArray->Reset(); 507 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 508 { 509 mother = track; 510 track = static_cast<Candidate*>(track->Clone()); 511 track->AddCandidate(mother); 512 513 track->Momentum *= rescaleFactor; 514 515 fEFlowTrackOutputArray->Add(track); 516 } 517 } 518 519 } 512 } 513 } 520 514 521 515 //------------------------------------------------------------------------------ -
modules/SimpleCalorimeter.h
rb9ae4c3 rec5e04b 59 59 Double_t fTowerEta, fTowerPhi, fTowerEdges[4]; 60 60 Double_t fTowerEnergy; 61 Double_t fTrackEnergy ;61 Double_t fTrackEnergy[2]; 62 62 63 63 Double_t fTowerTime; … … 72 72 73 73 Double_t fEnergySignificanceMin; 74 75 Double_t fTrackSigma;76 74 77 75 Bool_t fSmearTowerCenter; … … 104 102 TObjArray *fEFlowTowerOutputArray; //! 105 103 106 TObjArray *fTowerTrackArray ; //!107 TIterator *fItTowerTrackArray ; //!104 TObjArray *fTowerTrackArray[2]; //! 105 TIterator *fItTowerTrackArray[2]; //! 108 106 109 107 void FinalizeTower(); -
modules/TimeSmearing.cc
rb9ae4c3 rec5e04b 93 93 { 94 94 Candidate *candidate, *mother; 95 Double_t t i, tf_smeared, tf;95 Double_t t; 96 96 const Double_t c_light = 2.99792458E8; 97 97 … … 99 99 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) 100 100 { 101 const TLorentzVector &candidateInitialPosition = candidate->InitialPosition; 102 const TLorentzVector &candidateFinalPosition = candidate->Position; 103 104 ti = candidateInitialPosition.T()*1.0E-3/c_light; 105 tf = candidateFinalPosition.T()*1.0E-3/c_light; 101 const TLorentzVector &candidatePosition = candidate->Position; 102 t = candidatePosition.T()*1.0E-3/c_light; 106 103 107 104 // apply smearing formula 108 tf_smeared = gRandom->Gaus(tf, fTimeResolution); 109 ti = ti + tf_smeared - tf; 105 t = gRandom->Gaus(t, fTimeResolution); 110 106 111 107 mother = candidate; 112 108 candidate = static_cast<Candidate*>(candidate->Clone()); 113 candidate->InitialPosition.SetT(ti*1.0E3*c_light); 114 candidate->Position.SetT(tf*1.0E3*c_light); 115 116 candidate->ErrorT = fTimeResolution*1.0E3*c_light; 109 candidate->Position.SetT(t*1.0E3*c_light); 117 110 118 111 candidate->AddCandidate(mother); -
modules/TrackCountingBTagging.cc
rb9ae4c3 rec5e04b 96 96 97 97 Double_t jpx, jpy; 98 Double_t dr, tp t;99 Double_t xd, yd, d 0, dd0, ip, sip;98 Double_t dr, tpx, tpy, tpt; 99 Double_t xd, yd, dxy, ddxy, ip, sip; 100 100 101 101 Int_t sign; … … 117 117 { 118 118 const TLorentzVector &trkMomentum = track->Momentum; 119 119 120 120 dr = jetMomentum.DeltaR(trkMomentum); 121 121 122 tpt = trkMomentum.Pt(); 123 tpx = trkMomentum.Px(); 124 tpy = trkMomentum.Py(); 125 122 126 xd = track->Xd; 123 127 yd = track->Yd; 124 d 0= TMath::Hypot(xd, yd);125 dd 0 = track->ErrorD0;128 dxy = TMath::Hypot(xd, yd); 129 ddxy = track->SDxy; 126 130 127 131 if(tpt < fPtMin) continue; 128 132 if(dr > fDeltaR) continue; 129 if(d 0> fIPmax) continue;133 if(dxy > fIPmax) continue; 130 134 131 135 sign = (jpx*xd + jpy*yd > 0.0) ? 1 : -1; 132 136 133 ip = sign*d 0;134 sip = ip / TMath::Abs(dd 0);137 ip = sign*dxy; 138 sip = ip / TMath::Abs(ddxy); 135 139 136 140 if(sip > fSigMin) count++; -
modules/TreeWriter.cc
rb9ae4c3 rec5e04b 215 215 entry->Pz = momentum.Pz(); 216 216 217 entry->D0 = candidate->D0;218 entry->DZ = candidate->DZ;219 entry->P = candidate->P;220 entry->PT = candidate->PT;221 entry->CtgTheta = candidate->CtgTheta;222 entry->Phi = candidate->Phi;223 224 217 entry->Eta = eta; 225 218 entry->Phi = momentum.Phi(); … … 240 233 { 241 234 TIter iterator(array); 242 Candidate *candidate = 0 , *constituent = 0;235 Candidate *candidate = 0; 243 236 Vertex *entry = 0; 244 237 245 238 const Double_t c_light = 2.99792458E8; 246 239 247 Double_t x, y, z, t, xError, yError, zError, tError, sigma, sumPT2, btvSumPT2, genDeltaZ, genSumPT2;248 UInt_t index, ndf;249 250 CompBase *compare = Candidate::fgCompare;251 Candidate::fgCompare = CompSumPT2<Candidate>::Instance();252 array->Sort();253 Candidate::fgCompare = compare;254 255 240 // loop over all vertices 256 241 iterator.Reset(); 257 242 while((candidate = static_cast<Candidate*>(iterator.Next()))) 258 243 { 259 260 index = candidate->ClusterIndex; 261 ndf = candidate->ClusterNDF; 262 sigma = candidate->ClusterSigma; 263 sumPT2 = candidate->SumPT2; 264 btvSumPT2 = candidate->BTVSumPT2; 265 genDeltaZ = candidate->GenDeltaZ; 266 genSumPT2 = candidate->GenSumPT2; 267 268 x = candidate->Position.X(); 269 y = candidate->Position.Y(); 270 z = candidate->Position.Z(); 271 t = candidate->Position.T()*1.0E-3/c_light; 272 273 xError = candidate->PositionError.X (); 274 yError = candidate->PositionError.Y (); 275 zError = candidate->PositionError.Z (); 276 tError = candidate->PositionError.T ()*1.0E-3/c_light; 244 const TLorentzVector &position = candidate->Position; 277 245 278 246 entry = static_cast<Vertex*>(branch->NewEntry()); 279 247 280 entry->Index = index; 281 entry->NDF = ndf; 282 entry->Sigma = sigma; 283 entry->SumPT2 = sumPT2; 284 entry->BTVSumPT2 = btvSumPT2; 285 entry->GenDeltaZ = genDeltaZ; 286 entry->GenSumPT2 = genSumPT2; 287 288 entry->X = x; 289 entry->Y = y; 290 entry->Z = z; 291 entry->T = t; 292 293 entry->ErrorX = xError; 294 entry->ErrorY = yError; 295 entry->ErrorZ = zError; 296 entry->ErrorT = tError; 297 298 299 TIter itConstituents(candidate->GetCandidates()); 300 itConstituents.Reset(); 301 entry->Constituents.Clear(); 302 while((constituent = static_cast<Candidate*>(itConstituents.Next()))) 303 { 304 entry->Constituents.Add(constituent); 305 } 306 307 } 308 } 309 248 entry->X = position.X(); 249 entry->Y = position.Y(); 250 entry->Z = position.Z(); 251 entry->T = position.T()*1.0E-3/c_light; 252 } 253 } 310 254 311 255 //------------------------------------------------------------------------------ … … 317 261 Candidate *particle = 0; 318 262 Track *entry = 0; 319 Double_t pt, signz, cosTheta, eta, rapidity , p, ctgTheta, phi;263 Double_t pt, signz, cosTheta, eta, rapidity; 320 264 const Double_t c_light = 2.99792458E8; 321 265 … … 348 292 entry->TOuter = position.T()*1.0E-3/c_light; 349 293 350 entry->L = candidate->L; 351 352 entry->D0 = candidate->D0; 353 entry->ErrorD0 = candidate->ErrorD0; 354 entry->DZ = candidate->DZ; 355 entry->ErrorDZ = candidate->ErrorDZ; 356 357 entry->ErrorP = candidate->ErrorP; 358 entry->ErrorPT = candidate->ErrorPT; 359 entry->ErrorCtgTheta = candidate->ErrorCtgTheta; 360 entry->ErrorPhi = candidate->ErrorPhi; 361 294 entry->Dxy = candidate->Dxy; 295 entry->SDxy = candidate->SDxy ; 362 296 entry->Xd = candidate->Xd; 363 297 entry->Yd = candidate->Yd; … … 367 301 368 302 pt = momentum.Pt(); 369 p = momentum.P();370 phi = momentum.Phi();371 ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1/TMath::Tan(momentum.Theta()) : 1e10;372 373 303 cosTheta = TMath::Abs(momentum.CosTheta()); 374 304 signz = (momentum.Pz() >= 0.0) ? 1.0 : -1.0; … … 376 306 rapidity = (cosTheta == 1.0 ? signz*999.9 : momentum.Rapidity()); 377 307 378 entry->PT = pt;379 308 entry->Eta = eta; 380 entry->Phi = phi;381 entry-> CtgTheta = ctgTheta;309 entry->Phi = momentum.Phi(); 310 entry->PT = pt; 382 311 383 312 particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0)); … … 390 319 391 320 entry->Particle = particle; 392 393 entry->VertexIndex = candidate->ClusterIndex;394 395 321 } 396 322 } -
readers/DelphesCMSFWLite.cpp
rb9ae4c3 rec5e04b 272 272 273 273 branchEvent = treeWriter->NewBranch("Event", HepMCEvent::Class()); 274 branchRwgt = treeWriter->NewBranch(" Weight", Weight::Class());274 branchRwgt = treeWriter->NewBranch("Rwgt", Weight::Class()); 275 275 276 276 confReader = new ExRootConfReader; -
readers/DelphesPythia8.cpp
rb9ae4c3 rec5e04b 153 153 // from pythia8 example 21 154 154 155 void fillParticle(int id, double pt_max, double eta_max,156 Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm)157 { 155 void fillParticle(int id, double ee_max, double thetaIn, double phiIn, 156 Pythia8::Event& event, Pythia8::ParticleData& pdt, Pythia8::Rndm& rndm, bool atRest = false) { 157 158 158 // Reset event record to allow for new event. 159 159 event.reset(); 160 160 161 // Generate uniform pt and eta.162 double pt, eta, phi, pp, ee, mm;163 pt = pow(10, 1.0 + (log10(pt_max) - 1.0) * rndm.flat());164 eta = (2.0 * rndm.flat() - 1.0) * eta_max;165 phi = 2. 0* M_PI * rndm.flat();166 pp = pt * cosh(eta);167 mm = pdt.mSel(id);168 ee = Pythia8::sqrtpos(pp*pp +mm*mm);161 // Angles uniform in solid angle. 162 double cThe, sThe, phi, ee; 163 cThe = 2. * rndm.flat() - 1.; 164 sThe = Pythia8::sqrtpos(1. - cThe * cThe); 165 phi = 2. * M_PI * rndm.flat(); 166 ee = pow(10,1+(log10(ee_max)-1)*rndm.flat()); 167 double mm = pdt.mSel(id); 168 double pp = Pythia8::sqrtpos(ee*ee - mm*mm); 169 169 170 170 // Store the particle in the event record. 171 event.append(id, 1, 0, 0, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee, mm); 171 event.append( id, 1, 0, 0, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee, mm); 172 172 173 } 173 174 174 void fillPartons(int id, double pt_max, double eta_max, 175 Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm) 176 { 175 void fillPartons(int type, double ee_max, Pythia8::Event& event, Pythia8::ParticleData& pdt, 176 Pythia8::Rndm& rndm) { 177 177 178 178 // Reset event record to allow for new event. 179 179 event.reset(); 180 180 181 // Angles uniform in solid angle. 182 double cThe, sThe, phi, ee; 183 181 184 // Information on a q qbar system, to be hadronized. 182 185 183 // Generate uniform pt and eta. 184 double pt, eta, phi, pp, ee, mm; 185 pt = pow(10, 1.0 + (log10(pt_max) - 1.0) * rndm.flat()); 186 eta = (2.0 * rndm.flat() - 1.0) * eta_max; 187 phi = 2.0 * M_PI * rndm.flat(); 188 pp = pt * cosh(eta); 189 mm = pdt.m0(id); 190 ee = Pythia8::sqrtpos(pp*pp + mm*mm); 191 192 if(id == 21) 193 { 194 event.append(21, 23, 101, 102, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee); 195 event.append(21, 23, 102, 101, -pt * cos(phi), -pt * sin(phi), -pt * sinh(eta), ee); 186 cThe = 2. * rndm.flat() - 1.; 187 sThe = Pythia8::sqrtpos(1. - cThe * cThe); 188 phi = 2. * M_PI * rndm.flat(); 189 ee = pow(10,1+(log10(ee_max)-1)*rndm.flat()); 190 double mm = pdt.m0(type); 191 double pp = Pythia8::sqrtpos(ee*ee - mm*mm); 192 if (type == 21) 193 { 194 event.append( 21, 23, 101, 102, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee); 195 event.append( 21, 23, 102, 101, -pp * sThe * cos(phi), -pp * sThe * sin(phi), -pp * cThe, ee); 196 196 } 197 197 else 198 198 { 199 event.append( id, 23, 101, 0, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee, mm);200 event.append( -id, 23, 0, 101, -pt * cos(phi), -pt * sin(phi), -pt * sinh(eta), ee, mm);199 event.append( type, 23, 101, 0, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee, mm); 200 event.append( -type, 23, 0, 101, -pp * sThe * cos(phi), -pp * sThe * sin(phi), -pp * cThe, ee, mm); 201 201 } 202 202 } … … 338 338 if (pythia->flag("Main:spareFlag1")) 339 339 { 340 if (pythia->mode("Main:spareMode1") == 11 || pythia->mode("Main:spareMode1") == 13 || pythia->mode("Main:spareMode1") == 15 || pythia->mode("Main:spareMode1") ==22)340 if (pythia->mode("Main:spareMode1") == 11 || pythia->mode("Main:spareMode1") == 13 || pythia->mode("Main:spareMode1") == 22) 341 341 { 342 fillParticle( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm);342 fillParticle( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), -1., 0.,pythia->event, pythia->particleData, pythia->rndm, 0); 343 343 } 344 else 345 { 346 fillPartons(pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm); 347 } 344 else fillPartons( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->event, pythia->particleData, pythia->rndm); 348 345 } 349 346
Note:
See TracChangeset
for help on using the changeset viewer.