Changes in / [a3261d7:13331dc] in git
- Files:
-
- 35 added
- 10 deleted
- 215 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
ra3261d7 r13331dc 89 89 DISPLAYLIB = libDelphesDisplay.lib 90 90 91 VERSION = $(shell cat VERSION)91 VERSION = x.y.z 92 92 DISTDIR = Delphes-$(VERSION) 93 93 DISTTAR = $(DISTDIR).tar.gz … … 648 648 tmp/external/Hector/H_VerticalQuadrupole.$(ObjSuf): \ 649 649 external/Hector/H_VerticalQuadrupole.$(SrcSuf) 650 tmp/external/TrackCovariance/AcceptanceClx.$(ObjSuf): \ 651 external/TrackCovariance/AcceptanceClx.$(SrcSuf) 650 652 tmp/external/TrackCovariance/ObsTrk.$(ObjSuf): \ 651 653 external/TrackCovariance/ObsTrk.$(SrcSuf) … … 656 658 tmp/external/TrackCovariance/SolTrack.$(ObjSuf): \ 657 659 external/TrackCovariance/SolTrack.$(SrcSuf) 660 tmp/external/TrackCovariance/TrkUtil.$(ObjSuf): \ 661 external/TrackCovariance/TrkUtil.$(SrcSuf) 662 tmp/external/TrackCovariance/VertexFit.$(ObjSuf): \ 663 external/TrackCovariance/VertexFit.$(SrcSuf) 658 664 tmp/modules/AngularSmearing.$(ObjSuf): \ 659 665 modules/AngularSmearing.$(SrcSuf) \ … … 1158 1164 tmp/external/Hector/H_VerticalKicker.$(ObjSuf) \ 1159 1165 tmp/external/Hector/H_VerticalQuadrupole.$(ObjSuf) \ 1166 tmp/external/TrackCovariance/AcceptanceClx.$(ObjSuf) \ 1160 1167 tmp/external/TrackCovariance/ObsTrk.$(ObjSuf) \ 1161 1168 tmp/external/TrackCovariance/SolGeom.$(ObjSuf) \ 1162 1169 tmp/external/TrackCovariance/SolGridCov.$(ObjSuf) \ 1163 1170 tmp/external/TrackCovariance/SolTrack.$(ObjSuf) \ 1171 tmp/external/TrackCovariance/TrkUtil.$(ObjSuf) \ 1172 tmp/external/TrackCovariance/VertexFit.$(ObjSuf) \ 1164 1173 tmp/modules/AngularSmearing.$(ObjSuf) \ 1165 1174 tmp/modules/BTagging.$(ObjSuf) \ … … 2434 2443 @echo ">> Building $(DISTTAR)" 2435 2444 @mkdir -p $(DISTDIR) 2436 @cp -a AUTHORS CHANGELOG CMakeLists.txt COPYING DelphesEnv.sh LICENSE NOTICE README README_4LHCb VERSIONMakefile MinBias.pileup configure cards classes converters display doc examples external modules python readers validation $(DISTDIR)2445 @cp -a AUTHORS CHANGELOG CMakeLists.txt COPYING DelphesEnv.sh LICENSE NOTICE README README_4LHCb Makefile MinBias.pileup configure cards classes converters display doc examples external modules python readers validation $(DISTDIR) 2437 2446 @find $(DISTDIR) -depth -name .\* -exec rm -rf {} \; 2438 2447 @tar -czf $(DISTTAR) $(DISTDIR) -
README.md
ra3261d7 r13331dc 1 [![C ircleCI](https://circleci.com/gh/delphes/delphes.svg?style=shield)](https://circleci.com/gh/delphes/delphes) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3735069.svg)](https://doi.org/10.5281/zenodo.3735069)1 [![CI](https://github.com/delphes/delphes/actions/workflows/ci.yml/badge.svg)](https://github.com/delphes/delphes/actions/workflows/ci.yml) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.821635.svg)](https://doi.org/10.5281/zenodo.821635) 2 2 3 3 Delphes -
cards/FCC/FCChh.tcl
ra3261d7 r13331dc 4 4 # Main authors: Michele Selvaggi (CERN) 5 5 # 6 # Released on: Dec. 1st, 2017 6 # Released on: October 14th, 2020 7 # 8 # - fix muon resolution at high pT 9 # - updated btagging, tau tagging and photon ID 10 # 7 11 # 8 12 # Configuration: FCC-hh baseline detector … … 1049 1053 (abs(eta) <= 2.5) * (pt > 1.0 && pt < 5.0) * (0.70) + 1050 1054 (abs(eta) <= 2.5) * (pt > 5.0 && pt < 10.0) * (0.85) + 1051 (abs(eta) <= 2.5) * (pt > 10.0) * (0.9 5) +1055 (abs(eta) <= 2.5) * (pt > 10.0) * (0.90) + 1052 1056 1053 1057 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0 && pt < 5.0) * (0.60) + … … 1138 1142 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0.01)*(1.0 - pt/15000.) + \ 1139 1143 (abs(eta) < 2.5) * (pt > 15000.0) * (0.00) + \ 1140 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.0 075) + \1141 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.0 075)*(1.0 - pt/15000.) + \1144 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.01) + \ 1145 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.01)*(1.0 - pt/15000.) + \ 1142 1146 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0) * (0.000) + \ 1143 1147 (abs(eta) > 4.0) * (0.00)} … … 1146 1150 1147 1151 (pt <= 10.0) * (0.00) + 1148 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0. 05) + \1149 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0. 05)*(1.0 - pt/15000.) + \1152 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.15) + \ 1153 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0.15)*(1.0 - pt/15000.) + \ 1150 1154 (abs(eta) < 2.5) * (pt > 15000.0) * (0.000) + \ 1151 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0. 03) + \1152 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0. 03)*(1.0 - pt/15000.) + \1155 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.10) + \ 1156 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.10)*(1.0 - pt/15000.) + \ 1153 1157 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0) * (0.000) + \ 1154 1158 (abs(eta) > 4.0) * (0.00)} … … 1157 1161 1158 1162 (pt <= 10.0) * (0.00) + 1159 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.8 5) +1160 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0.8 5)*(1.0 - pt/15000.) +1163 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.82) + 1164 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0.82)*(1.0 - pt/15000.) + 1161 1165 (abs(eta) < 2.5) * (pt > 15000.0) * (0.000) + 1162 1166 (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.64) + … … 1217 1221 1218 1222 (pt <= 10.0) * (0.00) + 1219 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.0 1) + \1220 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.0 1) *(8./9. - pt/30000.) + \1223 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.02) + \ 1224 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.02) *(8./9. - pt/30000.) + \ 1221 1225 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \ 1222 1226 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.0075) + \ … … 1228 1232 1229 1233 (pt <= 10.0) * (0.00) + 1230 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.00 5) + \1231 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.00 5) *(8./9. - pt/30000.) + \1234 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.001) + \ 1235 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.001) *(8./9. - pt/30000.) + \ 1232 1236 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \ 1233 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.00 375) + \1234 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.00 375)*(8./9. - pt/30000.) + \1237 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.001) + \ 1238 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.001)*(8./9. - pt/30000.) + \ 1235 1239 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \ 1236 1240 (abs(eta) > 4.0) * (0.00)} -
cards/FCC/muonMomentumResolutionVsP.tcl
ra3261d7 r13331dc 12 12 set ResolutionFormula { 13 13 14 ( abs(eta) < 1.35 ) * 15 16 (sqrt(0.0000364164 + ( 17 9.06262e-8 *pt^2* cosh( 18 eta)^2 *(2.82074e-7/sin(2*atan(exp(-abs(eta))))^2 + ( 19 504.525 *(1/400000000 + (0.117945* 1/cosh(eta)^2)/( 20 pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/ 21 sin(2*atan(exp(-abs(eta))))^2) *sin(2*atan(exp(-abs(eta))))^2)/( 22 0.00516429/sin(2*atan(exp(-abs(eta))))^2 + ( 23 96868.8 *(1/400000000 + (0.117945 * 1/cosh(eta)^2)/( 24 pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/ 25 sin(2*atan(exp(-abs(eta))))^2)) 26 27 ) + 14 15 ( abs(eta) < 1.35 ) * 16 17 (sqrt(0.0000364164 + ( 18 3*9.06262e-8 *pt^2* cosh( 19 eta)^2 *(2.82074e-7/sin(2*atan(exp(-abs(eta))))^2 + ( 20 504.525 *(1/400000000 + (0.117945* 1/cosh(eta)^2)/( 21 pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/ 22 sin(2*atan(exp(-abs(eta))))^2) *sin(2*atan(exp(-abs(eta))))^2)/( 23 0.00516429/sin(2*atan(exp(-abs(eta))))^2 + ( 24 96868.8 *(1/400000000 + 5*(0.117945 * 1/cosh(eta)^2)/( 25 pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/ 26 sin(2*atan(exp(-abs(eta))))^2)) 27 28 ) + 28 29 29 30 ( abs(eta) > 1.35 && abs(eta) < 2.00) * -
cards/ILCgen/ILCgen_BTagging_N.tcl
ra3261d7 r13331dc 104 104 source ILCgen/ILCgen_BTagging_50.tcl 105 105 } 106 -
cards/ILCgen/ILCgen_BeamCalEfficiency.tcl
ra3261d7 r13331dc 2 2 # Based on IDR Figure 8.8a and Moritz Hebermehl PhD Thesis Figure 4.10 3 3 # A.F.Zarnecki, June 2020 4 5 # set EfficiencyFormula {efficiency formula as a function of eta and pt}6 4 7 5 set EfficiencyFormula { -
cards/ILCgen/ILCgen_BeamCalF_Binning.tcl
ra3261d7 r13331dc 2 2 # corrected by A.F.Zarnecki 3 3 4 set pi [expr {acos(-1)} ]5 4 set pi [expr {acos(-1)} ] 5 6 6 # BeamCal eta range 4.0 - 5.8 -> 2.099-0.347 =1.752deg 7 7 # -
cards/ILCgen/ILCgen_BeamCalR_Binning.tcl
ra3261d7 r13331dc 2 2 # corrected by A.F.Zarnecki 3 3 4 set pi [expr {acos(-1)} ]5 4 set pi [expr {acos(-1)} ] 5 6 6 # BeamCal eta range 4.0 - 5.8 -> 2.099-0.347 =1.752deg 7 7 # -
cards/ILCgen/ILCgen_BeamCal_EnergyFractions.tcl
ra3261d7 r13331dc 1 1 #P.Sopicki 2 # default energy fractions {abs(PDG code)} {fraction of energy deposited in BeamCal}3 2 4 3 add EnergyFraction {0} {0.0} … … 20 19 add EnergyFraction {310} {0.3} 21 20 add EnergyFraction {3122} {0.3} 22 -
cards/ILCgen/ILCgen_BeamCal_Resolution.tcl
ra3261d7 r13331dc 1 1 # P.Sopicki, corrected by A.F.Zarnecki 2 2 # BeamCal resolution 3 4 # set ResolutionFormula {resolution formula as a function of eta and energy}5 3 6 4 set ResolutionFormula { … … 8 6 (abs(eta) > 4.8 && abs(eta) <= 5.8) * sqrt(energy^2*0.03^2 + energy*0.45^2) 9 7 } 10 -
cards/ILCgen/ILCgen_CTagging_N.tcl
ra3261d7 r13331dc 104 104 source ILCgen/ILCgen_CTagging_20.tcl 105 105 } 106 -
cards/ILCgen/ILCgen_ChrgHadMomentumSmearing.tcl
ra3261d7 r13331dc 6 6 7 7 set ResolutionFormula { 8 9 (abs(eta) <= 2.0) * 10 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 8 (abs(eta) <= 2.0) * 9 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 11 10 + (0.829675 -0.188197*abs(eta) + 0.106226 * eta*eta - 1.0) * log(pt) 12 11 + (0.0766417-0.00435667*abs(eta) + 0.00174804*eta*eta) * log(pt)*log(pt)) 13 14 + 15 16 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 17 exp( -4.54609 12 + 13 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 14 exp( -4.54609 18 15 + ( 0.87526 - 1.0) * log(pt) 19 16 + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt)) 20 21 } 22 17 } -
cards/ILCgen/ILCgen_ChrgHadTrackingEff.tcl
ra3261d7 r13331dc 4 4 # A.F.Zarnecki, June 12, 2020 5 5 6 set EfficiencyFormula { (pt <= 0.1) * (0.00) + 7 (abs(eta) <= 1.83) * (pt > 0.1 && pt <= 0.2) * (0.70) + 8 (abs(eta) <= 1.83) * (pt > 0.2 && pt <= 0.3) * (0.93) + 9 (abs(eta) <= 1.83) * (pt > 0.3 && pt <= 0.7) * (0.995) + 10 (abs(eta) <= 1.83) * (pt > 0.7) * (1.00) + 11 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.1 && pt <= 0.2) * (0.697) + 12 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.2 && pt <= 0.3) * (0.925) + 13 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.3 && pt <= 0.7) * (0.99) + 14 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.7) * (0.995) + 15 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.1 && pt <= 0.2) * (0.665) + 16 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.2 && pt <= 0.3) * (0.884) + 17 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.3 && pt <= 0.7) * (0.945) + 18 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.7) * (0.95) + 19 (abs(eta) > 3.00) * (pt > 0.1) * (0.00) } 6 set EfficiencyFormula { 7 (pt <= 0.1) * (0.00) + 8 (abs(eta) <= 1.83) * (pt > 0.1 && pt <= 0.2) * (0.70) + 9 (abs(eta) <= 1.83) * (pt > 0.2 && pt <= 0.3) * (0.93) + 10 (abs(eta) <= 1.83) * (pt > 0.3 && pt <= 0.7) * (0.995) + 11 (abs(eta) <= 1.83) * (pt > 0.7) * (1.00) + 12 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.1 && pt <= 0.2) * (0.697) + 13 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.2 && pt <= 0.3) * (0.925) + 14 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.3 && pt <= 0.7) * (0.99) + 15 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.7) * (0.995) + 16 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.1 && pt <= 0.2) * (0.665) + 17 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.2 && pt <= 0.3) * (0.884) + 18 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.3 && pt <= 0.7) * (0.945) + 19 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.7) * (0.95) + 20 (abs(eta) > 3.00) * (pt > 0.1) * (0.00) 21 } -
cards/ILCgen/ILCgen_ECAL_EnergyFractions.tcl
ra3261d7 r13331dc 1 1 #P.Sopicki 2 # default energy fractions {abs(PDG code)} {fraction in ECAL or LumiCal} 2 3 3 add EnergyFraction {0} {0.0} 4 4 # energy fractions for e, gamma and pi0 -
cards/ILCgen/ILCgen_ECAL_Resolution.tcl
ra3261d7 r13331dc 2 2 # ECAL and LumiCal resolution: same formula used at the moment 3 3 # 4 # set ResolutionFormula {resolution formula as a function of eta and energy} 4 5 5 set ResolutionFormula { 6 6 (abs(eta) <= 3 ) * sqrt(energy^2*0.01^2 + energy*0.17^2)+ 7 7 (abs(eta) > 3 && abs(eta) <= 4 ) * sqrt(energy^2*0.01^2 + energy*0.17^2) 8 }8 } -
cards/ILCgen/ILCgen_ElectronEfficiency.tcl
ra3261d7 r13331dc 1 2 # set EfficiencyFormula {efficiency formula as a function of eta and pt}3 1 4 2 # efficiency formula for electrons (ECAL and LumiCal) -
cards/ILCgen/ILCgen_ElectronMomentumSmearing.tcl
ra3261d7 r13331dc 6 6 7 7 set ResolutionFormula { 8 9 (abs(eta) <= 2.0) * 10 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 8 (abs(eta) <= 2.0) * 9 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 11 10 + (0.829675 -0.188197*abs(eta) + 0.106226 * eta*eta - 1.0) * log(pt) 12 11 + (0.0766417-0.00435667*abs(eta) + 0.00174804*eta*eta) * log(pt)*log(pt)) 13 14 + 15 16 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 17 exp( -4.54609 12 + 13 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 14 exp( -4.54609 18 15 + ( 0.87526 - 1.0) * log(pt) 19 16 + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt)) 20 21 } 22 17 } -
cards/ILCgen/ILCgen_ElectronTrackingEff.tcl
ra3261d7 r13331dc 4 4 # A.F.Zarnecki, June 12, 2020 5 5 6 set EfficiencyFormula { (pt <= 0.1) * (0.00) + 7 (abs(eta) <= 1.83) * (pt > 0.1 && pt <= 0.2) * (0.70) + 8 (abs(eta) <= 1.83) * (pt > 0.2 && pt <= 0.3) * (0.93) + 9 (abs(eta) <= 1.83) * (pt > 0.3 && pt <= 0.7) * (0.995) + 10 (abs(eta) <= 1.83) * (pt > 0.7) * (1.00) + 11 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.1 && pt <= 0.2) * (0.697) + 12 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.2 && pt <= 0.3) * (0.925) + 13 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.3 && pt <= 0.7) * (0.99) + 14 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.7) * (0.995) + 15 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.1 && pt <= 0.2) * (0.665) + 16 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.2 && pt <= 0.3) * (0.884) + 17 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.3 && pt <= 0.7) * (0.945) + 18 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.7) * (0.95) + 19 (abs(eta) > 3.00) * (pt > 0.1) * (0.00) } 6 set EfficiencyFormula { 7 (pt <= 0.1) * (0.00) + 8 (abs(eta) <= 1.83) * (pt > 0.1 && pt <= 0.2) * (0.70) + 9 (abs(eta) <= 1.83) * (pt > 0.2 && pt <= 0.3) * (0.93) + 10 (abs(eta) <= 1.83) * (pt > 0.3 && pt <= 0.7) * (0.995) + 11 (abs(eta) <= 1.83) * (pt > 0.7) * (1.00) + 12 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.1 && pt <= 0.2) * (0.697) + 13 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.2 && pt <= 0.3) * (0.925) + 14 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.3 && pt <= 0.7) * (0.99) + 15 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.7) * (0.995) + 16 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.1 && pt <= 0.2) * (0.665) + 17 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.2 && pt <= 0.3) * (0.884) + 18 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.3 && pt <= 0.7) * (0.945) + 19 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.7) * (0.95) + 20 (abs(eta) > 3.00) * (pt > 0.1) * (0.00) 21 } -
cards/ILCgen/ILCgen_HCAL_EnergyFractions.tcl
ra3261d7 r13331dc 1 1 #P.Sopicki 2 # default energy fractions {abs(PDG code)} {fraction in HCAL or LHCAL} 2 3 3 add EnergyFraction {0} {1.0} 4 4 # energy fractions for e, gamma and pi0 -
cards/ILCgen/ILCgen_HCAL_Resolution.tcl
ra3261d7 r13331dc 2 2 # HCAL and LHCAL resolution: same formula used at the moment 3 3 # 4 # set ResolutionFormula {resolution formula as a function of eta and energy} 4 5 5 set ResolutionFormula { 6 6 (abs(eta) <= 2.8 ) * sqrt(energy^2*0.017^2 + energy*0.45^2)+ 7 7 (abs(eta) > 2.8 && abs(eta)<=3.8 ) * sqrt(energy^2*0.017^2 + energy*0.45^2) 8 } 9 8 } -
cards/ILCgen/ILCgen_MuonMomentumSmearing.tcl
ra3261d7 r13331dc 6 6 7 7 set ResolutionFormula { 8 9 (abs(eta) <= 2.0) * 10 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 8 (abs(eta) <= 2.0) * 9 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 11 10 + (0.829675 -0.188197*abs(eta) + 0.106226 * eta*eta - 1.0) * log(pt) 12 11 + (0.0766417-0.00435667*abs(eta) + 0.00174804*eta*eta) * log(pt)*log(pt)) 13 14 + 15 16 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 17 exp( -4.54609 12 + 13 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 14 exp( -4.54609 18 15 + ( 0.87526 - 1.0) * log(pt) 19 16 + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt)) 20 21 } 22 17 } -
cards/ILCgen/ILCgen_MuonTrackingEff.tcl
ra3261d7 r13331dc 4 4 # A.F.Zarnecki, June 12, 2020 5 5 6 set EfficiencyFormula { (pt <= 0.1) * (0.00) + 7 (abs(eta) <= 1.83) * (pt > 0.1 && pt <= 0.2) * (0.70) + 8 (abs(eta) <= 1.83) * (pt > 0.2 && pt <= 0.3) * (0.93) + 9 (abs(eta) <= 1.83) * (pt > 0.3 && pt <= 0.7) * (0.995) + 10 (abs(eta) <= 1.83) * (pt > 0.7) * (1.00) + 11 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.1 && pt <= 0.2) * (0.697) + 12 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.2 && pt <= 0.3) * (0.925) + 13 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.3 && pt <= 0.7) * (0.99) + 14 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.7) * (0.995) + 15 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.1 && pt <= 0.2) * (0.665) + 16 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.2 && pt <= 0.3) * (0.884) + 17 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.3 && pt <= 0.7) * (0.945) + 18 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.7) * (0.95) + 19 (abs(eta) > 3.00) * (pt > 0.1) * (0.00) } 6 set EfficiencyFormula { 7 (pt <= 0.1) * (0.00) + 8 (abs(eta) <= 1.83) * (pt > 0.1 && pt <= 0.2) * (0.70) + 9 (abs(eta) <= 1.83) * (pt > 0.2 && pt <= 0.3) * (0.93) + 10 (abs(eta) <= 1.83) * (pt > 0.3 && pt <= 0.7) * (0.995) + 11 (abs(eta) <= 1.83) * (pt > 0.7) * (1.00) + 12 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.1 && pt <= 0.2) * (0.697) + 13 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.2 && pt <= 0.3) * (0.925) + 14 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.3 && pt <= 0.7) * (0.99) + 15 (abs(eta) > 1.83 && abs(eta) <= 2.65) * (pt > 0.7) * (0.995) + 16 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.1 && pt <= 0.2) * (0.665) + 17 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.2 && pt <= 0.3) * (0.884) + 18 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.3 && pt <= 0.7) * (0.945) + 19 (abs(eta) > 2.65 && abs(eta) <= 3.00) * (pt > 0.7) * (0.95) + 20 (abs(eta) > 3.00) * (pt > 0.1) * (0.00) 21 } -
cards/ILCgen/ILCgen_PhotonEfficiency.tcl
ra3261d7 r13331dc 1 2 # set EfficiencyFormula {efficiency formula as a function of eta and pt} 3 4 # efficiency formula for photons (ECAL + LumiCal) 1 # set EfficiencyFormula (efficiency formula as a function of eta and pt) 2 # efficiency formula for photons (ECAL + LumiCal) 5 3 6 4 set EfficiencyFormula { -
cards/delphes_card_CLICdet_Stage1.tcl
ra3261d7 r13331dc 298 298 299 299 set EfficiencyFormula { 300 (abs(eta) > 2.54) * (0.000) + 301 (energy >= 80) * (abs(eta) < 2.54) * (1.000) + 302 (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34) * (0.994) + 303 (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) + 304 (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.000) + 305 (energy < 3) * (abs(eta) <= 0.55 ) * (1.000) 300 (pt <= 0.1) * (0.000) + 301 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 302 (pt > 0.1) * (energy >= 80) * (abs(eta) < 2.54) * (1.000) + 303 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34) * (0.994) + 304 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) + 305 (pt > 0.1) * (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.990) + 306 (pt > 0.1) * (energy < 3) * (abs(eta) <= 0.55 ) * (1.000) 306 307 } 307 308 } … … 318 319 # Current full simulation with CLICdet provides for electrons: 319 320 set EfficiencyFormula { 320 (pt <= 1)* (0.000) +321 (abs(eta) > 2.54)* (0.000) +322 (energy >= 80)* (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) +323 (energy >= 80)* (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) +324 (energy >= 80)* (abs(eta) <= 2.34 ) * (1.000) +325 326 327 (energy < 5) * (abs(eta) > 2.34 ) * (0.000) +328 (energy < 5)* (abs(eta) <= 2.34 && abs(eta) > 0.76 ) * (0.997) +329 (energy < 5)* (abs(eta) <= 0.76) * (0.999)321 (pt <= 0.1) * (0.000) + 322 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 323 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) + 324 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) + 325 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.34 ) * (1.000) + 326 (pt > 0.1) * (energy < 80 && energy >= 5) * (abs(eta) <= 2.54 && abs(eta) > 2.17 ) * (0.998) + 327 (pt > 0.1) * (energy < 80 && energy >= 5) * (abs(eta) <= 2.17) * (1.000) + 328 (pt > 0.1) * (energy < 5) * (abs(eta) <= 2.54 && abs(eta) > 2.34 ) * (1.000) + 329 (pt > 0.1) * (energy < 5) * (abs(eta) <= 2.34 && abs(eta) > 0.76 ) * (0.997) + 330 (pt > 0.1) * (energy < 5) * (abs(eta) <= 0.76) * (0.999) 330 331 } 331 332 } … … 341 342 # Current full simulation with CLICdet provides for muons: 342 343 set EfficiencyFormula { 343 (pt < 1) * (0.000) + 344 (abs(eta) > 2.54) * (0.000) + 345 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80) * (0.994) + 346 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80) * (0.996) + 347 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 ) * (0.996) + 348 (abs(eta) <= 2.44 ) * (energy >= 5 ) * (1.000) + 349 (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 && pt >=1 ) * (0.999) + 350 (abs(eta) <= 2.25 ) * (energy >= 1) * (1.000) 351 352 344 (pt <= 0.1) * (0.000) + 345 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 346 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80) * (0.994) + 347 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80) * (0.996) + 348 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 ) * (0.996) + 349 (pt > 0.1) * (abs(eta) <= 2.44 ) * (energy >= 5 ) * (1.000) + 350 (pt > 0.1) * (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 ) * (0.999) + 351 (pt > 0.1) * (abs(eta) <= 2.25 ) * (energy < 5 ) * (1.000) 353 352 } 354 353 } … … 945 944 module FastJetFinder FastJetFinderKt { 946 945 # set InputArray Calorimeter/towers 947 set InputArray EFlow Merger/eflow946 set InputArray EFlowFilter/eflow 948 947 949 948 set OutputArray KTjets -
cards/delphes_card_CLICdet_Stage2.tcl
ra3261d7 r13331dc 490 490 491 491 set EfficiencyFormula { 492 (abs(eta) > 2.54) * (0.000) + 493 (energy >= 80) * (abs(eta) < 2.54) * (1.000) + 494 (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34) * (0.994) + 495 (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) + 496 (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.000) + 497 (energy < 3) * (abs(eta) <= 0.55 ) * (1.000) 492 (pt <= 0.1) * (0.000) + 493 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 494 (pt > 0.1) * (energy >= 80) * (abs(eta) < 2.54) * (1.000) + 495 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34) * (0.994) + 496 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) + 497 (pt > 0.1) * (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.990) + 498 (pt > 0.1) * (energy < 3) * (abs(eta) <= 0.55 ) * (1.000) 498 499 } 499 500 } … … 510 511 # Current full simulation with CLICdet provides for electrons: 511 512 set EfficiencyFormula { 512 (pt <= 1)* (0.000) +513 (abs(eta) > 2.54)* (0.000) +514 (energy >= 80)* (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) +515 (energy >= 80)* (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) +516 (energy >= 80)* (abs(eta) <= 2.34 ) * (1.000) +517 518 519 (energy < 5) * (abs(eta) > 2.34 ) * (0.000) +520 (energy < 5)* (abs(eta) <= 2.34 && abs(eta) > 0.76 ) * (0.997) +521 (energy < 5)* (abs(eta) <= 0.76) * (0.999)513 (pt <= 0.1) * (0.000) + 514 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 515 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) + 516 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) + 517 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.34 ) * (1.000) + 518 (pt > 0.1) * (energy < 80 && energy >= 5) * (abs(eta) <= 2.54 && abs(eta) > 2.17 ) * (0.998) + 519 (pt > 0.1) * (energy < 80 && energy >= 5) * (abs(eta) <= 2.17) * (1.000) + 520 (pt > 0.1) * (energy < 5) * (abs(eta) <= 2.54 && abs(eta) > 2.34 ) * (1.000) + 521 (pt > 0.1) * (energy < 5) * (abs(eta) <= 2.34 && abs(eta) > 0.76 ) * (0.997) + 522 (pt > 0.1) * (energy < 5) * (abs(eta) <= 0.76) * (0.999) 522 523 } 523 524 } … … 533 534 # Current full simulation with CLICdet provides for muons: 534 535 set EfficiencyFormula { 535 (pt < 1) * (0.000) + 536 (abs(eta) > 2.54) * (0.000) + 537 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80) * (0.994) + 538 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80) * (0.996) + 539 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 ) * (0.996) + 540 (abs(eta) <= 2.44 ) * (energy >= 5 ) * (1.000) + 541 (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 && pt >=1 ) * (0.999) + 542 (abs(eta) <= 2.25 ) * (energy >= 1) * (1.000) 543 544 536 (pt <= 0.1) * (0.000) + 537 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 538 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80) * (0.994) + 539 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80) * (0.996) + 540 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 ) * (0.996) + 541 (pt > 0.1) * (abs(eta) <= 2.44 ) * (energy >= 5 ) * (1.000) + 542 (pt > 0.1) * (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 ) * (0.999) + 543 (pt > 0.1) * (abs(eta) <= 2.25 ) * (energy < 5 ) * (1.000) 545 544 } 546 545 } … … 1136 1135 module FastJetFinder FastJetFinderKt { 1137 1136 # set InputArray Calorimeter/towers 1138 set InputArray EFlow Merger/eflow1137 set InputArray EFlowFilter/eflow 1139 1138 1140 1139 set OutputArray KTjets -
cards/delphes_card_CLICdet_Stage3.tcl
ra3261d7 r13331dc 484 484 485 485 set EfficiencyFormula { 486 (abs(eta) > 2.54) * (0.000) + 487 (energy >= 80) * (abs(eta) < 2.54) * (1.000) + 488 (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34) * (0.994) + 489 (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) + 490 (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.000) + 491 (energy < 3) * (abs(eta) <= 0.55 ) * (1.000) 486 (pt <= 0.1) * (0.000) + 487 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 488 (pt > 0.1) * (energy >= 80) * (abs(eta) < 2.54) * (1.000) + 489 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34) * (0.994) + 490 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) + 491 (pt > 0.1) * (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.990) + 492 (pt > 0.1) * (energy < 3) * (abs(eta) <= 0.55 ) * (1.000) 492 493 } 493 494 } … … 504 505 # Current full simulation with CLICdet provides for electrons: 505 506 set EfficiencyFormula { 506 (pt <= 1)* (0.000) +507 (abs(eta) > 2.54)* (0.000) +508 (energy >= 80)* (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) +509 (energy >= 80)* (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) +510 (energy >= 80)* (abs(eta) <= 2.34 ) * (1.000) +511 512 513 (energy < 5) * (abs(eta) > 2.34 ) * (0.000) +514 (energy < 5)* (abs(eta) <= 2.34 && abs(eta) > 0.76 ) * (0.997) +515 (energy < 5)* (abs(eta) <= 0.76) * (0.999)507 (pt <= 0.1) * (0.000) + 508 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 509 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) + 510 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) + 511 (pt > 0.1) * (energy >= 80) * (abs(eta) <= 2.34 ) * (1.000) + 512 (pt > 0.1) * (energy < 80 && energy >= 5) * (abs(eta) <= 2.54 && abs(eta) > 2.17 ) * (0.998) + 513 (pt > 0.1) * (energy < 80 && energy >= 5) * (abs(eta) <= 2.17) * (1.000) + 514 (pt > 0.1) * (energy < 5) * (abs(eta) <= 2.54 && abs(eta) > 2.34 ) * (1.000) + 515 (pt > 0.1) * (energy < 5) * (abs(eta) <= 2.34 && abs(eta) > 0.76 ) * (0.997) + 516 (pt > 0.1) * (energy < 5) * (abs(eta) <= 0.76) * (0.999) 516 517 } 517 518 } … … 527 528 # Current full simulation with CLICdet provides for muons: 528 529 set EfficiencyFormula { 529 (pt < 1) * (0.000) + 530 (abs(eta) > 2.54) * (0.000) + 531 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80) * (0.994) + 532 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80) * (0.996) + 533 (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 ) * (0.996) + 534 (abs(eta) <= 2.44 ) * (energy >= 5 ) * (1.000) + 535 (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 && pt >=1 ) * (0.999) + 536 (abs(eta) <= 2.25 ) * (energy >= 1) * (1.000) 537 538 530 (pt <= 0.1) * (0.000) + 531 (pt > 0.1) * (abs(eta) > 2.54) * (0.000) + 532 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80) * (0.994) + 533 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80) * (0.996) + 534 (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 ) * (0.996) + 535 (pt > 0.1) * (abs(eta) <= 2.44 ) * (energy >= 5 ) * (1.000) + 536 (pt > 0.1) * (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 ) * (0.999) + 537 (pt > 0.1) * (abs(eta) <= 2.25 ) * (energy < 5 ) * (1.000) 539 538 } 540 539 } … … 1132 1131 module FastJetFinder FastJetFinderKt { 1133 1132 # set InputArray Calorimeter/towers 1134 set InputArray EFlow Merger/eflow1133 set InputArray EFlowFilter/eflow 1135 1134 1136 1135 set OutputArray KTjets -
cards/delphes_card_IDEA.tcl
ra3261d7 r13331dc 1 1 #################################################################### l 2 # FCC-ee IDEA detector model 3 # 4 # Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello 2 # FCC-ee IDEA detector model 3 # 4 # Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello, Michele Selvaggi 5 5 # email: efontane@bo.infn.it, 6 # lorenzo.pezzotti01@universitadipavia.it, 7 # m.antonello@uninsubria.it, 8 ##################################################################### 9 # 6 # lorenzo.pezzotti01@universitadipavia.it, 7 # m.antonello@uninsubria.it, 8 # michele.selvaggi@cern.ch 9 ##################################################################### 10 11 set B 2.0 12 10 13 ####################################### 11 14 # Order of execution of various modules … … 19 22 MuonTrackingEfficiency 20 23 21 ChargedHadronMomentumSmearing 22 ElectronMomentumSmearing 23 MuonMomentumSmearing 24 25 TrackMerger 24 TrackMergerPre 25 TrackSmearing 26 27 TrackMerger 26 28 Calorimeter 27 29 EFlowMerger … … 29 31 PhotonEfficiency 30 32 PhotonIsolation 33 34 MuonFilter 31 35 32 36 ElectronFilter … … 42 46 GenJetFinder 43 47 GenMissingET 44 48 45 49 FastJetFinder 46 50 … … 57 61 TreeWriter 58 62 } 59 60 63 61 64 ################################# … … 78 81 79 82 # magnetic field, in T 80 set Bz 2.083 set Bz $B 81 84 } 82 85 … … 98 101 } 99 102 100 # (pt <= 0.1) * (0.00) + 103 # (pt <= 0.1) * (0.00) + 101 104 # (abs(eta) <= 3.0) * (pt > 0.1) * (1.00) + 102 105 # (abs(eta) > 3) * (0.00) … … 119 122 (energy < 0.5 && energy >= 0.3) * (abs(eta) <= 3.0) * (0.65) + 120 123 (energy < 0.3) * (abs(eta) <= 3.0) * (0.06) 121 } 124 } 122 125 } 123 126 … … 140 143 } 141 144 142 143 ########################################144 # Momentum resolution for charged tracks145 ########################################146 147 module MomentumSmearing ChargedHadronMomentumSmearing {148 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons149 set OutputArray chargedHadrons150 151 152 # Resolution given in dpT/pT.153 # IDEAdet154 set ResolutionFormula {155 (abs(eta) <= 3.0) * sqrt(0.0001145^2 + 0.0002024^2*pt + (pt*2.093e-005)^2)156 }157 }158 159 ###################################160 # Momentum resolution for electrons161 ###################################162 163 module MomentumSmearing ElectronMomentumSmearing {164 set InputArray ElectronTrackingEfficiency/electrons165 set OutputArray electrons166 167 # Resolution given in dpT/pT.168 # IDEAdet169 set ResolutionFormula {170 (abs(eta) <= 3.0) * sqrt(0.0001145^2 + 0.0002024^2*pt + (pt*2.093e-005)^2)171 }172 }173 174 ###############################175 # Momentum resolution for muons176 ###############################177 178 module MomentumSmearing MuonMomentumSmearing {179 set InputArray MuonTrackingEfficiency/muons180 set OutputArray muons181 182 # Resolution given in dpT/pT.183 # IDEAdet184 set ResolutionFormula {185 (abs(eta) <= 3.0) * sqrt(0.0001145^2 + 0.0002024^2*pt + (pt*2.093e-005)^2)186 }187 }188 189 145 ############## 190 146 # Track merger 191 147 ############## 192 148 149 module Merger TrackMergerPre { 150 # add InputArray InputArray 151 add InputArray ChargedHadronTrackingEfficiency/chargedHadrons 152 add InputArray ElectronTrackingEfficiency/electrons 153 add InputArray MuonTrackingEfficiency/muons 154 set OutputArray tracks 155 } 156 157 158 ######################################## 159 # Smearing for charged tracks 160 ######################################## 161 162 module TrackCovariance TrackSmearing { 163 set InputArray TrackMergerPre/tracks 164 set OutputArray tracks 165 166 167 set InputArray TrackMergerPre/tracks 168 set OutputArray tracks 169 170 set Bz 2.0 171 172 ## minimum number of hits to accept a track 173 set NMinHits 6 174 175 ## uses https://raw.githubusercontent.com/selvaggi/FastTrackCovariance/master/GeoIDEA_BASE.txt 176 set DetectorGeometry { 177 178 179 # Layer type 1 = R (barrel) or 2 = z (forward/backward) 180 # Layer label 181 # Minimum dimension z for barrel or R for forward 182 # Maximum dimension z for barrel or R for forward 183 # R/z location of layer 184 # Thickness (meters) 185 # Radiation length (meters) 186 # Number of measurements in layers (1D or 2D) 187 # Stereo angle (rad) - 0(pi/2) = axial(z) layer - Upper side 188 # Stereo angle (rad) - 0(pi/2) = axial(z) layer - Lower side 189 # Resolution Upper side (meters) - 0 = no measurement 190 # Resolution Lower side (meters) - 0 = no measurement 191 # measurement flag = T, scattering only = F 192 193 # barrel name zmin zmax r w (m) X0 n_meas th_up (rad) th_down (rad) reso_up (m) reso_down (m) flag 194 195 # barrel name zmin zmax r w (m) X0 n_meas th_up (rad) th_down (rad) reso_up (m) reso_down (m) flag 196 197 1 PIPE -100 100 0.015 0.001655 0.2805 0 0 0 0 0 0 198 1 VTXLOW -0.12 0.12 0.017 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1 199 1 VTXLOW -0.16 0.16 0.023 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1 200 1 VTXLOW -0.16 0.16 0.031 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1 201 1 VTXHIGH -1 1 0.32 0.00047 0.0937 2 0 1.5708 7e-006 7e-006 1 202 1 VTXHIGH -1.05 1.05 0.34 0.00047 0.0937 2 0 1.5708 7e-006 7e-006 1 203 204 # endcap name rmin rmax z w (m) X0 n_meas th_up (rad) th_down (rad) reso_up (m) reso_down (m) flag 205 206 2 VTXDSK 0.141 0.3 -0.92 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 207 2 VTXDSK 0.138 0.3 -0.9 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 208 2 VTXDSK 0.065 0.3 -0.42 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 209 2 VTXDSK 0.062 0.3 -0.4 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 210 2 VTXDSK 0.062 0.3 0.4 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 211 2 VTXDSK 0.065 0.3 0.42 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 212 2 VTXDSK 0.138 0.3 0.9 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 213 2 VTXDSK 0.141 0.3 0.92 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1 214 215 1 DCHCANI -2.125 2.125 0.345 0.0002 0.237223 0 0 0 0 0 0 216 1 DCH -2 2 0.36 0.0147748 1400 1 0.0203738 0 0.0001 0 1 217 1 DCH -2 2 0.374775 0.0147748 1400 1 -0.0212097 0 0.0001 0 1 218 1 DCH -2 2 0.38955 0.0147748 1400 1 0.0220456 0 0.0001 0 1 219 1 DCH -2 2 0.404324 0.0147748 1400 1 -0.0228814 0 0.0001 0 1 220 1 DCH -2 2 0.419099 0.0147748 1400 1 0.0237172 0 0.0001 0 1 221 1 DCH -2 2 0.433874 0.0147748 1400 1 -0.024553 0 0.0001 0 1 222 1 DCH -2 2 0.448649 0.0147748 1400 1 0.0253888 0 0.0001 0 1 223 1 DCH -2 2 0.463423 0.0147748 1400 1 -0.0262245 0 0.0001 0 1 224 1 DCH -2 2 0.478198 0.0147748 1400 1 0.0270602 0 0.0001 0 1 225 1 DCH -2 2 0.492973 0.0147748 1400 1 -0.0278958 0 0.0001 0 1 226 1 DCH -2 2 0.507748 0.0147748 1400 1 0.0287314 0 0.0001 0 1 227 1 DCH -2 2 0.522523 0.0147748 1400 1 -0.029567 0 0.0001 0 1 228 1 DCH -2 2 0.537297 0.0147748 1400 1 0.0304025 0 0.0001 0 1 229 1 DCH -2 2 0.552072 0.0147748 1400 1 -0.031238 0 0.0001 0 1 230 1 DCH -2 2 0.566847 0.0147748 1400 1 0.0320734 0 0.0001 0 1 231 1 DCH -2 2 0.581622 0.0147748 1400 1 -0.0329088 0 0.0001 0 1 232 1 DCH -2 2 0.596396 0.0147748 1400 1 0.0337442 0 0.0001 0 1 233 1 DCH -2 2 0.611171 0.0147748 1400 1 -0.0345795 0 0.0001 0 1 234 1 DCH -2 2 0.625946 0.0147748 1400 1 0.0354147 0 0.0001 0 1 235 1 DCH -2 2 0.640721 0.0147748 1400 1 -0.0362499 0 0.0001 0 1 236 1 DCH -2 2 0.655495 0.0147748 1400 1 0.0370851 0 0.0001 0 1 237 1 DCH -2 2 0.67027 0.0147748 1400 1 -0.0379202 0 0.0001 0 1 238 1 DCH -2 2 0.685045 0.0147748 1400 1 0.0387552 0 0.0001 0 1 239 1 DCH -2 2 0.69982 0.0147748 1400 1 -0.0395902 0 0.0001 0 1 240 1 DCH -2 2 0.714595 0.0147748 1400 1 0.0404252 0 0.0001 0 1 241 1 DCH -2 2 0.729369 0.0147748 1400 1 -0.04126 0 0.0001 0 1 242 1 DCH -2 2 0.744144 0.0147748 1400 1 0.0420949 0 0.0001 0 1 243 1 DCH -2 2 0.758919 0.0147748 1400 1 -0.0429296 0 0.0001 0 1 244 1 DCH -2 2 0.773694 0.0147748 1400 1 0.0437643 0 0.0001 0 1 245 1 DCH -2 2 0.788468 0.0147748 1400 1 -0.044599 0 0.0001 0 1 246 1 DCH -2 2 0.803243 0.0147748 1400 1 0.0454336 0 0.0001 0 1 247 1 DCH -2 2 0.818018 0.0147748 1400 1 -0.0462681 0 0.0001 0 1 248 1 DCH -2 2 0.832793 0.0147748 1400 1 0.0471025 0 0.0001 0 1 249 1 DCH -2 2 0.847568 0.0147748 1400 1 -0.0479369 0 0.0001 0 1 250 1 DCH -2 2 0.862342 0.0147748 1400 1 0.0487713 0 0.0001 0 1 251 1 DCH -2 2 0.877117 0.0147748 1400 1 -0.0496055 0 0.0001 0 1 252 1 DCH -2 2 0.891892 0.0147748 1400 1 0.0504397 0 0.0001 0 1 253 1 DCH -2 2 0.906667 0.0147748 1400 1 -0.0512738 0 0.0001 0 1 254 1 DCH -2 2 0.921441 0.0147748 1400 1 0.0521079 0 0.0001 0 1 255 1 DCH -2 2 0.936216 0.0147748 1400 1 -0.0529418 0 0.0001 0 1 256 1 DCH -2 2 0.950991 0.0147748 1400 1 0.0537757 0 0.0001 0 1 257 1 DCH -2 2 0.965766 0.0147748 1400 1 -0.0546095 0 0.0001 0 1 258 1 DCH -2 2 0.980541 0.0147748 1400 1 0.0554433 0 0.0001 0 1 259 1 DCH -2 2 0.995315 0.0147748 1400 1 -0.056277 0 0.0001 0 1 260 1 DCH -2 2 1.01009 0.0147748 1400 1 0.0571106 0 0.0001 0 1 261 1 DCH -2 2 1.02486 0.0147748 1400 1 -0.0579441 0 0.0001 0 1 262 1 DCH -2 2 1.03964 0.0147748 1400 1 0.0587775 0 0.0001 0 1 263 1 DCH -2 2 1.05441 0.0147748 1400 1 -0.0596108 0 0.0001 0 1 264 1 DCH -2 2 1.06919 0.0147748 1400 1 0.0604441 0 0.0001 0 1 265 1 DCH -2 2 1.08396 0.0147748 1400 1 -0.0612773 0 0.0001 0 1 266 1 DCH -2 2 1.09874 0.0147748 1400 1 0.0621104 0 0.0001 0 1 267 1 DCH -2 2 1.11351 0.0147748 1400 1 -0.0629434 0 0.0001 0 1 268 1 DCH -2 2 1.12829 0.0147748 1400 1 0.0637763 0 0.0001 0 1 269 1 DCH -2 2 1.14306 0.0147748 1400 1 -0.0646092 0 0.0001 0 1 270 1 DCH -2 2 1.15784 0.0147748 1400 1 0.0654419 0 0.0001 0 1 271 1 DCH -2 2 1.17261 0.0147748 1400 1 -0.0662746 0 0.0001 0 1 272 1 DCH -2 2 1.18739 0.0147748 1400 1 0.0671071 0 0.0001 0 1 273 1 DCH -2 2 1.20216 0.0147748 1400 1 -0.0679396 0 0.0001 0 1 274 1 DCH -2 2 1.21694 0.0147748 1400 1 0.068772 0 0.0001 0 1 275 1 DCH -2 2 1.23171 0.0147748 1400 1 -0.0696042 0 0.0001 0 1 276 1 DCH -2 2 1.24649 0.0147748 1400 1 0.0704364 0 0.0001 0 1 277 1 DCH -2 2 1.26126 0.0147748 1400 1 -0.0712685 0 0.0001 0 1 278 1 DCH -2 2 1.27604 0.0147748 1400 1 0.0721005 0 0.0001 0 1 279 1 DCH -2 2 1.29081 0.0147748 1400 1 -0.0729324 0 0.0001 0 1 280 1 DCH -2 2 1.30559 0.0147748 1400 1 0.0737642 0 0.0001 0 1 281 1 DCH -2 2 1.32036 0.0147748 1400 1 -0.0745958 0 0.0001 0 1 282 1 DCH -2 2 1.33514 0.0147748 1400 1 0.0754274 0 0.0001 0 1 283 1 DCH -2 2 1.34991 0.0147748 1400 1 -0.0762589 0 0.0001 0 1 284 1 DCH -2 2 1.36468 0.0147748 1400 1 0.0770903 0 0.0001 0 1 285 1 DCH -2 2 1.37946 0.0147748 1400 1 -0.0779215 0 0.0001 0 1 286 1 DCH -2 2 1.39423 0.0147748 1400 1 0.0787527 0 0.0001 0 1 287 1 DCH -2 2 1.40901 0.0147748 1400 1 -0.0795837 0 0.0001 0 1 288 1 DCH -2 2 1.42378 0.0147748 1400 1 0.0804147 0 0.0001 0 1 289 1 DCH -2 2 1.43856 0.0147748 1400 1 -0.0812455 0 0.0001 0 1 290 1 DCH -2 2 1.45333 0.0147748 1400 1 0.0820762 0 0.0001 0 1 291 1 DCH -2 2 1.46811 0.0147748 1400 1 -0.0829068 0 0.0001 0 1 292 1 DCH -2 2 1.48288 0.0147748 1400 1 0.0837373 0 0.0001 0 1 293 1 DCH -2 2 1.49766 0.0147748 1400 1 -0.0845677 0 0.0001 0 1 294 1 DCH -2 2 1.51243 0.0147748 1400 1 0.0853979 0 0.0001 0 1 295 1 DCH -2 2 1.52721 0.0147748 1400 1 -0.086228 0 0.0001 0 1 296 1 DCH -2 2 1.54198 0.0147748 1400 1 0.087058 0 0.0001 0 1 297 1 DCH -2 2 1.55676 0.0147748 1400 1 -0.0878879 0 0.0001 0 1 298 1 DCH -2 2 1.57153 0.0147748 1400 1 0.0887177 0 0.0001 0 1 299 1 DCH -2 2 1.58631 0.0147748 1400 1 -0.0895474 0 0.0001 0 1 300 1 DCH -2 2 1.60108 0.0147748 1400 1 0.0903769 0 0.0001 0 1 301 1 DCH -2 2 1.61586 0.0147748 1400 1 -0.0912063 0 0.0001 0 1 302 1 DCH -2 2 1.63063 0.0147748 1400 1 0.0920356 0 0.0001 0 1 303 1 DCH -2 2 1.64541 0.0147748 1400 1 -0.0928647 0 0.0001 0 1 304 1 DCH -2 2 1.66018 0.0147748 1400 1 0.0936937 0 0.0001 0 1 305 1 DCH -2 2 1.67495 0.0147748 1400 1 -0.0945226 0 0.0001 0 1 306 1 DCH -2 2 1.68973 0.0147748 1400 1 0.0953514 0 0.0001 0 1 307 1 DCH -2 2 1.7045 0.0147748 1400 1 -0.09618 0 0.0001 0 1 308 1 DCH -2 2 1.71928 0.0147748 1400 1 0.0970085 0 0.0001 0 1 309 1 DCH -2 2 1.73405 0.0147748 1400 1 -0.0978369 0 0.0001 0 1 310 1 DCH -2 2 1.74883 0.0147748 1400 1 0.0986651 0 0.0001 0 1 311 1 DCH -2 2 1.7636 0.0147748 1400 1 -0.0994932 0 0.0001 0 1 312 1 DCH -2 2 1.77838 0.0147748 1400 1 0.100321 0 0.0001 0 1 313 1 DCH -2 2 1.79315 0.0147748 1400 1 -0.101149 0 0.0001 0 1 314 1 DCH -2 2 1.80793 0.0147748 1400 1 0.101977 0 0.0001 0 1 315 1 DCH -2 2 1.8227 0.0147748 1400 1 -0.102804 0 0.0001 0 1 316 1 DCH -2 2 1.83748 0.0147748 1400 1 0.103632 0 0.0001 0 1 317 1 DCH -2 2 1.85225 0.0147748 1400 1 -0.104459 0 0.0001 0 1 318 1 DCH -2 2 1.86703 0.0147748 1400 1 0.105286 0 0.0001 0 1 319 1 DCH -2 2 1.8818 0.0147748 1400 1 -0.106113 0 0.0001 0 1 320 1 DCH -2 2 1.89658 0.0147748 1400 1 0.10694 0 0.0001 0 1 321 1 DCH -2 2 1.91135 0.0147748 1400 1 -0.107766 0 0.0001 0 1 322 1 DCH -2 2 1.92613 0.0147748 1400 1 0.108593 0 0.0001 0 1 323 1 DCH -2 2 1.9409 0.0147748 1400 1 -0.109419 0 0.0001 0 1 324 1 DCH -2 2 1.95568 0.0147748 1400 1 0.110246 0 0.0001 0 1 325 1 DCH -2 2 1.97045 0.0147748 1400 1 -0.111072 0 0.0001 0 1 326 1 DCH -2 2 1.98523 0.0147748 1400 1 0.111898 0 0.0001 0 1 327 1 DCH -2 2 2 0.0147748 1400 1 -0.112723 0 0.0001 0 1 328 1 DCHCANO -2.125 2.125 2.02 0.02 1.667 0 0 0 0 0 0 329 1 BSILWRP -2.35 2.35 2.04 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1 330 1 BSILWRP -2.35 2.35 2.06 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1 331 1 MAG -2.5 2.5 2.25 0.05 0.0658 0 0 0 0 0 0 332 1 BPRESH -2.55 2.55 2.45 0.02 1 2 0 1.5708 7e-005 0.01 1 333 2 DCHWALL 0.345 2.02 2.125 0.25 5.55 0 0 0 0 0 0 334 2 DCHWALL 0.345 2.02 -2.125 0.25 5.55 0 0 0 0 0 0 335 2 FSILWRP 0.354 2.02 -2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1 336 2 FSILWRP 0.35 2.02 -2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1 337 2 FSILWRP 0.35 2.02 2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1 338 2 FSILWRP 0.354 2.02 2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1 339 2 FRAD 0.38 2.09 2.49 0.0043 0.005612 0 0 0 0 0 0 340 2 FRAD 0.38 2.09 -2.49 0.0043 0.005612 0 0 0 0 0 0 341 2 FPRESH 0.39 2.43 -2.55 0.02 1 2 0 1.5708 7e-005 0.01 1 342 2 FPRESH 0.39 2.43 2.55 0.02 1 2 0 1.5708 7e-005 0.01 1 343 } 344 345 set Bz $B 346 } 347 348 ############## 349 # Track merger 350 ############## 351 193 352 module Merger TrackMerger { 194 353 # add InputArray InputArray 195 add InputArray ChargedHadronMomentumSmearing/chargedHadrons 196 add InputArray ElectronMomentumSmearing/electrons 197 add InputArray MuonMomentumSmearing/muons 354 add InputArray TrackSmearing/tracks 198 355 set OutputArray tracks 199 356 } 200 357 201 358 202 ############# 203 # Calorimeter 204 ############# 359 ############# 360 # Calorimeter 361 ############# 205 362 module DualReadoutCalorimeter Calorimeter { 206 363 set ParticleInputArray ParticlePropagator/stableParticles … … 224 381 set pi [expr {acos(-1)}] 225 382 226 # Lists of the edges of each tower in eta and phi; 227 # each list starts with the lower edge of the first tower; 228 # the list ends with the higher edged of the last tower. 229 # Barrel: deta=0.02 towers up to |eta| <= 0.88 ( up to 45°) 230 # Endcaps: deta=0.02 towers up to |eta| <= 3.0 (8.6° = 100 mrad) 231 # Cell size: about 6 cm x 6 cm 232 233 #barrel: 383 # Lists of the edges of each tower in eta and phi; 384 # each list starts with the lower edge of the first tower; 385 # the list ends with the higher edged of the last tower. 386 # Barrel: deta=0.02 towers up to |eta| <= 0.88 ( up to 45°) 387 # Endcaps: deta=0.02 towers up to |eta| <= 3.0 (8.6° = 100 mrad) 388 # Cell size: about 6 cm x 6 cm 389 390 #barrel: 234 391 set PhiBins {} 235 392 for {set i -120} {$i <= 120} {incr i} { 236 393 add PhiBins [expr {$i * $pi/120}] 237 394 } 238 #deta=0.02 units for |eta| <= 0.88 395 #deta=0.02 units for |eta| <= 0.88 239 396 for {set i -44} {$i < 45} {incr i} { 240 397 set eta [expr {$i * 0.02}] … … 242 399 } 243 400 244 #endcaps: 401 #endcaps: 245 402 set PhiBins {} 246 403 for {set i -120} {$i <= 120} {incr i} { 247 404 add PhiBins [expr {$i* $pi/120}] 248 405 } 249 #deta=0.02 units for 0.88 < |eta| <= 3.0 250 #first, from -3.0 to -0.88 406 #deta=0.02 units for 0.88 < |eta| <= 3.0 407 #first, from -3.0 to -0.88 251 408 for {set i 1} {$i <=106} {incr i} { 252 409 set eta [expr {-3.00 + $i * 0.02}] 253 410 add EtaPhiBins $eta $PhiBins 254 411 } 255 #same for 0.88 to 3.0 412 #same for 0.88 to 3.0 256 413 for {set i 1} {$i <=106} {incr i} { 257 414 set eta [expr {0.88 + $i * 0.02}] … … 259 416 } 260 417 261 # default energy fractions {abs(PDG code)} {Fecal Fhcal} 418 # default energy fractions {abs(PDG code)} {Fecal Fhcal} 262 419 add EnergyFraction {0} {0.0 1.0} 263 # energy fractions for e, gamma and pi0 420 # energy fractions for e, gamma and pi0 264 421 add EnergyFraction {11} {1.0 0.0} 265 422 add EnergyFraction {22} {1.0 0.0} 266 423 add EnergyFraction {111} {1.0 0.0} 267 # energy fractions for muon, neutrinos and neutralinos 424 # energy fractions for muon, neutrinos and neutralinos 268 425 add EnergyFraction {12} {0.0 0.0} 269 426 add EnergyFraction {13} {0.0 0.0} … … 275 432 add EnergyFraction {1000035} {0.0 0.0} 276 433 add EnergyFraction {1000045} {0.0 0.0} 277 # energy fractions for K0short and Lambda 434 # energy fractions for K0short and Lambda 278 435 add EnergyFraction {310} {0.3 0.7} 279 436 add EnergyFraction {3122} {0.3 0.7} 280 437 281 438 282 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 439 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 283 440 set ECalResolutionFormula { 284 441 (abs(eta) <= 0.88 ) * sqrt(energy^2*0.01^2 + energy*0.11^2)+ … … 286 443 } 287 444 288 # set HCalResolutionFormula {resolution formula as a function of eta and energy} 445 # set HCalResolutionFormula {resolution formula as a function of eta and energy} 289 446 set HCalResolutionFormula { 290 447 (abs(eta) <= 0.88 ) * sqrt(energy^2*0.01^2 + energy*0.30^2)+ … … 352 509 } 353 510 511 ################# 512 # Muon filter 513 ################# 514 515 module PdgCodeFilter MuonFilter { 516 set InputArray Calorimeter/eflowTracks 517 set OutputArray muons 518 set Invert true 519 add PdgCode {13} 520 add PdgCode {-13} 521 } 522 523 354 524 ##################### 355 525 # Electron efficiency … … 363 533 364 534 # efficiency formula for electrons 365 set EfficiencyFormula { 535 set EfficiencyFormula { 366 536 (energy < 2.0) * (0.000)+ 367 537 (energy >= 2.0) * (abs(eta) <= 0.88) * (0.99) + … … 393 563 394 564 module Efficiency MuonEfficiency { 395 set InputArray Muon MomentumSmearing/muons565 set InputArray MuonFilter/muons 396 566 set OutputArray muons 397 567 … … 399 569 400 570 # efficiency formula for muons 401 set EfficiencyFormula { 571 set EfficiencyFormula { 402 572 (energy < 2.0) * (0.000)+ 403 573 (energy >= 2.0) * (abs(eta) <= 0.88) * (0.99) + … … 547 717 548 718 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt} 549 719 550 720 # default efficiency formula (misidentification rate) 551 721 add EfficiencyFormula {0} {0.01} … … 603 773 module TreeWriter TreeWriter { 604 774 # add Branch InputArray BranchName BranchClass 605 775 606 776 add Branch Delphes/allParticles Particle GenParticle 607 777 608 778 add Branch TrackMerger/tracks Track Track 609 779 add Branch Calorimeter/towers Tower Tower 610 780 611 781 add Branch Calorimeter/eflowTracks EFlowTrack Track 612 782 add Branch Calorimeter/eflowPhotons EFlowPhoton Tower … … 616 786 add Branch PhotonEfficiency/photons PhotonEff Photon 617 787 add Branch PhotonIsolation/photons PhotonIso Photon 618 788 619 789 add Branch GenJetFinder/jets GenJet Jet 620 790 add Branch GenMissingET/momentum GenMissingET MissingET 621 791 622 792 add Branch UniqueObjectFinder/jets Jet Jet 623 793 add Branch UniqueObjectFinder/electrons Electron Electron 624 794 add Branch UniqueObjectFinder/photons Photon Photon 625 795 add Branch UniqueObjectFinder/muons Muon Muon 626 627 add Branch JetEnergyScale/jets AntiKtJet Jet 628 796 797 add Branch JetEnergyScale/jets AntiKtJet Jet 798 629 799 add Branch MissingET/momentum MissingET MissingET 630 800 add Branch ScalarHT/energy ScalarHT ScalarHT 631 } 632 801 802 # add Info InfoName InfoValue 803 add Info Bz $B 804 } -
classes/DelphesClasses.cc
ra3261d7 r13331dc 102 102 { 103 103 TLorentzVector vec; 104 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0); 105 return vec; 106 } 104 vec.SetPtEtaPhiM(PT, Eta, Phi, Mass); 105 return vec; 106 } 107 108 //------------------------------------------------------------------------------ 109 110 TMatrixDSym Track::CovarianceMatrix() const 111 { 112 TMatrixDSym Cv; 113 Cv.ResizeTo(5, 5); 114 115 // convert diagonal term to original units 116 Cv(0, 0)=TMath::Power(ErrorD0, 2.); 117 Cv(1, 1)=TMath::Power(ErrorPhi, 2.); 118 Cv(2, 2)=TMath::Power(ErrorC, 2.); 119 Cv(3, 3)=TMath::Power(ErrorDZ, 2.); 120 Cv(4, 4)=TMath::Power(ErrorCtgTheta, 2.); 121 122 // off diagonal terms 123 Cv(0, 1)=ErrorD0Phi; 124 Cv(0, 2)=ErrorD0C; 125 Cv(0, 3)=ErrorD0DZ; 126 Cv(0, 4)=ErrorD0CtgTheta; 127 Cv(1, 2)=ErrorPhiC; 128 Cv(1, 3)=ErrorPhiDZ; 129 Cv(1, 4)=ErrorPhiCtgTheta; 130 Cv(2, 3)=ErrorCDZ; 131 Cv(2, 4)=ErrorCCtgTheta; 132 Cv(3, 4)=ErrorDZCtgTheta; 133 134 Cv(1, 0)=Cv(0, 1); 135 Cv(2, 0)=Cv(0, 2); 136 Cv(3, 0)=Cv(0, 3); 137 Cv(4, 0)=Cv(0, 4); 138 Cv(2, 1)=Cv(1, 2); 139 Cv(3, 1)=Cv(1, 3); 140 Cv(4, 1)=Cv(1, 4); 141 Cv(3, 2)=Cv(2, 3); 142 Cv(4, 2)=Cv(2, 4); 143 Cv(4, 3)=Cv(3, 4); 144 145 return Cv; 146 } 147 107 148 108 149 //------------------------------------------------------------------------------ … … 120 161 { 121 162 TLorentzVector vec; 122 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0); 123 return vec; 163 vec.SetPtEtaPhiM(PT, Eta, Phi, Mass); 164 return vec; 165 } 166 167 //------------------------------------------------------------------------------ 168 169 TMatrixDSym ParticleFlowCandidate::CovarianceMatrix() const 170 { 171 TMatrixDSym Cv; 172 Cv.ResizeTo(5, 5); 173 174 // convert diagonal term to original units 175 Cv(0, 0)=TMath::Power(ErrorD0, 2.); 176 Cv(1, 1)=TMath::Power(ErrorPhi, 2.); 177 Cv(2, 2)=TMath::Power(ErrorC, 2.); 178 Cv(3, 3)=TMath::Power(ErrorDZ, 2.); 179 Cv(4, 4)=TMath::Power(ErrorCtgTheta, 2.); 180 181 // off diagonal terms 182 Cv(0, 1)=ErrorD0Phi; 183 Cv(0, 2)=ErrorD0C; 184 Cv(0, 3)=ErrorD0DZ; 185 Cv(0, 4)=ErrorD0CtgTheta; 186 Cv(1, 2)=ErrorPhiC; 187 Cv(1, 3)=ErrorPhiDZ; 188 Cv(1, 4)=ErrorPhiCtgTheta; 189 Cv(2, 3)=ErrorCDZ; 190 Cv(2, 4)=ErrorCCtgTheta; 191 Cv(3, 4)=ErrorDZCtgTheta; 192 193 Cv(1, 0)=Cv(0, 1); 194 Cv(2, 0)=Cv(0, 2); 195 Cv(3, 0)=Cv(0, 3); 196 Cv(4, 0)=Cv(0, 4); 197 Cv(2, 1)=Cv(1, 2); 198 Cv(3, 1)=Cv(1, 3); 199 Cv(4, 1)=Cv(1, 4); 200 Cv(3, 2)=Cv(2, 3); 201 Cv(4, 2)=Cv(2, 4); 202 Cv(4, 3)=Cv(3, 4); 203 204 return Cv; 124 205 } 125 206 … … 153 234 NNeutrals(0), 154 235 NeutralEnergyFraction(0), // charged energy fraction 155 ChargedEnergyFraction(0), // neutral energy fraction 236 ChargedEnergyFraction(0), // neutral energy fraction 156 237 Beta(0), 157 238 BetaStar(0), -
classes/DelphesClasses.h
ra3261d7 r13331dc 151 151 Float_t Eta; // particle pseudorapidity 152 152 Float_t Phi; // particle azimuthal angle 153 154 153 Float_t Rapidity; // particle rapidity 155 Float_t CtgTheta; // particle cotangent of theta156 157 Float_t D0; // particle transverse impact parameter158 Float_t DZ; // particle longitudinal impact parameter159 154 160 155 Float_t T; // particle vertex position (t component) | hepevt.vhep[number][3] … … 390 385 391 386 Float_t NeutralEnergyFraction; // charged energy fraction 392 Float_t ChargedEnergyFraction; // neutral energy fraction 387 Float_t ChargedEnergyFraction; // neutral energy fraction 393 388 394 389 Float_t Beta; // (sum pt of charged pile-up constituents)/(sum pt of charged constituents) … … 443 438 Float_t Phi; // track azimuthal angle 444 439 Float_t CtgTheta; // track cotangent of theta 440 Float_t C; // track curvature inverse 441 Float_t Mass; // particle mass 445 442 446 443 Float_t EtaOuter; // track pseudorapidity at the tracker edge … … 473 470 Float_t ErrorD0; // track transverse impact parameter error 474 471 Float_t ErrorDZ; // track longitudinal impact parameter error 472 Float_t ErrorC; // track curvature error 473 474 // track covariance off-diagonal terms 475 Float_t ErrorD0Phi; 476 Float_t ErrorD0C; 477 Float_t ErrorD0DZ; 478 Float_t ErrorD0CtgTheta; 479 Float_t ErrorPhiC; 480 Float_t ErrorPhiDZ; 481 Float_t ErrorPhiCtgTheta ; 482 Float_t ErrorCDZ; 483 Float_t ErrorCCtgTheta; 484 Float_t ErrorDZCtgTheta; 475 485 476 486 TRef Particle; // reference to generated particle … … 482 492 483 493 TLorentzVector P4() const; 494 TMatrixDSym CovarianceMatrix() const; 484 495 485 496 ClassDef(Track, 3) … … 531 542 Float_t Phi; // track azimuthal angle 532 543 Float_t CtgTheta; // track cotangent of theta 544 Float_t C; // track curvature inverse 545 Float_t Mass; // particle mass 533 546 534 547 Float_t EtaOuter; // track pseudorapidity at the tracker edge … … 561 574 Float_t ErrorD0; // track transverse impact parameter error 562 575 Float_t ErrorDZ; // track longitudinal impact parameter error 576 Float_t ErrorC; // track curvature error 577 578 // track covariance off-diagonal terms 579 Float_t ErrorD0Phi; 580 Float_t ErrorD0C; 581 Float_t ErrorD0DZ; 582 Float_t ErrorD0CtgTheta; 583 Float_t ErrorPhiC; 584 Float_t ErrorPhiDZ; 585 Float_t ErrorPhiCtgTheta ; 586 Float_t ErrorCDZ; 587 Float_t ErrorCCtgTheta; 588 Float_t ErrorDZCtgTheta; 563 589 564 590 Int_t VertexIndex; // reference to vertex … … 568 594 569 595 TLorentzVector P4() const; 596 TMatrixDSym CovarianceMatrix() const; 570 597 571 598 Int_t NTimeHits; // number of hits contributing to time measurement … … 578 605 TRefArray Particles; // references to generated particles 579 606 580 ClassDef(ParticleFlowCandidate, 1)607 ClassDef(ParticleFlowCandidate, 2) 581 608 582 609 }; … … 685 712 Float_t FracPt[5]; 686 713 Float_t NeutralEnergyFraction; // charged energy fraction 687 Float_t ChargedEnergyFraction; // neutral energy fraction 714 Float_t ChargedEnergyFraction; // neutral energy fraction 688 715 689 716 … … 742 769 // event characteristics variables 743 770 Double_t ParticleDensity; // particle multiplicity density in the proximity of the particle 744 771 745 772 static CompBase *fgCompare; //! 746 773 const CompBase *GetCompare() const { return fgCompare; } -
classes/DelphesModule.cc
ra3261d7 r13331dc 130 130 //------------------------------------------------------------------------------ 131 131 132 void DelphesModule::AddInfo(const char *name, Double_t value) 133 { 134 stringstream message; 135 if(!fTreeWriter) 136 { 137 fTreeWriter = static_cast<ExRootTreeWriter *>(GetObject("TreeWriter", ExRootTreeWriter::Class())); 138 if(!fTreeWriter) 139 { 140 message << "can't access access tree writer"; 141 throw runtime_error(message.str()); 142 } 143 } 144 fTreeWriter->AddInfo(name, value); 145 } 146 147 //------------------------------------------------------------------------------ 148 132 149 ExRootResult *DelphesModule::GetPlots() 133 150 { -
classes/DelphesModule.h
ra3261d7 r13331dc 55 55 56 56 ExRootTreeBranch *NewBranch(const char *name, TClass *cl); 57 void AddInfo(const char *name, Double_t value); 57 58 58 59 ExRootResult *GetPlots(); -
classes/DelphesTF2.cc
ra3261d7 r13331dc 32 32 { 33 33 34 #if ROOT_VERSION_CODE >= ROOT_VERSION(6, 3, 0) 34 #if ROOT_VERSION_CODE >= ROOT_VERSION(6, 22, 7) 35 fFormula = std::unique_ptr<TFormula>(new TFormula()); 36 #elif ROOT_VERSION_CODE >= ROOT_VERSION(6, 3, 0) 35 37 fFormula = new TFormula(); 36 38 #endif -
doc/genMakefile.tcl
ra3261d7 r13331dc 282 282 DISPLAYLIB = libDelphesDisplay.lib 283 283 284 VERSION = $(shell cat VERSION)284 VERSION = x.y.z 285 285 DISTDIR = Delphes-$(VERSION) 286 286 DISTTAR = $(DISTDIR).tar.gz … … 434 434 @echo ">> Building $(DISTTAR)" 435 435 @mkdir -p $(DISTDIR) 436 @cp -a AUTHORS CHANGELOG CMakeLists.txt COPYING DelphesEnv.sh LICENSE NOTICE README README_4LHCb VERSIONMakefile MinBias.pileup configure cards classes converters display doc examples external modules python readers validation $(DISTDIR)436 @cp -a AUTHORS CHANGELOG CMakeLists.txt COPYING DelphesEnv.sh LICENSE NOTICE README README_4LHCb Makefile MinBias.pileup configure cards classes converters display doc examples external modules python readers validation $(DISTDIR) 437 437 @find $(DISTDIR) -depth -name .\* -exec rm -rf {} \; 438 438 @tar -czf $(DISTTAR) $(DISTDIR) -
doc/update_fastjet.sh
ra3261d7 r13331dc 1 version=3.3. 21 version=3.3.4 2 2 3 3 wget http://fastjet.fr/repo/fastjet-${version}.tar.gz … … 11 11 ./configure --enable-allcxxplugins --disable-auto-ptr 12 12 cd - 13 14 echo ${version} > fastjet/VERSION15 13 16 14 cd fastjet -
external/ExRootAnalysis/ExRootTreeReader.cc
ra3261d7 r13331dc 12 12 #include "TBranchElement.h" 13 13 #include "TCanvas.h" 14 #include "TParameter.h" 14 15 #include "TClonesArray.h" 15 16 #include "TH2.h" … … 119 120 //------------------------------------------------------------------------------ 120 121 122 Double_t ExRootTreeReader::GetInfo(const char *name) 123 { 124 TTree *tree = NULL; 125 TParameter<Double_t> *param = NULL; 126 Double_t result = -999.9; 127 if(fChain) tree = fChain->GetTree(); 128 if(tree) param = static_cast<TParameter<Double_t> *>(tree->GetUserInfo()->FindObject(name)); 129 if(param) result = param->GetVal(); 130 return result; 131 } 132 133 //------------------------------------------------------------------------------ 134 121 135 Bool_t ExRootTreeReader::Notify() 122 136 { -
external/ExRootAnalysis/ExRootTreeReader.h
ra3261d7 r13331dc 29 29 30 30 TClonesArray *UseBranch(const char *branchName); 31 Double_t GetInfo(const char *name); 31 32 32 33 private: -
external/ExRootAnalysis/ExRootTreeWriter.cc
ra3261d7 r13331dc 11 11 #include "ExRootAnalysis/ExRootTreeBranch.h" 12 12 13 #include "TParameter.h" 13 14 #include "TClonesArray.h" 14 15 #include "TFile.h" … … 48 49 fBranches.insert(branch); 49 50 return branch; 51 } 52 53 //------------------------------------------------------------------------------ 54 55 void ExRootTreeWriter::AddInfo(const char *name, Double_t value) 56 { 57 if(!fTree) fTree = NewTree(); 58 fTree->GetUserInfo()->Add(new TParameter<Double_t>(name, value)); 50 59 } 51 60 -
external/ExRootAnalysis/ExRootTreeWriter.h
ra3261d7 r13331dc 29 29 30 30 ExRootTreeBranch *NewBranch(const char *name, TClass *cl); 31 void AddInfo(const char *name, Double_t value); 31 32 32 33 void Clear(); -
external/TrackCovariance/ObsTrk.cc
ra3261d7 r13331dc 10 10 // 11 11 // Constructors 12 // 12 13 // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla 13 14 ObsTrk::ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC) 14 15 { 16 SetBfield(B); 15 17 fGC = GC; 16 18 fGenX = x; … … 19 21 fB = B; 20 22 fGenPar.ResizeTo(5); 23 fGenParMm.ResizeTo(5); 21 24 fGenParACTS.ResizeTo(6); 22 25 fGenParILC.ResizeTo(5); 23 26 fObsPar.ResizeTo(5); 27 fObsParMm.ResizeTo(5); 24 28 fObsParACTS.ResizeTo(6); 25 29 fObsParILC.ResizeTo(5); 26 30 fCov.ResizeTo(5, 5); 31 fCovMm.ResizeTo(5, 5); 27 32 fCovACTS.ResizeTo(6, 6); 28 33 fCovILC.ResizeTo(5, 5); 29 34 fGenPar = XPtoPar(x,p,Q); 35 fGenParMm = ParToMm(fGenPar); 30 36 fGenParACTS = ParToACTS(fGenPar); 31 37 fGenParILC = ParToILC(fGenPar); 32 38 /* 33 std::cout << "ObsTrk::ObsTrk: fGenPar"; 34 for (Int_t i = 0; i < 5; i++)std::cout << fGenPar(i) << ", "; 35 std::cout << std::endl; 39 cout << "ObsTrk::ObsTrk: fGenPar"; 40 for (Int_t i = 0; i < 5; i++)cout << fGenPar(i) << ", "; 41 cout << endl; 42 */ 43 fObsPar = GenToObsPar(fGenPar, fGC); 44 fObsParMm = ParToMm(fObsPar); 45 fObsParACTS = ParToACTS(fObsPar); 46 fObsParILC = ParToILC(fObsPar); 47 fObsX = ParToX(fObsPar); 48 fObsP = ParToP(fObsPar); 49 fObsQ = ParToQ(fObsPar); 50 fCovMm = CovToMm(fCov); 51 fCovACTS = CovToACTS(fObsPar, fCov); 52 fCovILC = CovToILC(fCov); 53 } 54 // 55 // x[3] track origin, p[3] track momentum at origin, Q charge, B magnetic field in Tesla 56 ObsTrk::ObsTrk(Double_t *x, Double_t *p, Double_t Q, Double_t B, SolGridCov* GC) 57 { 58 SetBfield(B); 59 fGC = GC; 60 fGenX.SetXYZ(x[0],x[1],x[2]); 61 fGenP.SetXYZ(p[0],p[1],p[2]); 62 fGenQ = Q; 63 fB = B; 64 fGenPar.ResizeTo(5); 65 fGenParMm.ResizeTo(5); 66 fGenParACTS.ResizeTo(6); 67 fGenParILC.ResizeTo(5); 68 fObsPar.ResizeTo(5); 69 fObsParMm.ResizeTo(5); 70 fObsParACTS.ResizeTo(6); 71 fObsParILC.ResizeTo(5); 72 fCov.ResizeTo(5, 5); 73 fCovMm.ResizeTo(5, 5); 74 fCovACTS.ResizeTo(6, 6); 75 fCovILC.ResizeTo(5, 5); 76 fGenPar = XPtoPar(fGenX, fGenP, Q); 77 fGenParACTS = ParToACTS(fGenPar); 78 fGenParILC = ParToILC(fGenPar); 79 /* 80 cout << "ObsTrk::ObsTrk: fGenPar"; 81 for (Int_t i = 0; i < 5; i++)cout << fGenPar(i) << ", "; 82 cout << endl; 36 83 */ 37 84 fObsPar = GenToObsPar(fGenPar, fGC); … … 41 88 fObsP = ParToP(fObsPar); 42 89 fObsQ = ParToQ(fObsPar); 43 fCovACTS = CovToACTS(f Cov);90 fCovACTS = CovToACTS(fObsPar, fCov); 44 91 fCovILC = CovToILC(fCov); 45 92 } … … 51 98 fGenP.Clear(); 52 99 fGenPar.Clear(); 100 fGenParMm.Clear(); 53 101 fGenParACTS.Clear(); 102 fGenParILC.Clear(); 54 103 fObsX.Clear(); 55 104 fObsP.Clear(); 56 105 fObsPar.Clear(); 106 fObsParMm.Clear(); 57 107 fObsParACTS.Clear(); 108 fObsParILC.Clear(); 58 109 fCov.Clear(); 110 fCovMm.Clear(); 59 111 fCovACTS.Clear(); 60 } 61 TVectorD ObsTrk::XPtoPar(TVector3 x, TVector3 p, Double_t Q) 62 { 63 // 64 TVectorD Par(5); 65 // Transverse parameters 66 Double_t a = -Q*fB*0.2998; // Units are Tesla, GeV and meters 67 Double_t pt = p.Pt(); 68 Double_t C = a / (2 * pt); // Half curvature 69 //std::cout << "ObsTrk::XPtoPar: fB = " << fB << ", a = " << a << ", pt = " << pt << ", C = " << C << std::endl; 70 Double_t r2 = x.Perp2(); 71 Double_t cross = x(0)*p(1) - x(1)*p(0); 72 Double_t T = TMath::Sqrt(pt*pt - 2 * a*cross + a*a*r2); 73 Double_t phi0 = TMath::ATan2((p(1) - a*x(0)) / T, (p(0) + a*x(1)) / T); // Phi0 74 Double_t D; // Impact parameter D 75 if (pt < 10.0) D = (T - pt) / a; 76 else D = (-2 * cross + a*r2) / (T + pt); 77 // 78 Par(0) = D; // Store D 79 Par(1) = phi0; // Store phi0 80 Par(2) = C; // Store C 81 //Longitudinal parameters 82 Double_t B = C*TMath::Sqrt(TMath::Max(r2 - D*D,0.0) / (1 + 2 * C*D)); 83 Double_t st = TMath::ASin(B) / C; 84 Double_t ct = p(2) / pt; 85 Double_t z0 = x(2) - ct*st; 86 // 87 Par(3) = z0; // Store z0 88 Par(4) = ct; // Store cot(theta) 89 // 90 return Par; 91 } 92 // 93 TVector3 ObsTrk::ParToX(TVectorD Par) 94 { 95 Double_t D = Par(0); 96 Double_t phi0 = Par(1); 97 Double_t z0 = Par(3); 98 // 99 TVector3 Xval; 100 Xval(0) = -D*TMath::Sin(phi0); 101 Xval(1) = D*TMath::Cos(phi0); 102 Xval(2) = z0; 103 // 104 return Xval; 105 } 106 // 107 TVector3 ObsTrk::ParToP(TVectorD Par) 108 { 109 Double_t C = Par(2); 110 Double_t phi0 = Par(1); 111 Double_t ct = Par(4); 112 // 113 TVector3 Pval; 114 Double_t pt = fB*0.2998 / TMath::Abs(2 * C); 115 Pval(0) = pt*TMath::Cos(phi0); 116 Pval(1) = pt*TMath::Sin(phi0); 117 Pval(2) = pt*ct; 118 // 119 return Pval; 120 } 121 // 122 123 Double_t ObsTrk::ParToQ(TVectorD Par) 124 { 125 return TMath::Sign(1.0, -Par(2)); 112 fCovILC.Clear(); 126 113 } 127 114 // … … 135 122 // Check ranges 136 123 Double_t minPt = GC->GetMinPt (); 137 if (pt < minPt) std::cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is below grid range of " << minPt << std::endl;124 //if (pt < minPt) cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is below grid range of " << minPt << endl; 138 125 Double_t maxPt = GC->GetMaxPt(); 139 if (pt > maxPt) std::cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is above grid range of " << maxPt << std::endl;126 //if (pt > maxPt) cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is above grid range of " << maxPt << endl; 140 127 Double_t minAn = GC->GetMinAng(); 141 if (angd < minAn) std::cout << "Warning ObsTrk::GenToObsPar: angle " << angd142 << " is below grid range of " << minAn << std::endl;128 //if (angd < minAn) cout << "Warning ObsTrk::GenToObsPar: angle " << angd 129 // << " is below grid range of " << minAn << endl; 143 130 Double_t maxAn = GC->GetMaxAng(); 144 if (angd > maxAn) std::cout << "Warning ObsTrk::GenToObsPar: angle " << angd145 << " is above grid range of " << maxAn << std::endl;131 //if (angd > maxAn) cout << "Warning ObsTrk::GenToObsPar: angle " << angd 132 // << " is above grid range of " << maxAn << endl; 146 133 // 147 134 TMatrixDSym Cov = GC->GetCov(pt, angd); … … 170 157 return oPar; 171 158 } 172 // Parameter conversion to ACTS format173 TVectorD ObsTrk::ParToACTS(TVectorD Par)174 {175 TVectorD pACTS(6); // Return vector176 //177 Double_t b = -0.29988*fB / 2.;178 pACTS(0) = 1000*Par(0); // D from m to mm179 pACTS(1) = 1000 * Par(3); // z0 from m to mm180 pACTS(2) = Par(1); // Phi0 is unchanged181 pACTS(3) = TMath::ATan(1.0 / Par(4)) + TMath::PiOver2(); // Theta in [0, pi] range182 pACTS(4) = Par(2) / (b*TMath::Sqrt(1 + Par(4)*Par(4))); // q/p in GeV183 pACTS(5) = 0.0; // Time: currently undefined184 //185 return pACTS;186 }187 // Covariance conversion to ACTS format188 TMatrixDSym ObsTrk::CovToACTS(TMatrixDSym Cov)189 {190 TMatrixDSym cACTS(6); cACTS.Zero();191 Double_t b = -0.29988*fB / 2.;192 //193 // Fill derivative matrix194 TMatrixD A(5, 5); A.Zero();195 Double_t ct = fGenPar(4); // cot(theta)196 Double_t C = fGenPar(2); // half curvature197 A(0, 0) = 1000.; // D-D conversion to mm198 A(1, 2) = 1.0; // phi0-phi0199 A(2, 4) = 1.0/(TMath::Sqrt(1.0 + ct*ct) * b); // q/p-C200 A(3, 1) = 1000.; // z0-z0 conversion to mm201 A(4, 3) = -1.0 / (1.0 + ct*ct); // theta - cot(theta)202 A(4, 4) = -C*ct / (b*pow(1.0 + ct*ct,3.0/2.0)); // q/p-cot(theta)203 //204 TMatrixDSym Cv = Cov;205 TMatrixD At(5, 5);206 At.Transpose(A);207 Cv.Similarity(At);208 TMatrixDSub(cACTS, 0, 4, 0, 4) = Cv;209 cACTS(5, 5) = 0.1; // Currently undefined: set to arbitrary value to avoid crashes210 //211 return cACTS;212 }213 214 // Parameter conversion to ILC format215 TVectorD ObsTrk::ParToILC(TVectorD Par)216 {217 TVectorD pILC(5); // Return vector218 //219 pILC(0) = Par(0)*1.0e3; // d0 in mm220 pILC(1) = Par(1); // phi0 is unchanged221 pILC(2) = -2 * Par(2)*1.0e-3; // w in mm^-1222 pILC(3) = Par(3)*1.0e3; // z0 in mm223 pILC(4) = Par(4); // tan(lambda) = cot(theta)224 //225 return pILC;226 }227 // Covariance conversion to ILC format228 TMatrixDSym ObsTrk::CovToILC(TMatrixDSym Cov)229 {230 TMatrixDSym cILC(5); cILC.Zero();231 //232 // Fill derivative matrix233 TMatrixD A(5, 5); A.Zero();234 //235 A(0, 0) = 1.0e3; // D-d0 in mm236 A(1, 1) = 1.0; // phi0-phi0237 A(2, 2) = -2.0e-3; // w-C238 A(3, 3) = 1.0e3; // z0-z0 conversion to mm239 A(4, 4) = 1.0; // tan(lambda) - cot(theta)240 //241 TMatrixDSym Cv = Cov;242 TMatrixD At(5, 5);243 At.Transpose(A);244 Cv.Similarity(At);245 cILC = Cv;246 //247 return cILC;248 }249 250 251 252 -
external/TrackCovariance/ObsTrk.h
ra3261d7 r13331dc 6 6 #include <TMatrixDSym.h> 7 7 #include <TDecompChol.h> 8 #include "TrkUtil.h" 8 9 #include "SolGridCov.h" 9 10 // … … 13 14 // INFN - Sezione di Pisa, Italy 14 15 // 15 class ObsTrk{ 16 class ObsTrk: public TrkUtil 17 { 16 18 // 17 19 // Class to handle simulation of tracking resolution … … 20 22 // 21 23 private: 22 Double_t fB; 23 SolGridCov *fGC; 24 Double_t fB; // Solenoid magnetic field 25 SolGridCov *fGC; // Covariance matrix grid 24 26 Double_t fGenQ; // Generated track charge 25 27 Double_t fObsQ; // Observed track charge … … 28 30 TVector3 fGenP; // Generated track momentum at track origin 29 31 TVector3 fObsP; // Observed track momentum @ track minimum approach 30 TVectorD fGenPar; // Generated helix track parameters (D, phi0, C, z0, cot(th)) 32 TVectorD fGenPar; // Generated helix track parameters (D, phi0, C, z0, cot(th)) in meters 33 TVectorD fGenParMm; // Generated helix track parameters (D, phi0, C, z0, cot(th)) in mm 31 34 TVectorD fGenParACTS; // Generated helix track parameters (D, z0, phi0, th, q/p, time 32 TVectorD fGenParILC; // Generated helix track parameters (w, phi0, d0, z0, tan(lambda)) 33 TVectorD fObsPar; // Observed helix track parameters (D, phi0, C, z0, cot(th)) 35 TVectorD fGenParILC; // Generated helix track parameters (w, phi0, d0, z0, tan(lambda)) 36 TVectorD fObsPar; // Observed helix track parameters (D, phi0, C, z0, cot(th)) in meters 37 TVectorD fObsParMm; // Observed helix track parameters (D, phi0, C, z0, cot(th)) in mm 34 38 TVectorD fObsParACTS; // Observed helix track parameters (D, z0, phi0, th, q/p, time 35 TVectorD fObsParILC; // Observed helix track parameters (d0, phi0, w, z0, tan(lambda)) 36 TMatrixDSym fCov; // INterpolated covariance of track parameters 39 TVectorD fObsParILC; // Observed helix track parameters (d0, phi0, w, z0, tan(lambda)) 40 TMatrixDSym fCov; // Interpolated covariance of track in meters 41 TMatrixDSym fCovMm; // Interpolated covariance of track parameters in mm 37 42 TMatrixDSym fCovACTS; // Covariance of track parameters in ACTS format 38 43 // (D, z0, phi0, theta, q/p, time) 39 TMatrixDSym fCovILC; 44 TMatrixDSym fCovILC; // Covariance of track parameters in ILC format 40 45 // (d0, phi0, w, z0, tan(lambda)) 41 46 // 42 // Conversion to ACTS parametrization47 // Service routines 43 48 // 44 TVectorD ParToACTS(TVectorD Par); // Parameter conversion 45 TMatrixDSym CovToACTS(TMatrixDSym Cov); // Covariance 46 // 47 // Conversion to ILC parametrization 48 // 49 TVectorD ParToILC(TVectorD Par); // Parameter conversion 50 TMatrixDSym CovToILC(TMatrixDSym Cov); // Covariance conversion 49 TVectorD GenToObsPar(TVectorD gPar, SolGridCov* GC); 51 50 // 52 51 public: … … 54 53 // Constructors 55 54 // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla 56 ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC); // Initialize and generate smeared track 55 ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC); // Initialize and generate smeared 56 ObsTrk(Double_t *x, Double_t *p, Double_t Q, Double_t B, SolGridCov* GC); // Initialize and generate smeared track 57 57 // Destructor 58 58 ~ObsTrk(); 59 //60 // Service routines61 //62 TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q);63 TVectorD GenToObsPar(TVectorD gPar, SolGridCov *GC);64 TVector3 ParToX(TVectorD Par);65 TVector3 ParToP(TVectorD Par);66 Double_t ParToQ(TVectorD Par);67 59 // 68 60 // Accessors … … 74 66 TVector3 GetGenP() { return fGenP; } 75 67 // D, phi0, C, z0, cot(th) 76 TVectorD GetGenPar() { return fGenPar; } 68 TVectorD GetGenPar() { return fGenPar; } // in meters 69 TVectorD GetGenParMm() { return fGenParMm; } // in mm 77 70 // D, z0, phi0, theta, q/p, time 78 71 TVectorD GetGenParACTS() { return fGenParACTS; } … … 84 77 TVector3 GetObsP() { return fObsP; } 85 78 // D, phi0, C, z0, cot(th) 86 TVectorD GetObsPar() { return fObsPar; } 79 TVectorD GetObsPar() { return fObsPar; } // in meters 80 TVectorD GetObsParMm() { return fObsParMm; } // In mm 87 81 // D, z0, phi0, theta, q/p, time 88 82 TVectorD GetObsParACTS() { return fObsParACTS; } … … 90 84 TVectorD GetObsParILC() { return fObsParILC; } 91 85 // Covariances 92 TMatrixDSym GetCov(){ return fCov; } 86 TMatrixDSym GetCov() { return fCov; } // in meters 87 TMatrixDSym GetCovMm() { return fCov; } // in mm 93 88 TMatrixDSym GetCovACTS(){ return fCovACTS; } 94 89 TMatrixDSym GetCovILC(){ return fCovILC; } 90 // 95 91 }; 96 92 -
external/TrackCovariance/SolGridCov.cc
ra3261d7 r13331dc 3 3 #include <TMath.h> 4 4 #include <TVectorD.h> 5 #include <TVector3.h> 5 6 #include <TMatrixDSym.h> 6 7 #include <TDecompChol.h> … … 36 37 { 37 38 delete[] fCov; 39 delete fAcc; 38 40 } 39 41 … … 58 60 } 59 61 } 60 } 62 63 // Now make acceptance 64 fAcc = new AcceptanceClx(G); 65 } 66 67 68 // 69 Bool_t SolGridCov::IsAccepted(Double_t pt, Double_t Theta) 70 { 71 // 72 // pt in GeV, Theta in degrees 73 // 74 Bool_t Accept = kFALSE; 75 if (fAcc->HitNumber(pt, Theta) >= fNminHits)Accept = kTRUE; 76 // 77 return Accept; 78 } 79 // 80 Bool_t SolGridCov::IsAccepted(Double_t *p) 81 { 82 // 83 // pt in GeV, Theta in degrees 84 // 85 Bool_t Accept = kFALSE; 86 Double_t pt = TMath::Sqrt(p[0] * p[0] + p[1] * p[1]); 87 Double_t th = 180. * TMath::ATan2(pt, p[2])/TMath::Pi(); 88 if (fAcc->HitNumber(pt,th) >= fNminHits)Accept = kTRUE; 89 // 90 return Accept; 91 } 92 // 93 Bool_t SolGridCov::IsAccepted(TVector3 p) 94 { 95 // 96 // pt in GeV, Theta in degrees 97 // 98 Bool_t Accept = kFALSE; 99 Double_t pt = p.Pt(); 100 Double_t th = 180.*TMath::ACos(p.CosTheta())/TMath::Pi(); 101 if (fAcc->HitNumber(pt,th) >= fNminHits)Accept = kTRUE; 102 // 103 return Accept; 104 } 105 106 61 107 // Find bin in grid 62 108 Int_t SolGridCov::GetMinIndex(Double_t xval, Int_t N, TVectorD x) -
external/TrackCovariance/SolGridCov.h
ra3261d7 r13331dc 4 4 #include <TVectorD.h> 5 5 #include <TMatrixDSym.h> 6 #include "AcceptanceClx.h" 6 7 7 8 class SolGeom; … … 17 18 TVectorD fAnga; // Array of angle points in degrees 18 19 TMatrixDSym *fCov; // Pointers to grid of covariance matrices 20 AcceptanceClx *fAcc; // Pointer to acceptance class 21 Int_t fNminHits; // Minimum number of hits to accept track 19 22 // Service routines 20 23 Int_t GetMinIndex(Double_t xval, Int_t N, TVectorD x); // Find bin … … 32 35 Double_t GetMaxAng() { return fAnga(fNang - 1); } 33 36 TMatrixDSym GetCov(Double_t pt, Double_t ang); 37 38 // Acceptance related methods 39 AcceptanceClx* AccPnt() { return fAcc; }; // Return Acceptance class pointer 40 void SetMinHits(Int_t MinHits) { fNminHits = MinHits; }; // Set minimum number of hits to accept (default = 6) 41 Int_t GetMinHits() { return fNminHits; }; 42 Bool_t IsAccepted(Double_t pt, Double_t Theta); // From pt (GeV) and theta (degrees) 43 Bool_t IsAccepted(Double_t *p); // From momentum components (GeV) 44 Bool_t IsAccepted(TVector3 p); // As above in Vector3 format 45 34 46 }; 35 47 -
external/TrackCovariance/SolTrack.cc
ra3261d7 r13331dc 45 45 fCov.ResizeTo(5, 5); 46 46 } 47 SolTrack::SolTrack(TVector3 x, TVector3 p, SolGeom* G) 48 { 49 fG = G; 50 // Store momentum 51 fp[0] = p(0); fp[1] = p(1); fp[2] = p(2); 52 Double_t px = p(0); Double_t py = p(1); Double_t pz = p(2); 53 fx[0] = x(0); fx[1] = x(1); fx[2] = x(2); 54 Double_t xx = x(0); Double_t yy = x(1); Double_t zz = x(2); 55 // Store parameters 56 Double_t pt = TMath::Sqrt(px * px + py * py); 57 Double_t Charge = 1.0; // Don't worry about charge for now 58 Double_t a = -Charge * G->B() * 0.2998; // Normalized speed of light 59 Double_t C = a / (2 * pt); // pt in GeV, B in Tesla, C in meters 60 Double_t r2 = xx * xx + yy * yy; 61 Double_t cross = xx * py - yy * px; 62 Double_t T = TMath::Sqrt(pt * pt - 2 * a * cross + a * a * r2); 63 Double_t phi0 = TMath::ATan2((py - a * xx) / T, (px + a * yy) / T); 64 Double_t D; 65 if (pt < 10.0) D = (T - pt) / a; 66 else D = (-2 * cross + a * r2) / (T + pt); 67 Double_t B = C * TMath::Sqrt((r2 - D * D) / (1 + 2 * C * D)); 68 Double_t st = TMath::ASin(B) / C; 69 Double_t ct = pz / pt; 70 Double_t z0 = zz - ct * st; 71 fpar[0] = D; 72 fpar[1] = phi0; 73 fpar[2] = C; 74 fpar[3] = z0; 75 fpar[4] = ct; 76 //cout << "SolTrack:: C = " << C << ", fpar[2] = " << fpar[2] << endl; 77 // 78 // Init covariances 79 // 80 fCov.ResizeTo(5, 5); 81 } 47 82 48 83 SolTrack::SolTrack(Double_t D, Double_t phi0, Double_t C, Double_t z0, Double_t ct, SolGeom *G) … … 69 104 SolTrack::~SolTrack() 70 105 { 106 delete[] & fp; 107 delete[] & fpar; 71 108 fCov.Clear(); 72 109 } … … 132 169 return kh; 133 170 } 171 172 // # of measurement layers hit 173 Int_t SolTrack::nmHit() 174 { 175 Int_t kmh = 0; 176 Double_t R; Double_t phi; Double_t zz; 177 for (Int_t i = 0; i < fG->Nl(); i++) 178 if (HitLayer(i, R, phi, zz))if (fG->isMeasure(i))kmh++; 179 // 180 return kmh; 181 } 182 // 183 184 134 185 // List of layers hit with intersections 135 186 Int_t SolTrack::HitList(Int_t *&ihh, Double_t *&rhh, Double_t *&zhh) … … 161 212 return kmh; 162 213 } 214 215 // List of XYZ measurements without any error 216 Int_t SolTrack::HitListXYZ(Int_t *&ihh, Double_t *&Xh, Double_t *&Yh, Double_t *&Zh) 217 { 218 // 219 // Return lists of hits associated to a track for all measurement layers. 220 // Return value is the total number of measurement hits 221 // kmh = total number of measurement layers hit for given type 222 // ihh = pointer to layer number 223 // Xh, Yh, Zh = X, Y, Z of hit - No measurement error - No multiple scattering 224 // 225 // 226 Int_t kmh = 0; // Number of measurement layers hit 227 for (Int_t i = 0; i < fG->Nl(); i++) 228 { 229 Double_t R; Double_t phi; Double_t zz; 230 if (HitLayer(i, R, phi, zz)) // Only barrel type layers 231 { 232 if (fG->isMeasure(i)) 233 { 234 ihh[kmh] = i; 235 Xh[kmh] = R*cos(phi); 236 Yh[kmh] = R*sin(phi); 237 Zh[kmh] = zz; 238 kmh++; 239 } 240 } 241 } 242 // 243 return kmh; 244 } 245 // 163 246 // Covariance matrix estimation 247 // 164 248 void SolTrack::CovCalc(Bool_t Res, Bool_t MS) 165 249 { 166 // Input flags: 167 // Res = .TRUE. turn on resolution effects/Use standard resolutions 168 // .FALSE. set all resolutions to 0 169 // MS = .TRUE. include Multiple Scattering 170 // Assumptions: 171 // 1. Measurement layers can do one or two measurements 172 // 2. On disks at constant z: 173 // - Upper side measurement is phi 174 // - Lower side measurement is R 175 176 // Fill list of layers hit 177 Int_t ntry = 0; 178 Int_t ntrymax = 0; 179 Int_t Nhit = nHit(); // Total number of layers hit 180 Double_t *zhh = new Double_t[Nhit]; // z of hit 181 Double_t *rhh = new Double_t[Nhit]; // r of hit 182 Double_t *dhh = new Double_t[Nhit]; // distance of hit from origin 183 Int_t *ihh = new Int_t[Nhit]; // true index of layer 184 Int_t kmh; // Number of measurement layers hit 185 186 kmh = HitList(ihh, rhh, zhh); // hit layer list 187 Int_t mTot = 0; // Total number of measurements 188 for (Int_t i = 0; i < Nhit; i++) 189 { 190 dhh[i] = TMath::Sqrt(rhh[i] * rhh[i] + zhh[i] * zhh[i]); 191 if (fG->isMeasure(ihh[i])) mTot += fG->lND(ihh[i]); // Count number of measurements 192 } 193 // Order hit list by increasing distance from origin 194 Int_t *hord = new Int_t[Nhit]; // hit order by increasing distance from origin 195 TMath::Sort(Nhit, dhh, hord, kFALSE); // Order by increasing distance from origin 196 Double_t *zh = new Double_t[Nhit]; // d-ordered z of hit 197 Double_t *rh = new Double_t[Nhit]; // d-ordered r of hit 198 Int_t *ih = new Int_t[Nhit]; // d-ordered true index of layer 199 for (Int_t i = 0; i < Nhit; i++) 200 { 201 Int_t il = hord[i]; // Hit layer numbering 202 zh[i] = zhh[il]; 203 rh[i] = rhh[il]; 204 ih[i] = ihh[il]; 205 } 206 // Store interdistances and multiple scattering angles 207 Double_t sn2t = 1.0 / (1 + ct()*ct()); //sin^2 theta of track 208 Double_t cs2t = 1.0 - sn2t; //cos^2 theta 209 Double_t snt = TMath::Sqrt(sn2t); // sin theta 210 Double_t cst = TMath::Sqrt(cs2t); // cos theta 211 Double_t px0 = pt() * TMath::Cos(phi0()); // Momentum at minimum approach 212 Double_t py0 = pt() * TMath::Sin(phi0()); 213 Double_t pz0 = pt() * ct(); 214 TMatrixDSym dik(Nhit); dik.Zero(); // Distances between layers 215 Double_t *thms = new Double_t[Nhit]; // Scattering angles/plane 216 Double_t *cs = new Double_t[Nhit]; // Cosine of angle with layer normal 217 for (Int_t ii = 0; ii < Nhit; ii++) // Hit layer loop 218 { 219 Int_t i = ih[ii]; // Get true layer number 220 Double_t B = C()*TMath::Sqrt((rh[ii] * rh[ii] - D()*D()) / (1 + 2 * C()*D())); 221 Double_t pxi = px0*(1-2*B*B)-2*py0*B*TMath::Sqrt(1-B*B); // Momentum at scattering layer 222 Double_t pyi = py0*(1-2*B*B)+2*px0*B*TMath::Sqrt(1-B*B); 223 Double_t pzi = pz0; 224 Double_t ArgRp = (rh[ii]*C() + (1 + C() * D())*D() / rh[ii]) / (1 + 2 * C()*D()); 225 Double_t phi = phi0() + TMath::ASin(ArgRp); 226 Double_t nx = TMath::Cos(phi); // Barrel layer normal 227 Double_t ny = TMath::Sin(phi); 228 Double_t nz = 0.0; 229 if (fG->lTyp(i) == 2) // this is Z layer 230 { 231 nx = 0.0; 232 ny = 0.0; 233 nz = 1.0; 234 } 235 Double_t corr = (pxi*nx + pyi * ny + pzi * nz) / p(); 236 cs[ii] = corr; 237 Double_t Rlf = fG->lTh(i) / (corr*fG->lX0(i)); // Rad. length fraction 238 thms[ii] = 0.0136*TMath::Sqrt(Rlf)*(1.0 + 0.038*TMath::Log(Rlf)) / p(); // MS angle 239 if (!MS)thms[ii] = 0; 240 // 241 for (Int_t kk = 0; kk < ii; kk++) // Fill distances between layers 242 { 243 Double_t Ci = C(); 244 dik(ii, kk) = (TMath::ASin(Ci*rh[ii])-TMath::ASin(Ci*rh[kk]))/(Ci*snt); 245 dik(kk, ii) = dik(ii, kk); 246 } 247 // Store momentum components for resolution correction cosines 248 Double_t *pRi = new Double_t[Nhit]; 249 pRi[ii] = TMath::Abs(pxi * TMath::Cos(phi) + pyi * TMath::Sin(phi)); // Radial component 250 Double_t *pPhi = new Double_t[Nhit]; 251 pPhi[ii] = TMath::Abs(pxi * TMath::Sin(phi) - pyi * TMath::Cos(phi)); // Phi component 252 } 253 // Fill measurement covariance 254 Int_t *mTl = new Int_t[mTot]; // Pointer from measurement number to true layer number 255 TMatrixDSym Sm(mTot); Sm.Zero(); // Measurement covariance 256 TMatrixD Rm(mTot, 5); // Derivative matrix 257 Int_t im = 0; 258 // Fill derivatives and error matrix with MS 259 Double_t AngMax = 90.; Double_t AngMx = AngMax * TMath::Pi() / 180.; 260 Double_t csMin = TMath::Cos(AngMx); // Set maximum angle wrt normal 261 // 262 for (Int_t ii = 0; ii < Nhit; ii++) 263 { 264 Int_t i = ih[ii]; // True layer number 265 Int_t ityp = fG->lTyp(i); // Layer type Barrel or Z 266 Int_t nmeai = fG->lND(i); // # measurements in layer 267 if (fG->isMeasure(i) && nmeai >0 && cs[ii] > csMin) 268 { 269 Double_t Di = D(); // Get true track parameters 270 Double_t phi0i = phi0(); 271 Double_t Ci = C(); 272 Double_t z0i = z0(); 273 Double_t cti = ct(); 274 // 275 Double_t Ri = rh[ii]; 276 Double_t ArgRp = (Ri*Ci + (1 + Ci * Di)*Di / Ri) / (1 + 2 * Ci*Di); 277 Double_t ArgRz = Ci * TMath::Sqrt((Ri*Ri - Di * Di) / (1 + 2 * Ci*Di)); 278 TVectorD dRphi(5); dRphi.Zero(); // R-phi derivatives @ const. R 279 TVectorD dRz(5); dRz.Zero(); // z derivatives @ const. R 280 // Derivative overflow protection 281 Double_t dMin = 0.8; 282 dRphi(0) = (1 - 2 * Ci*Ci*Ri*Ri) / 283 TMath::Max(dMin,TMath::Sqrt(1 - ArgRp * ArgRp)); // D derivative 284 dRphi(1) = Ri; // phi0 derivative 285 dRphi(2) = Ri * Ri / 286 TMath::Max(dMin,TMath::Sqrt(1 - ArgRp * ArgRp)); // C derivative 287 dRphi(3) = 0.0; // z0 derivative 288 dRphi(4) = 0.0; // cot(theta) derivative 289 290 dRz(0) = -cti * Di / 291 (Ri*TMath::Max(dMin,TMath::Sqrt(1 - Ci * Ci*Ri*Ri))); // D 292 dRz(1) = 0.0; // Phi0 293 dRz(2) = cti * (Ri*Ci / TMath::Sqrt(1-Ri*Ri*Ci*Ci) - 294 TMath::ASin(Ri*Ci)) / (Ci*Ci); // C 295 dRz(3) = 1.0; // Z0 296 dRz(4) = TMath::ASin(ArgRz) / Ci; // Cot(theta) 297 298 for (Int_t nmi = 0; nmi < nmeai; nmi++) 299 { 300 mTl[im] = i; 301 Double_t stri = 0; 302 Double_t sig = 0; 303 if (nmi + 1 == 1) // Upper layer measurements 304 { 305 stri = fG->lStU(i); // Stereo angle 306 Double_t csa = TMath::Cos(stri); 307 Double_t ssa = TMath::Sin(stri); 308 sig = fG->lSgU(i); // Resolution 309 if (ityp == 1) // Barrel type layer (Measure R-phi, stereo or z at const. R) 310 { 311 // Almost exact solution (CD<<1, D<<R) 312 Rm(im, 0) = csa * dRphi(0) - ssa * dRz(0); // D derivative 313 Rm(im, 1) = csa * dRphi(1) - ssa * dRz(1); // phi0 derivative 314 Rm(im, 2) = csa * dRphi(2) - ssa * dRz(2); // C derivative 315 Rm(im, 3) = csa * dRphi(3) - ssa * dRz(3); // z0 derivative 316 Rm(im, 4) = csa * dRphi(4) - ssa * dRz(4); // cot(theta) derivative 317 } 318 if (ityp == 2) // Z type layer (Measure phi at const. Z) 319 { 320 Rm(im, 0) = 1.0; // D derivative 321 Rm(im, 1) = rh[ii]; // phi0 derivative 322 Rm(im, 2) = rh[ii] * rh[ii]; // C derivative 323 Rm(im, 3) = 0; // z0 derivative 324 Rm(im, 4) = 0; // cot(theta) derivative 325 } 326 } 327 if (nmi + 1 == 2) // Lower layer measurements 328 { 329 stri = fG->lStL(i); // Stereo angle 330 Double_t csa = TMath::Cos(stri); 331 Double_t ssa = TMath::Sin(stri); 332 sig = fG->lSgL(i); // Resolution 333 if (ityp == 1) // Barrel type layer (measure R-phi, stereo or z at const. R) 334 { 335 // Almost exact solution (CD<<1, D<<R) 336 Rm(im, 0) = csa * dRphi(0) - ssa * dRz(0); // D derivative 337 Rm(im, 1) = csa * dRphi(1) - ssa * dRz(1); // phi0 derivative 338 Rm(im, 2) = csa * dRphi(2) - ssa * dRz(2); // C derivative 339 Rm(im, 3) = csa * dRphi(3) - ssa * dRz(3); // z0 derivative 340 Rm(im, 4) = csa * dRphi(4) - ssa * dRz(4); // cot(theta) derivative 341 } 342 if (ityp == 2) // Z type layer (Measure R at const. z) 343 { 344 Rm(im, 0) = 0; // D derivative 345 Rm(im, 1) = 0; // phi0 derivative 346 Rm(im, 2) = 0; // C derivative 347 Rm(im, 3) = -1.0 / ct(); // z0 derivative 348 Rm(im, 4) = -rh[ii] / ct(); // cot(theta) derivative 349 } 350 } 351 // Derivative calculation completed 352 // Now calculate measurement error matrix 353 Int_t km = 0; 354 for (Int_t kk = 0; kk <= ii; kk++) 355 { 356 Int_t k = ih[kk]; // True layer number 357 Int_t ktyp = fG->lTyp(k); // Layer type Barrel or 358 Int_t nmeak = fG->lND(k); // # measurements in layer 359 if (fG->isMeasure(k) && nmeak > 0 &&cs[kk] > csMin) 360 { 361 for (Int_t nmk = 0; nmk < nmeak; nmk++) 362 { 363 Double_t strk = 0; 364 if (nmk + 1 == 1) strk = fG->lStU(k); // Stereo angle 365 if (nmk + 1 == 2) strk = fG->lStL(k); // Stereo angle 366 if (im == km && Res) Sm(im, km) += sig*sig; // Detector resolution on diagonal 367 // 368 // Loop on all layers below for MS contributions 369 for (Int_t jj = 0; jj < kk; jj++) 370 { 371 Double_t di = dik(ii, jj); 372 Double_t dk = dik(kk, jj); 373 Double_t ms = thms[jj]; 374 Double_t msk = ms; Double_t msi = ms; 375 if (ityp == 1) msi = ms / snt; // Barrel 376 else if (ityp == 2) msi = ms / cst; // Disk 377 if (ktyp == 1) msk = ms / snt; // Barrel 378 else if (ktyp == 2) msk = ms / cst; // Disk 379 Double_t ci = TMath::Cos(stri); Double_t si = TMath::Sin(stri); 380 Double_t ck = TMath::Cos(strk); Double_t sk = TMath::Sin(strk); 381 Sm(im, km) += di*dk*(ci*ck*ms*ms + si*sk*msi*msk); // Ms contribution 382 } 383 Sm(km, im) = Sm(im, km); 384 km++; 385 } 386 } 387 } 388 im++; mTot = im; 389 } 390 } 391 } 392 Sm.ResizeTo(mTot, mTot); 393 Rm.ResizeTo(mTot, 5); 394 395 // Calculate covariance from derivatives and measurement error matrix 396 TMatrixDSym DSmInv(mTot); DSmInv.Zero(); 397 for (Int_t id = 0; id < mTot; id++) DSmInv(id, id) = 1.0 / TMath::Sqrt(Sm(id, id)); 398 TMatrixDSym SmN = Sm.Similarity(DSmInv); // Normalize diagonal to 1 399 // Protected matrix inversions 400 TDecompChol Chl(SmN); 401 TMatrixDSym SmNinv = SmN; 402 if (Chl.Decompose()) 403 { 404 Bool_t OK; 405 SmNinv = Chl.Invert(OK); 406 } 407 else 408 { 409 cout << "SolTrack::CovCalc: Error matrix not positive definite. Recovering ...." << endl; 410 if (ntry < ntrymax) 411 { 412 SmNinv.Print(); 413 ntry++; 414 } 415 TMatrixDSym rSmN = MakePosDef(SmN); SmN = rSmN; 416 TDecompChol rChl(SmN); 417 SmNinv = SmN; 418 Bool_t OK = rChl.Decompose(); 419 SmNinv = rChl.Invert(OK); 420 } 421 Sm = SmNinv.Similarity(DSmInv); // Error matrix inverted 422 TMatrixDSym H = Sm.SimilarityT(Rm); // Calculate half Hessian 423 // Normalize before inversion 424 const Int_t Npar = 5; 425 TMatrixDSym DHinv(Npar); DHinv.Zero(); 426 for (Int_t i = 0; i < Npar; i++)DHinv(i, i) = 1.0 / TMath::Sqrt(H(i, i)); 427 TMatrixDSym Hnrm = H.Similarity(DHinv); 428 // Invert and restore 429 Hnrm.Invert(); 430 fCov = Hnrm.Similarity(DHinv); 250 // 251 // 252 // Input flags: 253 // Res = .TRUE. turn on resolution effects/Use standard resolutions 254 // .FALSE. set all resolutions to 0 255 // MS = .TRUE. include Multiple Scattering 256 // 257 // Assumptions: 258 // 1. Measurement layers can do one or two measurements 259 // 2. On disks at constant z: 260 // - Upper side measurement is phi 261 // - Lower side measurement is R 262 // 263 // Fill list of layers hit 264 // 265 Int_t ntry = 0; 266 Int_t ntrymax = 0; 267 Int_t Nhit = nHit(); // Total number of layers hit 268 Double_t *zhh = new Double_t[Nhit]; // z of hit 269 Double_t *rhh = new Double_t[Nhit]; // r of hit 270 Double_t *dhh = new Double_t[Nhit]; // distance of hit from origin 271 Int_t *ihh = new Int_t[Nhit]; // true index of layer 272 Int_t kmh; // Number of measurement layers hit 273 // 274 kmh = HitList(ihh, rhh, zhh); // hit layer list 275 Int_t mTot = 0; // Total number of measurements 276 for (Int_t i = 0; i < Nhit; i++) 277 { 278 dhh[i] = TMath::Sqrt(rhh[i] * rhh[i] + zhh[i] * zhh[i]); 279 if (fG->isMeasure(ihh[i])) mTot += fG->lND(ihh[i]); // Count number of measurements 280 } 281 // 282 // Order hit list by increasing distance from origin 283 // 284 Int_t *hord = new Int_t[Nhit]; // hit order by increasing distance from origin 285 TMath::Sort(Nhit, dhh, hord, kFALSE); // Order by increasing distance from origin 286 Double_t *zh = new Double_t[Nhit]; // d-ordered z of hit 287 Double_t *rh = new Double_t[Nhit]; // d-ordered r of hit 288 Int_t *ih = new Int_t[Nhit]; // d-ordered true index of layer 289 for (Int_t i = 0; i < Nhit; i++) 290 { 291 Int_t il = hord[i]; // Hit layer numbering 292 zh[i] = zhh[il]; 293 rh[i] = rhh[il]; 294 ih[i] = ihh[il]; 295 } 296 // 297 // Store interdistances and multiple scattering angles 298 // 299 Double_t sn2t = 1.0 / (1 + ct()*ct()); //sin^2 theta of track 300 Double_t cs2t = 1.0 - sn2t; //cos^2 theta 301 Double_t snt = TMath::Sqrt(sn2t); // sin theta 302 Double_t cst = TMath::Sqrt(cs2t); // cos theta 303 Double_t px0 = pt() * TMath::Cos(phi0()); // Momentum at minimum approach 304 Double_t py0 = pt() * TMath::Sin(phi0()); 305 Double_t pz0 = pt() * ct(); 306 // 307 TMatrixDSym dik(Nhit); dik.Zero(); // Distances between layers 308 Double_t *thms = new Double_t[Nhit]; // Scattering angles/plane 309 Double_t *cs = new Double_t[Nhit]; // Cosine of angle with layer normal 310 for (Int_t ii = 0; ii < Nhit; ii++) // Hit layer loop 311 { 312 Int_t i = ih[ii]; // Get true layer number 313 Double_t B = C()*TMath::Sqrt((rh[ii] * rh[ii] - D()*D()) / (1 + 2 * C()*D())); 314 Double_t pxi = px0*(1-2*B*B)-2*py0*B*TMath::Sqrt(1-B*B); // Momentum at scattering layer 315 Double_t pyi = py0*(1-2*B*B)+2*px0*B*TMath::Sqrt(1-B*B); 316 Double_t pzi = pz0; 317 Double_t ArgRp = (rh[ii]*C() + (1 + C() * D())*D() / rh[ii]) / (1 + 2 * C()*D()); 318 Double_t phi = phi0() + TMath::ASin(ArgRp); 319 Double_t nx = TMath::Cos(phi); // Barrel layer normal 320 Double_t ny = TMath::Sin(phi); 321 Double_t nz = 0.0; 322 if (fG->lTyp(i) == 2) // this is Z layer 323 { 324 nx = 0.0; 325 ny = 0.0; 326 nz = 1.0; 327 } 328 Double_t corr = (pxi*nx + pyi * ny + pzi * nz) / p(); 329 cs[ii] = corr; 330 Double_t Rlf = fG->lTh(i) / (corr*fG->lX0(i)); // Rad. length fraction 331 thms[ii] = 0.0136*TMath::Sqrt(Rlf)*(1.0 + 0.038*TMath::Log(Rlf)) / p(); // MS angle 332 if (!MS)thms[ii] = 0; 333 // 334 for (Int_t kk = 0; kk < ii; kk++) // Fill distances between layers 335 { 336 //dik(ii, kk) = TMath::Sqrt(pow(rh[ii] - rh[kk], 2) + pow(zh[ii] - zh[kk], 2)); 337 Double_t Ci = C(); 338 dik(ii, kk) = (TMath::ASin(Ci*rh[ii])-TMath::ASin(Ci*rh[kk]))/(Ci*snt); 339 dik(kk, ii) = dik(ii, kk); 340 } 341 // 342 // Store momentum components for resolution correction cosines 343 // 344 Double_t *pRi = new Double_t[Nhit]; 345 pRi[ii] = TMath::Abs(pxi * TMath::Cos(phi) + pyi * TMath::Sin(phi)); // Radial component 346 Double_t *pPhi = new Double_t[Nhit]; 347 pPhi[ii] = TMath::Abs(pxi * TMath::Sin(phi) - pyi * TMath::Cos(phi)); // Phi component 348 } 349 // 350 // Fill measurement covariance 351 // 352 Int_t *mTl = new Int_t[mTot]; // Pointer from measurement number to true layer number 353 TMatrixDSym Sm(mTot); Sm.Zero(); // Measurement covariance 354 TMatrixD Rm(mTot, 5); // Derivative matrix 355 Int_t im = 0; 356 // 357 // Fill derivatives and error matrix with MS 358 // 359 Double_t AngMax = 90.; Double_t AngMx = AngMax * TMath::Pi() / 180.; 360 Double_t csMin = TMath::Cos(AngMx); // Set maximum angle wrt normal 361 // 362 for (Int_t ii = 0; ii < Nhit; ii++) 363 { 364 Int_t i = ih[ii]; // True layer number 365 Int_t ityp = fG->lTyp(i); // Layer type Barrel or Z 366 Int_t nmeai = fG->lND(i); // # measurements in layer 367 if (fG->isMeasure(i) && nmeai >0 && cs[ii] > csMin) 368 { 369 Double_t Di = D(); // Get true track parameters 370 Double_t phi0i = phi0(); 371 Double_t Ci = C(); 372 Double_t z0i = z0(); 373 Double_t cti = ct(); 374 // 375 Double_t Ri = rh[ii]; 376 Double_t ArgRp = (Ri*Ci + (1 + Ci * Di)*Di / Ri) / (1 + 2 * Ci*Di); 377 Double_t ArgRz = Ci * TMath::Sqrt((Ri*Ri - Di * Di) / (1 + 2 * Ci*Di)); 378 TVectorD dRphi(5); dRphi.Zero(); // R-phi derivatives @ const. R 379 TVectorD dRz(5); dRz.Zero(); // z derivatives @ const. R 380 // 381 // Derivative overflow protection 382 Double_t dMin = 0.8; 383 dRphi(0) = (1 - 2 * Ci*Ci*Ri*Ri) / 384 TMath::Max(dMin,TMath::Sqrt(1 - ArgRp * ArgRp)); // D derivative 385 dRphi(1) = Ri; // phi0 derivative 386 dRphi(2) = Ri * Ri / 387 TMath::Max(dMin,TMath::Sqrt(1 - ArgRp * ArgRp)); // C derivative 388 dRphi(3) = 0.0; // z0 derivative 389 dRphi(4) = 0.0; // cot(theta) derivative 390 // 391 dRz(0) = -cti * Di / 392 (Ri*TMath::Max(dMin,TMath::Sqrt(1 - Ci * Ci*Ri*Ri))); // D 393 dRz(1) = 0.0; // Phi0 394 dRz(2) = cti * (Ri*Ci / TMath::Sqrt(1-Ri*Ri*Ci*Ci) - // C 395 TMath::ASin(Ri*Ci)) / (Ci*Ci); 396 dRz(3) = 1.0; // Z0 397 dRz(4) = TMath::ASin(ArgRz) / Ci; // Cot(theta) 398 // 399 for (Int_t nmi = 0; nmi < nmeai; nmi++) 400 { 401 mTl[im] = i; 402 Double_t stri = 0; 403 Double_t sig = 0; 404 if (nmi + 1 == 1) // Upper layer measurements 405 { 406 stri = fG->lStU(i); // Stereo angle 407 Double_t csa = TMath::Cos(stri); 408 Double_t ssa = TMath::Sin(stri); 409 sig = fG->lSgU(i); // Resolution 410 if (ityp == 1) // Barrel type layer (Measure R-phi, stereo or z at const. R) 411 { 412 // 413 // Almost exact solution (CD<<1, D<<R) 414 Rm(im, 0) = csa * dRphi(0) - ssa * dRz(0); // D derivative 415 Rm(im, 1) = csa * dRphi(1) - ssa * dRz(1); // phi0 derivative 416 Rm(im, 2) = csa * dRphi(2) - ssa * dRz(2); // C derivative 417 Rm(im, 3) = csa * dRphi(3) - ssa * dRz(3); // z0 derivative 418 Rm(im, 4) = csa * dRphi(4) - ssa * dRz(4); // cot(theta) derivative 419 } 420 if (ityp == 2) // Z type layer (Measure phi at const. Z) 421 { 422 Rm(im, 0) = 1.0; // D derivative 423 Rm(im, 1) = rh[ii]; // phi0 derivative 424 Rm(im, 2) = rh[ii] * rh[ii]; // C derivative 425 Rm(im, 3) = 0; // z0 derivative 426 Rm(im, 4) = 0; // cot(theta) derivative 427 } 428 } 429 if (nmi + 1 == 2) // Lower layer measurements 430 { 431 stri = fG->lStL(i); // Stereo angle 432 Double_t csa = TMath::Cos(stri); 433 Double_t ssa = TMath::Sin(stri); 434 sig = fG->lSgL(i); // Resolution 435 if (ityp == 1) // Barrel type layer (measure R-phi, stereo or z at const. R) 436 { 437 // 438 // Almost exact solution (CD<<1, D<<R) 439 Rm(im, 0) = csa * dRphi(0) - ssa * dRz(0); // D derivative 440 Rm(im, 1) = csa * dRphi(1) - ssa * dRz(1); // phi0 derivative 441 Rm(im, 2) = csa * dRphi(2) - ssa * dRz(2); // C derivative 442 Rm(im, 3) = csa * dRphi(3) - ssa * dRz(3); // z0 derivative 443 Rm(im, 4) = csa * dRphi(4) - ssa * dRz(4); // cot(theta) derivative 444 } 445 if (ityp == 2) // Z type layer (Measure R at const. z) 446 { 447 Rm(im, 0) = 0; // D derivative 448 Rm(im, 1) = 0; // phi0 derivative 449 Rm(im, 2) = 0; // C derivative 450 Rm(im, 3) = -1.0 / ct(); // z0 derivative 451 Rm(im, 4) = -rh[ii] / ct(); // cot(theta) derivative 452 } 453 } 454 // Derivative calculation completed 455 // 456 // Now calculate measurement error matrix 457 // 458 Int_t km = 0; 459 for (Int_t kk = 0; kk <= ii; kk++) 460 { 461 Int_t k = ih[kk]; // True layer number 462 Int_t ktyp = fG->lTyp(k); // Layer type Barrel or 463 Int_t nmeak = fG->lND(k); // # measurements in layer 464 if (fG->isMeasure(k) && nmeak > 0 &&cs[kk] > csMin) 465 { 466 for (Int_t nmk = 0; nmk < nmeak; nmk++) 467 { 468 Double_t strk = 0; 469 if (nmk + 1 == 1) strk = fG->lStU(k); // Stereo angle 470 if (nmk + 1 == 2) strk = fG->lStL(k); // Stereo angle 471 if (im == km && Res) Sm(im, km) += sig*sig; // Detector resolution on diagonal 472 // 473 // Loop on all layers below for MS contributions 474 for (Int_t jj = 0; jj < kk; jj++) 475 { 476 Double_t di = dik(ii, jj); 477 Double_t dk = dik(kk, jj); 478 Double_t ms = thms[jj]; 479 Double_t msk = ms; Double_t msi = ms; 480 if (ityp == 1) msi = ms / snt; // Barrel 481 else if (ityp == 2) msi = ms / cst; // Disk 482 if (ktyp == 1) msk = ms / snt; // Barrel 483 else if (ktyp == 2) msk = ms / cst; // Disk 484 Double_t ci = TMath::Cos(stri); Double_t si = TMath::Sin(stri); 485 Double_t ck = TMath::Cos(strk); Double_t sk = TMath::Sin(strk); 486 Sm(im, km) += di*dk*(ci*ck*ms*ms + si*sk*msi*msk); // Ms contribution 487 } 488 // 489 Sm(km, im) = Sm(im, km); 490 km++; 491 } 492 } 493 } 494 im++; mTot = im; 495 } 496 } 497 } 498 Sm.ResizeTo(mTot, mTot); 499 Rm.ResizeTo(mTot, 5); 500 // 501 //********************************************************************** 502 // Calculate covariance from derivatives and measurement error matrix * 503 //********************************************************************** 504 // 505 TMatrixDSym DSmInv(mTot); DSmInv.Zero(); 506 for (Int_t id = 0; id < mTot; id++) DSmInv(id, id) = 1.0 / TMath::Sqrt(Sm(id, id)); 507 TMatrixDSym SmN = Sm.Similarity(DSmInv); // Normalize diagonal to 1 508 //SmN.Invert(); 509 // 510 // Protected matrix inversions 511 // 512 TDecompChol Chl(SmN); 513 TMatrixDSym SmNinv = SmN; 514 if (Chl.Decompose()) 515 { 516 Bool_t OK; 517 SmNinv = Chl.Invert(OK); 518 } 519 else 520 { 521 cout << "SolTrack::CovCalc: Error matrix not positive definite. Recovering ...." << endl; 522 if (ntry < ntrymax) 523 { 524 SmNinv.Print(); 525 ntry++; 526 } 527 TMatrixDSym rSmN = MakePosDef(SmN); SmN = rSmN; 528 TDecompChol rChl(SmN); 529 SmNinv = SmN; 530 Bool_t OK = rChl.Decompose(); 531 SmNinv = rChl.Invert(OK); 532 } 533 Sm = SmNinv.Similarity(DSmInv); // Error matrix inverted 534 TMatrixDSym H = Sm.SimilarityT(Rm); // Calculate half Hessian 535 // Normalize before inversion 536 const Int_t Npar = 5; 537 TMatrixDSym DHinv(Npar); DHinv.Zero(); 538 for (Int_t i = 0; i < Npar; i++)DHinv(i, i) = 1.0 / TMath::Sqrt(H(i, i)); 539 TMatrixDSym Hnrm = H.Similarity(DHinv); 540 // Invert and restore 541 Hnrm.Invert(); 542 fCov = Hnrm.Similarity(DHinv); 431 543 } 432 544 … … 434 546 TMatrixDSym SolTrack::MakePosDef(TMatrixDSym NormMat) 435 547 { 436 // Input: symmetric matrix with 1's on diagonal 437 // Output: positive definite matrix with 1's on diagonal 438 439 // Default return value 440 TMatrixDSym rMatN = NormMat; 441 // Check the diagonal 442 Bool_t Check = kFALSE; 443 Int_t Size = NormMat.GetNcols(); 444 for (Int_t i = 0; i < Size; i++)if (TMath::Abs(NormMat(i, i) - 1.0)>1.0E-15)Check = kTRUE; 445 if (Check) 446 { 447 cout << "SolTrack::MakePosDef: input matrix doesn't have 1 on diagonal. Abort." << endl; 448 return rMatN; 449 } 450 // Diagonalize matrix 451 TMatrixDSymEigen Eign(NormMat); 452 TMatrixD U = Eign.GetEigenVectors(); 453 TVectorD lambda = Eign.GetEigenValues(); 454 // Reset negative eigenvalues to small positive value 455 TMatrixDSym D(Size); D.Zero(); Double_t eps = 1.0e-13; 456 for (Int_t i = 0; i < Size; i++) 457 { 458 D(i, i) = lambda(i); 459 if (lambda(i) <= 0) D(i, i) = eps; 460 } 461 // Rebuild matrix 462 TMatrixD Ut(TMatrixD::kTransposed, U); 463 TMatrixD rMat = (U*D)*Ut; // Now it is positive defite 464 // Restore all ones on diagonal 465 for (Int_t i1 = 0; i1 < Size; i1++) 466 { 467 Double_t rn1 = TMath::Sqrt(rMat(i1, i1)); 468 for (Int_t i2 = 0; i2 <= i1; i2++) 469 { 470 Double_t rn2 = TMath::Sqrt(rMat(i2, i2)); 471 rMatN(i1, i2) = 0.5*(rMat(i1, i2) + rMat(i2, i1)) / (rn1*rn2); 472 rMatN(i2, i1) = rMatN(i1, i2); 473 } 474 } 475 return rMatN; 476 } 548 // 549 // Input: symmetric matrix with 1's on diagonal 550 // Output: positive definite matrix with 1's on diagonal 551 // 552 // Default return value 553 TMatrixDSym rMatN = NormMat; 554 // Check the diagonal 555 Bool_t Check = kFALSE; 556 Int_t Size = NormMat.GetNcols(); 557 for (Int_t i = 0; i < Size; i++)if (TMath::Abs(NormMat(i, i) - 1.0)>1.0E-15)Check = kTRUE; 558 if (Check) 559 { 560 cout << "SolTrack::MakePosDef: input matrix doesn ot have 1 on diagonal. Abort." << endl; 561 return rMatN; 562 } 563 // 564 // Diagonalize matrix 565 TMatrixDSymEigen Eign(NormMat); 566 TMatrixD U = Eign.GetEigenVectors(); 567 TVectorD lambda = Eign.GetEigenValues(); 568 // Reset negative eigenvalues to small positive value 569 TMatrixDSym D(Size); D.Zero(); Double_t eps = 1.0e-13; 570 for (Int_t i = 0; i < Size; i++) 571 { 572 D(i, i) = lambda(i); 573 if (lambda(i) <= 0) D(i, i) = eps; 574 } 575 //Rebuild matrix 576 TMatrixD Ut(TMatrixD::kTransposed, U); 577 TMatrixD rMat = (U*D)*Ut; // Now it is positive defite 578 // Restore all ones on diagonal 579 for (Int_t i1 = 0; i1 < Size; i1++) 580 { 581 Double_t rn1 = TMath::Sqrt(rMat(i1, i1)); 582 for (Int_t i2 = 0; i2 <= i1; i2++) 583 { 584 Double_t rn2 = TMath::Sqrt(rMat(i2, i2)); 585 rMatN(i1, i2) = 0.5*(rMat(i1, i2) + rMat(i2, i1)) / (rn1*rn2); 586 rMatN(i2, i1) = rMatN(i1, i2); 587 } 588 } 589 return rMatN; 590 } -
external/TrackCovariance/SolTrack.h
ra3261d7 r13331dc 3 3 4 4 #include <TMath.h> 5 #include <TVector3.h> 5 6 #include <TMatrixDSym.h> 6 7 … … 24 25 // Constructors 25 26 SolTrack(Double_t *x, Double_t *p, SolGeom *G); 27 SolTrack(TVector3 x, TVector3 p, SolGeom* G); 26 28 SolTrack(Double_t D, Double_t phi0, Double_t C, Double_t z0, Double_t ct, SolGeom *G); 27 29 // Destructor … … 57 59 // Track hit management 58 60 Int_t nHit(); 61 Int_t nmHit(); 59 62 Bool_t HitLayer(Int_t Layer, Double_t &R, Double_t &phi, Double_t &zz); 60 63 Int_t HitList(Int_t *&ihh, Double_t *&rhh, Double_t *&zhh); 64 Int_t HitListXYZ(Int_t *&ihh, Double_t *&Xh, Double_t *&Yh, Double_t *&Zh); 65 61 66 // Make normalized matrix positive definite 62 67 TMatrixDSym MakePosDef(TMatrixDSym NormMat); -
external/fastjet/ActiveAreaSpec.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ActiveAreaSpec.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ActiveAreaSpec.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/AreaDefinition.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: AreaDefinition.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: AreaDefinition.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/AreaDefinition.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: AreaDefinition.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: AreaDefinition.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2006-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/BasicRandom.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: BasicRandom.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: BasicRandom.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CircularRange.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CircularRange.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: CircularRange.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClosestPair2D.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClosestPair2D.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequence.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 254 254 // in a similar way. 255 255 if (_Rparam > pi) { 256 257 258 259 256 // choose a value that ensures that back-to-back particles will 257 // always recombine 258 //_R2 = 4.0000000000001; 259 _R2 = 2 * ( 3.0 + cos(_Rparam) ); 260 260 } else { 261 261 _R2 = 2 * ( 1.0 - cos(_Rparam) ); 262 262 } 263 263 _invR2 = 1.0/_R2; … … 439 439 (*ostr) << "# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210]. \n"; 440 440 (*ostr) << "# \n"; 441 (*ostr) << "# FastJet is provided without warranty under the terms of the GNU GPLv2.\n";441 (*ostr) << "# FastJet is provided without warranty under the GNU GPL v2 or higher. \n"; 442 442 (*ostr) << "# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code"; 443 443 #ifndef DROP_CGAL -
external/fastjet/ClusterSequence.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: ClusterSequence.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: ClusterSequence.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence1GhostPassiveArea.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence1GhostPassiveArea.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequence1GhostPassiveArea.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence1GhostPassiveArea.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence1GhostPassiveArea.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequence1GhostPassiveArea.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveArea.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveArea.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequenceActiveArea.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveArea.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveArea.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveArea.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceArea.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceArea.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequenceArea.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2006-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceArea.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceArea.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2006-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceArea.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceAreaBase.cc
ra3261d7 r13331dc 1 1 2 2 //FJSTARTHEADER 3 // $Id: ClusterSequenceAreaBase.cc 4 354 2018-04-22 07:12:37Z salam$4 // 5 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez3 // $Id: ClusterSequenceAreaBase.cc 4442 2020-05-05 07:50:11Z soyez $ 4 // 5 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceAreaBase.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceAreaBase.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceAreaBase.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequencePassiveArea.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequencePassiveArea.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequencePassiveArea.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequencePassiveArea.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequencePassiveArea.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequencePassiveArea.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceStructure.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceStructure.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceStructure.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceStructure.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceStructure.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceStructure.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceVoronoiArea.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceVoronoiArea.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2006-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceVoronoiArea.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceVoronoiArea.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceVoronoiArea.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequenceVoronoiArea.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceWithArea.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceWithArea.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequenceWithArea.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2006-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_CP2DChan.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_CP2DChan.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequence_CP2DChan.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_Delaunay.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_Delaunay.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequence_Delaunay.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_DumbN3.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_DumbN3.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequence_DumbN3.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_N2.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_N2.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequence_N2.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_TiledN2.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_TiledN2.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClusterSequence_TiledN2.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CompositeJetStructure.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CompositeJetStructure.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: CompositeJetStructure.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CompositeJetStructure.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CompositeJetStructure.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: CompositeJetStructure.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn2piCylinder.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Dnn2piCylinder.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn2piCylinder.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn3piCylinder.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Dnn3piCylinder.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Dnn3piCylinder.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn4piCylinder.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Dnn4piCylinder.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Dnn4piCylinder.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/DnnPlane.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: DnnPlane.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Error.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Error.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Error.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Error.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: Error.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: Error.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/FunctionOfPseudoJet.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: FunctionOfPseudoJet.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: FunctionOfPseudoJet.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/FunctionOfPseudoJet.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: FunctionOfPseudoJet.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: FunctionOfPseudoJet.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/GhostedAreaSpec.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: GhostedAreaSpec.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: GhostedAreaSpec.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/GhostedAreaSpec.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: GhostedAreaSpec.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: GhostedAreaSpec.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/JetDefinition.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: JetDefinition.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JetDefinition.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/JetDefinition.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: JetDefinition.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: JetDefinition.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling25.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling25.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: LazyTiling25.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: LazyTiling9.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9Alt.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9Alt.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: LazyTiling9Alt.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9SeparateGhosts.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9SeparateGhosts.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: LazyTiling9SeparateGhosts.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LimitedWarning.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: LimitedWarning.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: LimitedWarning.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LimitedWarning.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: LimitedWarning.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: LimitedWarning.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/MinHeap.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: MinHeap.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: MinHeap.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 110 110 111 111 // now compare current location to children (at 2*loc+1, 2*loc+2) 112 ValueLoc * child = &(_heap[2*loc+1]); 112 //ValueLoc * child = &(_heap[2*loc+1]); 113 // GPS 2020-04-07: changed the way the following line 114 // is expressed, so as to work around issue reported by 115 // Andrii Verbyitskyi where compilation with gcc's 116 // -D_GLIBCXX_ASSERTIONS=1 -D_GLIBCXX_SANITIZE_VECTOR=1 117 // results in a crash because the compiler thinks we 118 // are accessing the vector at a location that is sometimes 119 // invalid, whereas we are just getting the address 120 ValueLoc * child = &(_heap[0]) + (2*loc+1); 113 121 if (child < heap_end && child->minloc->value < here->minloc->value ) { 114 122 here->minloc = child->minloc; -
external/fastjet/NNBase.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNBase.hh 4 355 2018-04-22 15:38:54Z salam$5 // $Id: NNBase.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2016-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2016-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNFJN2Plain.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNFJN2Plain.hh 4 355 2018-04-22 15:38:54Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: NNFJN2Plain.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNFJN2Tiled.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNFJN2Tiled.hh 4 355 2018-04-22 15:38:54Z salam$5 // $Id: NNFJN2Tiled.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2016-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2016-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNH.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNH.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: NNH.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/PseudoJet.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: PseudoJet.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/PseudoJet.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: PseudoJet.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/PseudoJetStructureBase.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: PseudoJetStructureBase.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: PseudoJetStructureBase.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/PseudoJetStructureBase.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: PseudoJetStructureBase.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: PseudoJetStructureBase.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/RangeDefinition.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: RangeDefinition.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: RangeDefinition.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RangeDefinition.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: RangeDefinition.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: RangeDefinition.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RectangularGrid.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: RectangularGrid.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: RectangularGrid.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RectangularGrid.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: RectangularGrid.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: RectangularGrid.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/Selector.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Selector.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Selector.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Selector.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: Selector.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2009-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Selector.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/SharedPtr.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: SharedPtr.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: SharedPtr.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/TilingExtent.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: TilingExtent.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: TilingExtent.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Voronoi.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Voronoi.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Voronoi.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/WrappedStructure.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: WrappedStructure.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: WrappedStructure.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/config_auto.h
ra3261d7 r13331dc 87 87 /* #undef HAVE_EXPLICIT_FOR_OPERATORS */ 88 88 89 /* Define to 1 if you have the <gmp.h> header file. */ 90 /* #undef HAVE_GMP_H */ 91 89 92 /* compiler supports GNU c++ deprecated attribute */ 90 93 #ifndef FASTJET_HAVE_GNUCXX_DEPRECATED … … 107 110 #endif 108 111 112 /* Define to 1 if you have the <mpfr.h> header file. */ 113 /* #undef HAVE_MPFR_H */ 114 109 115 /* compiler supports the "override" keyword */ 110 116 /* #undef HAVE_OVERRIDE */ … … 167 173 /* Define to the full name and version of this package. */ 168 174 #ifndef FASTJET_PACKAGE_STRING 169 #define FASTJET_PACKAGE_STRING "FastJet 3.3. 2"175 #define FASTJET_PACKAGE_STRING "FastJet 3.3.4" 170 176 #endif 171 177 … … 182 188 /* Define to the version of this package. */ 183 189 #ifndef FASTJET_PACKAGE_VERSION 184 #define FASTJET_PACKAGE_VERSION "3.3. 2"190 #define FASTJET_PACKAGE_VERSION "3.3.4" 185 191 #endif 186 192 … … 192 198 /* Version number of package */ 193 199 #ifndef FASTJET_VERSION 194 #define FASTJET_VERSION "3.3. 2"200 #define FASTJET_VERSION "3.3.4" 195 201 #endif 196 202 … … 207 213 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 208 214 #ifndef FASTJET_VERSION_NUMBER 209 #define FASTJET_VERSION_NUMBER 3030 2215 #define FASTJET_VERSION_NUMBER 30304 210 216 #endif 211 217 212 218 /* Patch version of this package */ 213 219 #ifndef FASTJET_VERSION_PATCHLEVEL 214 #define FASTJET_VERSION_PATCHLEVEL 2220 #define FASTJET_VERSION_PATCHLEVEL 4 215 221 #endif 216 222 -
external/fastjet/config_raw.h
ra3261d7 r13331dc 57 57 /* #undef HAVE_EXPLICIT_FOR_OPERATORS */ 58 58 59 /* Define to 1 if you have the <gmp.h> header file. */ 60 /* #undef HAVE_GMP_H */ 61 59 62 /* compiler supports GNU c++ deprecated attribute */ 60 63 #define HAVE_GNUCXX_DEPRECATED /**/ … … 68 71 /* Define to 1 if you have the <memory.h> header file. */ 69 72 #define HAVE_MEMORY_H 1 73 74 /* Define to 1 if you have the <mpfr.h> header file. */ 75 /* #undef HAVE_MPFR_H */ 70 76 71 77 /* compiler supports the "override" keyword */ … … 106 112 107 113 /* Define to the full name and version of this package. */ 108 #define PACKAGE_STRING "FastJet 3.3. 2"114 #define PACKAGE_STRING "FastJet 3.3.4" 109 115 110 116 /* Define to the one symbol short name of this package. */ … … 115 121 116 122 /* Define to the version of this package. */ 117 #define PACKAGE_VERSION "3.3. 2"123 #define PACKAGE_VERSION "3.3.4" 118 124 119 125 /* Define to 1 if you have the ANSI C header files. */ … … 121 127 122 128 /* Version number of package */ 123 #define VERSION "3.3. 2"129 #define VERSION "3.3.4" 124 130 125 131 /* Major version of this package */ … … 130 136 131 137 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 132 #define VERSION_NUMBER 3030 2138 #define VERSION_NUMBER 30304 133 139 134 140 /* Patch version of this package */ 135 #define VERSION_PATCHLEVEL 2141 #define VERSION_PATCHLEVEL 4 136 142 137 143 /* Pre-release version of this package */ -
external/fastjet/config_win.h
ra3261d7 r13331dc 1 #define FASTJET_PACKAGE_STRING "FastJet 3.3. 2"2 #define FASTJET_PACKAGE_VERSION "3.3. 2"3 #define FASTJET_VERSION "3.3. 2"1 #define FASTJET_PACKAGE_STRING "FastJet 3.3.4" 2 #define FASTJET_PACKAGE_VERSION "3.3.4" 3 #define FASTJET_VERSION "3.3.4" 4 4 #define FASTJET_VERSION_MAJOR 3 5 5 #define FASTJET_VERSION_MINOR 3 6 #define FASTJET_VERSION_PATCHLEVEL 27 #define FASTJET_VERSION_NUMBER 3030 26 #define FASTJET_VERSION_PATCHLEVEL 4 7 #define FASTJET_VERSION_NUMBER 30304 8 8 9 9 /* The ATLASCone plugin is disabled by default*/ -
external/fastjet/contribs/RecursiveTools/AUTHORS
ra3261d7 r13331dc 28 28 Recursive Soft Drop. 29 29 Frederic A. Dreyer, Lina Necib, Gregory Soyez, and Jesse Thaler 30 arXiv:1804.0365730 JHEP 1806:093 (2018), arXiv:1804.03657 31 31 -
external/fastjet/contribs/RecursiveTools/ChangeLog
ra3261d7 r13331dc 1 2018-11-02 Jesse Thaler <jthaler@jthaler.net> 2 3 * AUTHORS: updated journal for RecursiveSoftDrop 4 5 2018-10-30 Gregory Soyez <soyez@fastjet.fr> 6 7 * RecursiveSoftDrop.cc: 8 fixed a few typos in comments 9 10 * RecursiveSoftDrop.hh: 11 used the native FJ Recluster tool when available (did create 12 conflicts in some cases) 13 14 2018-06-18 Jesse Thaler <jthaler@jthaler.net> 15 16 * README 17 Fixed incorrect order of zcut and beta in the README for SoftDrop example. 18 1 19 2018-05-29 Jesse Thaler <jthaler@jthaler.net> 2 20 -
external/fastjet/contribs/RecursiveTools/NEWS
ra3261d7 r13331dc 1 2020/03/03: release of version 2.0.0 with updated readme 2 1 3 2018/05/31: release of version 2.0.0-beta2 with corrected syntax 2 4 -
external/fastjet/contribs/RecursiveTools/README
ra3261d7 r13331dc 100 100 A default SoftDrop groomer can be created via: 101 101 102 double beta = 2.0; 102 103 double z_cut = 0.10; 103 double beta = 2.0;104 104 double R0 = 1.0; // this is the default value 105 SoftDrop sd( z_cut,beta,R0);105 SoftDrop sd(beta,z_cut,R0); 106 106 107 107 and acts on a desired jet as … … 137 137 further substructure is found (i.e. corresponds to taking N=infinity). 138 138 139 double beta = 2.0; 139 140 double z_cut = 0.10; 140 double beta = 2.0;141 141 double R0 = 1.0; // this is the default value 142 142 int N = -1; 143 RecursiveSoftDrop rsd( z_cut, beta, N, R0);143 RecursiveSoftDrop rsd(beta, z_cut, N, R0); 144 144 145 145 One then acts on a jet as … … 217 217 not met, only the hardest of the two objects is kept for further 218 218 clustering and the softest is rejected. 219 220 BottomUpSoftDrop takes the same arguments as SoftDrop, and a groomer 221 can be created with: 222 223 double beta = 2.0; 224 double z_cut = 0.10; 225 double R0 = 1.0; // this is the default value 226 BottomUpSoftDrop busd(beta,z_cut,R0); 227 228 One then acts on a jet as 229 230 PseudoJet groomed_jet = busd(jet) 219 231 220 232 ------------------------------------------------------------------------ -
external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.cc
ra3261d7 r13331dc 1 // $Id: RecursiveSoftDrop.cc 11 11 2018-04-04 10:06:11Z gsoyez $1 // $Id: RecursiveSoftDrop.cc 1192 2018-10-30 16:08:36Z gsoyez $ 2 2 // 3 3 // Copyright (c) 2017-, Gavin P. Salam, Gregory Soyez, Jesse Thaler, … … 148 148 const vector<PseudoJet> &cs_jets = cs->jets(); 149 149 150 // initiali ze counter to 1 subjet (i.e. the full ca_jet)150 // initialise counter to 1 subjet (i.e. the full ca_jet) 151 151 int n_tagged = 0; 152 152 int max_njet = ca_jet.constituents().size(); … … 163 163 164 164 // create a priority queue containing the subjets and a comparison definition 165 // initialise to the full ca_jet166 165 priority_queue<internal_recursive_softdrop::RSDHistoryElement*, vector<internal_recursive_softdrop::RSDHistoryElement*>, internal_recursive_softdrop::OrderRSDHistoryElements> active_branches; 167 166 active_branches.push(& (history[0])); … … 169 168 PseudoJet parent, piece1, piece2; 170 169 double sym, mu2; 171 172 // which R0 to use173 //double R0sqr = _R0sqr;174 170 175 171 // loop over C/A tree until we reach the appropriate number of subjets 176 172 while ((continue_grooming(n_tagged)) && (active_branches.size())) { 177 // get the element corresponding to the max dR 178 // and the associated PJ 173 // get the element corresponding to the max dR and the associated PJ 179 174 internal_recursive_softdrop::RSDHistoryElement * elm = active_branches.top(); 180 175 PseudoJet parent = cs_jets[cs_history[elm->current_in_ca_tree].jetp_index]; … … 217 212 active_branches.pop(); 218 213 // tagging failed and the softest branch should be dropped 219 // keep track of what has een groomed away214 // keep track of what has been groomed away 220 215 max_njet -= piece2.constituents().size(); 221 216 elm->dropped_delta_R .push_back((elm->theta_squared >= 0) ? sqrt(elm->theta_squared) : -sqrt(elm->theta_squared)); … … 223 218 elm->dropped_mu .push_back((mu2>=0) ? sqrt(mu2) : -sqrt(mu2)); 224 219 225 // keep the hardest b hanch in the recursion220 // keep the hardest branch in the recursion 226 221 elm->reset(piece1, this); 227 222 active_branches.push(elm); … … 256 251 const internal_recursive_softdrop::RSDHistoryElement & elm = history[history_index]; 257 252 258 // two kinds of events: either just a final leave, pote itiallywith grooming253 // two kinds of events: either just a final leave, potentially with grooming 259 254 // or a brandhing (also with potential grooming at the end) 260 255 if (elm.child1_in_history<0){ 261 // this is a leaf, i.e. with no further su structure256 // this is a leaf, i.e. with no further substructure 262 257 PseudoJet & subjet = mapped_to_history[history_index] 263 258 = cs_jets[cs_history[elm.current_in_ca_tree].jetp_index]; … … 303 298 const vector<PseudoJet> &cs_jets = cs->jets(); 304 299 305 // initiali ze counter to 1 subjet (i.e. the full ca_jet)300 // initialise counter to 1 subjet (i.e. the full ca_jet) 306 301 int n_depth = 0; 307 302 int max_njet = ca_jet.constituents().size(); … … 319 314 320 315 // create a priority queue containing the subjets and a comparison definition 321 // initialize counter to 1 subjet (i.e. the full ca_jet)322 316 list<internal_recursive_softdrop::RSDHistoryElement*> active_branches; 323 317 active_branches.push_back(& (history[0])); … … 329 323 list<internal_recursive_softdrop::RSDHistoryElement*>::iterator hist_it=active_branches.begin(); 330 324 while (hist_it!=active_branches.end()){ 331 // get the element corresponding to the max dR 332 // and the associated PJ 325 // get the element corresponding to the max dR and the associated PJ 333 326 internal_recursive_softdrop::RSDHistoryElement * elm = (*hist_it); 334 327 PseudoJet parent = cs_jets[cs_history[elm->current_in_ca_tree].jetp_index]; -
external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.hh
ra3261d7 r13331dc 1 // $Id: RecursiveSoftDrop.hh 1 082 2017-10-10 12:00:13Z gsoyez $1 // $Id: RecursiveSoftDrop.hh 1192 2018-10-30 16:08:36Z gsoyez $ 2 2 // 3 3 // Copyright (c) 2014-, Gavin P. Salam, Gregory Soyez, Jesse Thaler, … … 24 24 #define __RECURSIVESOFTDROP_HH__ 25 25 26 // we'll use the native FJ class for reculstering if available 27 #if FASTJET_VERSION_NUMBER >= 30100 28 #include "fastjet/tools/Recluster.hh" 29 #else 26 30 #include "Recluster.hh" 31 #endif 27 32 #include "SoftDrop.hh" 28 33 #include "fastjet/WrappedStructure.hh" -
external/fastjet/internal/ClosestPair2D.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClosestPair2D.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/ClosestPair2DBase.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2DBase.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ClosestPair2DBase.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/ClusterSequence_N2.icc
ra3261d7 r13331dc 7 7 // $Id: ClusterSequence_N2.cc 1351 2009-01-09 18:03:03Z salam $ 8 8 // 9 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn2piCylinder.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Dnn2piCylinder.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn2piCylinder.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn3piCylinder.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Dnn3piCylinder.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn3piCylinder.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn4piCylinder.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Dnn4piCylinder.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Dnn4piCylinder.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/DnnPlane.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: DnnPlane.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/DynamicNearestNeighbours.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: DynamicNearestNeighbours.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: DynamicNearestNeighbours.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/IsBase.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: IsBase.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: IsBase.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling25.hh
ra3261d7 r13331dc 5 5 6 6 //FJSTARTHEADER 7 // $Id: LazyTiling25.hh 4 354 2018-04-22 07:12:37Z salam$7 // $Id: LazyTiling25.hh 4442 2020-05-05 07:50:11Z soyez $ 8 8 // 9 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9.hh
ra3261d7 r13331dc 5 5 6 6 //FJSTARTHEADER 7 // $Id: LazyTiling9.hh 4 354 2018-04-22 07:12:37Z salam$8 // 9 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // $Id: LazyTiling9.hh 4442 2020-05-05 07:50:11Z soyez $ 8 // 9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9Alt.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9Alt.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: LazyTiling9Alt.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9SeparateGhosts.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9SeparateGhosts.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: LazyTiling9SeparateGhosts.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/LimitedWarning.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: LimitedWarning.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: LimitedWarning.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/MinHeap.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: MinHeap.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: MinHeap.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/SearchTree.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: SearchTree.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: SearchTree.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/TilingExtent.hh
ra3261d7 r13331dc 5 5 6 6 //FJSTARTHEADER 7 // $Id: TilingExtent.hh 4 354 2018-04-22 07:12:37Z salam$7 // $Id: TilingExtent.hh 4442 2020-05-05 07:50:11Z soyez $ 8 8 // 9 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/Triangulation.hh
ra3261d7 r13331dc 4 4 5 5 //FJSTARTHEADER 6 // $Id: Triangulation.hh 4 354 2018-04-22 07:12:37Z salam$6 // $Id: Triangulation.hh 4442 2020-05-05 07:50:11Z soyez $ 7 7 // 8 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez8 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 9 9 // 10 10 //---------------------------------------------------------------------- -
external/fastjet/internal/Voronoi.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: Voronoi.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Voronoi.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/base.hh
ra3261d7 r13331dc 1 1 2 2 //FJSTARTHEADER 3 // $Id: base.hh 4 354 2018-04-22 07:12:37Z salam$3 // $Id: base.hh 4442 2020-05-05 07:50:11Z soyez $ 4 4 // 5 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- -
external/fastjet/internal/deprecated.hh
ra3261d7 r13331dc 1 1 2 2 //FJSTARTHEADER 3 // $Id: deprecated.hh 4 354 2018-04-22 07:12:37Z salam$3 // $Id: deprecated.hh 4442 2020-05-05 07:50:11Z soyez $ 4 4 // 5 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- … … 39 39 // define a deprecation macro based on the capabilities of the compiler 40 40 // (as determined at configure time). 41 #if defined(FASTJET_HAVE_CXX14_DEPRECATED) and(!defined(__FJCORE__))41 #if defined(FASTJET_HAVE_CXX14_DEPRECATED) && (!defined(__FJCORE__)) 42 42 #define FASTJET_DEPRECATED [[deprecated]] 43 43 #define FASTJET_DEPRECATED_MSG(message) [[deprecated(message)]] -
external/fastjet/internal/numconsts.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: numconsts.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: numconsts.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/ATLASCone/ATLASConePlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ATLASConePlugin.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ATLASConePlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/ATLASCone/fastjet/ATLASConePlugin.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: ATLASConePlugin.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: ATLASConePlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/CDFJetCluPlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CDFJetCluPlugin.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: CDFJetCluPlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/CDFMidPointPlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CDFMidPointPlugin.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: CDFMidPointPlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CDFJetCluPlugin.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: CDFJetCluPlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CDFMidPointPlugin.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: CDFMidPointPlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.cc
ra3261d7 r13331dc 2 2 // $Id: CMSIterativeConePlugin.cc 1504 2009-04-10 13:39:48Z salam $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh
ra3261d7 r13331dc 2 2 // $Id: CMSIterativeConePlugin.hh 1508 2009-04-10 22:46:49Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.cc
ra3261d7 r13331dc 2 2 // $Id: D0RunIBaseConePlugin.cc 1779 2010-10-25 10:32:59Z soyez $ 3 3 // 4 // Copyright (c) 2009-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh
ra3261d7 r13331dc 5 5 // $Id: D0RunIBaseConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIConePlugin.hh
ra3261d7 r13331dc 5 5 // $Id: D0RunIConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh
ra3261d7 r13331dc 5 5 // $Id: D0RunIpre96ConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: D0RunIIConePlugin.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: D0RunIIConePlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: D0RunIIConePlugin.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: D0RunIIConePlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/EECambridge/EECambridgePlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: EECambridgePlugin.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: EECambridgePlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/EECambridge/fastjet/EECambridgePlugin.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: EECambridgePlugin.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: EECambridgePlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/GridJet/GridJetPlugin.cc
ra3261d7 r13331dc 2 2 // $Id: GridJetPlugin.cc 2268 2011-06-20 15:12:26Z salam $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/GridJet/fastjet/GridJetPlugin.hh
ra3261d7 r13331dc 5 5 // $Id: GridJetPlugin.hh 2267 2011-06-20 15:10:23Z salam $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/Jade/JadePlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: JadePlugin.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JadePlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 108 108 // get a number that is almost the same as max(), just a little 109 109 // smaller so as to ensure that when we divide it by rt2E and then 110 // multiply it again, we won't get an overflow 110 // multiply it again, we won't get an overflow. 111 // Watch out for cases where rt2E < 1.0 (cf. bug fix from 112 // andrii.verbytskyi@mpp.mpg.de on 2019-02-14) 111 113 const double almost_max = numeric_limits<double>::max() * (1 - 1e-13); 112 return almost_max / rt2E; 114 if (rt2E>1.0) return almost_max / rt2E; 115 else return almost_max; 113 116 } 114 117 -
external/fastjet/plugins/Jade/fastjet/JadePlugin.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: JadePlugin.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: JadePlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/NestedDefs/NestedDefsPlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: NestedDefsPlugin.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: NestedDefsPlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/NestedDefs/fastjet/NestedDefsPlugin.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: NestedDefsPlugin.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: NestedDefsPlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/SISCone/AUTHORS
ra3261d7 r13331dc 6 6 France 7 7 8 (2) PH-TH, CERN, CH-1211 Geneva 23, Switzerland; 8 (2) Rudolf Peierls Centre for Theoretical Physics, Parks Road, Oxford OX1 3PU, UK; 9 PH-TH, CERN, CH-1211 Geneva 23, Switzerland; 9 10 LPTHE, UPMC (Univ. Paris 6), 75252 Paris cedex 05, France. 10 11 11 phone : +33 69 08 40 1112 +41 22 767 246213 14 12 email : soyez@fastjet.fr 15 gavin.salam@ cern.ch13 gavin.salam@physics.ox.ac.uk -
external/fastjet/plugins/SISCone/config.h
ra3261d7 r13331dc 83 83 /* Define to the full name and version of this package. */ 84 84 #ifndef SISCONE_PACKAGE_STRING 85 #define SISCONE_PACKAGE_STRING "SISCone 3.0. 4"85 #define SISCONE_PACKAGE_STRING "SISCone 3.0.5" 86 86 #endif 87 87 … … 98 98 /* Define to the version of this package. */ 99 99 #ifndef SISCONE_PACKAGE_VERSION 100 #define SISCONE_PACKAGE_VERSION "3.0. 4"100 #define SISCONE_PACKAGE_VERSION "3.0.5" 101 101 #endif 102 102 … … 111 111 /* Version number of package */ 112 112 #ifndef SISCONE_VERSION 113 #define SISCONE_VERSION "3.0. 4"113 #define SISCONE_VERSION "3.0.5" 114 114 #endif 115 115 -
external/fastjet/plugins/SISCone/config_raw.h
ra3261d7 r13331dc 48 48 49 49 /* Define to the full name and version of this package. */ 50 #define PACKAGE_STRING "SISCone 3.0. 4"50 #define PACKAGE_STRING "SISCone 3.0.5" 51 51 52 52 /* Define to the one symbol short name of this package. */ … … 57 57 58 58 /* Define to the version of this package. */ 59 #define PACKAGE_VERSION "3.0. 4"59 #define PACKAGE_VERSION "3.0.5" 60 60 61 61 /* Define to 1 if you have the ANSI C header files. */ … … 66 66 67 67 /* Version number of package */ 68 #define VERSION "3.0. 4"68 #define VERSION "3.0.5" -
external/fastjet/plugins/SISCone/geom_2d.h
ra3261d7 r13331dc 22 22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 23 23 // // 24 // $Revision:: 268$//25 // $Date:: 20 09-03-12 21:24:16 +0100 (Thu, 12 Mar 2009) $//24 // $Revision:: 422 $// 25 // $Date:: 2020-04-22 11:51:09 +0200 (Wed, 22 Apr 2020) $// 26 26 /////////////////////////////////////////////////////////////////////////////// 27 27 … … 153 153 /// return the cell index corrsponding to an eta value 154 154 inline unsigned int get_eta_cell(double eta){ 155 return (unsigned int) (1 << ((int) (32*((eta-eta_min)/(eta_max-eta_min)))));155 return (unsigned int) (1u << ((int) (32*((eta-eta_min)/(eta_max-eta_min))))); 156 156 } 157 157 158 158 /// return the cell index corrsponding to a phi value 159 159 inline unsigned int get_phi_cell(double phi){ 160 return (unsigned int) (1 << ((int) (32*phi/twopi+16)%32));160 return (unsigned int) (1u << ((int) (32*phi/twopi+16)%32)); 161 161 } 162 162 }; -
external/fastjet/plugins/TrackJet/TrackJetPlugin.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: TrackJetPlugin.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: TrackJetPlugin.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/TrackJet/fastjet/TrackJetPlugin.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: TrackJetPlugin.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: TrackJetPlugin.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/BackgroundEstimatorBase.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: BackgroundEstimatorBase.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: BackgroundEstimatorBase.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/BackgroundEstimatorBase.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: BackgroundEstimatorBase.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: BackgroundEstimatorBase.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Boost.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Boost.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Boost.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/CASubJetTagger.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CASubJetTagger.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: CASubJetTagger.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/CASubJetTagger.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: CASubJetTagger.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: CASubJetTagger.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Filter.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Filter.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Filter.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Filter.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: Filter.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Filter.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/GridMedianBackgroundEstimator.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: GridMedianBackgroundEstimator.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: GridMedianBackgroundEstimator.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/GridMedianBackgroundEstimator.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: GridMedianBackgroundEstimator.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: GridMedianBackgroundEstimator.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/JHTopTagger.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: JHTopTagger.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: JHTopTagger.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/JHTopTagger.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: JHTopTagger.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: JHTopTagger.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/JetMedianBackgroundEstimator.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: JetMedianBackgroundEstimator.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JetMedianBackgroundEstimator.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/JetMedianBackgroundEstimator.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: JetMedianBackgroundEstimator.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: JetMedianBackgroundEstimator.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/MassDropTagger.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: MassDropTagger.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: MassDropTagger.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/MassDropTagger.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: MassDropTagger.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: MassDropTagger.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Pruner.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Pruner.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Pruner.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Pruner.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: Pruner.hh 4 354 2018-04-22 07:12:37Z salam$6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Pruner.hh 4442 2020-05-05 07:50:11Z soyez $ 6 // 7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/RestFrameNSubjettinessTagger.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: RestFrameNSubjettinessTagger.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: RestFrameNSubjettinessTagger.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/RestFrameNSubjettinessTagger.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: RestFrameNSubjettinessTagger.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: RestFrameNSubjettinessTagger.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Subtractor.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.cc 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Subtractor.cc 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Subtractor.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.hh 4 354 2018-04-22 07:12:37Z salam$3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Subtractor.hh 4442 2020-05-05 07:50:11Z soyez $ 3 // 4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/TopTaggerBase.cc
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: TopTaggerBase.cc 4 354 2018-04-22 07:12:37Z salam$2 // $Id: TopTaggerBase.cc 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/TopTaggerBase.hh
ra3261d7 r13331dc 3 3 4 4 //FJSTARTHEADER 5 // $Id: TopTaggerBase.hh 4 354 2018-04-22 07:12:37Z salam$5 // $Id: TopTaggerBase.hh 4442 2020-05-05 07:50:11Z soyez $ 6 6 // 7 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Transformer.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: Transformer.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: Transformer.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/version.hh
ra3261d7 r13331dc 1 1 //FJSTARTHEADER 2 // $Id: version.hh 4 354 2018-04-22 07:12:37Z salam$2 // $Id: version.hh 4442 2020-05-05 07:50:11Z soyez $ 3 3 // 4 // Copyright (c) 2005-20 18, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
modules/AngularSmearing.cc
ra3261d7 r13331dc 98 98 { 99 99 Candidate *candidate, *mother; 100 Double_t pt, eta, phi, e ;100 Double_t pt, eta, phi, e, m; 101 101 102 102 fItInputArray->Reset(); 103 103 while((candidate = static_cast<Candidate *>(fItInputArray->Next()))) 104 104 { 105 const TLorentzVector &candidatePosition = candidate->Position;106 105 const TLorentzVector &candidateMomentum = candidate->Momentum; 107 eta = candidate Position.Eta();108 phi = candidate Position.Phi();106 eta = candidateMomentum.Eta(); 107 phi = candidateMomentum.Phi(); 109 108 pt = candidateMomentum.Pt(); 110 109 e = candidateMomentum.E(); 110 m = candidateMomentum.M(); 111 111 112 112 // apply smearing formula for eta,phi 113 114 113 eta = gRandom->Gaus(eta, fFormulaEta->Eval(pt, eta, phi, e, candidate)); 115 114 phi = gRandom->Gaus(phi, fFormulaPhi->Eval(pt, eta, phi, e, candidate)); … … 119 118 mother = candidate; 120 119 candidate = static_cast<Candidate *>(candidate->Clone()); 121 eta = candidateMomentum.Eta(); 122 phi = candidateMomentum.Phi(); 123 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta)); 120 candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m); 124 121 candidate->AddCandidate(mother); 125 122 -
modules/Calorimeter.cc
ra3261d7 r13331dc 231 231 fItParticleInputArray->Reset(); 232 232 number = -1; 233 fTowerRmax=0.; 233 234 while((particle = static_cast<Candidate *>(fItParticleInputArray->Next()))) 234 235 { 235 236 const TLorentzVector &particlePosition = particle->Position; 236 237 ++number; 238 239 // compute maximum radius (needed in FinalizeTower to assess whether barrel or endcap tower) 240 if (particlePosition.Perp() > fTowerRmax) 241 fTowerRmax=particlePosition.Perp(); 237 242 238 243 pdgCode = TMath::Abs(particle->PID); … … 450 455 451 456 fTower->AddCandidate(particle); 457 fTower->Position = position; 452 458 } 453 459 … … 461 467 { 462 468 Candidate *track, *tower, *mother; 463 Double_t energy, pt, eta, phi ;469 Double_t energy, pt, eta, phi, r; 464 470 Double_t ecalEnergy, hcalEnergy; 465 471 Double_t ecalNeutralEnergy, hcalNeutralEnergy; … … 511 517 for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i) 512 518 { 513 weight = TMath:: Sqrt(fTower->ECalEnergyTimePairs[i].first);519 weight = TMath::Power((fTower->ECalEnergyTimePairs[i].first),2); 514 520 sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second; 515 521 sumWeight += weight; … … 517 523 } 518 524 525 // check whether barrel or endcap tower 526 if (fTower->Position.Perp() < fTowerRmax && TMath::Abs(eta) > 0.) 527 r = fTower->Position.Z()/TMath::SinH(eta); 528 else 529 r = fTower->Position.Pt(); 530 519 531 if(sumWeight > 0.0) 520 532 { 521 fTower->Position.SetPtEtaPhiE( 1.0, eta, phi, sumWeightedTime / sumWeight);533 fTower->Position.SetPtEtaPhiE(r, eta, phi, sumWeightedTime / sumWeight); 522 534 } 523 535 else 524 536 { 525 fTower->Position.SetPtEtaPhiE( 1.0, eta, phi, 999999.9);537 fTower->Position.SetPtEtaPhiE(r, eta, phi, 999999.9); 526 538 } 527 539 … … 559 571 if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin) 560 572 { 561 // create new photon tower 573 // create new photon tower assuming null mass 562 574 tower = static_cast<Candidate *>(fTower->Clone()); 563 575 pt = ecalNeutralEnergy / TMath::CosH(eta); … … 646 658 track = static_cast<Candidate *>(track->Clone()); 647 659 track->AddCandidate(mother); 648 649 660 track->Momentum *= rescaleFactor; 661 track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M()); 650 662 651 663 fEFlowTrackOutputArray->Add(track); -
modules/Calorimeter.h
ra3261d7 r13331dc 60 60 Double_t fTimingEnergyMin; 61 61 Bool_t fElectronsFromTrack; 62 Double_t fTowerRmax; 62 63 63 64 Int_t fTowerTrackHits, fTowerPhotonHits; -
modules/DenseTrackFilter.cc
ra3261d7 r13331dc 237 237 238 238 Candidate *candidate, *track; 239 Double_t pt, eta, phi ;239 Double_t pt, eta, phi, m; 240 240 Int_t numberOfCandidates; 241 241 … … 251 251 eta = candidate->Momentum.Eta(); 252 252 phi = candidate->Momentum.Phi(); 253 m = candidate->Momentum.M(); 254 253 255 eta = gRandom->Gaus(eta, fEtaPhiRes); 254 256 phi = gRandom->Gaus(phi, fEtaPhiRes); 255 candidate->Momentum.SetPtEtaPhi E(pt, eta, phi, pt * TMath::CosH(eta));257 candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m); 256 258 candidate->AddCandidate(track); 257 259 -
modules/DualReadoutCalorimeter.cc
ra3261d7 r13331dc 24 24 // This implementation of dual calorimetry relies on several approximations: 25 25 // - If hadronic energy is found in the tower the energy resolution then the full tower enrgy is smeared according to hadronic resolution (pessimistic for (e,n) or (pi+,gamma)) 26 // - While e+ vs pi+ (or gamma vs n) separation is in principle possible for single particles (using C/S, PMT timing, lateral shower profile) it is not obvious it can be done overlapping particles. 26 // - While e+ vs pi+ (or gamma vs n) separation is in principle possible for single particles (using C/S, PMT timing, lateral shower profile) it is not obvious it can be done overlapping particles. 27 27 // Now we assume that regarless of the number of particle hits per tower we can always distinguish e+ vs pi+, which is probably not true in the case (e+,n) vs (pi+,gamma) without longitudinal segmentation. 28 28 … … 63 63 fItParticleInputArray(0), fItTrackInputArray(0) 64 64 { 65 65 66 66 fECalResolutionFormula = new DelphesFormula; 67 67 fHCalResolutionFormula = new DelphesFormula; … … 75 75 fTowerTrackArray = new TObjArray; 76 76 fItTowerTrackArray = fTowerTrackArray->MakeIterator(); 77 77 78 78 } 79 79 … … 82 82 DualReadoutCalorimeter::~DualReadoutCalorimeter() 83 83 { 84 84 85 85 if(fECalResolutionFormula) delete fECalResolutionFormula; 86 86 if(fHCalResolutionFormula) delete fHCalResolutionFormula; … … 94 94 if(fTowerTrackArray) delete fTowerTrackArray; 95 95 if(fItTowerTrackArray) delete fItTowerTrackArray; 96 96 97 97 } 98 98 … … 247 247 fItParticleInputArray->Reset(); 248 248 number = -1; 249 fTowerRmax=0.; 249 250 while((particle = static_cast<Candidate*>(fItParticleInputArray->Next()))) 250 251 { 251 252 const TLorentzVector &particlePosition = particle->Position; 252 253 ++number; 254 255 // compute maximum radius (needed in FinalizeTower to assess whether barrel or endcap tower) 256 if (particlePosition.Perp() > fTowerRmax) 257 fTowerRmax=particlePosition.Perp(); 253 258 254 259 pdgCode = TMath::Abs(particle->PID); … … 379 384 fHCalTrackEnergy = 0.0; 380 385 fTrackEnergy = 0.0; 381 386 382 387 fECalTrackSigma = 0.0; 383 388 fHCalTrackSigma = 0.0; 384 389 fTrackSigma = 0.0; 385 390 386 391 fTowerTrackHits = 0; 387 392 fTowerPhotonHits = 0; … … 390 395 fHCalTowerTrackArray->Clear(); 391 396 fTowerTrackArray->Clear(); 392 397 393 398 } 394 399 … … 414 419 } 415 420 416 417 /* 418 if(fECalTrackFractions[number] > 1.0E-9 && fHCalTrackFractions[number] < 1.0E-9) 419 { 420 fECalTrackEnergy += ecalEnergy; 421 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 422 if(ecalSigma/momentum.E() < track->TrackResolution) energyGuess = ecalEnergy; 423 else energyGuess = momentum.E(); 424 425 fECalTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess; 426 fECalTowerTrackArray->Add(track); 427 } 428 429 else if(fECalTrackFractions[number] < 1.0E-9 && fHCalTrackFractions[number] > 1.0E-9) 430 { 431 fHCalTrackEnergy += hcalEnergy; 432 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 433 if(hcalSigma/momentum.E() < track->TrackResolution) energyGuess = hcalEnergy; 434 else energyGuess = momentum.E(); 435 436 fHCalTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess; 437 fHCalTowerTrackArray->Add(track); 438 } 439 440 // muons 441 else if(fECalTrackFractions[number] < 1.0E-9 && fHCalTrackFractions[number] < 1.0E-9) 442 { 443 fEFlowTrackOutputArray->Add(track); 444 } 445 */ 446 421 447 422 // in Dual Readout we do not care if tracks are ECAL of HCAL 448 423 if(fECalTrackFractions[number] > 1.0E-9 || fHCalTrackFractions[number] > 1.0E-9) 449 { 424 { 450 425 fTrackEnergy += energy; 451 // this sigma will be used to determine whether neutral excess is significant. We choose the resolution according to bthe higest deposited fraction (in practice had for charged hadrons and em for electrons) 426 // this sigma will be used to determine whether neutral excess is significant. We choose the resolution according to bthe higest deposited fraction (in practice had for charged hadrons and em for electrons) 452 427 sigma = 0.0; 453 428 if(fHCalTrackFractions[number] > 0) … … 455 430 else 456 431 sigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 457 458 if(sigma/momentum.E() < track->TrackResolution) 459 energyGuess = ecalEnergy + hcalEnergy; 432 433 if(sigma/momentum.E() < track->TrackResolution) 434 energyGuess = ecalEnergy + hcalEnergy; 460 435 else 461 436 energyGuess = momentum.E(); 462 437 463 438 fTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess; 464 439 fTowerTrackArray->Add(track); 465 440 466 441 } 467 442 else … … 496 471 497 472 fTower->AddCandidate(particle); 473 fTower->Position = position; 498 474 } 499 475 … … 508 484 509 485 Candidate *track, *tower, *mother; 510 Double_t energy, pt, eta, phi ;486 Double_t energy, pt, eta, phi, r; 511 487 Double_t ecalEnergy, hcalEnergy; 512 488 Double_t ecalNeutralEnergy, hcalNeutralEnergy, neutralEnergy; 513 489 514 490 Double_t ecalSigma, hcalSigma, sigma; 515 491 Double_t ecalNeutralSigma, hcalNeutralSigma, neutralSigma; 516 492 517 493 Double_t weightTrack, weightCalo, bestEnergyEstimate, rescaleFactor; 518 494 519 495 TLorentzVector momentum; 520 496 TFractionMap::iterator itFractionMap; … … 525 501 526 502 527 //if (fHCalTowerEnergy < 30 && fECalTowerEnergy < 30) return; 528 //cout<<"----------- New tower ---------"<<endl; 529 530 531 // here we change behaviour w.r.t to standard calorimeter. Start with worse case scenario. If fHCalTowerEnergy > 0, assume total energy smeared by HCAL resolution. 532 // For example, if overlapping charged pions and photons take hadronic resolution as combined measurement 533 534 // if no hadronic fraction at all, then use ECAL resolution 535 536 //cout<<"fECalTowerEnergy: "<<fECalTowerEnergy<<", fHCalTowerEnergy: "<<fHCalTowerEnergy<<", Eta: "<<fTowerEta<<endl; 537 538 // if no hadronic energy, use ECAL resolution 503 // if no hadronic energy, use ECAL resolution 539 504 if (fHCalTowerEnergy <= fHCalEnergyMin) 540 505 { … … 544 509 } 545 510 546 // if hadronic fraction > 0, use HCAL resolution 511 // if hadronic fraction > 0, use HCAL resolution 547 512 else 548 513 { … … 554 519 energy = LogNormal(energy, sigma); 555 520 //cout<<energy<<","<<ecalEnergy<<","<<hcalEnergy<<endl; 556 521 557 522 if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0; 558 523 … … 592 557 for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i) 593 558 { 594 weight = TMath:: Sqrt(fTower->ECalEnergyTimePairs[i].first);559 weight = TMath::Power((fTower->ECalEnergyTimePairs[i].first),2); 595 560 sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second; 596 561 sumWeight += weight; … … 598 563 } 599 564 565 // check whether barrel or endcap tower 566 if (fTower->Position.Perp() < fTowerRmax && TMath::Abs(eta) > 0.) 567 r = fTower->Position.Z()/TMath::SinH(eta); 568 else 569 r = fTower->Position.Pt(); 570 600 571 if(sumWeight > 0.0) 601 572 { 602 fTower->Position.SetPtEtaPhiE( 1.0, eta, phi, sumWeightedTime/sumWeight);573 fTower->Position.SetPtEtaPhiE(r, eta, phi, sumWeightedTime/sumWeight); 603 574 } 604 575 else 605 576 { 606 fTower->Position.SetPtEtaPhiE( 1.0, eta, phi, 999999.9);577 fTower->Position.SetPtEtaPhiE(r, eta, phi, 999999.9); 607 578 } 608 579 … … 626 597 627 598 // fill energy flow candidates 628 599 629 600 fTrackSigma = TMath::Sqrt(fTrackSigma); 630 601 neutralEnergy = max( (energy - fTrackEnergy) , 0.0); … … 638 609 if(neutralEnergy > fEnergyMin && neutralSigma > fEnergySignificanceMin) 639 610 { 640 611 641 612 //cout<<"significant neutral excess found:"<<endl; 642 613 // create new photon tower … … 645 616 //cout<<"Creating tower with Pt, Eta, Phi, Energy: "<<pt<<","<<eta<<","<<phi<<","<<neutralEnergy<<endl; 646 617 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, neutralEnergy); 647 tower->Eem = neutralEnergy; 648 tower->Ehad = 0.0; 649 tower->PID = 22; 650 651 618 619 // if no hadronic energy, use ECAL resolution 620 if (fHCalTowerEnergy <= fHCalEnergyMin) 621 { 622 tower->Eem = neutralEnergy; 623 tower->Ehad = 0.0; 624 tower->PID = 22; 625 } 626 627 // if hadronic fraction > 0, use HCAL resolution 628 else 629 { 630 tower->Eem = 0; 631 tower->Ehad = neutralEnergy; 632 tower->PID = 130; 633 } 652 634 653 635 fEFlowPhotonOutputArray->Add(tower); … … 658 640 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 659 641 { 660 //cout<<"looping over tracks"<<endl;661 642 mother = track; 662 643 track = static_cast<Candidate*>(track->Clone()); … … 666 647 } 667 648 668 649 669 650 // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the DualReadoutCalorimeter and tracking 670 651 else if(fTrackEnergy > 0.0) … … 674 655 weightCalo = (sigma > 0.0) ? 1 / (sigma*sigma) : 0.0; 675 656 676 bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo); 657 bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo); 677 658 rescaleFactor = bestEnergyEstimate/fTrackEnergy; 678 659 … … 680 661 fItTowerTrackArray->Reset(); 681 662 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 682 { 663 { 683 664 mother = track; 684 track = static_cast<Candidate *>(track->Clone());665 track = static_cast<Candidate *>(track->Clone()); 685 666 track->AddCandidate(mother); 686 687 track->Momentum *= rescaleFactor; 688 667 track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M()); 689 668 fEFlowTrackOutputArray->Add(track); 690 669 } 691 670 } 692 671 693 672 694 673 } -
modules/DualReadoutCalorimeter.h
ra3261d7 r13331dc 60 60 Double_t fECalTrackEnergy, fHCalTrackEnergy; 61 61 Double_t fTrackEnergy; 62 Double_t fTowerRmax; 62 63 63 64 Double_t fTimingEnergyMin; -
modules/EnergySmearing.cc
ra3261d7 r13331dc 95 95 { 96 96 Candidate *candidate, *mother; 97 Double_t pt, energy, eta, phi ;97 Double_t pt, energy, eta, phi, m; 98 98 99 99 fItInputArray->Reset(); … … 107 107 phi = candidatePosition.Phi(); 108 108 energy = candidateMomentum.E(); 109 m = candidateMomentum.M(); 109 110 110 111 // apply smearing formula … … 117 118 eta = candidateMomentum.Eta(); 118 119 phi = candidateMomentum.Phi(); 119 candidate->Momentum.SetPtEtaPhiE(energy / TMath::CosH(eta), eta, phi, energy); 120 pt = (energy > m) ? TMath::Sqrt(energy*energy - m*m)/TMath::CosH(eta) : 0; 121 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); 120 122 candidate->TrackResolution = fFormula->Eval(pt, eta, phi, energy) / candidateMomentum.E(); 121 123 candidate->AddCandidate(mother); -
modules/JetFakeParticle.cc
ra3261d7 r13331dc 146 146 while((candidate = static_cast<Candidate *>(fItInputArray->Next()))) 147 147 { 148 const TLorentzVector &candidatePosition = candidate->Position;149 148 const TLorentzVector &candidateMomentum = candidate->Momentum; 150 eta = candidate Position.Eta();151 phi = candidate Position.Phi();149 eta = candidateMomentum.Eta(); 150 phi = candidateMomentum.Phi(); 152 151 pt = candidateMomentum.Pt(); 153 152 e = candidateMomentum.E(); -
modules/MomentumSmearing.cc
ra3261d7 r13331dc 95 95 { 96 96 Candidate *candidate, *mother; 97 Double_t pt, eta, phi, e, res;97 Double_t pt, eta, phi, e, m, res; 98 98 99 99 fItInputArray->Reset(); … … 106 106 pt = candidateMomentum.Pt(); 107 107 e = candidateMomentum.E(); 108 m = candidateMomentum.M(); 108 109 res = fFormula->Eval(pt, eta, phi, e, candidate); 109 110 … … 121 122 eta = candidateMomentum.Eta(); 122 123 phi = candidateMomentum.Phi(); 123 candidate->Momentum.SetPtEtaPhi E(pt, eta, phi, pt * TMath::CosH(eta));124 candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m); 124 125 //candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e); 125 126 candidate->TrackResolution = res; -
modules/SimpleCalorimeter.cc
ra3261d7 r13331dc 208 208 fItParticleInputArray->Reset(); 209 209 number = -1; 210 fTowerRmax=0.; 210 211 while((particle = static_cast<Candidate *>(fItParticleInputArray->Next()))) 211 212 { 212 213 const TLorentzVector &particlePosition = particle->Position; 213 214 ++number; 215 216 // compute maximum radius (needed in FinalizeTower to assess whether barrel or endcap tower) 217 if (particlePosition.Perp() > fTowerRmax) 218 fTowerRmax=particlePosition.Perp(); 214 219 215 220 pdgCode = TMath::Abs(particle->PID); … … 394 399 fTowerEnergy += energy; 395 400 396 fTowerTime += energy * position.T();397 fTowerTimeWeight += energy ;401 fTowerTime += energy * energy * position.T(); //sigma_t ~ 1/E 402 fTowerTimeWeight += energy * energy; 398 403 399 404 fTower->AddCandidate(particle); 405 fTower->Position = position; 406 400 407 } 401 408 … … 409 416 { 410 417 Candidate *tower, *track, *mother; 411 Double_t energy, neutralEnergy, pt, eta, phi ;418 Double_t energy, neutralEnergy, pt, eta, phi, r; 412 419 Double_t sigma, neutralSigma; 413 420 Double_t time; … … 443 450 pt = energy / TMath::CosH(eta); 444 451 445 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, time); 452 // check whether barrel or endcap tower 453 if (fTower->Position.Perp() < fTowerRmax && TMath::Abs(eta) > 0.) 454 r = fTower->Position.Z()/TMath::SinH(eta); 455 else 456 r = fTower->Position.Pt(); 457 458 fTower->Position.SetPtEtaPhiE(r, eta, phi, time); 446 459 fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); 447 460 … … 507 520 track = static_cast<Candidate *>(track->Clone()); 508 521 track->AddCandidate(mother); 509 510 track->Momentum *= rescaleFactor; 511 522 track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M()); 512 523 fEFlowTrackOutputArray->Add(track); 513 524 } -
modules/SimpleCalorimeter.h
ra3261d7 r13331dc 62 62 Double_t fTrackTime; 63 63 64 Double_t fTowerRmax; 65 64 66 Double_t fTowerTimeWeight; 65 67 Double_t fTrackTimeWeight; -
modules/TrackCovariance.cc
ra3261d7 r13331dc 1 /*1 /* 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2020 Universite catholique de Louvain (UCLouvain), Belgium … … 21 21 * Smears track parameters according to appropriate covariance matrix. 22 22 * 23 * \authors P. Demin - UCLouvain, Louvain-la-Neuve 23 * \authors F. Bedeschi - INFN Pisa 24 * P. Demin - UCLouvain, Louvain-la-Neuve 24 25 * M. Selvaggi - CERN 26 * 25 27 * 26 28 */ … … 50 52 51 53 TrackCovariance::TrackCovariance() : 52 fGeometry(0), fCovariance(0), f ItInputArray(0)54 fGeometry(0), fCovariance(0), fAcx(0), fItInputArray(0) 53 55 { 54 56 fGeometry = new SolGeom(); … … 70 72 fBz = GetDouble("Bz", 0.0); 71 73 fGeometry->Read(GetString("DetectorGeometry", "")); 74 fNMinHits = GetInt("NMinHits", 6); 72 75 76 // load geometry 73 77 fCovariance->Calc(fGeometry); 78 fCovariance->SetMinHits(fNMinHits); 79 // load geometry 80 fAcx = fCovariance->AccPnt(); 74 81 75 82 // import input array 76 77 83 fInputArray = ImportArray(GetString("InputArray", "TrackMerger/tracks")); 78 84 fItInputArray = fInputArray->MakeIterator(); … … 94 100 void TrackCovariance::Process() 95 101 { 96 Candidate *candidate, *mother ;102 Candidate *candidate, *mother, *particle; 97 103 Double_t mass, p, pt, q, ct; 98 104 Double_t dd0, ddz, dphi, dct, dp, dpt, dC; 99 105 100 106 101 107 fItInputArray->Reset(); 102 108 while((candidate = static_cast<Candidate *>(fItInputArray->Next()))) 103 109 { 104 const TLorentzVector &candidatePosition = candidate->InitialPosition; 105 const TLorentzVector &candidateMomentum = candidate->Momentum; 110 111 // converting to meters 112 particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0)); 113 114 // converting to meters 115 const TLorentzVector &candidatePosition = particle->Position*1e-03; 116 const TLorentzVector &candidateMomentum = particle->Momentum; 117 118 if ( !fCovariance->IsAccepted(candidateMomentum.Vect()) ) continue; 106 119 107 120 mass = candidateMomentum.M(); … … 110 123 111 124 mother = candidate; 112 candidate = static_cast<Candidate 125 candidate = static_cast<Candidate*>(candidate->Clone()); 113 126 114 127 candidate->Momentum.SetVectM(track.GetObsP(), mass); 115 candidate->InitialPosition.SetXYZT(track.GetObsX().X(),track.GetObsX().Y(),track.GetObsX().Z(),candidatePosition.T()); 116 128 129 // converting back to mm 130 candidate->InitialPosition.SetXYZT(track.GetObsX().X()*1e03,track.GetObsX().Y()*1e03,track.GetObsX().Z()*1e03,candidatePosition.T()*1e03); 131 117 132 // save full covariance 5x5 matrix internally (D0, phi, Curvature, dz, ctg(theta)) 118 133 candidate->TrackCovariance = track.GetCov(); … … 123 138 ct = track.GetObsPar()[4]; 124 139 125 candidate->Xd = track.GetObsX().X(); 126 candidate->Yd = track.GetObsX().Y(); 127 candidate->Zd = track.GetObsX().Z(); 128 129 candidate->D0 = track.GetObsPar()[0]; 130 candidate->Phi = track.GetObsPar()[1]; 131 candidate->C = track.GetObsPar()[2]; 132 candidate->DZ = track.GetObsPar()[3]; 140 candidate->Xd = track.GetObsX().X()*1e03; 141 candidate->Yd = track.GetObsX().Y()*1e03; 142 candidate->Zd = track.GetObsX().Z()*1e03; 143 144 candidate->D0 = track.GetObsPar()[0]*1e03; 145 candidate->Phi = track.GetObsPar()[1]; 146 147 // inverse of curvature 148 candidate->C = track.GetObsPar()[2]*1e-03; 149 candidate->DZ = track.GetObsPar()[3]*1e03; 133 150 candidate->CtgTheta = track.GetObsPar()[4]; 134 candidate->P = track.GetObsP().Mag();135 candidate->PT = pt;136 candidate->Charge = q;151 candidate->P = track.GetObsP().Mag(); 152 candidate->PT = pt; 153 candidate->Charge = q; 137 154 138 dd0 = TMath::Sqrt(track.GetCov()(0, 0)) ;139 ddz = TMath::Sqrt(track.GetCov()(3, 3)) ;140 dphi = TMath::Sqrt(track.GetCov()(1, 1)); 141 dct = TMath::Sqrt(track.GetCov()(4, 4)); 155 dd0 = TMath::Sqrt(track.GetCov()(0, 0))*1e03; 156 ddz = TMath::Sqrt(track.GetCov()(3, 3))*1e03; 157 dphi = TMath::Sqrt(track.GetCov()(1, 1)); 158 dct = TMath::Sqrt(track.GetCov()(4, 4)); 142 159 dpt = 2 * TMath::Sqrt( track.GetCov()(2, 2))*pt*pt / (0.2998*fBz); 143 160 dp = TMath::Sqrt((1.+ct*ct)*dpt*dpt + 4*pt*pt*ct*ct*dct*dct/(1.+ct*ct)/(1.+ct*ct)); 144 dC = TMath::Sqrt(track.GetCov()(2, 2)) ;161 dC = TMath::Sqrt(track.GetCov()(2, 2))*1e-03; 145 162 146 163 candidate->ErrorD0 = dd0; … … 154 171 candidate->TrackResolution = dp / p; 155 172 156 157 173 candidate->AddCandidate(mother); 158 174 -
modules/TrackCovariance.h
ra3261d7 r13331dc 36 36 class SolGeom; 37 37 class SolGridCov; 38 class AcceptanceClx; 38 39 39 40 class TrackCovariance: public DelphesModule … … 49 50 private: 50 51 Double_t fBz; 52 Int_t fNMinHits; 51 53 52 54 SolGeom *fGeometry; 53 55 SolGridCov *fCovariance; 56 57 AcceptanceClx *fAcx; 54 58 55 59 TIterator *fItInputArray; //! -
modules/TrackSmearing.cc
ra3261d7 r13331dc 158 158 TLorentzVector beamSpotPosition; 159 159 Candidate *candidate, *mother; 160 Double_t pt, eta, e, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi;160 Double_t pt, eta, e, m, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi; 161 161 Double_t x, y, z, t, px, py, pz, theta; 162 162 Double_t q, r; … … 224 224 eta = momentum.Eta(); 225 225 e = momentum.E(); 226 226 m = momentum.M(); 227 227 228 d0 = trueD0 = candidate->D0; 228 229 dz = trueDZ = candidate->DZ; … … 332 333 candidate->Momentum.SetPy(p * TMath::Sin(phi) * TMath::Sin(theta)); 333 334 candidate->Momentum.SetPz(p * TMath::Cos(theta)); 334 candidate->Momentum.SetE( candidate->Momentum.Pt() * TMath::CosH(eta));335 candidate->Momentum.SetE(TMath::Sqrt(p*p + m*m)); 335 336 candidate->PT = candidate->Momentum.Pt(); 336 337 -
modules/TreeWriter.cc
ra3261d7 r13331dc 123 123 fBranchMap.insert(make_pair(branch, make_pair(itClassMap->second, array))); 124 124 } 125 126 param = GetParam("Info"); 127 TString infoName; 128 Double_t infoValue; 129 130 size = param.GetSize(); 131 for(i = 0; i < size / 2; ++i) 132 { 133 infoName = param[i * 2].GetString(); 134 infoValue = param[i * 2 + 1].GetDouble(); 135 136 AddInfo(infoName, infoValue); 137 } 125 138 } 126 139 … … 138 151 it1.Reset(); 139 152 array->Clear(); 140 153 141 154 while((candidate = static_cast<Candidate *>(it1.Next()))) 142 155 { … … 215 228 entry->Pz = momentum.Pz(); 216 229 217 entry->D0 = candidate->D0;218 entry->DZ = candidate->DZ;219 entry->P = candidate->P;220 entry->PT = candidate->PT;221 entry->CtgTheta = candidate->CtgTheta;222 entry->Phi = candidate->Phi;223 224 230 entry->Eta = eta; 225 231 entry->Phi = momentum.Phi(); … … 314 320 Candidate *particle = 0; 315 321 Track *entry = 0; 316 Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi ;322 Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi, m; 317 323 const Double_t c_light = 2.99792458E8; 318 324 … … 348 354 349 355 entry->D0 = candidate->D0; 350 entry->ErrorD0 = candidate->ErrorD0;351 356 entry->DZ = candidate->DZ; 352 entry->ErrorDZ = candidate->ErrorDZ;353 357 354 358 entry->ErrorP = candidate->ErrorP; 355 359 entry->ErrorPT = candidate->ErrorPT; 360 361 // diagonal covariance matrix terms 362 entry->ErrorD0 = candidate->ErrorD0; 363 entry->ErrorC = candidate->ErrorC; 364 entry->ErrorPhi = candidate->ErrorPhi; 365 entry->ErrorDZ = candidate->ErrorDZ; 356 366 entry->ErrorCtgTheta = candidate->ErrorCtgTheta; 357 entry->ErrorPhi = candidate->ErrorPhi; 367 368 // add some offdiagonal covariance matrix elements 369 entry->ErrorD0Phi = candidate->TrackCovariance(0,1); 370 entry->ErrorD0C = candidate->TrackCovariance(0,2); 371 entry->ErrorD0DZ = candidate->TrackCovariance(0,3); 372 entry->ErrorD0CtgTheta = candidate->TrackCovariance(0,4); 373 entry->ErrorPhiC = candidate->TrackCovariance(1,2); 374 entry->ErrorPhiDZ = candidate->TrackCovariance(1,3); 375 entry->ErrorPhiCtgTheta = candidate->TrackCovariance(1,4); 376 entry->ErrorCDZ = candidate->TrackCovariance(2,3); 377 entry->ErrorCCtgTheta = candidate->TrackCovariance(2,4); 378 entry->ErrorDZCtgTheta = candidate->TrackCovariance(3,4); 358 379 359 380 entry->Xd = candidate->Xd; … … 366 387 p = momentum.P(); 367 388 phi = momentum.Phi(); 389 m = momentum.M(); 368 390 ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10; 369 391 … … 378 400 entry->Phi = phi; 379 401 entry->CtgTheta = ctgTheta; 402 entry->C = candidate->C; 403 entry->Mass = m; 380 404 381 405 particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0)); … … 448 472 Candidate *particle = 0; 449 473 ParticleFlowCandidate *entry = 0; 450 Double_t e, pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi ;474 Double_t e, pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi, m; 451 475 const Double_t c_light = 2.99792458E8; 452 476 … … 482 506 483 507 entry->D0 = candidate->D0; 484 entry->ErrorD0 = candidate->ErrorD0;485 508 entry->DZ = candidate->DZ; 486 entry->ErrorDZ = candidate->ErrorDZ;487 509 488 510 entry->ErrorP = candidate->ErrorP; 489 511 entry->ErrorPT = candidate->ErrorPT; 490 512 entry->ErrorCtgTheta = candidate->ErrorCtgTheta; 513 514 515 // diagonal covariance matrix terms 516 517 entry->ErrorD0 = candidate->ErrorD0; 518 entry->ErrorC = candidate->ErrorC; 491 519 entry->ErrorPhi = candidate->ErrorPhi; 520 entry->ErrorDZ = candidate->ErrorDZ; 521 entry->ErrorCtgTheta = candidate->ErrorCtgTheta; 522 523 // add some offdiagonal covariance matrix elements 524 entry->ErrorD0Phi = candidate->TrackCovariance(0,1); 525 entry->ErrorD0C = candidate->TrackCovariance(0,2); 526 entry->ErrorD0DZ = candidate->TrackCovariance(0,3); 527 entry->ErrorD0CtgTheta = candidate->TrackCovariance(0,4); 528 entry->ErrorPhiC = candidate->TrackCovariance(1,2); 529 entry->ErrorPhiDZ = candidate->TrackCovariance(1,3); 530 entry->ErrorPhiCtgTheta = candidate->TrackCovariance(1,4); 531 entry->ErrorCDZ = candidate->TrackCovariance(2,3); 532 entry->ErrorCCtgTheta = candidate->TrackCovariance(2,4); 533 entry->ErrorDZCtgTheta = candidate->TrackCovariance(3,4); 492 534 493 535 entry->Xd = candidate->Xd; … … 501 543 p = momentum.P(); 502 544 phi = momentum.Phi(); 545 m = momentum.M(); 503 546 ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10; 504 547 … … 509 552 entry->Phi = phi; 510 553 entry->CtgTheta = ctgTheta; 554 entry->C = candidate->C; 555 entry->Mass = m; 511 556 512 557 particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0)); -
readers/DelphesPythia8.cpp
ra3261d7 r13331dc 296 296 297 297 // jet matching 298 #if PYTHIA_VERSION_INTEGER < 8300 298 299 matching = combined->getHook(*pythia); 299 300 if(!matching) … … 302 303 } 303 304 pythia->setUserHooksPtr(matching); 305 #endif 304 306 305 307 if(pythia == NULL) -
validation/DelphesValidation.cpp
ra3261d7 r13331dc 32 32 #include "TGraph.h" 33 33 #include "TGraphErrors.h" 34 #include "TF1.h" 34 35 #include "TH1.h" 35 36 #include "TH2.h" -
validation/validation.sh
ra3261d7 r13331dc 38 38 outputrootdir=report_${cardbase%.*}/root 39 39 cardlabel=${cardbase%.*} 40 version= $(cat VERSION)40 version=x.y.z 41 41 outpdf=$mainoutputdir/${output%.*}.pdf 42 42 cardsdir=validation/cards
Note:
See TracChangeset
for help on using the changeset viewer.