Changes in / [001ee95:667a02a] in git
- Files:
-
- 6 added
- 1 deleted
- 173 edited
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
r001ee95 r667a02a 1 1 *~ 2 *.swp 3 *.swo 2 4 *bk 5 CaloGrid 6 ClassesDict_rdict.pcm 3 7 DelphesHepMC 4 8 DelphesLHEF … … 7 11 DelphesValidation 8 12 ExRootAnalysisDict_rdict.pcm 13 Example1 9 14 FastJetDict_rdict.pcm 10 15 ModulesDict_rdict.pcm 11 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.o12 16 hepmc2pileup 13 17 lhco2root 14 lib.tar.gz15 18 libDelphes.so 16 19 libDelphesNoFastJet.so … … 19 22 root2pileup 20 23 stdhep2pileup 24 tmp -
Makefile
r001ee95 r667a02a 1295 1295 tmp/external/fastjet/contribs/Nsubjettiness/XConePlugin.$(ObjSuf): \ 1296 1296 external/fastjet/contribs/Nsubjettiness/XConePlugin.$(SrcSuf) 1297 tmp/external/fastjet/contribs/RecursiveTools/BottomUpSoftDrop.$(ObjSuf): \ 1298 external/fastjet/contribs/RecursiveTools/BottomUpSoftDrop.$(SrcSuf) \ 1299 external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh \ 1300 external/fastjet/Selector.hh \ 1301 external/fastjet/config.h 1302 tmp/external/fastjet/contribs/RecursiveTools/IteratedSoftDrop.$(ObjSuf): \ 1303 external/fastjet/contribs/RecursiveTools/IteratedSoftDrop.$(SrcSuf) 1297 1304 tmp/external/fastjet/contribs/RecursiveTools/ModifiedMassDropTagger.$(ObjSuf): \ 1298 1305 external/fastjet/contribs/RecursiveTools/ModifiedMassDropTagger.$(SrcSuf) \ … … 1301 1308 tmp/external/fastjet/contribs/RecursiveTools/Recluster.$(ObjSuf): \ 1302 1309 external/fastjet/contribs/RecursiveTools/Recluster.$(SrcSuf) 1310 tmp/external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.$(ObjSuf): \ 1311 external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.$(SrcSuf) \ 1312 external/fastjet/ClusterSequence.hh 1303 1313 tmp/external/fastjet/contribs/RecursiveTools/RecursiveSymmetryCutBase.$(ObjSuf): \ 1304 1314 external/fastjet/contribs/RecursiveTools/RecursiveSymmetryCutBase.$(SrcSuf) \ … … 1535 1545 tmp/external/fastjet/contribs/Nsubjettiness/TauComponents.$(ObjSuf) \ 1536 1546 tmp/external/fastjet/contribs/Nsubjettiness/XConePlugin.$(ObjSuf) \ 1547 tmp/external/fastjet/contribs/RecursiveTools/BottomUpSoftDrop.$(ObjSuf) \ 1548 tmp/external/fastjet/contribs/RecursiveTools/IteratedSoftDrop.$(ObjSuf) \ 1537 1549 tmp/external/fastjet/contribs/RecursiveTools/ModifiedMassDropTagger.$(ObjSuf) \ 1538 1550 tmp/external/fastjet/contribs/RecursiveTools/Recluster.$(ObjSuf) \ 1551 tmp/external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.$(ObjSuf) \ 1539 1552 tmp/external/fastjet/contribs/RecursiveTools/RecursiveSymmetryCutBase.$(ObjSuf) \ 1540 1553 tmp/external/fastjet/contribs/RecursiveTools/SoftDrop.$(ObjSuf) \ -
cards/CMS_PhaseII/CMS_PhaseII_200PU_v03.tcl
r001ee95 r667a02a 1 ######################################## 1 2 # 2 3 # Main authors: Michele Selvaggi (CERN) … … 15 16 PileUpMerger 16 17 ParticlePropagator 18 TrackMergerProp 19 20 DenseProp 21 DenseMergeTracks 22 DenseTrackFilter 17 23 18 24 ChargedHadronTrackingEfficiency … … 24 30 MuonMomentumSmearing 25 31 26 DenseProp27 DenseMergeTracks28 TrackMergerProp29 32 TrackMerger 30 33 … … 159 162 160 163 161 ################################# 162 # Dense Track propagation calo163 ################################# 164 ##################################### 165 # Track propagation to calorimeters 166 ##################################### 164 167 165 168 module ParticlePropagator ParticlePropagator { … … 182 185 183 186 187 ############## 188 # Track merger 189 ############## 190 191 module Merger TrackMergerProp { 192 # add InputArray InputArray 193 add InputArray ParticlePropagator/chargedHadrons 194 add InputArray ParticlePropagator/electrons 195 add InputArray ParticlePropagator/muons 196 set OutputArray tracks 197 } 198 199 200 #################################### 201 # Track propagation to pseudo-pixel 202 #################################### 203 204 module ParticlePropagator DenseProp { 205 206 set InputArray TrackMergerProp/tracks 207 208 # radius of the first pixel layer 209 set Radius 0.3 210 set RadiusMax 1.29 211 # half-length of the magnetic field coverage, in m 212 set HalfLength 0.7 213 set HalfLengthMax 3.0 214 215 # magnetic field 216 set Bz 3.8 217 } 218 219 220 #################### 221 # Dense Track merger 222 ################### 223 224 module Merger DenseMergeTracks { 225 # add InputArray InputArray 226 add InputArray DenseProp/chargedHadrons 227 add InputArray DenseProp/electrons 228 add InputArray DenseProp/muons 229 set OutputArray tracks 230 } 231 232 ###################### 233 # Dense Track Filter 234 ###################### 235 236 module DenseTrackFilter DenseTrackFilter { 237 238 set TrackInputArray DenseMergeTracks/tracks 239 240 set TrackOutputArray tracks 241 set ChargedHadronOutputArray chargedHadrons 242 set ElectronOutputArray electrons 243 set MuonOutputArray muons 244 245 set EtaPhiRes 0.003 246 set EtaMax 4.0 247 248 set pi [expr {acos(-1)}] 249 250 set nbins_phi [expr {$pi/$EtaPhiRes} ] 251 set nbins_phi [expr {int($nbins_phi)} ] 252 253 set PhiBins {} 254 for {set i -$nbins_phi} {$i <= $nbins_phi} {incr i} { 255 add PhiBins [expr {$i * $pi/$nbins_phi}] 256 } 257 258 set nbins_eta [expr {$EtaMax/$EtaPhiRes} ] 259 set nbins_eta [expr {int($nbins_eta)} ] 260 261 for {set i -$nbins_eta} {$i <= $nbins_eta} {incr i} { 262 set eta [expr {$i * $EtaPhiRes}] 263 add EtaPhiBins $eta $PhiBins 264 } 265 266 } 267 184 268 185 269 … … 190 274 module Efficiency ChargedHadronTrackingEfficiency { 191 275 ## particles after propagation 192 set InputArray ParticlePropagator/chargedHadrons276 set InputArray DenseTrackFilter/chargedHadrons 193 277 set OutputArray chargedHadrons 194 278 # tracking efficiency formula for charged hadrons … … 211 295 212 296 module Efficiency ElectronTrackingEfficiency { 213 set InputArray ParticlePropagator/electrons297 set InputArray DenseTrackFilter/electrons 214 298 set OutputArray electrons 215 299 # tracking efficiency formula for electrons … … 234 318 235 319 module Efficiency MuonTrackingEfficiency { 236 set InputArray ParticlePropagator/muons320 set InputArray DenseTrackFilter/muons 237 321 set OutputArray muons 238 322 # tracking efficiency formula for muons … … 351 435 } 352 436 437 353 438 ################################# 354 439 # Energy resolution for electrons … … 390 475 } 391 476 477 478 392 479 ############## 393 480 # Track merger 394 481 ############## 395 482 396 module Merger TrackMerger Prop{483 module Merger TrackMerger { 397 484 # add InputArray InputArray 398 485 add InputArray ChargedHadronMomentumSmearing/chargedHadrons … … 400 487 add InputArray MuonMomentumSmearing/muons 401 488 set OutputArray tracks 402 }403 404 405 #################################406 # Dense Track propagation407 #################################408 409 module ParticlePropagator DenseProp {410 set InputArray PileUpMerger/stableParticles411 412 set OutputArray stableParticles413 set NeutralOutputArray neutralParticles414 set ChargedHadronOutputArray chargedHadrons415 set ElectronOutputArray electrons416 set MuonOutputArray muons417 418 # radius of the first pixel layer419 set Radius 0.3420 set RadiusMax 1.29421 # half-length of the magnetic field coverage, in m422 set HalfLength 0.7423 set HalfLengthMax 3.0424 425 # magnetic field426 set Bz 3.8427 }428 429 ####################430 # Dense Track merger431 ###################432 433 module Merger DenseMergeTracks {434 # add InputArray InputArray435 add InputArray DenseProp/chargedHadrons436 add InputArray DenseProp/electrons437 add InputArray DenseProp/muons438 set OutputArray tracks439 }440 441 ######################442 # Dense Track Filter443 ######################444 445 module DenseTrackFilter TrackMerger {446 set TrackInputArray TrackMergerProp/tracks447 set DenseChargedInputArray DenseMergeTracks/tracks448 449 set TrackOutputArray tracks450 451 set EtaPhiRes 0.003452 set EtaMax 4.0453 454 set pi [expr {acos(-1)}]455 456 set nbins_phi [expr {$pi/$EtaPhiRes} ]457 set nbins_phi [expr {int($nbins_phi)} ]458 459 set PhiBins {}460 for {set i -$nbins_phi} {$i <= $nbins_phi} {incr i} {461 add PhiBins [expr {$i * $pi/$nbins_phi}]462 }463 464 set nbins_eta [expr {$EtaMax/$EtaPhiRes} ]465 set nbins_eta [expr {int($nbins_eta)} ]466 467 for {set i -$nbins_eta} {$i <= $nbins_eta} {incr i} {468 set eta [expr {$i * $EtaPhiRes}]469 add EtaPhiBins $eta $PhiBins470 }471 472 489 } 473 490 … … 693 710 add PdgCode {-11} 694 711 } 712 695 713 696 714 -
cards/FCC/FCChh.tcl
r001ee95 r667a02a 15 15 16 16 ParticlePropagator 17 TrackMergerProp 18 19 DenseProp 20 DenseMergeTracks 21 DenseTrackFilter 17 22 18 23 ChargedHadronTrackingEfficiency … … 24 29 MuonMomentumSmearing 25 30 26 DenseProp27 DenseMergeTracks28 TrackMergerProp29 31 TrackMerger 30 32 … … 82 84 } 83 85 84 # 85 ################################# 86 # Propagate particles in cylinder 87 ################################# 86 ##################################### 87 # Track propagation to calorimeters 88 ##################################### 88 89 89 90 module ParticlePropagator ParticlePropagator { … … 103 104 } 104 105 106 107 ############## 108 # Track merger 109 ############## 110 111 module Merger TrackMergerProp { 112 # add InputArray InputArray 113 add InputArray ParticlePropagator/chargedHadrons 114 add InputArray ParticlePropagator/electrons 115 add InputArray ParticlePropagator/muons 116 set OutputArray tracks 117 } 118 119 120 #################################### 121 # Track propagation to pseudo-pixel 122 #################################### 123 124 module ParticlePropagator DenseProp { 125 126 set InputArray TrackMergerProp/tracks 127 128 # radius of the magnetic field coverage, in m 129 set Radius 0.45 130 set RadiusMax 1.5 131 # half-length of the magnetic field coverage, in m 132 set HalfLength 0.8 133 set HalfLengthMax 5 134 135 # magnetic field 136 set Bz 4.0 137 } 138 139 ##################### 140 # Dense Track merger 141 ##################### 142 143 module Merger DenseMergeTracks { 144 # add InputArray InputArray 145 add InputArray DenseProp/chargedHadrons 146 add InputArray DenseProp/electrons 147 add InputArray DenseProp/muons 148 set OutputArray tracks 149 } 150 151 152 ###################### 153 # Dense Track Filter 154 ###################### 155 156 module DenseTrackFilter DenseTrackFilter { 157 158 set TrackInputArray DenseMergeTracks/tracks 159 160 set TrackOutputArray tracks 161 set ChargedHadronOutputArray chargedHadrons 162 set ElectronOutputArray electrons 163 set MuonOutputArray muons 164 165 set EtaPhiRes 0.001 166 set EtaMax 6.0 167 168 set pi [expr {acos(-1)}] 169 170 set nbins_phi [expr {$pi/$EtaPhiRes} ] 171 set nbins_phi [expr {int($nbins_phi)} ] 172 173 set PhiBins {} 174 for {set i -$nbins_phi} {$i <= $nbins_phi} {incr i} { 175 add PhiBins [expr {$i * $pi/$nbins_phi}] 176 } 177 } 178 105 179 #################################### 106 180 # Charged hadron tracking efficiency … … 108 182 109 183 module Efficiency ChargedHadronTrackingEfficiency { 110 set InputArray ParticlePropagator/chargedHadrons184 set InputArray DenseTrackFilter/chargedHadrons 111 185 set OutputArray chargedHadrons 112 186 … … 131 205 132 206 module Efficiency ElectronTrackingEfficiency { 133 set InputArray ParticlePropagator/electrons207 set InputArray DenseTrackFilter/electrons 134 208 set OutputArray electrons 135 209 … … 147 221 148 222 } 223 149 224 ########################## 150 225 # Muon tracking efficiency … … 152 227 153 228 module Efficiency MuonTrackingEfficiency { 154 set InputArray ParticlePropagator/muons229 set InputArray DenseTrackFilter/muons 155 230 set OutputArray muons 156 231 … … 202 277 } 203 278 204 205 279 ############## 206 280 # Track merger 207 281 ############## 208 282 209 module Merger TrackMerger Prop{283 module Merger TrackMerger { 210 284 # add InputArray InputArray 211 285 add InputArray ChargedHadronMomentumSmearing/chargedHadrons … … 214 288 set OutputArray tracks 215 289 } 216 217 218 #################################219 # Dense Track propagation220 #################################221 222 module ParticlePropagator DenseProp {223 set InputArray Delphes/stableParticles224 225 set OutputArray stableParticles226 set NeutralOutputArray neutralParticles227 set ChargedHadronOutputArray chargedHadrons228 set ElectronOutputArray electrons229 set MuonOutputArray muons230 231 # radius of the magnetic field coverage, in m232 set Radius 0.45233 set RadiusMax 1.5234 # half-length of the magnetic field coverage, in m235 set HalfLength 0.8236 set HalfLengthMax 5237 238 # magnetic field239 set Bz 4.0240 }241 242 ####################243 # Dense Track merger244 ###################245 246 module Merger DenseMergeTracks {247 # add InputArray InputArray248 add InputArray DenseProp/chargedHadrons249 add InputArray DenseProp/electrons250 add InputArray DenseProp/muons251 set OutputArray tracks252 }253 254 255 ######################256 # Dense Track Filter257 ######################258 259 module DenseTrackFilter TrackMerger {260 set TrackInputArray TrackMergerProp/tracks261 set DenseChargedInputArray DenseMergeTracks/tracks262 263 set TrackOutputArray tracks264 265 set EtaPhiRes 0.001266 set EtaMax 6.0267 268 set pi [expr {acos(-1)}]269 270 set nbins_phi [expr {$pi/$EtaPhiRes} ]271 set nbins_phi [expr {int($nbins_phi)} ]272 273 set PhiBins {}274 for {set i -$nbins_phi} {$i <= $nbins_phi} {incr i} {275 add PhiBins [expr {$i * $pi/$nbins_phi}]276 }277 278 set nbins_eta [expr {$EtaMax/$EtaPhiRes} ]279 set nbins_eta [expr {int($nbins_eta)} ]280 281 for {set i -$nbins_eta} {$i <= $nbins_eta} {incr i} {282 set eta [expr {$i * $EtaPhiRes}]283 add EtaPhiBins $eta $PhiBins284 }285 }286 287 290 288 291 -
cards/delphes_card_HLLHC.tcl
r001ee95 r667a02a 14 14 15 15 ParticlePropagator 16 TrackMergerProp 17 18 DenseProp 19 DenseMergeTracks 20 DenseTrackFilter 16 21 17 22 ChargedHadronTrackingEfficiency … … 23 28 MuonMomentumSmearing 24 29 25 DenseProp26 DenseMergeTracks27 TrackMergerProp28 30 TrackMerger 29 31 … … 53 55 GenMissingET 54 56 55 FastJetFinder 56 FatJetFinder 57 GenJetFinder02 58 GenJetFinder04 59 GenJetFinder08 60 61 FastJetFinder02 62 FastJetFinder04 63 FastJetFinder08 64 65 CaloJetFinder02 66 CaloJetFinder04 67 CaloJetFinder08 68 69 TrackJetFinder02 70 TrackJetFinder04 71 TrackJetFinder08 57 72 58 73 JetEnergyScale … … 71 86 72 87 73 ################################# 74 # Propagate particles in cylinder75 ################################# 88 ##################################### 89 # Track propagation to calorimeters 90 ##################################### 76 91 77 92 module ParticlePropagator ParticlePropagator { … … 92 107 } 93 108 109 ############## 110 # Track merger 111 ############## 112 113 module Merger TrackMergerProp { 114 # add InputArray InputArray 115 add InputArray ParticlePropagator/chargedHadrons 116 add InputArray ParticlePropagator/electrons 117 add InputArray ParticlePropagator/muons 118 set OutputArray tracks 119 } 120 121 #################################### 122 # Track propagation to pseudo-pixel 123 #################################### 124 125 module ParticlePropagator DenseProp { 126 127 set InputArray TrackMergerProp/tracks 128 129 # radius of the magnetic field coverage, in m 130 set Radius 0.3 131 set RadiusMax 1.2 132 # half-length of the magnetic field coverage, in m 133 set HalfLength 0.7 134 set HalfLengthMax 3.25 135 136 # magnetic field 137 set Bz 3.0 138 } 139 140 ##################### 141 # Dense Track merger 142 ##################### 143 144 module Merger DenseMergeTracks { 145 # add InputArray InputArray 146 add InputArray DenseProp/chargedHadrons 147 add InputArray DenseProp/electrons 148 add InputArray DenseProp/muons 149 set OutputArray tracks 150 } 151 152 153 ###################### 154 # Dense Track Filter 155 ###################### 156 157 module DenseTrackFilter DenseTrackFilter { 158 159 set TrackInputArray DenseMergeTracks/tracks 160 161 set TrackOutputArray tracks 162 set ChargedHadronOutputArray chargedHadrons 163 set ElectronOutputArray electrons 164 set MuonOutputArray muons 165 166 set EtaPhiRes 0.003 167 set EtaMax 4.0 168 169 set pi [expr {acos(-1)}] 170 171 set nbins_phi [expr {$pi/$EtaPhiRes} ] 172 set nbins_phi [expr {int($nbins_phi)} ] 173 174 set PhiBins {} 175 for {set i -$nbins_phi} {$i <= $nbins_phi} {incr i} { 176 add PhiBins [expr {$i * $pi/$nbins_phi}] 177 } 178 179 set nbins_eta [expr {$EtaMax/$EtaPhiRes} ] 180 set nbins_eta [expr {int($nbins_eta)} ] 181 182 for {set i -$nbins_eta} {$i <= $nbins_eta} {incr i} { 183 set eta [expr {$i * $EtaPhiRes}] 184 add EtaPhiBins $eta $PhiBins 185 } 186 } 187 188 189 94 190 #################################### 95 191 # Charged hadron tracking efficiency … … 97 193 98 194 module Efficiency ChargedHadronTrackingEfficiency { 99 set InputArray ParticlePropagator/chargedHadrons195 set InputArray DenseTrackFilter/chargedHadrons 100 196 set OutputArray chargedHadrons 101 197 … … 122 218 123 219 module Efficiency ElectronTrackingEfficiency { 124 set InputArray ParticlePropagator/electrons220 set InputArray DenseTrackFilter/electrons 125 221 set OutputArray electrons 126 222 … … 145 241 146 242 module Efficiency MuonTrackingEfficiency { 147 set InputArray ParticlePropagator/muons243 set InputArray DenseTrackFilter/muons 148 244 set OutputArray muons 149 245 … … 443 539 } 444 540 541 542 445 543 ############## 446 544 # Track merger 447 545 ############## 448 546 449 module Merger TrackMerger Prop{547 module Merger TrackMerger { 450 548 # add InputArray InputArray 451 549 add InputArray ChargedHadronMomentumSmearing/chargedHadrons … … 453 551 add InputArray MuonMomentumSmearing/muons 454 552 set OutputArray tracks 455 }456 457 458 #################################459 # Dense Track propagation460 #################################461 462 module ParticlePropagator DenseProp {463 set InputArray Delphes/stableParticles464 465 set OutputArray stableParticles466 set NeutralOutputArray neutralParticles467 set ChargedHadronOutputArray chargedHadrons468 set ElectronOutputArray electrons469 set MuonOutputArray muons470 471 # radius of the magnetic field coverage, in m472 set Radius 0.3473 set RadiusMax 1.2474 # half-length of the magnetic field coverage, in m475 set HalfLength 0.7476 set HalfLengthMax 3.25477 478 # magnetic field479 set Bz 3.0480 }481 482 483 ####################484 # Dense Track merger485 ###################486 487 module Merger DenseMergeTracks {488 # add InputArray InputArray489 add InputArray DenseProp/chargedHadrons490 add InputArray DenseProp/electrons491 add InputArray DenseProp/muons492 set OutputArray tracks493 }494 495 496 ######################497 # Dense Track Filter498 ######################499 500 module DenseTrackFilter TrackMerger {501 set TrackInputArray TrackMergerProp/tracks502 set DenseChargedInputArray DenseMergeTracks/tracks503 504 set TrackOutputArray tracks505 506 set EtaPhiRes 0.003507 set EtaMax 4.0508 509 set pi [expr {acos(-1)}]510 511 set nbins_phi [expr {$pi/$EtaPhiRes} ]512 set nbins_phi [expr {int($nbins_phi)} ]513 514 set PhiBins {}515 for {set i -$nbins_phi} {$i <= $nbins_phi} {incr i} {516 add PhiBins [expr {$i * $pi/$nbins_phi}]517 }518 519 set nbins_eta [expr {$EtaMax/$EtaPhiRes} ]520 set nbins_eta [expr {int($nbins_eta)} ]521 522 for {set i -$nbins_eta} {$i <= $nbins_eta} {incr i} {523 set eta [expr {$i * $EtaPhiRes}]524 add EtaPhiBins $eta $PhiBins525 }526 553 } 527 554 … … 841 868 842 869 843 ############ 844 # Jet finder 845 ############ 846 847 module FastJetFinder FastJetFinder { 848 set InputArray Calorimeter/towers 849 # set InputArray EFlowMerger/eflow 850 851 set OutputArray jets 852 870 871 ##################### 872 # MC truth jet finder 873 ##################### 874 875 # TBC: is jet radius fine? 876 877 module FastJetFinder GenJetFinder02 { 878 set InputArray NeutrinoFilter/filteredParticles 879 880 set OutputArray jets 881 882 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 883 set JetAlgorithm 6 884 set ParameterR 0.2 885 886 set ComputeNsubjettiness 1 887 set Beta 1.0 888 set AxisMode 4 889 890 set ComputeSoftDrop 1 891 set BetaSoftDrop 0.0 892 set SymmetryCutSoftDrop 0.1 893 set R0SoftDrop 0.2 894 895 set JetPTMin 25.0 896 } 897 898 899 ##################### 900 # MC truth jet finder 901 ##################### 902 903 # TBC: is jet radius fine? 904 905 module FastJetFinder GenJetFinder04 { 906 set InputArray NeutrinoFilter/filteredParticles 907 908 set OutputArray jets 909 910 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 853 911 set JetAlgorithm 6 854 912 set ParameterR 0.4 … … 863 921 set R0SoftDrop 0.4 864 922 865 set JetPTMin 30.0 866 } 867 868 ################## 869 # Fat Jet finder 870 ################## 871 872 module FastJetFinder FatJetFinder { 873 set InputArray EFlowMerger/eflow 923 set JetPTMin 25.0 924 } 925 ##################### 926 # MC truth jet finder 927 ##################### 928 929 # TBC: is jet radius fine? 930 931 module FastJetFinder GenJetFinder08 { 932 set InputArray NeutrinoFilter/filteredParticles 874 933 875 934 set OutputArray jets … … 888 947 set R0SoftDrop 0.8 889 948 890 set JetPTMin 200.0 891 } 892 949 set JetPTMin 25.0 950 } 951 952 ##################### 953 # MC truth jet finder 954 ##################### 955 956 # TBC: is jet radius fine? 957 958 module FastJetFinder GenJetFinder15 { 959 set InputArray NeutrinoFilter/filteredParticles 960 961 set OutputArray jets 962 963 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 964 set JetAlgorithm 6 965 set ParameterR 1.5 966 967 set ComputeNsubjettiness 1 968 set Beta 1.0 969 set AxisMode 4 970 971 set ComputeSoftDrop 1 972 set BetaSoftDrop 0.0 973 set SymmetryCutSoftDrop 0.1 974 set R0SoftDrop 1.5 975 976 set JetPTMin 25.0 977 } 978 979 980 ################## 981 # Fast Jet finder 982 ################## 983 984 module FastJetFinder FastJetFinder02 { 985 set InputArray EFlowMerger/eflow 986 987 set OutputArray jets 988 989 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 990 set JetAlgorithm 6 991 set ParameterR 0.2 992 993 set ComputeNsubjettiness 1 994 set Beta 1.0 995 set AxisMode 4 996 997 set ComputeSoftDrop 1 998 set BetaSoftDrop 0.0 999 set SymmetryCutSoftDrop 0.1 1000 set R0SoftDrop 0.2 1001 1002 set JetPTMin 25.0 1003 } 1004 1005 ################## 1006 # Fast Jet finder 1007 ################## 1008 1009 module FastJetFinder FastJetFinder04 { 1010 set InputArray EFlowMerger/eflow 1011 1012 set OutputArray jets 1013 1014 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1015 set JetAlgorithm 6 1016 set ParameterR 0.4 1017 1018 set ComputeNsubjettiness 1 1019 set Beta 1.0 1020 set AxisMode 4 1021 1022 set ComputeSoftDrop 1 1023 set BetaSoftDrop 0.0 1024 set SymmetryCutSoftDrop 0.1 1025 set R0SoftDrop 0.4 1026 1027 set JetPTMin 25.0 1028 } 1029 1030 1031 ################## 1032 # Fast Jet finder 1033 ################## 1034 1035 module FastJetFinder FastJetFinder08 { 1036 set InputArray EFlowMerger/eflow 1037 1038 set OutputArray jets 1039 1040 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1041 set JetAlgorithm 6 1042 set ParameterR 0.8 1043 1044 set ComputeNsubjettiness 1 1045 set Beta 1.0 1046 set AxisMode 4 1047 1048 set ComputeSoftDrop 1 1049 set BetaSoftDrop 0.0 1050 set SymmetryCutSoftDrop 0.1 1051 set R0SoftDrop 0.8 1052 1053 set JetPTMin 25.0 1054 } 1055 1056 ################## 1057 # Fast Jet finder 1058 ################## 1059 1060 module FastJetFinder FastJetFinder15 { 1061 set InputArray EFlowMerger/eflow 1062 1063 set OutputArray jets 1064 1065 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1066 set JetAlgorithm 6 1067 set ParameterR 1.5 1068 1069 set ComputeNsubjettiness 1 1070 set Beta 1.0 1071 set AxisMode 4 1072 1073 set ComputeSoftDrop 1 1074 set BetaSoftDrop 0.0 1075 set SymmetryCutSoftDrop 0.1 1076 set R0SoftDrop 1.5 1077 1078 set JetPTMin 25.0 1079 } 1080 1081 1082 ################## 1083 # Fast Jet finder 1084 ################## 1085 1086 module FastJetFinder CaloJetFinder02 { 1087 set InputArray Calorimeter/towers 1088 1089 set OutputArray jets 1090 1091 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1092 set JetAlgorithm 6 1093 set ParameterR 0.2 1094 1095 set ComputeNsubjettiness 1 1096 set Beta 1.0 1097 set AxisMode 4 1098 1099 set ComputeSoftDrop 1 1100 set BetaSoftDrop 0.0 1101 set SymmetryCutSoftDrop 0.1 1102 set R0SoftDrop 0.2 1103 1104 set JetPTMin 25.0 1105 } 1106 1107 ################## 1108 # Fast Jet finder 1109 ################## 1110 1111 module FastJetFinder CaloJetFinder04 { 1112 set InputArray Calorimeter/towers 1113 1114 set OutputArray jets 1115 1116 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1117 set JetAlgorithm 6 1118 set ParameterR 0.4 1119 1120 set ComputeNsubjettiness 1 1121 set Beta 1.0 1122 set AxisMode 4 1123 1124 set ComputeSoftDrop 1 1125 set BetaSoftDrop 0.0 1126 set SymmetryCutSoftDrop 0.1 1127 set R0SoftDrop 0.4 1128 1129 set JetPTMin 25.0 1130 } 1131 1132 1133 ################## 1134 # Fast Jet finder 1135 ################## 1136 1137 module FastJetFinder CaloJetFinder08 { 1138 set InputArray Calorimeter/towers 1139 1140 set OutputArray jets 1141 1142 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1143 set JetAlgorithm 6 1144 set ParameterR 0.8 1145 1146 set ComputeNsubjettiness 1 1147 set Beta 1.0 1148 set AxisMode 4 1149 1150 set ComputeSoftDrop 1 1151 set BetaSoftDrop 0.0 1152 set SymmetryCutSoftDrop 0.1 1153 set R0SoftDrop 0.8 1154 1155 set JetPTMin 25.0 1156 } 1157 1158 ################## 1159 # Fast Jet finder 1160 ################## 1161 1162 module FastJetFinder CaloJetFinder15 { 1163 set InputArray Calorimeter/towers 1164 1165 set OutputArray jets 1166 1167 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1168 set JetAlgorithm 6 1169 set ParameterR 1.5 1170 1171 set ComputeNsubjettiness 1 1172 set Beta 1.0 1173 set AxisMode 4 1174 1175 set ComputeSoftDrop 1 1176 set BetaSoftDrop 0.0 1177 set SymmetryCutSoftDrop 0.1 1178 set R0SoftDrop 1.5 1179 1180 set JetPTMin 25.0 1181 } 1182 1183 1184 ################## 1185 # Fast Jet finder 1186 ################## 1187 1188 module FastJetFinder TrackJetFinder02 { 1189 set InputArray TrackMerger/tracks 1190 1191 set OutputArray jets 1192 1193 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1194 set JetAlgorithm 6 1195 set ParameterR 0.2 1196 1197 set ComputeNsubjettiness 1 1198 set Beta 1.0 1199 set AxisMode 4 1200 1201 set ComputeSoftDrop 1 1202 set BetaSoftDrop 0.0 1203 set SymmetryCutSoftDrop 0.1 1204 set R0SoftDrop 0.2 1205 1206 set JetPTMin 25.0 1207 } 1208 1209 ################## 1210 # Fast Jet finder 1211 ################## 1212 1213 module FastJetFinder TrackJetFinder04 { 1214 set InputArray TrackMerger/tracks 1215 1216 set OutputArray jets 1217 1218 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1219 set JetAlgorithm 6 1220 set ParameterR 0.4 1221 1222 set ComputeNsubjettiness 1 1223 set Beta 1.0 1224 set AxisMode 4 1225 1226 set ComputeSoftDrop 1 1227 set BetaSoftDrop 0.0 1228 set SymmetryCutSoftDrop 0.1 1229 set R0SoftDrop 0.4 1230 1231 set JetPTMin 25.0 1232 } 1233 1234 1235 ################## 1236 # Fast Jet finder 1237 ################## 1238 1239 module FastJetFinder TrackJetFinder08 { 1240 set InputArray TrackMerger/tracks 1241 1242 set OutputArray jets 1243 1244 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1245 set JetAlgorithm 6 1246 set ParameterR 0.8 1247 1248 set ComputeNsubjettiness 1 1249 set Beta 1.0 1250 set AxisMode 4 1251 1252 set ComputeSoftDrop 1 1253 set BetaSoftDrop 0.0 1254 set SymmetryCutSoftDrop 0.1 1255 set R0SoftDrop 0.8 1256 1257 set JetPTMin 25.0 1258 } 1259 1260 ################## 1261 # Fast Jet finder 1262 ################## 1263 1264 module FastJetFinder TrackJetFinder15 { 1265 set InputArray TrackMerger/tracks 1266 1267 set OutputArray jets 1268 1269 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt 1270 set JetAlgorithm 6 1271 set ParameterR 1.5 1272 1273 set ComputeNsubjettiness 1 1274 set Beta 1.0 1275 set AxisMode 4 1276 1277 set ComputeSoftDrop 1 1278 set BetaSoftDrop 0.0 1279 set SymmetryCutSoftDrop 0.1 1280 set R0SoftDrop 1.5 1281 1282 set JetPTMin 25.0 1283 } 893 1284 894 1285 … … 898 1289 899 1290 module EnergyScale JetEnergyScale { 900 set InputArray FastJetFinder/jets1291 set InputArray CaloJetFinder04/jets 901 1292 set OutputArray jets 902 1293 … … 1258 1649 add Branch UniqueObjectFinder/jets Jet Jet 1259 1650 1260 add Branch FatJetFinder/jets FatJet Jet 1651 add Branch GenJetFinder02/jets GenJet02 Jet 1652 add Branch GenJetFinder04/jets GenJet04 Jet 1653 add Branch GenJetFinder08/jets GenJet08 Jet 1654 add Branch GenJetFinder15/jets GenJet15 Jet 1655 1656 add Branch FastJetFinder02/jets ParticleFlowJet02 Jet 1657 add Branch FastJetFinder04/jets ParticleFlowJet04 Jet 1658 add Branch FastJetFinder08/jets ParticleFlowJet08 Jet 1659 add Branch FastJetFinder15/jets ParticleFlowJet15 Jet 1660 1661 add Branch CaloJetFinder02/jets CaloJet02 Jet 1662 add Branch CaloJetFinder04/jets CaloJet04 Jet 1663 add Branch CaloJetFinder08/jets CaloJet08 Jet 1664 add Branch CaloJetFinder15/jets CaloJet15 Jet 1665 1666 add Branch TrackJetFinder02/jets TrackJet02 Jet 1667 add Branch TrackJetFinder04/jets TrackJet04 Jet 1668 add Branch TrackJetFinder08/jets TrackJet08 Jet 1669 add Branch TrackJetFinder15/jets TrackJet15 Jet 1261 1670 1262 1671 add Branch MissingET/momentum MissingET MissingET -
doc/update_fastjet.sh
r001ee95 r667a02a 1 version=3. 2.11 version=3.3.1 2 2 3 3 wget http://fastjet.fr/repo/fastjet-${version}.tar.gz -
external/fastjet/ActiveAreaSpec.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ActiveAreaSpec.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: ActiveAreaSpec.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/AreaDefinition.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: AreaDefinition.cc 3619 2014-08-13 14:17:19Z salam $2 // $Id: AreaDefinition.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/AreaDefinition.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: AreaDefinition.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: AreaDefinition.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2006-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/BasicRandom.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: BasicRandom.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: BasicRandom.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/COPYING
r001ee95 r667a02a 1 FastJet is released under the terms of the GNU General Public License 2 v2 (GPLv2). FastJet includes a significant body of third-party code, 3 for example for third party plugin algorithms and for computational 4 geometry methods. These too are usually released under the GPL or 5 permissive licenses. Details are given below on a case-by-case basis. 6 7 A copy of the GPLv2 is to be found at the end of this file. 1 FastJet is free software; you can redistribute it and/or modify it 2 under the terms of the GNU General Public License as published by the 3 Free Software Foundation; either version 2 of the License (GPLv2), or 4 (at your option) any later version. A copy of the GPLv2 is to be found 5 at the end of this file. 6 7 FastJet includes a significant body of third-party code, for example 8 for third party plugin algorithms and for computational geometry 9 methods. These too are usually released under the GPL or permissive 10 licenses. Details are given below on a case-by-case basis. 8 11 9 12 While the GPL license grants you considerable freedom, please bear in -
external/fastjet/CircularRange.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CircularRange.hh 4 074 2016-03-08 09:09:25Z soyez$2 // $Id: CircularRange.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClosestPair2D.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.cc 4 059 2016-03-03 20:49:48Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClosestPair2D.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence.cc 4 154 2016-07-20 16:20:48Z soyez$2 // $Id: ClusterSequence.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: ClusterSequence.hh 4 154 2016-07-20 16:20:48Z soyez$5 // $Id: ClusterSequence.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- … … 367 367 /// As of FJ v3.1, this is deprecated, in line with the deprecation 368 368 /// of auto_ptr in C++11 369 #ifndef SWIG 369 370 #ifdef FASTJET_HAVE_AUTO_PTR_INTERFACE 370 371 FASTJET_DEPRECATED_MSG("Please use ClusterSequence::plugin_associate_extras(Extras * extras_in)) instead") … … 373 374 } 374 375 #endif 376 #endif //SWIG 375 377 376 378 /// returns true when the plugin is allowed to run the show. -
external/fastjet/ClusterSequence1GhostPassiveArea.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence1GhostPassiveArea.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequence1GhostPassiveArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence1GhostPassiveArea.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence1GhostPassiveArea.hh 4 047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequence1GhostPassiveArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveArea.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveArea.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequenceActiveArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveArea.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveArea.hh 4 047 2016-03-03 13:21:49Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 3433 2014-07-23 08:17:03Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4 047 2016-03-03 13:21:49Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceArea.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceArea.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequenceArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2006-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceArea.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceArea.hh 4 098 2016-03-15 16:38:22Z salam $3 // 4 // Copyright (c) 2006-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceAreaBase.cc
r001ee95 r667a02a 1 1 2 2 //FJSTARTHEADER 3 // $Id: ClusterSequenceAreaBase.cc 4 079 2016-03-09 12:20:03Z soyez$4 // 5 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez3 // $Id: ClusterSequenceAreaBase.cc 4354 2018-04-22 07:12:37Z salam $ 4 // 5 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceAreaBase.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceAreaBase.hh 4 098 2016-03-15 16:38:22Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceAreaBase.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequencePassiveArea.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequencePassiveArea.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequencePassiveArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequencePassiveArea.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequencePassiveArea.hh 4 047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequencePassiveArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceStructure.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceStructure.cc 3433 2014-07-23 08:17:03Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceStructure.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceStructure.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceStructure.hh 4 047 2016-03-03 13:21:49Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceStructure.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceVoronoiArea.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceVoronoiArea.cc 3433 2014-07-23 08:17:03Z salam $3 // 4 // Copyright (c) 2006-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceVoronoiArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceVoronoiArea.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceVoronoiArea.hh 4 047 2016-03-03 13:21:49Z soyez$2 // $Id: ClusterSequenceVoronoiArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceWithArea.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceWithArea.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequenceWithArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2006-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_CP2DChan.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_CP2DChan.cc 4 045 2016-03-03 10:01:55Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequence_CP2DChan.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_Delaunay.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_Delaunay.cc 4 059 2016-03-03 20:49:48Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequence_Delaunay.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_DumbN3.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_DumbN3.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequence_DumbN3.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_N2.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_N2.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequence_N2.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_TiledN2.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_TiledN2.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ClusterSequence_TiledN2.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CompositeJetStructure.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CompositeJetStructure.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: CompositeJetStructure.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CompositeJetStructure.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CompositeJetStructure.hh 4 047 2016-03-03 13:21:49Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: CompositeJetStructure.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn2piCylinder.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Dnn2piCylinder.cc 3433 2014-07-23 08:17:03Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn2piCylinder.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn3piCylinder.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Dnn3piCylinder.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: Dnn3piCylinder.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn4piCylinder.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Dnn4piCylinder.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: Dnn4piCylinder.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/DnnPlane.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.cc 3917 2015-07-03 14:07:50Z salam $2 // $Id: DnnPlane.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Error.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Error.cc 3695 2014-09-18 13:57:56Z cacciari$2 // $Id: Error.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Error.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: Error.hh 3807 2015-02-20 11:16:55Z soyez$5 // $Id: Error.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- … … 63 63 std::string message() const {return _message;} 64 64 65 /// an alternative access to the error message (more standard) 66 std::string description() const {return message();} 67 65 68 /// controls whether the error message (and the backtrace, if its printing is enabled) 66 69 /// is printed out or not -
external/fastjet/FunctionOfPseudoJet.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: FunctionOfPseudoJet.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: FunctionOfPseudoJet.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/FunctionOfPseudoJet.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: FunctionOfPseudoJet.hh 3433 2014-07-23 08:17:03Z salam $5 // $Id: FunctionOfPseudoJet.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/GhostedAreaSpec.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: GhostedAreaSpec.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: GhostedAreaSpec.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/GhostedAreaSpec.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: GhostedAreaSpec.hh 4 074 2016-03-08 09:09:25Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: GhostedAreaSpec.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/JetDefinition.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: JetDefinition.cc 4 074 2016-03-08 09:09:25Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JetDefinition.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/JetDefinition.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: JetDefinition.hh 4 074 2016-03-08 09:09:25Z soyez$6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: JetDefinition.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- … … 214 214 /// pt-based Winner-Takes-All (WTA) recombination: the 215 215 /// result of the recombination has the rapidity, azimuth and mass 216 /// of the thePseudoJet with the larger pt, and a pt equal to the216 /// of the PseudoJet with the larger pt, and a pt equal to the 217 217 /// sum of the two pt's 218 218 WTA_pt_scheme=7, -
external/fastjet/LazyTiling25.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling25.cc 3807 2015-02-20 11:16:55Z soyez$2 // $Id: LazyTiling25.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9.cc 3807 2015-02-20 11:16:55Z soyez$2 // $Id: LazyTiling9.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9Alt.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9Alt.cc 3807 2015-02-20 11:16:55Z soyez$2 // $Id: LazyTiling9Alt.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9SeparateGhosts.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9SeparateGhosts.cc 3807 2015-02-20 11:16:55Z soyez$2 // $Id: LazyTiling9SeparateGhosts.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LimitedWarning.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: LimitedWarning.cc 3619 2014-08-13 14:17:19Z salam $2 // $Id: LimitedWarning.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LimitedWarning.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: LimitedWarning.hh 3622 2014-08-13 14:45:45Z salam $5 // $Id: LimitedWarning.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/MinHeap.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: MinHeap.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: MinHeap.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/NNBase.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNBase.hh 4 060 2016-03-03 21:46:49Z salam $5 // $Id: NNBase.hh 4355 2018-04-22 15:38:54Z salam $ 6 6 // 7 // Copyright (c) 2016 , Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2016-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNFJN2Plain.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNFJN2Plain.hh 4 058 2016-03-03 15:39:40Z salam $6 // 7 // Copyright (c) 20 16, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: NNFJN2Plain.hh 4355 2018-04-22 15:38:54Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNFJN2Tiled.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNFJN2Tiled.hh 4 056 2016-03-03 15:27:35Z soyez$5 // $Id: NNFJN2Tiled.hh 4355 2018-04-22 15:38:54Z salam $ 6 6 // 7 // Copyright (c) 2016 , Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2016-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- … … 258 258 259 259 // structure that holds the real, full, distance (as well as a pointer to the corresponding TiledJet) 260 struct diJ_plus_link { 260 class diJ_plus_link { 261 public: 261 262 double diJ; // the distance 262 263 TiledJet * jet; // the jet (i) for which we've found this distance -
external/fastjet/NNH.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNH.hh 4 034 2016-03-02 00:20:27Z soyez$6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: NNH.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/PseudoJet.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.cc 4 100 2016-03-15 20:50:22Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: PseudoJet.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 203 203 //---------------------------------------------------------------------- 204 204 /// multiply the jet's momentum by the coefficient 205 voidPseudoJet::operator*=(double coeff) {205 PseudoJet & PseudoJet::operator*=(double coeff) { 206 206 // operator*= aims to maintain the rapidity and azimuth 207 207 // for the PseudoJet; if they have already been evaluated … … 218 218 _kt2*= coeff*coeff; 219 219 // phi and rap are unchanged 220 return *this; 220 221 } 221 222 222 223 //---------------------------------------------------------------------- 223 224 /// divide the jet's momentum by the coefficient 224 voidPseudoJet::operator/=(double coeff) {225 PseudoJet & PseudoJet::operator/=(double coeff) { 225 226 (*this) *= 1.0/coeff; 227 return *this; 226 228 } 227 229 … … 229 231 //---------------------------------------------------------------------- 230 232 /// add the other jet's momentum to this jet 231 voidPseudoJet::operator+=(const PseudoJet & other_jet) {233 PseudoJet & PseudoJet::operator+=(const PseudoJet & other_jet) { 232 234 _px += other_jet._px; 233 235 _py += other_jet._py; … … 235 237 _E += other_jet._E ; 236 238 _finish_init(); // we need to recalculate phi,rap,kt2 239 return *this; 237 240 } 238 241 … … 240 243 //---------------------------------------------------------------------- 241 244 /// subtract the other jet's momentum from this jet 242 voidPseudoJet::operator-=(const PseudoJet & other_jet) {245 PseudoJet & PseudoJet::operator-=(const PseudoJet & other_jet) { 243 246 _px -= other_jet._px; 244 247 _py -= other_jet._py; … … 246 249 _E -= other_jet._E ; 247 250 _finish_init(); // we need to recalculate phi,rap,kt2 251 return *this; 248 252 } 249 253 -
external/fastjet/PseudoJet.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.hh 4 047 2016-03-03 13:21:49Z soyez$2 // $Id: PseudoJet.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 83 83 84 84 /// constructor from any object that has px,py,pz,E = some_four_vector[0--3], 85 #ifndef SWIG 85 86 template <class L> PseudoJet(const L & some_four_vector); 86 87 #endif 88 87 89 // Constructor that performs minimal initialisation (only that of 88 90 // the shared pointers), of use in certain speed-critical contexts … … 170 172 inline double Et2() const {return (_kt2==0) ? 0.0 : _E*_E/(1.0+_pz*_pz/_kt2);} 171 173 174 /// cos of the polar angle 175 /// should we have: min(1.0,max(-1.0,_pz/sqrt(modp2()))); 176 inline double cos_theta() const { 177 return std::min(1.0, std::max(-1.0, _pz/sqrt(modp2()))); 178 } 179 /// polar angle 180 inline double theta() const { return acos(cos_theta()); } 181 172 182 /// returns component i, where X==0, Y==1, Z==2, E==3 173 183 double operator () (int i) const ; … … 220 230 //---------------------------------------------------------------------- 221 231 /// transform this jet (given in the rest frame of prest) into a jet 222 /// in the lab frame [NOT FULLY TESTED]232 /// in the lab frame 223 233 PseudoJet & boost(const PseudoJet & prest); 224 234 /// transform this jet (given in lab) into a jet in the rest 225 /// frame of prest [NOT FULLY TESTED]235 /// frame of prest 226 236 PseudoJet & unboost(const PseudoJet & prest); 227 237 228 voidoperator*=(double);229 voidoperator/=(double);230 voidoperator+=(const PseudoJet &);231 voidoperator-=(const PseudoJet &);238 PseudoJet & operator*=(double); 239 PseudoJet & operator/=(double); 240 PseudoJet & operator+=(const PseudoJet &); 241 PseudoJet & operator-=(const PseudoJet &); 232 242 233 243 /// reset the 4-momentum according to the supplied components and … … 249 259 /// (accessible via indexing, [0]==px,...[3]==E) and put the user 250 260 /// and history indices back to their default values. 261 #ifndef SWIG 251 262 template <class L> inline void reset(const L & some_four_vector) { 252 263 // check if some_four_vector can be cast to a PseudoJet … … 270 281 } 271 282 } 283 #endif // SWIG 272 284 273 285 /// reset the PseudoJet according to the specified pt, rapidity, … … 846 858 inline double dot_product(const PseudoJet & a, const PseudoJet & b) { 847 859 return a.E()*b.E() - a.px()*b.px() - a.py()*b.py() - a.pz()*b.pz(); 860 } 861 862 /// returns the cosine of the angle between a and b 863 inline double cos_theta(const PseudoJet & a, const PseudoJet & b) { 864 double dot_3d = a.px()*b.px() + a.py()*b.py() + a.pz()*b.pz(); 865 return std::min(1.0, std::max(-1.0, dot_3d/sqrt(a.modp2()*b.modp2()))); 866 } 867 868 /// returns the angle between a and b 869 inline double theta(const PseudoJet & a, const PseudoJet & b) { 870 return acos(cos_theta(a,b)); 848 871 } 849 872 … … 929 952 // NB: do not know if it really needs to be inline, but when it wasn't 930 953 // linking failed with g++ (who knows what was wrong...) 954 #ifndef SWIG 931 955 template <class L> inline PseudoJet::PseudoJet(const L & some_four_vector) { 932 956 reset(some_four_vector); 933 957 } 958 #endif 934 959 935 960 //---------------------------------------------------------------------- -
external/fastjet/PseudoJetStructureBase.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: PseudoJetStructureBase.cc 3433 2014-07-23 08:17:03Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: PseudoJetStructureBase.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/PseudoJetStructureBase.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: PseudoJetStructureBase.hh 3433 2014-07-23 08:17:03Z salam $6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: PseudoJetStructureBase.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/RangeDefinition.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: RangeDefinition.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: RangeDefinition.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RangeDefinition.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: RangeDefinition.hh 4 074 2016-03-08 09:09:25Z soyez$2 // $Id: RangeDefinition.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RectangularGrid.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: RectangularGrid.cc 3773 2014-12-22 22:44:46Z soyez$2 // $Id: RectangularGrid.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RectangularGrid.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: RectangularGrid.hh 4 047 2016-03-03 13:21:49Z soyez$5 // $Id: RectangularGrid.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/Selector.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Selector.cc 3504 2014-08-01 06:07:54Z soyez$2 // $Id: Selector.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Selector.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: Selector.hh 3711 2014-09-29 13:54:51Z salam $6 // 7 // Copyright (c) 2009-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Selector.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/SharedPtr.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: SharedPtr.hh 4 051 2016-03-03 14:33:38Z soyez$6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: SharedPtr.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/TilingExtent.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: TilingExtent.cc 4 034 2016-03-02 00:20:27Z soyez$2 // $Id: TilingExtent.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/VERSION
r001ee95 r667a02a 1 3. 2.11 3.3.1 -
external/fastjet/Voronoi.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Voronoi.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: Voronoi.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/WrappedStructure.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: WrappedStructure.hh 4 047 2016-03-03 13:21:49Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: WrappedStructure.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/config_auto.h
r001ee95 r667a02a 169 169 /* Define to the full name and version of this package. */ 170 170 #ifndef FASTJET_PACKAGE_STRING 171 #define FASTJET_PACKAGE_STRING "FastJet 3. 2.1"171 #define FASTJET_PACKAGE_STRING "FastJet 3.3.1" 172 172 #endif 173 173 … … 184 184 /* Define to the version of this package. */ 185 185 #ifndef FASTJET_PACKAGE_VERSION 186 #define FASTJET_PACKAGE_VERSION "3. 2.1"186 #define FASTJET_PACKAGE_VERSION "3.3.1" 187 187 #endif 188 188 … … 194 194 /* Version number of package */ 195 195 #ifndef FASTJET_VERSION 196 #define FASTJET_VERSION "3. 2.1"196 #define FASTJET_VERSION "3.3.1" 197 197 #endif 198 198 … … 204 204 /* Minor version of this package */ 205 205 #ifndef FASTJET_VERSION_MINOR 206 #define FASTJET_VERSION_MINOR 2206 #define FASTJET_VERSION_MINOR 3 207 207 #endif 208 208 209 209 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 210 210 #ifndef FASTJET_VERSION_NUMBER 211 #define FASTJET_VERSION_NUMBER 30 201211 #define FASTJET_VERSION_NUMBER 30301 212 212 #endif 213 213 -
external/fastjet/config_raw.h
r001ee95 r667a02a 106 106 107 107 /* Define to the full name and version of this package. */ 108 #define PACKAGE_STRING "FastJet 3. 2.1"108 #define PACKAGE_STRING "FastJet 3.3.1" 109 109 110 110 /* Define to the one symbol short name of this package. */ … … 115 115 116 116 /* Define to the version of this package. */ 117 #define PACKAGE_VERSION "3. 2.1"117 #define PACKAGE_VERSION "3.3.1" 118 118 119 119 /* Define to 1 if you have the ANSI C header files. */ … … 121 121 122 122 /* Version number of package */ 123 #define VERSION "3. 2.1"123 #define VERSION "3.3.1" 124 124 125 125 /* Major version of this package */ … … 127 127 128 128 /* Minor version of this package */ 129 #define VERSION_MINOR 2129 #define VERSION_MINOR 3 130 130 131 131 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 132 #define VERSION_NUMBER 30 201132 #define VERSION_NUMBER 30301 133 133 134 134 /* Patch version of this package */ -
external/fastjet/config_win.h
r001ee95 r667a02a 1 #define FASTJET_PACKAGE_STRING "FastJet 3. 2.1"2 #define FASTJET_PACKAGE_VERSION "3. 2.1"3 #define FASTJET_VERSION "3. 2.1"1 #define FASTJET_PACKAGE_STRING "FastJet 3.3.1" 2 #define FASTJET_PACKAGE_VERSION "3.3.1" 3 #define FASTJET_VERSION "3.3.1" 4 4 #define FASTJET_VERSION_MAJOR 3 5 #define FASTJET_VERSION_MINOR 25 #define FASTJET_VERSION_MINOR 3 6 6 #define FASTJET_VERSION_PATCHLEVEL 1 7 #define FASTJET_VERSION_NUMBER 30 2017 #define FASTJET_VERSION_NUMBER 30301 8 8 9 9 /* The ATLASCone plugin is disabled by default*/ -
external/fastjet/contribs/Nsubjettiness/AUTHORS
r001ee95 r667a02a 39 39 Iain W. Stewart, Frank J. Tackmann, Jesse Thaler, 40 40 Christopher K. Vermilion, and Thomas F. Wilkason. 41 arXiv:1508.01516.41 JHEP 1511:072 (2015), arXiv:1508.01516. 42 42 43 43 Resolving Boosted Jets with XCone. 44 44 Jesse Thaler and Thomas F. Wilkason. 45 arXiv:1508.01518.45 JHEP 1512:051 (2015), arXiv:1508.01518. 46 46 47 47 ------------------------------------------------------------------------------- -
external/fastjet/contribs/Nsubjettiness/AxesDefinition.hh
r001ee95 r667a02a 5 5 // Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason 6 6 // 7 // $Id: AxesDefinition.hh 833 2015-07-23 14:35:23Z jthaler $7 // $Id: AxesDefinition.hh 1130 2018-06-06 12:09:46Z jthaler $ 8 8 //---------------------------------------------------------------------- 9 9 // This file is part of FastJet contrib. … … 508 508 /// \brief Wrapper for jet definitions (for memory management) 509 509 /// 510 /// This class was introduced to avoid issue of a FastJet bug when using genKT clustering511 /// Now using this for all AxesDefinition with a manual recombiner to use the delete_recombiner_when_unused function510 /// This class is used by all AxesDefinition with a manual recombiner to 511 /// ensure that the delete_recombiner_when_unused function is always called 512 512 ///------------------------------------------------------------------------ 513 513 class JetDefinitionWrapper { … … 549 549 : ExclusiveJetAxes(JetDefinitionWrapper(fastjet::kt_algorithm, 550 550 fastjet::JetDefinition::max_allowable_R, //maximum jet radius constant 551 _recomb =new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper)551 new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper) 552 552 fastjet::Best).getJetDef() 553 553 ) { … … 571 571 virtual WTA_KT_Axes* create() const {return new WTA_KT_Axes(*this);} 572 572 573 private:574 const WinnerTakeAllRecombiner *_recomb; ///< Internal recombiner575 576 573 }; 577 574 … … 588 585 : ExclusiveJetAxes(JetDefinitionWrapper(fastjet::cambridge_algorithm, 589 586 fastjet::JetDefinition::max_allowable_R, //maximum jet radius constant 590 _recomb =new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper)587 new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper) 591 588 fastjet::Best).getJetDef()) { 592 589 setNPass(NO_REFINING); … … 608 605 /// For copying purposes 609 606 virtual WTA_CA_Axes* create() const {return new WTA_CA_Axes(*this);} 610 611 private: 612 const WinnerTakeAllRecombiner *_recomb; ///< Internal recombiner 613 607 614 608 }; 615 609 … … 674 668 R0, 675 669 p, 676 _recomb =new WinnerTakeAllRecombiner()670 new WinnerTakeAllRecombiner() 677 671 ).getJetDef()), _p(p), _R0(R0) { 678 672 if (p < 0) throw Error("WTA_GenKT_Axes: Currently only p >=0 is supported."); … … 702 696 double _p; ///< genkT power 703 697 double _R0; ///< jet radius 704 const WinnerTakeAllRecombiner *_recomb; ///< Internal recombiner705 698 }; 706 699 … … 717 710 /// Constructor 718 711 GenET_GenKT_Axes(double delta, double p, double R0 = fastjet::JetDefinition::max_allowable_R) 719 : ExclusiveJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, _recomb =new GeneralEtSchemeRecombiner(delta))).getJetDef() ),712 : ExclusiveJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, new GeneralEtSchemeRecombiner(delta))).getJetDef() ), 720 713 _delta(delta), _p(p), _R0(R0) { 721 714 if (p < 0) throw Error("GenET_GenKT_Axes: Currently only p >=0 is supported."); … … 750 743 double _p; ///< GenkT power 751 744 double _R0; ///< jet radius 752 const GeneralEtSchemeRecombiner *_recomb; ///< Internal recombiner753 745 }; 754 746 … … 1201 1193 /// Constructor 1202 1194 Comb_WTA_GenKT_Axes(int nExtra, double p, double R0 = fastjet::JetDefinition::max_allowable_R) 1203 : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, _recomb =new WinnerTakeAllRecombiner())).getJetDef(), nExtra),1195 : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, new WinnerTakeAllRecombiner())).getJetDef(), nExtra), 1204 1196 _p(p), _R0(R0) { 1205 1197 if (p < 0) throw Error("Comb_WTA_GenKT_Axes: Currently only p >=0 is supported."); … … 1227 1219 double _p; ///< GenkT power 1228 1220 double _R0; ///< jet radius 1229 const WinnerTakeAllRecombiner *_recomb; ///< Internal recombiner1230 1221 }; 1231 1222 … … 1241 1232 /// Constructor 1242 1233 Comb_GenET_GenKT_Axes(int nExtra, double delta, double p, double R0 = fastjet::JetDefinition::max_allowable_R) 1243 : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, _recomb =new GeneralEtSchemeRecombiner(delta))).getJetDef(), nExtra),1234 : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, new GeneralEtSchemeRecombiner(delta))).getJetDef(), nExtra), 1244 1235 _delta(delta), _p(p), _R0(R0) { 1245 1236 if (p < 0) throw Error("Comb_GenET_GenKT_Axes: Currently only p >=0 is supported."); … … 1271 1262 double _p; ///< GenkT power 1272 1263 double _R0; ///< jet radius 1273 const GeneralEtSchemeRecombiner *_recomb; ///< Internal recombiner1274 1264 }; 1275 1265 -
external/fastjet/contribs/Nsubjettiness/ChangeLog
r001ee95 r667a02a 1 2018-07-06 <jthaler> 2 Updated comments in AxesDefinition.hh about role of JetDefinitionWrapper 3 Updated AUTHORS with JHEP publication information for XCone 4 Prepared VERSION and NEWS for 2.2.5 release 5 2018-07-05 <jthaler> 6 Fixed bug in AxesDefinition.hh where _recomb was used before it was declared. 1 7 2016-06-08 <jthaler> 2 8 Fixed bug in MeasureDefinition.cc where axes were not completely defined, -
external/fastjet/contribs/Nsubjettiness/MeasureDefinition.cc
r001ee95 r667a02a 5 5 // Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason 6 6 // 7 // $Id: MeasureDefinition.cc 94 6 2016-06-14 19:11:27Z jthaler $7 // $Id: MeasureDefinition.cc 943 2016-06-09 00:55:29Z jthaler $ 8 8 //---------------------------------------------------------------------- 9 9 // This file is part of FastJet contrib. -
external/fastjet/contribs/Nsubjettiness/NEWS
r001ee95 r667a02a 32 32 N-jettiness as a jet finder using the new ConicalGeometric measure. 33 33 34 -- 2.2.5: (June 6, 2018) Fixed bug involved undefined pointer for in 35 AxesDefinition (thanks Attila Krasznahorkay) 34 36 -- 2.2.4: (Jun 14, 2016) Fixed bug where multi-pass minimization could yield 35 37 pathological axes (thanks Gregory Soyez) -
external/fastjet/contribs/Nsubjettiness/VERSION
r001ee95 r667a02a 1 2.2. 41 2.2.5 -
external/fastjet/contribs/RecursiveTools/AUTHORS
r001ee95 r667a02a 4 4 Gregory Soyez <soyez@fastjet.fr> 5 5 Jesse Thaler <jthaler@jthaler.net> 6 Kevin Zhou <knzhou@mit.edu> 7 Frederic Dreyer <fdreyer@mit.edu> 6 8 7 9 The physics is based on: … … 16 18 Andrew J. Larkoski, Simone Marzani, Gregory Soyez, and Jesse Thaler. 17 19 JHEP 1405:146 (2014), arXiv:1402.2657 20 21 [IteratedSoftDrop] 22 Casimir Meets Poisson: Improved Quark/Gluon Discrimination with Counting Observables. 23 Christopher Frye, Andrew J. Larkoski, Jesse Thaler, Kevin Zhou. 24 JHEP 1709:083 (2017), arXiv:1704.06266 25 26 [RecursiveSoftDrop] 27 [BottomUpSoftDrop] 28 Recursive Soft Drop. 29 Frederic A. Dreyer, Lina Necib, Gregory Soyez, and Jesse Thaler 30 arXiv:1804.03657 31 -
external/fastjet/contribs/RecursiveTools/COPYING
r001ee95 r667a02a 14 14 arXiv:1307.0007 15 15 arXiv:1402.2657 16 arXiv:1704.06266 16 17 17 18 ====================================================================== -
external/fastjet/contribs/RecursiveTools/ChangeLog
r001ee95 r667a02a 1 2018-05-29 Jesse Thaler <jthaler@jthaler.net> 2 3 * VERSION 4 * NEWS 5 Changed to 2.0.0-beta2, noted in news 6 7 2018-04-21 Jesse Thaler <jthaler@jthaler.net> 8 9 * AUTHORS: updated arxiv number for RecursiveSoftDrop 10 11 2018-04-21 Gavin Salam <gavin.salam@cern.ch> 12 13 * README: updated arxiv number for RecursiveSoftDrop & Bottom-up 14 Soft Drop. 15 16 2018-04-04 Gregory Soyez <soyez@fastjet.fr> 17 18 * RecursiveSoftDrop.cc (contrib): 19 fixed syntax of calls to structure_of<...> 20 (thanks to Attila Krasznahorkay) 21 22 2018-01-24 Gregory Soyez <soyez@fastjet.fr> 23 24 * RecursiveSoftDrop.cc: 25 for the (dafault) dynamical R0 implementation, the dynamical R0 is 26 evolved independently in each branch. 27 28 2017-10-10 Jesse Thaler <jthaler@jthaler.net> 29 * AUTHORS 30 Added mention of BUSD 31 32 * README 33 Some tweaks to the wording 34 35 2017-10-11 Gregory Soyez <soyez@fastjet.fr> 36 37 * IteratedSoftDrop.hh: 38 IteratedSoftDropInfo::size() and multiplicity() now return an 39 unsigned int instead of a double 40 41 2017-10-10 Jesse Thaler <jthaler@jthaler.net> 42 * AUTHORS 43 Updated journal reference for ISD 44 45 * example_isd.{cc,ref}: 46 Included soft drop multiplicity in example 47 48 * README 49 Added warning at top that documentation has not been updated 50 51 * VERSION 52 Changed to 2.0.0-beta1 53 54 2017-10-10 Gregory Soyez <soyez@fastjet.fr> 55 56 * example_isd.ref: 57 updated to reflect the bugfix below 58 59 * IteratedSoftDrop.cc: 60 fixed issue in description (was taking sqrt of -ve number when 61 there were no angular cut) 62 63 * NEWS: 64 drafted for RecursiveTools-2.0.0-beta1 65 66 * TODO: 67 updated list in view of a beta release 68 69 * example_isd.cc: 70 pointed to the right header for IteratedSoftDrop 71 72 * RecursiveSoftDrop.{hh,cc}: 73 * IteratedSoftDrop.{hh,cc}: 74 moved IteratedSoftDrop to its own file (replacing the old 75 implementation) 76 77 * example_advanced_usage.ref: 78 updated reference file following the fix below. 79 80 2017-09-28 Gregory Soyez <soyez@fastjet.fr> 81 82 * RecursiveSymmetryCutBase.cc: 83 when no substructure is found, keep the _symmetry, _delta_R and 84 _mu structure variables at -1. This for example allows one to 85 trigger on substructure by checking if delta_R>=0. 86 87 Note: we could set it to 0 (as it was before) and trigger using 88 _delta_R>0 but there might be some genuine substructure exactly 89 collinear. 90 91 2017-09-19 Gregory Soyez <soyez@fastjet.fr> 92 93 * example_isd.ref: 94 updated to the latest version of the example 95 96 2017-09-18 Gregory Soyez <soyez@fastjet.fr> 97 98 * Makefile: 99 updating make check to use all the examples (failing on ISD as 100 expected, see below) 101 102 * example_bottomup_softdrop.cc: 103 fixed typo 104 105 * example_bottomup_softdrop.ref: 106 * example_recursive_softdrop.ref: 107 added reference output for this example 108 109 * RecursiveSoftDrop.{hh,cc}: 110 * RecursiveSymmetryCutBase.{cc,hh}: 111 moved the "all_prongs" method from the base structure t oa 112 standalone function in RecursiveSoftDrop.hh 113 114 In practice, this is irrelevant for mMDT and SD (since pieces() 115 gets the job done, and the substructure class does not have (as 116 is) reliable info to get the full structure) 117 118 * RecursiveSymmetryCutBase.cc: 119 revamped a series of requests for substructure info to better 120 handle possible recursion into deeper jet substructure. 121 122 * RecursiveSoftDrop.{hh,cc}: 123 updated "description" to reuse the info from the base class 124 125 * example_isd.cc: 126 updated to use the newer implementation of ISD. Checked that it 127 gives the same results as the former implementation. 128 129 Note: make check still needs fixing because the example now 130 computes a different set of angularities 131 132 * RecursiveSoftDrop.hh: 133 added a few helpers to IteratedSoftDropInfo ([] operator and size, 134 meaning it can be used as a vector<pair<double,double> >) 135 136 * RecursiveSymmetryCutBase.cc: 137 . fixed bugs in the calculation of the geometric distances for ee 138 coordinates 139 . fixed bug in the computation of the (zg,thetag) pairs [it was 140 returning the groomed ones instead of the ones passing the 141 condition] 142 143 * example_recursive_softdrop.cc: 144 set the R0 parameter to the original jet radius 145 146 2017-09-13 Gregory Soyez <soyez@fastjet.fr> 147 148 * example_recursive_softdrop.cc: 149 tied up a few comments and the code output 150 151 * RecursiveSymmetryCutBase.{hh,cc}: 152 removed the unneeded _is_composite 153 154 * RecursiveSoftDrop.cc: 155 fixed issue with "verbose" dropped info on branches with no 156 further substructure 157 158 2017-09-11 Gregory Soyez <soyez@fastjet.fr> 159 160 * RecursiveSoftDrop.{hh,cc}: 161 have IteratedSoftDDrop returning by default an object of type 162 IteratedSoftDropInfo; added several helpers 163 164 2017-09-08 Gregory Soyez <soyez@fastjet.fr> 165 166 * RecursiveSoftDrop.{hh,cc}: 167 updated IteratedSoftDrop to give it the flexibility of 168 RecursiveSoftDrop 169 170 * RecursiveSymmetryCutBase.hh: 171 fixed typo in comment 172 173 * example_mmdt_ee.cc: *** ADDED *** 174 added an example to illustrat usage in ee collisions 175 176 * example_isd.cc: 177 * BottomUpSoftDrop.cc: 178 * IteratedSoftDrop.cc: 179 * RecursiveSoftDrop.cc: 180 Fixed compilation issues with FJ 3.0 (mostly the usage of features 181 introduced only in FJ3.1) 182 183 * RecursiveSymmetryCutBase.{hh,cc}: 184 used the internal Recluster class for FJ<3.1.0 and the FJ antive 185 one for FJ>=3.1.0 186 187 * BottomUpSoftDrop.{hh,cc}: 188 moved the implementation of global_grooming to the source file and 189 fixed a few trivial compilation errors 190 191 2017-09-08 Frédéric Dreyer <frederic.dreyer@gmail.com> 192 193 * BottomUpSoftDrop.hh: 194 added the global_grooming method to process full event 195 196 2017-09-07 Gregory Soyez <soyez@fastjet.fr> 197 198 * RecursiveSoftDrop.cc: 199 cleaned (mostly by removing older commented-out code) 200 201 * RecursiveSoftDrop.{hh,cc}: 202 * RecursiveSymmetryCutBase.{hh,cc}: 203 * SoftDrop.cc: 204 205 added support for ee coordinates. For that, the symmetry measure 206 has to be set to either theta_E (which uses the 3-vector angle 207 theta) or to cos_theta_E which uses sqrt(2*[1-cos(theta)]) 208 209 Accordingly, the recursion_choice can be set to larger_E to 210 recurse into the branch with the largest energy. The larger_m 211 mode, recorsing into the larger-mass branch is also possible but 212 not advised (for the same reason as the pp version). 213 214 * RecursiveSymmetryCutBase.{hh,cc}: 215 switched to the Recluster class provided with FastJet. ASlso 216 included the recluster description to RecursiveSymmetryCutBase 217 when it is user-defined. 218 219 2017-09-06 Gregory Soyez <soyez@fastjet.fr> 220 221 * BottomUpSoftDrop.{hh,cc}: 222 . renamed SoftDropStructure -> BottomUpSoftDropStructure 223 SoftDropRecombiner -> BottomUpSoftDropRecombiner 224 SoftDropPlugin -> BottomUpSoftDropPlugin 225 . moved 'description' to source file (instead of header) 226 . kept the "area" information when available (jets will just 227 appear as having a 0 area) 228 . added most class description (main class still missing) 229 230 * RecursiveSoftDrop.cc: 231 . put internal classes to handle CS history in an internal namespace 232 . replaced the "switch" in the mail loop by a series of if (allows 233 us a few simplificatins/cleaning) 234 . more uniform treatment of issues in the presence of an angular cut 235 (as part of the above reorganisation) 236 237 * example_advanced_usage.ref: 238 updated reference output file following the bugfix (missing 239 "grooming mode" initialisation in one of the SoftDrop ctors) on 240 2017-08-01 241 242 * RecursiveSymmetryCutBase.cc: 243 removed redundent code 244 245 2017-08-10 Gregory Soyez <soyez@fastjet.fr> 246 247 * RecursiveSoftDrop.cc: 248 fixed trivial typo in variable name 249 250 >>>>>>> .r1071 251 2017-08-04 Gregory Soyez <soyez@fastjet.fr> 252 253 * RecursiveSoftDrop.cc: 254 do not impose an angular cut in IterativeSD if it is -ve. 255 256 2017-08-01 Gregory Soyez <soyez@fastjet.fr> 257 258 * example_recursive_softdrop.cc: 259 added a series of optional flags 260 261 * RecursiveSoftDrop.cc: 262 fixed a few issues with the fixed depth version 263 264 * RecursiveSymmetryCutBase.hh: 265 a jet is now considered as havig substructure if deltaR>0 266 (coherent with released version) 267 268 * SoftDrop.hh: 269 bugfix: set the "grooming mode" by default in all ctors 270 EDIT: caused issue with make check, fixed on 2017-09-069 (see 271 above) 272 273 * RecursiveSoftDrop.{hh,cc}: 274 added support for the "same depth" variant 275 276 * RecursiveSymmetryCutBase.cc: 277 also associate a RecursiveSymmetryCutBase::StructureType structure 278 to the result jet in case it is just a single particle (in 279 grooming mode) 280 281 2017-07-31 Gregory Soyez <soyez@fastjet.fr> 282 283 * RecursiveSymmetryCutBase.{hh,cc}: 284 added the option to pass an extra parameter to the symmetry cut 285 function 286 287 * RecursiveSymmetryCutBase.{hh,cc}: 288 * ModifiedMassDropTagger.hh 289 * SoftDrop.hh: 290 minor adaptions due to the above change + added a few methods to 291 query the class information (symmetry cut, beta, ...) 292 293 * RecursiveSoftDrop.{hh,cc}: 294 Added support for 295 - a dynamical R0 296 - recursing only in the hardest branch 297 - imposing a min deltaR cut 298 299 Added a tentative IterativeSoftDrop class 300 301 2017-07-28 Gregory Soyez <soyez@fastjet.fr> 302 303 * RecursiveSoftDrop.cc: 304 adapted to the latest changes in RecursiveSymmetryCutBase 305 306 * RecursiveSymmetryCutBase.{hh,cc}: 307 reorganised the output of the recursion step (recurse_one_step) 308 using an enum to make iot more readable (and to fix issues where 309 the dropped prong is actually 0, e.g. after subtraction) 310 311 2017-07-26 Gregory Soyez <soyez@fastjet.fr> 312 313 * example_recursive_softdrop.cc: *** ADDED *** 314 added a draft example for the use of RecursiveSoftDrop 315 316 * RecursiveSoftDrop.{hh,cc}: *** ADDED *** 317 added a first pass at an implementation of RecursiveSoftDrop. 318 319 This is based on Frederic's initial version but keeps the 320 branching structure of the jet. Some of the features, like 321 dynamical R0, direct access to the substructure or the same depth 322 variant, are still unsupported. 323 324 * SoftDrop.hh: 325 declared _beta, _symmetry_cut and _R0sqr as protected (was 326 private) so they ca n be used by RecursiveSoftDrop 327 328 * RecursiveSymmetryCutBase.{hh,cc}: 329 extracted from result() the part that performs one step of the 330 resursion (implemented as recurse_one_step()). This is repeatedly 331 called by result(). It has specific conventions to indicate 332 whether or not some substructure has been found or if one ran into 333 some issue. 334 335 2017-04-25 Kevin Zhou <knzhou@mit.edu> 336 337 * IteratedSoftDrop.hh 338 . Added Doxygen documentation 339 340 * RecursiveSymmetryCutBase.hh 341 . Added references to ISD 342 343 2017-04-25 Jesse Thaler <jthaler@jthaler.net> 344 * AUTHORS, COPYING: 345 . Added ISD arXiv number 346 347 * example_isd.{cc,ref} 348 . Added ISD arXiv number 349 . Changing z_cut to be optimal value (with Lambda = 1 GeV) 350 . Tweaked formatting 351 352 * IteratedSoftDrop.{hh,cc} 353 . Added ISD arXiv number 354 . Assert added if recluster does not return one jet. 355 356 * README 357 . Added ISD arXiv number and tweaked wording 358 359 360 2017-04-20 Kevin Zhou <knzhou@mit.edu> 361 362 * example_isd.{cc,ref} ** ADDED ** 363 * IteratedSoftDrop.{cc,hh} ** ADDED ** 364 365 * Makefile 366 . Added IteratedSoftDrop (ISD) as appropriate 367 368 * AUTHORS 369 . Added myself to author list 370 . Added placeholder for ISD paper 371 372 * COPYING 373 . Added placeholder for ISD paper 374 375 * README 376 . Added description of ISD 377 378 * TODO 379 . Added tasks to integrate ISD with other classes, e.g. SD, 380 Recluster, and the future RecursiveSoftDrop (RSD) 381 382 * NEWS 383 . Added dummy for release of 1.1.0 384 385 * VERSION: 386 . Switched version number to 1.1.0-dev 387 388 * example_advanced_usage.cc: 389 . Added $Id$ tag, didn't change anything else 390 391 2014-07-30 Gregory Soyez <soyez@fastjet.fr> 392 393 * Recluster.hh: fixed the name of the #define for the header 394 1 395 2014-07-09 Gregory Soyez <soyez@fastjet.fr> + Jesse 2 396 -
external/fastjet/contribs/RecursiveTools/ModifiedMassDropTagger.hh
r001ee95 r667a02a 1 // $Id: ModifiedMassDropTagger.hh 688 2014-06-17 14:29:56Z jthaler$1 // $Id: ModifiedMassDropTagger.hh 1032 2017-07-31 14:20:03Z gsoyez $ 2 2 // 3 3 // Copyright (c) 2014-, Gavin P. Salam … … 105 105 virtual ~ModifiedMassDropTagger(){} 106 106 107 //---------------------------------------------------------------------- 108 // access to class info 109 double symmetry_cut() const { return _symmetry_cut; } 110 107 111 protected: 108 112 … … 110 114 /// has no dependence on the subjet kinematics 111 115 virtual double symmetry_cut_fn(const PseudoJet & /* p1 */, 112 const PseudoJet & /* p2 */ 116 const PseudoJet & /* p2 */, 117 void *extra_parameters = 0 113 118 ) const {return _symmetry_cut;} 114 119 virtual std::string symmetry_cut_description() const; -
external/fastjet/contribs/RecursiveTools/NEWS
r001ee95 r667a02a 1 2018/05/31: release of version 2.0.0-beta2 with corrected syntax 2 3 2017/10/10: release of version 2.0.0-beta1 including implementations of 4 5 * RecursiveSoftDrop (see example_rsd.hh for usage) 6 * IteratedSoftDrop (see example_isd.hh for usage) 7 * e+e- version of the recursive tools (see example_mmdt_ee.hh for usage) 8 * BottomUpSoftDrop (see example_bottomup_softdrop.cc for usage) 9 1 10 2014/07/09: release of version 1.0.0 of RecursiveTools including 2 11 ModifiedMassDropTagger and SoftDrop (as well as Recluster) -
external/fastjet/contribs/RecursiveTools/README
r001ee95 r667a02a 17 17 Marzani, Gregory Soyez, Jesse Thaler 18 18 19 - RecursiveSoftDrop 20 - BottomUpSoftDrop 21 This corresponds to arXiv:1804.03657 by Frederic Dreyer, Lina 22 Necib, Gregory Soyez and Jesse Thaler 23 24 - IteratedSoftDrop 25 This corresponds to arXiv:1704.06266 by Christopher Frye, Andrew J. 26 Larkoski, Jesse Thaler, Kevin Zhou 27 19 28 - Recluster 20 29 A generic tool to recluster a given jet into subjets 21 Note: this is largely based on the Filter code in FastJet v3.0 and 22 ultimately, this tool will probably be moved into FastJet 30 Note: a Recluster class is available natively in FastJet since v3.1. 31 Users are therefore encouraged to use the FastJet version 32 rather than this one which is mostly provided for 33 compatibility of this contrib with older versions of FastJet. 23 34 24 35 The interface for these tools is described in more detail below, with … … 74 85 75 86 The SoftDrop procedure is very similar to mMDT, albeit with a 76 generali zed symmetry condition:87 generalised symmetry condition: 77 88 78 89 z > z_cut * (R / R0)^beta … … 108 119 109 120 ------------------------------------------------------------------------ 121 RecursiveSoftDrop 122 ------------------------------------------------------------------------ 123 124 The RecursiveSoftDrop procedure applies the Soft Drop procedure N times 125 in a jet in order to find up to N+1 prongs. N=0 makes no modification 126 to the jet, and N=1 is equivalent to the original SoftDrop. 127 128 Once one has more than one prong, one has to decide which will be 129 declustered next. At each step of the declustering procedure, one 130 undoes the clustering which has the largest declustering angle 131 (amongst all the branches that are searched for substructure). [see 132 "set_fixed_depth" below for an alternative] 133 134 Compared to SoftDrop, RecursiveSoftDrop takes an extra argument N 135 specifying the number of times the SoftDrop procedure is recursively 136 applied. Negative N means that the procedure is applied until no 137 further substructure is found (i.e. corresponds to taking N=infinity). 138 139 double z_cut = 0.10; 140 double beta = 2.0; 141 double R0 = 1.0; // this is the default value 142 int N = -1; 143 RecursiveSoftDrop rsd(z_cut, beta, N, R0); 144 145 One then acts on a jet as 146 147 PseudoJet groomed_jet = rsd(jet) 148 149 and get additional information via 150 151 groomed_jet.structure_of<RecursiveSoftDrop>() 152 153 ------------------------------------------------------------------------ 154 IteratedSoftDrop 155 ------------------------------------------------------------------------ 156 157 Iterated Soft Drop (ISD) is a repeated variant of SoftDrop. After 158 performing the Soft Drop procedure once, it logs the groomed symmetry 159 factor, then recursively performs Soft Drop again on the harder 160 branch. This procedure is repeated down to an (optional) angular cut 161 theta_cut, yielding a set of symmetry factors from which observables 162 can be built. 163 164 An IteratedSoftDrop tool can be created as follows: 165 166 double beta = -1.0; 167 double z_cut = 0.005; 168 double theta_cut = 0.0; 169 double R0 = 0.5; // characteristic radius of jet algorithm 170 IteratedSoftDrop isd(beta, z_cut, double theta_cut, R0); 171 172 By default, ISD applied on a jet gives a result of type 173 IteratedSoftDropInfo that can then be probed to obtain physical 174 observables 175 176 IteratedSoftDropInfo isd_info = isd(jet); 177 178 unsigned int multiplicity = isd_info.multiplicity(); 179 double kappa = 1.0; // changes angular scale of ISD angularity 180 double isd_width = isd_info.angularity(kappa); 181 vector<pair<double,double> > zg_thetags = isd_info.all_zg_thetag(); 182 vector<pair<double,double> > zg_thetags = isd_info(); 183 for (unsigned int i=0; i< isd_info.size(); ++i){ 184 cout << "(zg, theta_g)_" << i << " = " 185 << isd_info[i].first << " " << isd_info[i].second << endl; 186 } 187 188 Alternatively, one can directly get the multiplicity, angularity, and 189 (zg,thetag) pairs from the IteratedSoftDrop class, at the expense of 190 re-running the declustering procedure: 191 192 unsigned int multiplicity = isd.multiplicity(jet); 193 double isd_width = isd.angularity(jet, 1.0); 194 vector<pair<double,double> > zg_thetags = isd.all_zg_thetag(jet); 195 196 197 Note: the iterative declustering procedure is the same as what one 198 would obtain with RecursiveSoftDrop with an (optional) angular cut 199 and recursing only in the hardest branch [see the "Changing 200 behaviour" section below for details], except that it returns some 201 information about the jet instead of a modified jet as RSD does. 202 203 204 ------------------------------------------------------------------------ 205 BottomUpSoftDrop 206 ------------------------------------------------------------------------ 207 208 This is a bottom-up version of the RecursiveSoftDrop procedure, in a 209 similar way as Pruning can be seen as a bottom-up version of Trimming. 210 211 In practice, the jet is reclustered and at each step of the clustering 212 one checks the SoftDrop condition 213 214 z > z_cut * (R / R0)^beta 215 216 If the condition is met, the pair is recombined. If the condition is 217 not met, only the hardest of the two objects is kept for further 218 clustering and the softest is rejected. 219 220 ------------------------------------------------------------------------ 110 221 Recluster 111 222 ------------------------------------------------------------------------ 223 224 *** NOTE: this is provided only for backwards compatibility *** 225 *** with FastJet <3.1. For FastJet >=3.1, the native *** 226 *** fastjet::Recluster is used instead *** 112 227 113 228 The Recluster class allows the constituents of a jet to be reclustered 114 229 with a different recursive clustering algorithm. This is used 115 internally in the mMDT/SoftDrop code in order to recluster the jet using 116 the CA algorithm. This is achieved via 230 internally in the mMDT/SoftDrop/RecursiveSoftDrop/IteratedSoftDrop 231 code in order to recluster the jet using the CA algorithm. This is 232 achieved via 117 233 118 234 Recluster ca_reclusterer(cambridge_algorithm, … … 123 239 delete_self_when_unused. 124 240 125 126 241 ------------------------------------------------------------------------ 127 242 Changing behaviour 128 243 ------------------------------------------------------------------------ 129 244 130 The behaviour of the ModifiedMassDropTagger and SoftDrop classes can 131 be tweaked using the following options: 132 133 SymmetryMeasure = {scalar_z,vector_z,y} [constructor argument] 245 The behaviour of the all the tools provided here 246 (ModifiedMassDropTagger, SoftDrop, RecursiveSoftDrop and 247 IteratedSoftDrop) can be tweaked using the following options: 248 249 SymmetryMeasure = {scalar_z, vector_z, y, theta_E, cos_theta_E} 250 [constructor argument] 134 251 : The definition of the energy sharing between subjets, with 0 135 corresponding to the most asymmetric 136 137 RecursionChoice = {larger_pt,larger_mt,larger_m} [constructor argument] 252 corresponding to the most asymmetric. 253 . scalar_z = min(pt1,pt2)/(pt1+pt2) [default] 254 . vector_z = min(pt1,pt2)/pt_{1+2} 255 . y = min(pt1^2,pt2^2)/m_{12}^2 (original y from MDT) 256 . theta_E = min(E1,E2)/(E1+E2), 257 with angular measure theta_{12}^2 258 . cos_theta_E = min(E1,E2)/(E1+E2), 259 with angular measure 2[1-cos(theta_{12})] 260 The last two variants are meant for use in e+e- collisions, 261 together with the "larger_E" recursion choice (see below) 262 263 RecursionChoice = {larger_pt, larger_mt, larger_m, larger_E} 264 [constructor argument] 138 265 : The path to recurse through the tree after the symmetry condition 139 fails 266 fails. Options refer to transverse momentum (pt), transverse mass 267 (mt=sqrt(pt^2+m^2), mass (m) or energy (E). the latter is meant 268 for use in e+e- collisions 140 269 141 270 mu_cut [constructor argument] 142 271 : An optional mass drop condition 143 272 144 set_subtractor(subtractor*) [or subtract er as a constructor argument]273 set_subtractor(subtractor*) [or subtractor as a constructor argument] 145 274 : provide a subtractor. When a subtractor is supplied, the 146 275 kinematic constraints are applied on subtracted 4-vectors. In … … 165 294 and SoftDrop defaults to grooming mode. 166 295 296 set_verbose_structure(bool) 297 : when set to true, additional information will be stored in the jet 298 structure. This includes in particular values of symmetry, 299 delta_R, and mu of dropped branches 300 301 For the specific case of RecursiveSoftDrop, additional tweaking is 302 possible via the following methods 303 304 set_fixed_depth_mode(bool) 305 : when this is true, RSD will recurse (N times) into all the 306 branches found during the previous iteration [instead of recursing 307 through the largest declustering angle until N prongs have been 308 found]. This yields at most 2^N prong. For infinite N, the two 309 options are equivalent. 310 311 set_dynamical_R0(bool) 312 : By default the angles in the SD condition are normalised to the 313 parameter R0. With "dynamical R0", RSD will dynamically adjust R0 314 to be the angle between the two prongs found during the previous 315 iteration. 316 317 set_hardest_branch_only(bool) 318 : When substructure is found, only recurse into the hardest of the 319 two branches for further substructure search. This uses the class 320 RecursionChoice. 321 322 set_min_deltaR_squared(double): 323 : set a minimal angle (squared) at which we stop the declustering 324 procedure. This cut is ineffective for negative values of the 325 argument. 326 167 327 ------------------------------------------------------------------------ 168 328 Technical Details -
external/fastjet/contribs/RecursiveTools/Recluster.hh
r001ee95 r667a02a 1 #ifndef __FASTJET_ TOOLS_RECLUSTER_HH__2 #define __FASTJET_ TOOLS_RECLUSTER_HH__1 #ifndef __FASTJET_CONTRIB_TOOLS_RECLUSTER_HH__ 2 #define __FASTJET_CONTRIB_TOOLS_RECLUSTER_HH__ 3 3 4 // $Id: Recluster.hh 7 00 2014-07-07 12:50:05Z gsoyez $4 // $Id: Recluster.hh 723 2014-07-30 09:11:01Z gsoyez $ 5 5 // 6 6 // Copyright (c) 2014-, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 181 181 FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh 182 182 183 #endif // __FASTJET_ TOOLS_RECLUSTER_HH__183 #endif // __FASTJET_CONTRIB_TOOLS_RECLUSTER_HH__ -
external/fastjet/contribs/RecursiveTools/RecursiveSymmetryCutBase.cc
r001ee95 r667a02a 1 // $Id: RecursiveSymmetryCutBase.cc 700 2014-07-07 12:50:05Z gsoyez $1 // $Id: RecursiveSymmetryCutBase.cc 1080 2017-09-28 07:51:37Z gsoyez $ 2 2 // 3 3 // Copyright (c) 2014-, Gavin P. Salam, Gregory Soyez, Jesse Thaler … … 23 23 #include "fastjet/JetDefinition.hh" 24 24 #include "fastjet/ClusterSequenceAreaBase.hh" 25 #include <cassert> 25 26 #include <algorithm> 26 27 #include <cstdlib> … … 42 43 PseudoJet RecursiveSymmetryCutBase::result(const PseudoJet & jet) const { 43 44 // construct the input jet (by default, recluster with C/A) 44 45 45 if (! jet.has_constituents()){ 46 46 throw Error("RecursiveSymmetryCutBase can only be applied to jets with constituents"); 47 47 } 48 48 49 PseudoJet j = 50 _do_reclustering 51 ? _recluster ? (*_recluster)(jet) 52 : Recluster(cambridge_algorithm, JetDefinition::max_allowable_R)(jet) 53 : jet; 54 55 // issue a warning if the jet is not obtained through a C/A 56 // clustering 57 // if ((! j.has_associated_cluster_sequence()) || 58 // (j.validated_cs()->jet_def().jet_algorithm() != cambridge_algorithm)) 59 // _nonca_warning.warn("RecursiveSymmetryCutBase is designed to be applied on jets from a Cambridge/Aachen clustering; use it with other algorithms at your own risk."); 60 49 PseudoJet j = _recluster_if_needed(jet); 50 51 // sanity check: the jet must have a valid CS 61 52 if (! j.has_valid_cluster_sequence()){ 62 53 throw Error("RecursiveSymmetryCutBase can only be applied to jets associated to a (valid) cluster sequence"); 63 54 } 64 55 56 // check that area information is there in case we have a subtractor 57 // GS: do we really need this since subtraction may not require areas? 65 58 if (_subtractor) { 66 59 const ClusterSequenceAreaBase * csab = … … 75 68 subjet = (*_subtractor)(subjet); 76 69 } 77 78 bool use_mu_cut = (_mu_cut != numeric_limits<double>::infinity());79 70 80 71 // variables for tracking what will happen … … 86 77 std::vector<double> dropped_symmetry; 87 78 std::vector<double> dropped_mu; 79 80 double sym, mu2; 88 81 89 82 // now recurse into the jet's structure 90 while (subjet.has_parents(piece1, piece2)) { 91 92 // first sanity check: 93 // - zero or negative pts are not allowed for the input subjet 94 // - zero or negative masses are not allowed for configurations 95 // in which the mass will effectively appear in a denominator 96 // (The masses will be checked later) 97 if (subjet.pt2() <= 0) return PseudoJet(); 98 99 if (_subtractor) { 100 piece1 = (*_subtractor)(piece1); 101 piece2 = (*_subtractor)(piece2); 102 } 103 104 // determine the symmetry parameter 105 double sym; 106 107 if (_symmetry_measure == y) { 108 // the original d_{ij}/m^2 choice from MDT 109 // first make sure the mass is sensible 110 if (subjet.m2() <= 0) { 111 _negative_mass_warning.warn("RecursiveSymmetryCutBase: cannot calculate y, because (sub)jet mass is negative; bailing out"); 112 return _result_no_substructure(subjet); //TBC: do we return the hardest parent? A NULL PseudoJet? 113 } 114 sym = piece1.kt_distance(piece2) / subjet.m2(); 115 116 } else if (_symmetry_measure == vector_z) { 117 // min(pt1, pt2)/(pt), where the denominator is a vector sum 118 // of the two subjets 119 sym = min(piece1.pt(), piece2.pt()) / subjet.pt(); 120 121 } else if (_symmetry_measure == scalar_z) { 122 // min(pt1, pt2)/(pt1+pt2), where the denominator is a scalar sum 123 // of the two subjets 124 double pt1 = piece1.pt(); 125 double pt2 = piece2.pt(); 126 // make sure denominator is non-zero 127 sym = pt1 + pt2; 128 if (sym == 0) return PseudoJet(); 129 sym = min(pt1, pt2) / sym; 130 131 } else { 132 throw Error ("Unrecognized choice of symmetry_measure"); 133 } 134 135 // determine the symmetry cut 136 // (This function is specified in the derived classes) 137 double this_symmetry_cut = symmetry_cut_fn(piece1, piece2); 138 139 // and make a first tagging decision based on symmetry cut 140 bool tagged = (sym > this_symmetry_cut); 141 142 // if tagged based on symmetry cut, then check the mu cut (if relevant) 143 // and update the tagging decision. Calculate mu^2 regardless, for cases 144 // of users not cutting on mu2, but still interested in its value. 145 double mu2 = max(piece1.m2(), piece2.m2())/subjet.m2(); 146 if (tagged && use_mu_cut) { 147 // first a sanity check -- mu2 won't be sensible if the subjet mass 148 // is negative, so we can't then trust the mu cut - bail out 149 if (subjet.m2() <= 0) { 150 _negative_mass_warning.warn("RecursiveSymmetryCutBase: cannot trust mu, because (sub)jet mass is negative; bailing out"); 151 return PseudoJet(); 152 } 153 if (mu2 > 1) _mu2_gt1_warning.warn("RecursiveSymmetryCutBase encountered mu^2 value > 1"); 154 if (mu2 > pow(_mu_cut,2)) tagged = false; 155 } 156 157 158 // if we've tagged the splitting, return the jet with its substructure 159 if (tagged) { 160 // record relevant information 161 StructureType * structure = new StructureType(subjet); 162 structure->_symmetry = sym; 163 structure->_mu = (mu2 >= 0) ? sqrt(mu2) : -sqrt(-mu2); 164 structure->_delta_R = piece1.delta_R(piece2); 165 if (_verbose_structure) { 166 structure->_has_verbose = true; 167 structure->_dropped_symmetry = dropped_symmetry; 168 structure->_dropped_mu = dropped_mu; 169 structure->_dropped_delta_R = dropped_delta_R; 170 } 171 subjet.set_structure_shared_ptr(SharedPtr<PseudoJetStructureBase>(structure)); 172 return subjet; 173 } 83 RecursionStatus status; 84 while ((status=recurse_one_step(subjet, piece1, piece2, sym, mu2)) != recursion_success) { 85 // start with sanity checks: 86 if ((status == recursion_issue) || (status == recursion_no_parents)) { 87 // we should return piece1 by our convention for recurse_one_step 88 PseudoJet result; 89 if (status == recursion_issue){ 90 result = piece1; 91 if (_verbose) cout << "reached end; returning null jet " << endl; 92 } else { 93 result = _result_no_substructure(piece1); 94 if (_verbose) cout << "no parents found; returning last PJ or empty jet" << endl; 95 } 96 97 if (result != 0) { 98 // if in grooming mode, add dummy structure information 99 StructureType * structure = new StructureType(result); 100 // structure->_symmetry = 0.0; 101 // structure->_mu = 0.0; 102 // structure->_delta_R = 0.0; 103 if (_verbose_structure) { // still want to store verbose information about dropped branches 104 structure->_has_verbose = true; 105 structure->_dropped_symmetry = dropped_symmetry; 106 structure->_dropped_mu = dropped_mu; 107 structure->_dropped_delta_R = dropped_delta_R; 108 } 109 result.set_structure_shared_ptr(SharedPtr<PseudoJetStructureBase>(structure)); 110 } 111 112 return result; 113 } 114 115 assert(status == recursion_dropped); 174 116 175 117 // if desired, store information about dropped branches before recursing … … 179 121 dropped_mu.push_back((mu2 >= 0) ? sqrt(mu2) : -sqrt(-mu2)); 180 122 } 181 182 // otherwise continue unclustering, allowing for the different 183 // ways of choosing which parent to look into 184 int choice; 185 if (_recursion_choice == larger_mt) { 186 choice = piece1.mt2() > piece2.mt2() ? 1 : 2; 187 188 } else if (_recursion_choice == larger_pt) { 189 choice = piece1.pt2() > piece2.pt2() ? 1 : 2; 190 191 } else if (_recursion_choice == larger_m) { 192 choice = piece1.m2() > piece2.m2() ? 1 : 2; 193 194 } else { 195 throw Error ("Unrecognized value for recursion_choice"); 196 } 197 if (_verbose) cout << "choice is " << choice << endl;; 198 subjet = (choice == 1) ? piece1 : piece2; 199 } // (subjet.has_parents(...)) 200 201 if (_verbose) cout << "reached end; returning null jet " << endl; 202 203 // decide on tagging versus grooming mode here 204 PseudoJet result = _result_no_substructure(subjet); 205 206 if (result != 0) { 207 // if in grooming mode, add dummy structure information 208 StructureType * structure = new StructureType(result); 209 structure->_symmetry = 0.0; 210 structure->_mu = 0.0; 211 structure->_delta_R = 0.0; 212 if (_verbose_structure) { // still want to store verbose information about dropped branches 213 structure->_has_verbose = true; 214 structure->_dropped_symmetry = dropped_symmetry; 215 structure->_dropped_mu = dropped_mu; 216 structure->_dropped_delta_R = dropped_delta_R; 217 } 218 result.set_structure_shared_ptr(SharedPtr<PseudoJetStructureBase>(structure)); 219 } 220 221 return result; 222 } 223 224 123 124 subjet = piece1; 125 } 126 127 128 // we've tagged the splitting, return the jet with its substructure 129 StructureType * structure = new StructureType(subjet); 130 structure->_symmetry = sym; 131 structure->_mu = (mu2 >= 0) ? sqrt(mu2) : -sqrt(-mu2); 132 structure->_delta_R = sqrt(squared_geometric_distance(piece1, piece2)); 133 if (_verbose_structure) { 134 structure->_has_verbose = true; 135 structure->_dropped_symmetry = dropped_symmetry; 136 structure->_dropped_mu = dropped_mu; 137 structure->_dropped_delta_R = dropped_delta_R; 138 } 139 subjet.set_structure_shared_ptr(SharedPtr<PseudoJetStructureBase>(structure)); 140 return subjet; 141 } 142 143 144 145 //---------------------------------------------------------------------- 146 // the method below is the one actually performing one step of the 147 // recursion. 148 // 149 // It returns a status code (defined above) 150 // 151 // In case of success, all the information is filled 152 // In case of "no parents", piee1 is the same subjet 153 // In case of trouble, piece2 will be a 0 PJ and piece1 is the PJ we 154 // should return (either 0 itself if the issue was critical, or 155 // non-wero in case of a minor issue just causing the recursion to 156 // stop) 157 RecursiveSymmetryCutBase::RecursionStatus 158 RecursiveSymmetryCutBase::recurse_one_step(const PseudoJet & subjet, 159 PseudoJet &piece1, PseudoJet &piece2, 160 double &sym, double &mu2, 161 void *extra_parameters) const { 162 if (!subjet.has_parents(piece1, piece2)){ 163 piece1 = subjet; 164 piece2 = PseudoJet(); 165 return recursion_no_parents; 166 } 167 168 // first sanity check: 169 // - zero or negative pts are not allowed for the input subjet 170 // - zero or negative masses are not allowed for configurations 171 // in which the mass will effectively appear in a denominator 172 // (The masses will be checked later) 173 if (subjet.pt2() <= 0){ // this is a critical problem, return an empty PJ 174 piece1 = piece2 = PseudoJet(); 175 return recursion_issue; 176 } 177 178 if (_subtractor) { 179 piece1 = (*_subtractor)(piece1); 180 piece2 = (*_subtractor)(piece2); 181 } 182 183 // determine the symmetry parameter 184 if (_symmetry_measure == y) { 185 // the original d_{ij}/m^2 choice from MDT 186 // first make sure the mass is sensible 187 if (subjet.m2() <= 0) { 188 _negative_mass_warning.warn("RecursiveSymmetryCutBase: cannot calculate y, because (sub)jet mass is negative; bailing out"); 189 // since rounding errors can give -ve masses, be a it more 190 // tolerant and consider that no substructure has been found 191 piece1 = _result_no_substructure(subjet); 192 piece2 = PseudoJet(); 193 return recursion_issue; 194 } 195 sym = piece1.kt_distance(piece2) / subjet.m2(); 196 197 } else if (_symmetry_measure == vector_z) { 198 // min(pt1, pt2)/(pt), where the denominator is a vector sum 199 // of the two subjets 200 sym = min(piece1.pt(), piece2.pt()) / subjet.pt(); 201 } else if (_symmetry_measure == scalar_z) { 202 // min(pt1, pt2)/(pt1+pt2), where the denominator is a scalar sum 203 // of the two subjets 204 double pt1 = piece1.pt(); 205 double pt2 = piece2.pt(); 206 // make sure denominator is non-zero 207 sym = pt1 + pt2; 208 if (sym == 0){ // this is a critical problem, return an empty PJ 209 piece1 = piece2 = PseudoJet(); 210 return recursion_issue; 211 } 212 sym = min(pt1, pt2) / sym; 213 } else if ((_symmetry_measure == theta_E) || (_symmetry_measure == cos_theta_E)){ 214 // min(E1, E2)/(E1+E2) 215 double E1 = piece1.E(); 216 double E2 = piece2.E(); 217 // make sure denominator is non-zero 218 sym = E1 + E2; 219 if (sym == 0){ // this is a critical problem, return an empty PJ 220 piece1 = piece2 = PseudoJet(); 221 return recursion_issue; 222 } 223 sym = min(E1, E2) / sym; 224 } else { 225 throw Error ("Unrecognized choice of symmetry_measure"); 226 } 227 228 // determine the symmetry cut 229 // (This function is specified in the derived classes) 230 double this_symmetry_cut = symmetry_cut_fn(piece1, piece2, extra_parameters); 231 232 // and make a first tagging decision based on symmetry cut 233 bool tagged = (sym > this_symmetry_cut); 234 235 // if tagged based on symmetry cut, then check the mu cut (if relevant) 236 // and update the tagging decision. Calculate mu^2 regardless, for cases 237 // of users not cutting on mu2, but still interested in its value. 238 bool use_mu_cut = (_mu_cut != numeric_limits<double>::infinity()); 239 mu2 = max(piece1.m2(), piece2.m2())/subjet.m2(); 240 if (tagged && use_mu_cut) { 241 // first a sanity check -- mu2 won't be sensible if the subjet mass 242 // is negative, so we can't then trust the mu cut - bail out 243 if (subjet.m2() <= 0) { 244 _negative_mass_warning.warn("RecursiveSymmetryCutBase: cannot trust mu, because (sub)jet mass is negative; bailing out"); 245 piece1 = piece2 = PseudoJet(); 246 return recursion_issue; 247 } 248 if (mu2 > 1) _mu2_gt1_warning.warn("RecursiveSymmetryCutBase encountered mu^2 value > 1"); 249 if (mu2 > pow(_mu_cut,2)) tagged = false; 250 } 251 252 // we'll continue unclustering, allowing for the different 253 // ways of choosing which parent to look into 254 if (_recursion_choice == larger_pt) { 255 if (piece1.pt2() < piece2.pt2()) std::swap(piece1, piece2); 256 } else if (_recursion_choice == larger_mt) { 257 if (piece1.mt2() < piece2.mt2()) std::swap(piece1, piece2); 258 } else if (_recursion_choice == larger_m) { 259 if (piece1.m2() < piece2.m2()) std::swap(piece1, piece2); 260 } else if (_recursion_choice == larger_E) { 261 if (piece1.E() < piece2.E()) std::swap(piece1, piece2); 262 } else { 263 throw Error ("Unrecognized value for recursion_choice"); 264 } 265 266 return tagged ? recursion_success : recursion_dropped; 267 } 268 269 225 270 //---------------------------------------------------------------------- 226 271 string RecursiveSymmetryCutBase::description() const { … … 235 280 case vector_z: 236 281 ostr << "vector_z"; break; 282 case theta_E: 283 ostr << "theta_E"; break; 284 case cos_theta_E: 285 ostr << "cos_theta_E"; break; 237 286 default: 238 287 cerr << "failed to interpret symmetry_measure" << endl; exit(-1); … … 254 303 case larger_m: 255 304 ostr << "mass"; break; 305 case larger_E: 306 ostr << "energy"; break; 256 307 default: 257 308 cerr << "failed to interpret recursion_choice" << endl; exit(-1); … … 259 310 260 311 if (_subtractor) { 261 ostr << " andsubtractor: " << _subtractor->description();312 ostr << ", subtractor: " << _subtractor->description(); 262 313 if (_input_jet_is_subtracted) {ostr << " (input jet is assumed already subtracted)";} 263 314 } 315 316 if (_recluster) { 317 ostr << " and reclustering using " << _recluster->description(); 318 } 319 264 320 return ostr.str(); 265 321 } 266 322 323 //---------------------------------------------------------------------- 324 // helper for handling the reclustering 325 PseudoJet RecursiveSymmetryCutBase::_recluster_if_needed(const PseudoJet &jet) const{ 326 if (! _do_reclustering) return jet; 327 if (_recluster) return (*_recluster)(jet); 328 if (is_ee()){ 329 #if FASTJET_VERSION_NUMBER >= 30100 330 return Recluster(JetDefinition(ee_genkt_algorithm, JetDefinition::max_allowable_R, 0.0), true)(jet); 331 #else 332 return Recluster(JetDefinition(ee_genkt_algorithm, JetDefinition::max_allowable_R, 0.0))(jet); 333 #endif 334 } 335 336 return Recluster(cambridge_algorithm, JetDefinition::max_allowable_R)(jet); 337 } 338 339 //---------------------------------------------------------------------- 267 340 // decide what to return when no substructure has been found 341 double RecursiveSymmetryCutBase::squared_geometric_distance(const PseudoJet &j1, 342 const PseudoJet &j2) const{ 343 if (_symmetry_measure == theta_E){ 344 double dot_3d = j1.px()*j2.px() + j1.py()*j2.py() + j1.pz()*j2.pz(); 345 double cos_theta = max(-1.0,min(1.0, dot_3d/sqrt(j1.modp2()*j2.modp2()))); 346 double theta = acos(cos_theta); 347 return theta*theta; 348 } else if (_symmetry_measure == cos_theta_E){ 349 double dot_3d = j1.px()*j2.px() + j1.py()*j2.py() + j1.pz()*j2.pz(); 350 return max(0.0, 2*(1-dot_3d/sqrt(j1.modp2()*j2.modp2()))); 351 } 352 353 return j1.squared_distance(j2); 354 } 355 356 //---------------------------------------------------------------------- 268 357 PseudoJet RecursiveSymmetryCutBase::_result_no_substructure(const PseudoJet &last_parent) const{ 269 358 if (_grooming_mode){ … … 277 366 278 367 368 //======================================================================== 369 // implementation of the details of the structure 370 371 // the number of dropped subjets 372 int RecursiveSymmetryCutBase::StructureType::dropped_count(bool global) const { 373 check_verbose("dropped_count()"); 374 375 // if this jet has no substructure, just return an empty vector 376 if (!has_substructure()) return _dropped_delta_R.size(); 377 378 // deal with the non-global case 379 if (!global) return _dropped_delta_R.size(); 380 381 // for the global case, we've unfolded the recursion (likely more 382 // efficient as it requires less copying) 383 unsigned int count = 0; 384 vector<const RecursiveSymmetryCutBase::StructureType*> to_parse; 385 to_parse.push_back(this); 386 387 unsigned int i_parse = 0; 388 while (i_parse<to_parse.size()){ 389 const RecursiveSymmetryCutBase::StructureType *current = to_parse[i_parse]; 390 count += current->_dropped_delta_R.size(); 391 392 // check if we need to recurse deeper in the substructure 393 // 394 // we can have 2 situations here for the underlying structure (the 395 // one we've wrapped around): 396 // - it's of the clustering type 397 // - it's a composite jet 398 // only in the 2nd case do we have to recurse deeper 399 const CompositeJetStructure *css = dynamic_cast<const CompositeJetStructure*>(current->_structure.get()); 400 if (css == 0){ ++i_parse; continue; } 401 402 vector<PseudoJet> prongs = css->pieces(PseudoJet()); // argument irrelevant 403 assert(prongs.size() == 2); 404 for (unsigned int i_prong=0; i_prong<2; ++i_prong){ 405 if (prongs[i_prong].has_structure_of<RecursiveSymmetryCutBase>()){ 406 RecursiveSymmetryCutBase::StructureType* prong_structure 407 = (RecursiveSymmetryCutBase::StructureType*) prongs[i_prong].structure_ptr(); 408 if (prong_structure->has_substructure()) 409 to_parse.push_back(prong_structure); 410 } 411 } 412 413 ++i_parse; 414 } 415 return count; 416 } 417 418 // the delta_R of all the dropped subjets 419 vector<double> RecursiveSymmetryCutBase::StructureType::dropped_delta_R(bool global) const { 420 check_verbose("dropped_delta_R()"); 421 422 // if this jet has no substructure, just return an empty vector 423 if (!has_substructure()) return vector<double>(); 424 425 // deal with the non-global case 426 if (!global) return _dropped_delta_R; 427 428 // for the global case, we've unfolded the recursion (likely more 429 // efficient as it requires less copying) 430 vector<double> all_dropped; 431 vector<const RecursiveSymmetryCutBase::StructureType*> to_parse; 432 to_parse.push_back(this); 433 434 unsigned int i_parse = 0; 435 while (i_parse<to_parse.size()){ 436 const RecursiveSymmetryCutBase::StructureType *current = to_parse[i_parse]; 437 all_dropped.insert(all_dropped.end(), current->_dropped_delta_R.begin(), current->_dropped_delta_R.end()); 438 439 // check if we need to recurse deeper in the substructure 440 // 441 // we can have 2 situations here for the underlying structure (the 442 // one we've wrapped around): 443 // - it's of the clustering type 444 // - it's a composite jet 445 // only in the 2nd case do we have to recurse deeper 446 const CompositeJetStructure *css = dynamic_cast<const CompositeJetStructure*>(current->_structure.get()); 447 if (css == 0){ ++i_parse; continue; } 448 449 vector<PseudoJet> prongs = css->pieces(PseudoJet()); // argument irrelevant 450 assert(prongs.size() == 2); 451 for (unsigned int i_prong=0; i_prong<2; ++i_prong){ 452 if (prongs[i_prong].has_structure_of<RecursiveSymmetryCutBase>()){ 453 RecursiveSymmetryCutBase::StructureType* prong_structure 454 = (RecursiveSymmetryCutBase::StructureType*) prongs[i_prong].structure_ptr(); 455 if (prong_structure->has_substructure()) 456 to_parse.push_back(prong_structure); 457 } 458 } 459 460 ++i_parse; 461 } 462 return all_dropped; 463 } 464 465 // the symmetry of all the dropped subjets 466 vector<double> RecursiveSymmetryCutBase::StructureType::dropped_symmetry(bool global) const { 467 check_verbose("dropped_symmetry()"); 468 469 // if this jet has no substructure, just return an empty vector 470 if (!has_substructure()) return vector<double>(); 471 472 // deal with the non-global case 473 if (!global) return _dropped_symmetry; 474 475 // for the global case, we've unfolded the recursion (likely more 476 // efficient as it requires less copying) 477 vector<double> all_dropped; 478 vector<const RecursiveSymmetryCutBase::StructureType*> to_parse; 479 to_parse.push_back(this); 480 481 unsigned int i_parse = 0; 482 while (i_parse<to_parse.size()){ 483 const RecursiveSymmetryCutBase::StructureType *current = to_parse[i_parse]; 484 all_dropped.insert(all_dropped.end(), current->_dropped_symmetry.begin(), current->_dropped_symmetry.end()); 485 486 // check if we need to recurse deeper in the substructure 487 // 488 // we can have 2 situations here for the underlying structure (the 489 // one we've wrapped around): 490 // - it's of the clustering type 491 // - it's a composite jet 492 // only in the 2nd case do we have to recurse deeper 493 const CompositeJetStructure *css = dynamic_cast<const CompositeJetStructure*>(current->_structure.get()); 494 if (css == 0){ ++i_parse; continue; } 495 496 vector<PseudoJet> prongs = css->pieces(PseudoJet()); // argument irrelevant 497 assert(prongs.size() == 2); 498 for (unsigned int i_prong=0; i_prong<2; ++i_prong){ 499 if (prongs[i_prong].has_structure_of<RecursiveSymmetryCutBase>()){ 500 RecursiveSymmetryCutBase::StructureType* prong_structure 501 = (RecursiveSymmetryCutBase::StructureType*) prongs[i_prong].structure_ptr(); 502 if (prong_structure->has_substructure()) 503 to_parse.push_back(prong_structure); 504 } 505 } 506 507 ++i_parse; 508 } 509 return all_dropped; 510 } 511 512 // the mu of all the dropped subjets 513 vector<double> RecursiveSymmetryCutBase::StructureType::dropped_mu(bool global) const { 514 check_verbose("dropped_mu()"); 515 516 // if this jet has no substructure, just return an empty vector 517 if (!has_substructure()) return vector<double>(); 518 519 // deal with the non-global case 520 if (!global) return _dropped_mu; 521 522 // for the global case, we've unfolded the recursion (likely more 523 // efficient as it requires less copying) 524 vector<double> all_dropped; 525 vector<const RecursiveSymmetryCutBase::StructureType*> to_parse; 526 to_parse.push_back(this); 527 528 unsigned int i_parse = 0; 529 while (i_parse<to_parse.size()){ 530 const RecursiveSymmetryCutBase::StructureType *current = to_parse[i_parse]; 531 all_dropped.insert(all_dropped.end(), current->_dropped_mu.begin(), current->_dropped_mu.end()); 532 533 // check if we need to recurse deeper in the substructure 534 // 535 // we can have 2 situations here for the underlying structure (the 536 // one we've wrapped around): 537 // - it's of the clustering type 538 // - it's a composite jet 539 // only in the 2nd case do we have to recurse deeper 540 const CompositeJetStructure *css = dynamic_cast<const CompositeJetStructure*>(current->_structure.get()); 541 if (css == 0){ ++i_parse; continue; } 542 543 vector<PseudoJet> prongs = css->pieces(PseudoJet()); // argument irrelevant 544 assert(prongs.size() == 2); 545 for (unsigned int i_prong=0; i_prong<2; ++i_prong){ 546 if (prongs[i_prong].has_structure_of<RecursiveSymmetryCutBase>()){ 547 RecursiveSymmetryCutBase::StructureType* prong_structure 548 = (RecursiveSymmetryCutBase::StructureType*) prongs[i_prong].structure_ptr(); 549 if (prong_structure->has_substructure()) 550 to_parse.push_back(prong_structure); 551 } 552 } 553 554 ++i_parse; 555 } 556 return all_dropped; 557 } 558 559 // the maximum of the symmetry over the dropped subjets 560 double RecursiveSymmetryCutBase::StructureType::max_dropped_symmetry(bool global) const { 561 check_verbose("max_dropped_symmetry()"); 562 563 // if there is no substructure, just exit 564 if (!has_substructure()){ return 0.0; } 565 566 // local value of the max_dropped_symmetry 567 double local_max = (_dropped_symmetry.size() == 0) 568 ? 0.0 : *max_element(_dropped_symmetry.begin(),_dropped_symmetry.end()); 569 570 // recurse down the structure if instructed to do so 571 if (global){ 572 // we can have 2 situations here for the underlying structure (the 573 // one we've wrapped around): 574 // - it's of the clustering type 575 // - it's a composite jet 576 // only in the 2nd case do we have to recurse deeper 577 const CompositeJetStructure *css = dynamic_cast<const CompositeJetStructure*>(_structure.get()); 578 if (css == 0) return local_max; 579 580 vector<PseudoJet> prongs = css->pieces(PseudoJet()); // argument irrelevant 581 assert(prongs.size() == 2); 582 for (unsigned int i_prong=0; i_prong<2; ++i_prong){ 583 // check if the prong has further substructure 584 if (prongs[i_prong].has_structure_of<RecursiveSymmetryCutBase>()){ 585 RecursiveSymmetryCutBase::StructureType* prong_structure 586 = (RecursiveSymmetryCutBase::StructureType*) prongs[i_prong].structure_ptr(); 587 local_max = max(local_max, prong_structure->max_dropped_symmetry(true)); 588 } 589 } 590 } 591 592 return local_max; 593 } 594 595 //------------------------------------------------------------------------ 596 // helper class to sort by decreasing thetag 597 class SortRecursiveSoftDropStructureZgThetagPair{ 598 public: 599 bool operator()(const pair<double, double> &p1, const pair<double, double> &p2) const{ 600 return p1.second > p2.second; 601 } 602 }; 603 //------------------------------------------------------------------------ 604 605 // the (zg,thetag) pairs of all the splitting that were found and passed the SD condition 606 vector<pair<double,double> > RecursiveSymmetryCutBase::StructureType::sorted_zg_and_thetag() const { 607 //check_verbose("sorted_zg_and_thetag()"); 608 609 // if this jet has no substructure, just return an empty vector 610 if (!has_substructure()) return vector<pair<double,double> >(); 611 612 // otherwise fill a vector with all the prongs (no specific ordering) 613 vector<pair<double,double> > all; 614 vector<const RecursiveSymmetryCutBase::StructureType*> to_parse; 615 to_parse.push_back(this); 616 617 unsigned int i_parse = 0; 618 while (i_parse<to_parse.size()){ 619 const RecursiveSymmetryCutBase::StructureType *current = to_parse[i_parse]; 620 all.push_back(pair<double,double>(current->_symmetry, current->_delta_R)); 621 622 vector<PseudoJet> prongs = current->pieces(PseudoJet()); 623 assert(prongs.size() == 2); 624 for (unsigned int i_prong=0; i_prong<2; ++i_prong){ 625 if (prongs[i_prong].has_structure_of<RecursiveSymmetryCutBase>()){ 626 RecursiveSymmetryCutBase::StructureType* prong_structure 627 = (RecursiveSymmetryCutBase::StructureType*) prongs[i_prong].structure_ptr(); 628 if (prong_structure->has_substructure()) 629 to_parse.push_back(prong_structure); 630 } 631 } 632 633 ++i_parse; 634 } 635 636 sort(all.begin(), all.end(), SortRecursiveSoftDropStructureZgThetagPair()); 637 return all; 638 } 639 279 640 } // namespace contrib 280 641 -
external/fastjet/contribs/RecursiveTools/RecursiveSymmetryCutBase.hh
r001ee95 r667a02a 1 // $Id: RecursiveSymmetryCutBase.hh 700 2014-07-07 12:50:05Z gsoyez $1 // $Id: RecursiveSymmetryCutBase.hh 1074 2017-09-18 15:15:20Z gsoyez $ 2 2 // 3 3 // Copyright (c) 2014-, Gavin P. Salam, Gregory Soyez, Jesse Thaler … … 24 24 25 25 #include <limits> 26 #include <cassert> 26 27 #include <fastjet/internal/base.hh> 27 28 #include "fastjet/tools/Transformer.hh" 28 29 #include "fastjet/WrappedStructure.hh" 29 30 #include "fastjet/CompositeJetStructure.hh" 31 32 #include "fastjet/config.h" 33 34 // we'll use the native FJ class for reculstering if available 35 #if FASTJET_VERSION_NUMBER >= 30100 36 #include "fastjet/tools/Recluster.hh" 37 #else 30 38 #include "Recluster.hh" 39 #endif 31 40 32 41 /** \mainpage RecursiveTools contrib 33 42 34 The aims RecursiveTools contrib to provide a set of tools for 35 recursive investigation of the substructure of jets. 36 37 Currently it includes: 43 The RecursiveTools contrib provides a set of tools for 44 recursive investigation jet substructure. Currently it includes: 38 45 - fastjet::contrib::ModifiedMassDropTagger 39 46 - fastjet::contrib::SoftDrop 40 - the two above classes derive from fastjet::contrib::RecursiveSymmetryCutBase 41 - fastjet::contrib::Recluster provides a reclustering transformer 42 - example*.cc provides a usage examples 47 - fastjet::contrib::RecursiveSymmetryCutBase (from which the above two classes derive) 48 - fastjet::contrib::IteratedSoftDropSymmetryFactors (defines ISD procedure) 49 - fastjet::contrib::IteratedSoftDropMultiplicity (defines a useful observable using ISD) 50 - example*.cc provides usage examples 43 51 */ 44 52 … … 78 86 79 87 /// an enum of the different (a)symmetry measures that can be used 80 enum SymmetryMeasure{scalar_z, ///< \f$ \min(p_{ti}, p_{tj})/(p_{ti} + p_{tj}) \f$ 81 vector_z, ///< \f$ \min(p_{ti}, p_{tj})/p_{t(i+j)} \f$ 82 y /// \f$ \min(p_{ti}^2,p_{tj}^2) \Delta R_{ij}^2 / m_{ij}^2 \f$ 83 88 enum SymmetryMeasure{scalar_z, ///< \f$ \min(p_{ti}, p_{tj})/(p_{ti} + p_{tj}) \f$ 89 vector_z, ///< \f$ \min(p_{ti}, p_{tj})/p_{t(i+j)} \f$ 90 y, ///< \f$ \min(p_{ti}^2,p_{tj}^2) \Delta R_{ij}^2 / m_{ij}^2 \f$ 91 theta_E, ///< \f$ \min(E_i,E_j)/(E_i+E_j) \f$ with 3d angle (ee collisions) 92 cos_theta_E ///< \f$ \min(E_i,E_j)/(E_i+E_j) \f$ with 93 /// \f$ \sqrt{2[1-cos(theta)]}\f$ for angles (ee collisions) 84 94 }; 85 95 … … 87 97 enum RecursionChoice{larger_pt, ///< choose the subjet with larger \f$ p_t \f$ 88 98 larger_mt, ///< choose the subjet with larger \f$ m_t \equiv (m^2+p_t^2)^{\frac12}] \f$ 89 larger_m /// choose the subjet with larger mass (deprecated) 99 larger_m, ///< choose the subjet with larger mass (deprecated) 100 larger_E ///< choose the subjet with larger energy (meant for ee collisions) 90 101 }; 91 102 … … 119 130 virtual ~RecursiveSymmetryCutBase(){} 120 131 132 // access to class info 133 //---------------------------------------------------------------------- 134 SymmetryMeasure symmetry_measure() const { return _symmetry_measure; } 135 double mu_cut() const { return _mu_cut; } 136 RecursionChoice recursion_choice() const { return _recursion_choice; } 137 121 138 // internal subtraction configuration 122 139 //---------------------------------------------------------------------- … … 147 164 //---------------------------------------------------------------------- 148 165 149 /// configure the reclustering prior to the SoftDropde-clustering166 /// configure the reclustering prior to the recursive de-clustering 150 167 /// \param do_reclustering recluster the jet or not? 151 168 /// \param recluster how to recluster the jet … … 174 191 /// in particular values of symmetry, delta_R, and mu of dropped branches 175 192 void set_verbose_structure(bool enable=true) { _verbose_structure = enable; } 193 bool has_verbose_structure() const { return _verbose_structure; } 176 194 177 195 … … 185 203 /// subtracted jet. 186 204 virtual PseudoJet result(const PseudoJet & j) const; 187 205 188 206 /// description of the tool 189 207 virtual std::string description() const; 190 208 191 /// the type of the associated structure 192 //typedef RecursiveSymmetryCutBaseStructure StructureType; 209 /// returns the gepometrical distance between the two particles 210 /// depending on the symmetry measure used 211 double squared_geometric_distance(const PseudoJet &j1, 212 const PseudoJet &j2) const; 213 193 214 194 215 class StructureType; … … 203 224 /// apply for a given pair of subjets p1 and p2 204 225 virtual double symmetry_cut_fn(const PseudoJet & /* p1 */, 205 const PseudoJet & /* p2 */) const = 0; 226 const PseudoJet & /* p2 */, 227 void *extra_parameters = 0) const = 0; 206 228 /// the associated dwescription 207 229 virtual std::string symmetry_cut_description() const = 0; 230 231 //---------------------------------------------------------------------- 232 /// this defines status codes when checking for substructure 233 enum RecursionStatus{ 234 recursion_success=0, //< found some substructure 235 recursion_dropped, //< dropped softest prong; recursion continues 236 recursion_no_parents, //< down to constituents; bottom of recursion 237 recursion_issue //< something went wrong; recursion stops 238 }; 239 240 //---------------------------------------------------------------------- 241 /// the method below is the one actually performing one step of the 242 /// recursion. 243 /// 244 /// It returns a status code (defined above) 245 /// 246 /// In case of success, all the information is filled 247 /// In case of "no parents", piee1 is the same subjet 248 /// In case of trouble, piece2 will be a 0 PJ and piece1 is the PJ we 249 /// should return (either 0 itself if the issue was critical, or 250 /// non-wero in case of a minor issue just causing the recursion to 251 /// stop) 252 /// 253 /// The extra_parameter argument allows one to pass extra agruments 254 /// to the symmetry condition 255 RecursionStatus recurse_one_step(const PseudoJet & subjet, 256 PseudoJet &piece1, PseudoJet &piece2, 257 double &sym, double &mu2, 258 void *extra_parameters = 0) const; 259 260 //---------------------------------------------------------------------- 261 /// helper for handling the reclustering 262 PseudoJet _recluster_if_needed(const PseudoJet &jet) const; 263 264 //---------------------------------------------------------------------- 265 // helpers for selecting between ee and pp cases 266 bool is_ee() const{ 267 return ((_symmetry_measure==theta_E) || (_symmetry_measure==cos_theta_E)); 268 } 208 269 209 270 private: … … 238 299 public: 239 300 StructureType(const PseudoJet & j) : 240 WrappedStructure(j.structure_shared_ptr()), 301 WrappedStructure(j.structure_shared_ptr()), _delta_R(-1.0), _symmetry(-1.0), _mu(-1.0), 302 _is_composite(false), _has_verbose(false) // by default, do not store verbose structure 303 {} 304 305 /// construct a structure with 306 /// - basic info inherited from the reference jet "j" 307 /// - a given deltaR for substructure 308 /// - a given symmetry for substructure 309 /// - a given mu parameter for substructure 310 /// If j is a "copmposite jet", it means that it has further 311 /// substructure to potentially recurse into 312 StructureType(const PseudoJet & j, double delta_R_in, double symmetry_in, double mu_in=-1.0) : 313 WrappedStructure(j.structure_shared_ptr()), _delta_R(delta_R_in), _symmetry(symmetry_in), _mu(mu_in), 314 _is_composite(dynamic_cast<const CompositeJetStructure*>(j.structure_ptr()) != NULL), 241 315 _has_verbose(false) // by default, do not store verbose structure 242 316 {} 243 317 244 318 // information about kept branch 245 double delta_R() const {return _delta_R;}; 246 double symmetry() const {return _symmetry;}; 247 double mu() const {return _mu;}; 319 double delta_R() const {return _delta_R;} 320 double thetag() const {return _delta_R;} // alternative name 321 double symmetry() const {return _symmetry;} 322 double zg() const {return _symmetry;} // alternative name 323 double mu() const {return _mu;} 248 324 249 325 // additional verbose information about dropped branches 250 326 bool has_verbose() const { return _has_verbose;} 251 252 // number of dropped branches 253 int dropped_count() const {254 if (!_has_verbose) throw Error("RecursiveSymmetryCutBase::StructureType: Verbose structure must be turned on to get dropped_count() values.");255 return _dropped_delta_R.size();256 }257 258 // delta_R of dropped branches259 std::vector<double> dropped_delta_R() const {260 if (!_has_verbose) throw Error("RecursiveSymmetryCutBase::StructureType: Verbose structure must be turned on to get dropped_delta_R() values.");261 return _dropped_delta_R;262 }263 264 // symmetry values of dropped branches265 std::vector<double> dropped_ symmetry() const {266 if (!_has_verbose) throw Error("RecursiveSymmetryCutBase::StructureType: Verbose structure must be turned on to get dropped_symmetry() values.");267 return _dropped_symmetry; 268 }269 270 // mass drop values of dropped branches271 std::vector<double> dropped_mu() const { 272 if (!_has_verbose) throw Error("RecursiveSymmetryCutBase::StructureType: Verbose structure must be turned on to get dropped_mu() values.");273 return _dropped_mu;274 }275 276 // maximum symmetry value dropped277 double max_dropped_symmetry( ) const {278 if (!_has_verbose) throw Error("RecursiveSymmetryCutBase::StructureType: Verbose structure must be turned on to get max_dropped_symmetry()."); 279 if (_dropped_symmetry.size() == 0) return 0.0;280 return *std::max_element(_dropped_symmetry.begin(),_dropped_symmetry.end());281 }282 327 void set_verbose(bool value) { _has_verbose = value;} 328 329 /// returns true if the current jet has some substructure (i.e. has 330 /// been tagged by the resursion) or not 331 /// 332 /// Note that this should include deltaR==0 (e.g. a perfectly 333 /// collinear branching with SoftDrop) 334 bool has_substructure() const { return _delta_R>=0; } 335 336 /// number of dropped branches 337 int dropped_count(bool global=true) const; 338 339 /// delta_R of dropped branches 340 /// when "global" is set, recurse into possile further substructure 341 std::vector<double> dropped_delta_R(bool global=true) const; 342 void set_dropped_delta_R(const std::vector<double> &v) { _dropped_delta_R = v; } 343 344 /// symmetry values of dropped branches 345 std::vector<double> dropped_symmetry(bool global=true) const; 346 void set_dropped_symmetry(const std::vector<double> &v) { _dropped_symmetry = v; } 347 348 /// mass drop values of dropped branches 349 std::vector<double> dropped_mu(bool global=true) const; 350 void set_dropped_mu(const std::vector<double> &v) { _dropped_mu = v; } 351 352 /// maximum symmetry value dropped 353 double max_dropped_symmetry(bool global=true) const; 354 355 /// (global) list of groomed away elements as zg and thetag 356 /// sorted from largest to smallest anlge 357 std::vector<std::pair<double,double> > sorted_zg_and_thetag() const; 358 283 359 private: 284 360 double _delta_R, _symmetry, _mu; 285 361 friend class RecursiveSymmetryCutBase; 286 362 363 bool _is_composite; 364 287 365 // additional verbose information 288 366 bool _has_verbose; … … 291 369 std::vector<double> _dropped_symmetry; 292 370 std::vector<double> _dropped_mu; 371 372 bool check_verbose(const std::string &what) const{ 373 if (!_has_verbose){ 374 throw Error("RecursiveSymmetryCutBase::StructureType: Verbose structure must be turned on to get "+what+"."); 375 return false; 376 } 377 return true; 378 } 379 293 380 294 381 }; -
external/fastjet/contribs/RecursiveTools/SoftDrop.cc
r001ee95 r667a02a 1 // $Id: SoftDrop.cc 686 2014-06-14 03:25:09Z jthaler$1 // $Id: SoftDrop.cc 1059 2017-09-07 20:48:00Z gsoyez $ 2 2 // 3 3 // Copyright (c) 2014-, Gregory Soyez, Jesse. Thaler … … 57 57 //---------------------------------------------------------------------- 58 58 double SoftDrop::symmetry_cut_fn(const PseudoJet & p1, 59 const PseudoJet & p2) const{ 60 return _symmetry_cut * pow(p1.squared_distance(p2)/_R0sqr, 0.5*_beta); 59 const PseudoJet & p2, 60 void *optional_R0sqr_ptr) const{ 61 double R0sqr = (optional_R0sqr_ptr == 0) ? _R0sqr : *((double*) optional_R0sqr_ptr); 62 return _symmetry_cut * pow(squared_geometric_distance(p1,p2)/R0sqr, 0.5*_beta); 61 63 } 62 64 -
external/fastjet/contribs/RecursiveTools/SoftDrop.hh
r001ee95 r667a02a 1 // $Id: SoftDrop.hh 686 2014-06-14 03:25:09Z jthaler$1 // $Id: SoftDrop.hh 1034 2017-08-01 10:03:53Z gsoyez $ 2 2 // 3 3 // Copyright (c) 2014-, Gregory Soyez, Jesse Thaler … … 112 112 RecursiveSymmetryCutBase(symmetry_measure, mu_cut, recursion_choice, subtractor), 113 113 _beta(beta), _symmetry_cut(symmetry_cut), _R0sqr(R0*R0) 114 {} 114 { 115 // change the default: use grooming mode 116 set_grooming_mode(); 117 } 115 118 116 119 /// default destructor 117 120 virtual ~SoftDrop(){} 118 121 122 //---------------------------------------------------------------------- 123 // access to class info 124 double beta() const { return _beta; } 125 double symmetry_cut() const { return _symmetry_cut; } 126 double R0() const { return sqrt(_R0sqr); } 127 119 128 protected: 120 129 121 130 // Unlike MMDT, the SoftDrop symmetry_cut_fn depends on the subjet kinematics 122 131 // since the symmetry condition depends on the DeltaR between subjets. 123 virtual double symmetry_cut_fn(const PseudoJet & /* p1 */, 124 const PseudoJet & /* p2 */) const; 132 virtual double symmetry_cut_fn(const PseudoJet & p1, 133 const PseudoJet & p2, 134 void * optional_R0sqr_ptr = 0) const; 125 135 virtual std::string symmetry_cut_description() const; 126 136 127 private:137 //private: 128 138 double _beta; ///< the power of the angular distance to be used 129 139 ///< in the symmetry condition -
external/fastjet/contribs/RecursiveTools/TODO
r001ee95 r667a02a 1 For v2.0 2 -------- 3 4 - CHECK: lines 100-102 of RecursiveSymmetryCutBase.hh: this was 5 initially setting the structure members to 0. I think it's highly 6 preferable to set them to their default of -1, signalling the 7 absence of substructure. [0 dR might happen with a perfectly 8 collinear splitting] 9 10 - CHECK: are we happy with how the structure info is stored and the 11 recursive_soft_drop_prongs(...) function in RecursiveSoftDrop.hh? 12 13 - QUESTION: do we move set_min_deltaR_squared in the base class? 14 15 - Add option to define z wrt to original jet? 16 1 17 For future releases? 2 18 -------------------- … … 7 23 auto-indenting. [Consider this for the full contrib??] 8 24 - More generic kinematic cuts? 25 - KZ: common base class for IteratedSoftDrop and RecursiveSoftDrop? 26 - KZ: make IteratedSoftDrop use Recluster -
external/fastjet/contribs/RecursiveTools/VERSION
r001ee95 r667a02a 1 1.0.0 1 2.0.0-beta2 -
external/fastjet/internal/ClosestPair2D.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.hh 4 059 2016-03-03 20:49:48Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClosestPair2D.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/ClosestPair2DBase.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2DBase.hh 4 049 2016-03-03 13:45:47Z salam $2 // $Id: ClosestPair2DBase.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/ClusterSequence_N2.icc
r001ee95 r667a02a 7 7 // $Id: ClusterSequence_N2.cc 1351 2009-01-09 18:03:03Z salam $ 8 8 // 9 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn2piCylinder.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Dnn2piCylinder.hh 3442 2014-07-24 07:20:49Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn2piCylinder.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn3piCylinder.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Dnn3piCylinder.hh 3442 2014-07-24 07:20:49Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn3piCylinder.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn4piCylinder.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Dnn4piCylinder.hh 3442 2014-07-24 07:20:49Z salam $2 // $Id: Dnn4piCylinder.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/DnnPlane.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.hh 3917 2015-07-03 14:07:50Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: DnnPlane.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/DynamicNearestNeighbours.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: DynamicNearestNeighbours.hh 3619 2014-08-13 14:17:19Z salam $2 // $Id: DynamicNearestNeighbours.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/IsBase.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: IsBase.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: IsBase.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling25.hh
r001ee95 r667a02a 5 5 6 6 //FJSTARTHEADER 7 // $Id: LazyTiling25.hh 3477 2014-07-29 14:34:39Z salam $7 // $Id: LazyTiling25.hh 4354 2018-04-22 07:12:37Z salam $ 8 8 // 9 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9.hh
r001ee95 r667a02a 5 5 6 6 //FJSTARTHEADER 7 // $Id: LazyTiling9.hh 3477 2014-07-29 14:34:39Z salam $8 // 9 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // $Id: LazyTiling9.hh 4354 2018-04-22 07:12:37Z salam $ 8 // 9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9Alt.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9Alt.hh 3807 2015-02-20 11:16:55Z soyez$6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: LazyTiling9Alt.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9SeparateGhosts.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9SeparateGhosts.hh 3596 2014-08-12 15:27:19Z soyez$5 // $Id: LazyTiling9SeparateGhosts.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/LimitedWarning.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: LimitedWarning.hh 3433 2014-07-23 08:17:03Z salam $5 // $Id: LimitedWarning.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/MinHeap.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: MinHeap.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: MinHeap.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/SearchTree.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: SearchTree.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: SearchTree.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/TilingExtent.hh
r001ee95 r667a02a 5 5 6 6 //FJSTARTHEADER 7 // $Id: TilingExtent.hh 4 034 2016-03-02 00:20:27Z soyez$7 // $Id: TilingExtent.hh 4354 2018-04-22 07:12:37Z salam $ 8 8 // 9 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/Triangulation.hh
r001ee95 r667a02a 4 4 5 5 //FJSTARTHEADER 6 // $Id: Triangulation.hh 3433 2014-07-23 08:17:03Z salam $6 // $Id: Triangulation.hh 4354 2018-04-22 07:12:37Z salam $ 7 7 // 8 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez8 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 9 9 // 10 10 //---------------------------------------------------------------------- -
external/fastjet/internal/Voronoi.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: Voronoi.hh 3433 2014-07-23 08:17:03Z salam $6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Voronoi.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/base.hh
r001ee95 r667a02a 1 1 2 2 //FJSTARTHEADER 3 // $Id: base.hh 4 047 2016-03-03 13:21:49Z soyez$3 // $Id: base.hh 4354 2018-04-22 07:12:37Z salam $ 4 4 // 5 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- -
external/fastjet/internal/deprecated.hh
r001ee95 r667a02a 1 1 2 2 //FJSTARTHEADER 3 // $Id: deprecated.hh 4 098 2016-03-15 16:38:22Z salam $3 // $Id: deprecated.hh 4354 2018-04-22 07:12:37Z salam $ 4 4 // 5 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- … … 35 35 #include "fastjet/config.h" 36 36 37 #ifndef SWIG 38 37 39 // define a deprecation macro based on the capabilities of the compiler 38 40 // (as determined at configure time). 39 #if defined(FASTJET_HAVE_CXX14_DEPRECATED) 41 #if defined(FASTJET_HAVE_CXX14_DEPRECATED) and (!defined(__FJCORE__)) 40 42 #define FASTJET_DEPRECATED [[deprecated]] 41 43 #define FASTJET_DEPRECATED_MSG(message) [[deprecated(message)]] … … 48 50 #endif 49 51 52 #else // SIWG 53 #define FASTJET_DEPRECATED 54 #define FASTJET_DEPRECATED_MSG(message) 55 #endif // SWIG 56 57 50 58 #endif // __FASTJET_FASTJET_DEPRECATED_HH__ -
external/fastjet/internal/numconsts.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: numconsts.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: numconsts.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/ATLASCone/ATLASConePlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ATLASConePlugin.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: ATLASConePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/ATLASCone/fastjet/ATLASConePlugin.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: ATLASConePlugin.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: ATLASConePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/CDFJetCluPlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CDFJetCluPlugin.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: CDFJetCluPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/CDFMidPointPlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CDFMidPointPlugin.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: CDFMidPointPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CDFJetCluPlugin.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: CDFJetCluPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CDFMidPointPlugin.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: CDFMidPointPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.cc
r001ee95 r667a02a 2 2 // $Id: CMSIterativeConePlugin.cc 1504 2009-04-10 13:39:48Z salam $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh
r001ee95 r667a02a 2 2 // $Id: CMSIterativeConePlugin.hh 1508 2009-04-10 22:46:49Z soyez $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.cc
r001ee95 r667a02a 2 2 // $Id: D0RunIBaseConePlugin.cc 1779 2010-10-25 10:32:59Z soyez $ 3 3 // 4 // Copyright (c) 2009-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh
r001ee95 r667a02a 5 5 // $Id: D0RunIBaseConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIConePlugin.hh
r001ee95 r667a02a 5 5 // $Id: D0RunIConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh
r001ee95 r667a02a 5 5 // $Id: D0RunIpre96ConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: D0RunIIConePlugin.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: D0RunIIConePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: D0RunIIConePlugin.hh 3433 2014-07-23 08:17:03Z salam $5 // $Id: D0RunIIConePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/EECambridge/EECambridgePlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: EECambridgePlugin.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: EECambridgePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/EECambridge/fastjet/EECambridgePlugin.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: EECambridgePlugin.hh 3433 2014-07-23 08:17:03Z salam $5 // $Id: EECambridgePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/GridJet/GridJetPlugin.cc
r001ee95 r667a02a 2 2 // $Id: GridJetPlugin.cc 2268 2011-06-20 15:12:26Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/GridJet/fastjet/GridJetPlugin.hh
r001ee95 r667a02a 5 5 // $Id: GridJetPlugin.hh 2267 2011-06-20 15:10:23Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/Jade/JadePlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: JadePlugin.cc 4 063 2016-03-04 10:31:40Z salam $3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JadePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/Jade/fastjet/JadePlugin.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: JadePlugin.hh 4 061 2016-03-03 21:51:25Z salam $5 // $Id: JadePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/NestedDefs/NestedDefsPlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: NestedDefsPlugin.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: NestedDefsPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/NestedDefs/fastjet/NestedDefsPlugin.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: NestedDefsPlugin.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: NestedDefsPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/TrackJet/TrackJetPlugin.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: TrackJetPlugin.cc 3433 2014-07-23 08:17:03Z salam $3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: TrackJetPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/TrackJet/fastjet/TrackJetPlugin.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: TrackJetPlugin.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: TrackJetPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/BackgroundEstimatorBase.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: BackgroundEstimatorBase.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: BackgroundEstimatorBase.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/BackgroundEstimatorBase.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: BackgroundEstimatorBase.hh 3516 2014-08-01 14:07:58Z salam $6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: BackgroundEstimatorBase.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Boost.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Boost.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: Boost.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/CASubJetTagger.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CASubJetTagger.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: CASubJetTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/CASubJetTagger.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: CASubJetTagger.hh 3433 2014-07-23 08:17:03Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: CASubJetTagger.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Filter.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Filter.cc 4 080 2016-03-09 15:01:57Z soyez$2 // $Id: Filter.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Filter.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: Filter.hh 3846 2015-03-08 08:35:43Z soyez$6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Filter.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/GridMedianBackgroundEstimator.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: GridMedianBackgroundEstimator.cc 3555 2014-08-11 09:56:35Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: GridMedianBackgroundEstimator.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/GridMedianBackgroundEstimator.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: GridMedianBackgroundEstimator.hh 3969 2015-09-21 08:57:59Z salam $6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: GridMedianBackgroundEstimator.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/JHTopTagger.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: JHTopTagger.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: JHTopTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/JHTopTagger.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: JHTopTagger.hh 3433 2014-07-23 08:17:03Z salam $6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: JHTopTagger.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/JetMedianBackgroundEstimator.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: JetMedianBackgroundEstimator.cc 4 047 2016-03-03 13:21:49Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JetMedianBackgroundEstimator.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/JetMedianBackgroundEstimator.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: JetMedianBackgroundEstimator.hh 3517 2014-08-01 14:23:13Z soyez$5 // $Id: JetMedianBackgroundEstimator.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/MassDropTagger.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: MassDropTagger.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: MassDropTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 36 36 37 37 LimitedWarning MassDropTagger::_warnings_nonca; 38 LimitedWarning MassDropTagger::_negative_mass_warning; 38 39 39 40 using namespace std; … … 71 72 // the case 72 73 while ((had_parents = j.has_parents(j1,j2))) { 74 if (j.m2() <= 0) { 75 _negative_mass_warning.warn( 76 "MassDropTagger: parent (sub)jet has mass^2<=0; returning null jet"); 77 return PseudoJet(); 78 } 73 79 // make parent1 the more massive jet 74 80 if (j1.m2() < j2.m2()) std::swap(j1,j2); … … 91 97 PseudoJet result_local = j; 92 98 MassDropTaggerStructure * s = new MassDropTaggerStructure(result_local); 93 // s->_original_jet = jet; 94 s->_mu = (j.m2()!=0.0) ? sqrt(j1.m2()/j.m2()) : 0.0; 95 s->_y = (j.m2()!=0.0) ? j1.kt_distance(j2)/j.m2() : 0.0; 99 s->_mu = j1.m() / j.m(); 100 s->_y = j1.kt_distance(j2)/j.m2(); 96 101 97 102 result_local.set_structure_shared_ptr(SharedPtr<PseudoJetStructureBase>(s)); -
external/fastjet/tools/MassDropTagger.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: MassDropTagger.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: MassDropTagger.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 110 110 double _mu, _ycut; 111 111 static LimitedWarning _warnings_nonca; 112 static LimitedWarning _negative_mass_warning; 112 113 }; 113 114 -
external/fastjet/tools/Pruner.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Pruner.cc 3481 2014-07-29 17:24:12Z soyez$3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Pruner.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Pruner.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: Pruner.hh 3481 2014-07-29 17:24:12Z soyez$6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Pruner.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/RestFrameNSubjettinessTagger.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: RestFrameNSubjettinessTagger.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: RestFrameNSubjettinessTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/RestFrameNSubjettinessTagger.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: RestFrameNSubjettinessTagger.hh 3433 2014-07-23 08:17:03Z salam $5 // $Id: RestFrameNSubjettinessTagger.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Subtractor.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.cc 3970 2015-09-21 10:31:17Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Subtractor.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Subtractor.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.hh 3970 2015-09-21 10:31:17Z salam $3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Subtractor.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/TopTaggerBase.cc
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: TopTaggerBase.cc 3433 2014-07-23 08:17:03Z salam $2 // $Id: TopTaggerBase.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/TopTaggerBase.hh
r001ee95 r667a02a 3 3 4 4 //FJSTARTHEADER 5 // $Id: TopTaggerBase.hh 3433 2014-07-23 08:17:03Z salam $5 // $Id: TopTaggerBase.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Transformer.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: Transformer.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: Transformer.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/version.hh
r001ee95 r667a02a 1 1 //FJSTARTHEADER 2 // $Id: version.hh 3433 2014-07-23 08:17:03Z salam $2 // $Id: version.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-201 4, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
modules/DenseTrackFilter.cc
r001ee95 r667a02a 54 54 55 55 DenseTrackFilter::DenseTrackFilter() : 56 fItTrackInputArray(0) , fItDenseChargedInputArray(0)56 fItTrackInputArray(0) 57 57 { 58 58 } … … 116 116 fItTrackInputArray = fTrackInputArray->MakeIterator(); 117 117 118 fDenseChargedInputArray = ImportArray(GetString("DenseChargedInputArray", "DenseMergeTracks/tracks"));119 fItDenseChargedInputArray = fDenseChargedInputArray->MakeIterator();120 121 118 fTrackOutputArray = ExportArray(GetString("TrackOutputArray", "tracks")); 119 fChargedHadronOutputArray = ExportArray(GetString("ChargedHadronOutputArray", "chargedHadrons")); 120 fElectronOutputArray = ExportArray(GetString("ElectronOutputArray", "electrons")); 121 fMuonOutputArray = ExportArray(GetString("MuonOutputArray", "muons")); 122 122 } 123 123 … … 128 128 vector< vector< Double_t >* >::iterator itPhiBin; 129 129 if(fItTrackInputArray) delete fItTrackInputArray; 130 if(fItDenseChargedInputArray) delete fItDenseChargedInputArray;131 130 for(itPhiBin = fPhiBins.begin(); itPhiBin != fPhiBins.end(); ++itPhiBin) 132 131 { … … 155 154 156 155 // loop over all tracks 157 fIt DenseChargedInputArray->Reset();156 fItTrackInputArray->Reset(); 158 157 number = -1; 159 while((track = static_cast<Candidate*>(fIt DenseChargedInputArray->Next())))158 while((track = static_cast<Candidate*>(fItTrackInputArray->Next()))) 160 159 { 161 160 const TLorentzVector &trackPosition = track->Position; … … 204 203 // switch to next tower 205 204 towerEtaPhi = hitEtaPhi; 206 205 207 206 // saving track with highest pT that hit the tower 208 207 FillTrack(); … … 213 212 } 214 213 // check for track hits 215 214 216 215 if(flags & 1) 217 216 { 218 217 ++fTowerTrackHits; 219 track = static_cast<Candidate*>(f DenseChargedInputArray->At(number));218 track = static_cast<Candidate*>(fTrackInputArray->At(number)); 220 219 momentum = track->Momentum; 221 220 222 if (momentum.Pt() > ptmax)221 if(momentum.Pt() > ptmax) 223 222 { 224 223 ptmax = momentum.Pt(); 225 224 fBestTrack = track; 226 225 } 227 226 continue; 228 227 } 229 230 } 231 228 229 } 230 232 231 // here fill last tower 233 232 FillTrack(); 234 235 } 236 237 233 234 } 238 235 239 236 //------------------------------------------------------------------------------ … … 241 238 void DenseTrackFilter::FillTrack() 242 239 { 243 244 Candidate *candidate, *track , *mother, *trackRef, *bestTrackRef;240 241 Candidate *candidate, *track; 245 242 Double_t pt, eta, phi; 246 Bool_t matched;247 243 Int_t numberOfCandidates; 244 248 245 // saving track with highest pT that hit the tower 249 if(fTowerTrackHits > 0) 250 { 251 bestTrackRef = static_cast<Candidate*>(fBestTrack->GetCandidates()->At(0)); 252 253 // find corresponding track in properly propagated tracks 254 fItTrackInputArray->Reset(); 255 matched = kFALSE; 256 int ntrack = 0; 257 while((track = static_cast<Candidate*>(fItTrackInputArray->Next()))) 258 { 259 ntrack++; 260 trackRef = static_cast<Candidate*>(track->GetCandidates()->At(0)); 261 262 if (trackRef->GetUniqueID() == bestTrackRef->GetUniqueID()) 263 { 264 mother = track; 265 candidate = static_cast<Candidate*>(track->Clone()); 266 pt = candidate->Momentum.Pt(); 267 eta = candidate->Momentum.Eta(); 268 phi = candidate->Momentum.Phi(); 269 eta = gRandom->Gaus(eta, fEtaPhiRes); 270 phi = gRandom->Gaus(phi, fEtaPhiRes); 271 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt*TMath::CosH(eta)); 272 candidate->AddCandidate(mother); 273 fTrackOutputArray->Add(candidate); 274 matched = kTRUE; 275 } 276 if (matched) break; 277 } 278 } 279 280 281 } 246 if(fTowerTrackHits < 1) return; 247 248 numberOfCandidates = fBestTrack->GetCandidates()->GetEntriesFast(); 249 if(numberOfCandidates < 1) return; 250 251 track = static_cast<Candidate*>(fBestTrack->GetCandidates()->At(numberOfCandidates - 1)); 252 candidate = static_cast<Candidate*>(track->Clone()); 253 pt = candidate->Momentum.Pt(); 254 eta = candidate->Momentum.Eta(); 255 phi = candidate->Momentum.Phi(); 256 eta = gRandom->Gaus(eta, fEtaPhiRes); 257 phi = gRandom->Gaus(phi, fEtaPhiRes); 258 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt*TMath::CosH(eta)); 259 candidate->AddCandidate(track); 260 261 fTrackOutputArray->Add(candidate); 262 switch(TMath::Abs(candidate->PID)) 263 { 264 case 11: 265 fElectronOutputArray->Add(candidate); 266 break; 267 case 13: 268 fMuonOutputArray->Add(candidate); 269 break; 270 default: 271 fChargedHadronOutputArray->Add(candidate); 272 } 273 } -
modules/DenseTrackFilter.h
r001ee95 r667a02a 69 69 70 70 const TObjArray *fTrackInputArray; //! 71 72 71 TObjArray *fTrackOutputArray; //! 73 72 73 TObjArray *fChargedHadronOutputArray; //! 74 TObjArray *fElectronOutputArray; //! 75 TObjArray *fMuonOutputArray; //! 74 76 75 const TObjArray *fDenseChargedInputArray;76 TIterator *fItDenseChargedInputArray;77 78 77 void FillTrack(); 79 78 ClassDef(DenseTrackFilter, 1) -
modules/ParticlePropagator.cc
r001ee95 r667a02a 124 124 void ParticlePropagator::Process() 125 125 { 126 Candidate *candidate, *mother ;127 TLorentzVector candidatePosition, candidateMomentum, beamSpotPosition;126 Candidate *candidate, *mother, *particle; 127 TLorentzVector particlePosition, particleMomentum, beamSpotPosition; 128 128 Double_t px, py, pz, pt, pt2, e, q; 129 129 Double_t x, y, z, t, r, phi; … … 151 151 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) 152 152 { 153 candidatePosition = candidate->Position; 154 candidateMomentum = candidate->Momentum; 155 x = candidatePosition.X()*1.0E-3; 156 y = candidatePosition.Y()*1.0E-3; 157 z = candidatePosition.Z()*1.0E-3; 153 if(candidate->GetCandidates()->GetEntriesFast() == 0) 154 { 155 particle = candidate; 156 } 157 else 158 { 159 particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0)); 160 } 161 162 particlePosition = particle->Position; 163 particleMomentum = particle->Momentum; 164 x = particlePosition.X()*1.0E-3; 165 y = particlePosition.Y()*1.0E-3; 166 z = particlePosition.Z()*1.0E-3; 158 167 159 168 bsx = beamSpotPosition.X()*1.0E-3; … … 161 170 bsz = beamSpotPosition.Z()*1.0E-3; 162 171 163 q = candidate->Charge;172 q = particle->Charge; 164 173 165 174 // check that particle position is inside the cylinder … … 169 178 } 170 179 171 px = candidateMomentum.Px();172 py = candidateMomentum.Py();173 pz = candidateMomentum.Pz();174 pt = candidateMomentum.Pt();175 pt2 = candidateMomentum.Perp2();176 e = candidateMomentum.E();180 px = particleMomentum.Px(); 181 py = particleMomentum.Py(); 182 pz = particleMomentum.Pz(); 183 pt = particleMomentum.Pt(); 184 pt2 = particleMomentum.Perp2(); 185 e = particleMomentum.E(); 177 186 178 187 if(pt2 < 1.0E-9) … … 186 195 candidate = static_cast<Candidate*>(candidate->Clone()); 187 196 188 candidate->InitialPosition = candidatePosition;189 candidate->Position = candidatePosition;197 candidate->InitialPosition = particlePosition; 198 candidate->Position = particlePosition; 190 199 candidate->L = 0.0; 191 200 192 candidate->Momentum = candidateMomentum;201 candidate->Momentum = particleMomentum; 193 202 candidate->AddCandidate(mother); 194 203 … … 230 239 candidate = static_cast<Candidate*>(candidate->Clone()); 231 240 232 candidate->InitialPosition = candidatePosition;233 candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*e*1.0E3);241 candidate->InitialPosition = particlePosition; 242 candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, particlePosition.T() + t*e*1.0E3); 234 243 candidate->L = l*1.0E3; 235 244 236 candidate->Momentum = candidateMomentum;245 candidate->Momentum = particleMomentum; 237 246 candidate->AddCandidate(mother); 238 247 … … 295 304 px = TMath::Sign(1.0, r) * pt * (-y_c / r_c); 296 305 py = TMath::Sign(1.0, r) * pt * (x_c / r_c); 297 etap = candidateMomentum.Eta();306 etap = particleMomentum.Eta(); 298 307 phip = TMath::ATan2(py, px); 299 308 300 candidateMomentum.SetPtEtaPhiE(pt, etap, phip, candidateMomentum.E());309 particleMomentum.SetPtEtaPhiE(pt, etap, phip, particleMomentum.E()); 301 310 302 311 // calculate additional track parameters (correct for beamspot position) … … 304 313 d0 = ((x - bsx) * py - (y - bsy) * px) / pt; 305 314 dz = z - ((x - bsx) * px + (y - bsy) * py) / pt * (pz / pt); 306 p = candidateMomentum.P();307 ctgTheta = 1.0 / TMath::Tan ( candidateMomentum.Theta());315 p = particleMomentum.P(); 316 ctgTheta = 1.0 / TMath::Tan (particleMomentum.Theta()); 308 317 309 318 … … 363 372 364 373 // store these variables before cloning 365 candidate->D0 = d0*1.0E3; 366 candidate->DZ = dz*1.0E3; 367 candidate->P = p; 368 candidate->PT = pt; 369 candidate->CtgTheta = ctgTheta; 370 candidate->Phi = phip; 374 if(particle == candidate) 375 { 376 particle->D0 = d0*1.0E3; 377 particle->DZ = dz*1.0E3; 378 particle->P = p; 379 particle->PT = pt; 380 particle->CtgTheta = ctgTheta; 381 particle->Phi = phip; 382 } 371 383 372 384 mother = candidate; 373 385 candidate = static_cast<Candidate*>(candidate->Clone()); 374 386 375 candidate->InitialPosition = candidatePosition;376 candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*c_light*1.0E3);377 378 candidate->Momentum = candidateMomentum;387 candidate->InitialPosition = particlePosition; 388 candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, particlePosition.T() + t*c_light*1.0E3); 389 390 candidate->Momentum = particleMomentum; 379 391 380 392 candidate->L = l*1.0E3;
Note:
See TracChangeset
for help on using the changeset viewer.