Changes in / [13331dc:a3261d7] in git
- Files:
-
- 10 added
- 35 deleted
- 215 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r13331dc ra3261d7 89 89 DISPLAYLIB = libDelphesDisplay.lib 90 90 91 VERSION = x.y.z91 VERSION = $(shell cat VERSION) 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)652 650 tmp/external/TrackCovariance/ObsTrk.$(ObjSuf): \ 653 651 external/TrackCovariance/ObsTrk.$(SrcSuf) … … 658 656 tmp/external/TrackCovariance/SolTrack.$(ObjSuf): \ 659 657 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)664 658 tmp/modules/AngularSmearing.$(ObjSuf): \ 665 659 modules/AngularSmearing.$(SrcSuf) \ … … 1164 1158 tmp/external/Hector/H_VerticalKicker.$(ObjSuf) \ 1165 1159 tmp/external/Hector/H_VerticalQuadrupole.$(ObjSuf) \ 1166 tmp/external/TrackCovariance/AcceptanceClx.$(ObjSuf) \1167 1160 tmp/external/TrackCovariance/ObsTrk.$(ObjSuf) \ 1168 1161 tmp/external/TrackCovariance/SolGeom.$(ObjSuf) \ 1169 1162 tmp/external/TrackCovariance/SolGridCov.$(ObjSuf) \ 1170 1163 tmp/external/TrackCovariance/SolTrack.$(ObjSuf) \ 1171 tmp/external/TrackCovariance/TrkUtil.$(ObjSuf) \1172 tmp/external/TrackCovariance/VertexFit.$(ObjSuf) \1173 1164 tmp/modules/AngularSmearing.$(ObjSuf) \ 1174 1165 tmp/modules/BTagging.$(ObjSuf) \ … … 2443 2434 @echo ">> Building $(DISTTAR)" 2444 2435 @mkdir -p $(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)2436 @cp -a AUTHORS CHANGELOG CMakeLists.txt COPYING DelphesEnv.sh LICENSE NOTICE README README_4LHCb VERSION Makefile MinBias.pileup configure cards classes converters display doc examples external modules python readers validation $(DISTDIR) 2446 2437 @find $(DISTDIR) -depth -name .\* -exec rm -rf {} \; 2447 2438 @tar -czf $(DISTTAR) $(DISTDIR) -
README.md
r13331dc ra3261d7 1 [![C I](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)1 [![CircleCI](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) 2 2 3 3 Delphes -
cards/FCC/FCChh.tcl
r13331dc ra3261d7 4 4 # Main authors: Michele Selvaggi (CERN) 5 5 # 6 # Released on: October 14th, 2020 7 # 8 # - fix muon resolution at high pT 9 # - updated btagging, tau tagging and photon ID 10 # 6 # Released on: Dec. 1st, 2017 11 7 # 12 8 # Configuration: FCC-hh baseline detector … … 1053 1049 (abs(eta) <= 2.5) * (pt > 1.0 && pt < 5.0) * (0.70) + 1054 1050 (abs(eta) <= 2.5) * (pt > 5.0 && pt < 10.0) * (0.85) + 1055 (abs(eta) <= 2.5) * (pt > 10.0) * (0.9 0) +1051 (abs(eta) <= 2.5) * (pt > 10.0) * (0.95) + 1056 1052 1057 1053 (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0 && pt < 5.0) * (0.60) + … … 1142 1138 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0.01)*(1.0 - pt/15000.) + \ 1143 1139 (abs(eta) < 2.5) * (pt > 15000.0) * (0.00) + \ 1144 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.0 1) + \1145 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.0 1)*(1.0 - pt/15000.) + \1140 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.0075) + \ 1141 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.0075)*(1.0 - pt/15000.) + \ 1146 1142 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0) * (0.000) + \ 1147 1143 (abs(eta) > 4.0) * (0.00)} … … 1150 1146 1151 1147 (pt <= 10.0) * (0.00) + 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.) + \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.) + \ 1154 1150 (abs(eta) < 2.5) * (pt > 15000.0) * (0.000) + \ 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.) + \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.) + \ 1157 1153 (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0) * (0.000) + \ 1158 1154 (abs(eta) > 4.0) * (0.00)} … … 1161 1157 1162 1158 (pt <= 10.0) * (0.00) + 1163 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.8 2) +1164 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0.8 2)*(1.0 - pt/15000.) +1159 (abs(eta) < 2.5) * (pt > 10.0 && pt < 500) * (0.85) + 1160 (abs(eta) < 2.5) * (pt > 500.0 && pt < 15000.0) * (0.85)*(1.0 - pt/15000.) + 1165 1161 (abs(eta) < 2.5) * (pt > 15000.0) * (0.000) + 1166 1162 (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500) * (0.64) + … … 1221 1217 1222 1218 (pt <= 10.0) * (0.00) + 1223 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.0 2) + \1224 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.0 2) *(8./9. - pt/30000.) + \1219 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.01) + \ 1220 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.01) *(8./9. - pt/30000.) + \ 1225 1221 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \ 1226 1222 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.0075) + \ … … 1232 1228 1233 1229 (pt <= 10.0) * (0.00) + 1234 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.00 1) + \1235 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.00 1) *(8./9. - pt/30000.) + \1230 (abs(eta) < 2.5) * (pt > 10.0 && pt < 5000.0) * (0.005) + \ 1231 (abs(eta) < 2.5) * (pt > 5000.0 && pt < 34000.0) * (0.005) *(8./9. - pt/30000.) + \ 1236 1232 (abs(eta) < 2.5) * (pt > 34000.0) * (0.000) + \ 1237 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.00 1) + \1238 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.00 1)*(8./9. - pt/30000.) + \1233 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0) * (0.00375) + \ 1234 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.00375)*(8./9. - pt/30000.) + \ 1239 1235 (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0) * (0.00) + \ 1240 1236 (abs(eta) > 4.0) * (0.00)} -
cards/FCC/muonMomentumResolutionVsP.tcl
r13331dc ra3261d7 12 12 set ResolutionFormula { 13 13 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 ) + 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 ) + 29 28 30 29 ( abs(eta) > 1.35 && abs(eta) < 2.00) * -
cards/ILCgen/ILCgen_BTagging_N.tcl
r13331dc ra3261d7 104 104 source ILCgen/ILCgen_BTagging_50.tcl 105 105 } 106 -
cards/ILCgen/ILCgen_BeamCalEfficiency.tcl
r13331dc ra3261d7 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} 4 6 5 7 set EfficiencyFormula { -
cards/ILCgen/ILCgen_BeamCalF_Binning.tcl
r13331dc ra3261d7 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
r13331dc ra3261d7 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
r13331dc ra3261d7 1 1 #P.Sopicki 2 # default energy fractions {abs(PDG code)} {fraction of energy deposited in BeamCal} 2 3 3 4 add EnergyFraction {0} {0.0} … … 19 20 add EnergyFraction {310} {0.3} 20 21 add EnergyFraction {3122} {0.3} 22 -
cards/ILCgen/ILCgen_BeamCal_Resolution.tcl
r13331dc ra3261d7 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} 3 5 4 6 set ResolutionFormula { … … 6 8 (abs(eta) > 4.8 && abs(eta) <= 5.8) * sqrt(energy^2*0.03^2 + energy*0.45^2) 7 9 } 10 -
cards/ILCgen/ILCgen_CTagging_N.tcl
r13331dc ra3261d7 104 104 source ILCgen/ILCgen_CTagging_20.tcl 105 105 } 106 -
cards/ILCgen/ILCgen_ChrgHadMomentumSmearing.tcl
r13331dc ra3261d7 6 6 7 7 set ResolutionFormula { 8 (abs(eta) <= 2.0) * 9 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 8 9 (abs(eta) <= 2.0) * 10 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 10 11 + (0.829675 -0.188197*abs(eta) + 0.106226 * eta*eta - 1.0) * log(pt) 11 12 + (0.0766417-0.00435667*abs(eta) + 0.00174804*eta*eta) * log(pt)*log(pt)) 12 + 13 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 14 exp( -4.54609 13 14 + 15 16 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 17 exp( -4.54609 15 18 + ( 0.87526 - 1.0) * log(pt) 16 19 + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt)) 17 } 20 21 } 22 -
cards/ILCgen/ILCgen_ChrgHadTrackingEff.tcl
r13331dc ra3261d7 4 4 # A.F.Zarnecki, June 12, 2020 5 5 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 } 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) } -
cards/ILCgen/ILCgen_ECAL_EnergyFractions.tcl
r13331dc ra3261d7 1 1 #P.Sopicki 2 2 # default energy fractions {abs(PDG code)} {fraction in ECAL or LumiCal} 3 3 add EnergyFraction {0} {0.0} 4 4 # energy fractions for e, gamma and pi0 -
cards/ILCgen/ILCgen_ECAL_Resolution.tcl
r13331dc ra3261d7 2 2 # ECAL and LumiCal resolution: same formula used at the moment 3 3 # 4 4 # set ResolutionFormula {resolution formula as a function of eta and energy} 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
r13331dc ra3261d7 1 2 # set EfficiencyFormula {efficiency formula as a function of eta and pt} 1 3 2 4 # efficiency formula for electrons (ECAL and LumiCal) -
cards/ILCgen/ILCgen_ElectronMomentumSmearing.tcl
r13331dc ra3261d7 6 6 7 7 set ResolutionFormula { 8 (abs(eta) <= 2.0) * 9 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 8 9 (abs(eta) <= 2.0) * 10 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 10 11 + (0.829675 -0.188197*abs(eta) + 0.106226 * eta*eta - 1.0) * log(pt) 11 12 + (0.0766417-0.00435667*abs(eta) + 0.00174804*eta*eta) * log(pt)*log(pt)) 12 + 13 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 14 exp( -4.54609 13 14 + 15 16 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 17 exp( -4.54609 15 18 + ( 0.87526 - 1.0) * log(pt) 16 19 + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt)) 17 } 20 21 } 22 -
cards/ILCgen/ILCgen_ElectronTrackingEff.tcl
r13331dc ra3261d7 4 4 # A.F.Zarnecki, June 12, 2020 5 5 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 } 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) } -
cards/ILCgen/ILCgen_HCAL_EnergyFractions.tcl
r13331dc ra3261d7 1 1 #P.Sopicki 2 2 # default energy fractions {abs(PDG code)} {fraction in HCAL or LHCAL} 3 3 add EnergyFraction {0} {1.0} 4 4 # energy fractions for e, gamma and pi0 -
cards/ILCgen/ILCgen_HCAL_Resolution.tcl
r13331dc ra3261d7 2 2 # HCAL and LHCAL resolution: same formula used at the moment 3 3 # 4 4 # set ResolutionFormula {resolution formula as a function of eta and energy} 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 } 8 } 9 -
cards/ILCgen/ILCgen_MuonMomentumSmearing.tcl
r13331dc ra3261d7 6 6 7 7 set ResolutionFormula { 8 (abs(eta) <= 2.0) * 9 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 8 9 (abs(eta) <= 2.0) * 10 exp( -6.82012 - 0.284133*abs(eta) + 0.64585*eta*eta 10 11 + (0.829675 -0.188197*abs(eta) + 0.106226 * eta*eta - 1.0) * log(pt) 11 12 + (0.0766417-0.00435667*abs(eta) + 0.00174804*eta*eta) * log(pt)*log(pt)) 12 + 13 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 14 exp( -4.54609 13 14 + 15 16 (abs(eta) > 2.0 && abs(eta) <= 3.0) * 17 exp( -4.54609 15 18 + ( 0.87526 - 1.0) * log(pt) 16 19 + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt)) 17 } 20 21 } 22 -
cards/ILCgen/ILCgen_MuonTrackingEff.tcl
r13331dc ra3261d7 4 4 # A.F.Zarnecki, June 12, 2020 5 5 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 } 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) } -
cards/ILCgen/ILCgen_PhotonEfficiency.tcl
r13331dc ra3261d7 1 # set EfficiencyFormula (efficiency formula as a function of eta and pt) 2 # efficiency formula for photons (ECAL + LumiCal) 1 2 # set EfficiencyFormula {efficiency formula as a function of eta and pt} 3 4 # efficiency formula for photons (ECAL + LumiCal) 3 5 4 6 set EfficiencyFormula { -
cards/delphes_card_CLICdet_Stage1.tcl
r13331dc ra3261d7 298 298 299 299 set EfficiencyFormula { 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) 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) 307 306 } 308 307 } … … 319 318 # Current full simulation with CLICdet provides for electrons: 320 319 set EfficiencyFormula { 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)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 (energy < 80 && energy >= 5) * (abs(eta) <= 2.54 && abs(eta) > 2.17 ) * (0.998) + 326 (energy < 80 && energy >= 5) * (abs(eta) <= 2.17) * (1.000) + 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) 331 330 } 332 331 } … … 342 341 # Current full simulation with CLICdet provides for muons: 343 342 set EfficiencyFormula { 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) 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 352 353 } 353 354 } … … 944 945 module FastJetFinder FastJetFinderKt { 945 946 # set InputArray Calorimeter/towers 946 set InputArray EFlow Filter/eflow947 set InputArray EFlowMerger/eflow 947 948 948 949 set OutputArray KTjets -
cards/delphes_card_CLICdet_Stage2.tcl
r13331dc ra3261d7 490 490 491 491 set EfficiencyFormula { 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) 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) 499 498 } 500 499 } … … 511 510 # Current full simulation with CLICdet provides for electrons: 512 511 set EfficiencyFormula { 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)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 (energy < 80 && energy >= 5) * (abs(eta) <= 2.54 && abs(eta) > 2.17 ) * (0.998) + 518 (energy < 80 && energy >= 5) * (abs(eta) <= 2.17) * (1.000) + 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) 523 522 } 524 523 } … … 534 533 # Current full simulation with CLICdet provides for muons: 535 534 set EfficiencyFormula { 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) 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 544 545 } 545 546 } … … 1135 1136 module FastJetFinder FastJetFinderKt { 1136 1137 # set InputArray Calorimeter/towers 1137 set InputArray EFlow Filter/eflow1138 set InputArray EFlowMerger/eflow 1138 1139 1139 1140 set OutputArray KTjets -
cards/delphes_card_CLICdet_Stage3.tcl
r13331dc ra3261d7 484 484 485 485 set EfficiencyFormula { 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) 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) 493 492 } 494 493 } … … 505 504 # Current full simulation with CLICdet provides for electrons: 506 505 set EfficiencyFormula { 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)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 (energy < 80 && energy >= 5) * (abs(eta) <= 2.54 && abs(eta) > 2.17 ) * (0.998) + 512 (energy < 80 && energy >= 5) * (abs(eta) <= 2.17) * (1.000) + 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) 517 516 } 518 517 } … … 528 527 # Current full simulation with CLICdet provides for muons: 529 528 set EfficiencyFormula { 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) 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 538 539 } 539 540 } … … 1131 1132 module FastJetFinder FastJetFinderKt { 1132 1133 # set InputArray Calorimeter/towers 1133 set InputArray EFlow Filter/eflow1134 set InputArray EFlowMerger/eflow 1134 1135 1135 1136 set OutputArray KTjets -
cards/delphes_card_IDEA.tcl
r13331dc ra3261d7 1 1 #################################################################### l 2 # FCC-ee IDEA detector model 3 # 4 # Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello , Michele Selvaggi2 # FCC-ee IDEA detector model 3 # 4 # Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello 5 5 # email: efontane@bo.infn.it, 6 # lorenzo.pezzotti01@universitadipavia.it, 7 # m.antonello@uninsubria.it, 8 # michele.selvaggi@cern.ch 9 ##################################################################### 10 11 set B 2.0 12 6 # lorenzo.pezzotti01@universitadipavia.it, 7 # m.antonello@uninsubria.it, 8 ##################################################################### 9 # 13 10 ####################################### 14 11 # Order of execution of various modules … … 22 19 MuonTrackingEfficiency 23 20 24 TrackMergerPre 25 TrackSmearing 26 27 TrackMerger 21 ChargedHadronMomentumSmearing 22 ElectronMomentumSmearing 23 MuonMomentumSmearing 24 25 TrackMerger 28 26 Calorimeter 29 27 EFlowMerger … … 31 29 PhotonEfficiency 32 30 PhotonIsolation 33 34 MuonFilter35 31 36 32 ElectronFilter … … 46 42 GenJetFinder 47 43 GenMissingET 48 44 49 45 FastJetFinder 50 46 … … 61 57 TreeWriter 62 58 } 59 63 60 64 61 ################################# … … 81 78 82 79 # magnetic field, in T 83 set Bz $B80 set Bz 2.0 84 81 } 85 82 … … 101 98 } 102 99 103 # (pt <= 0.1) * (0.00) + 100 # (pt <= 0.1) * (0.00) + 104 101 # (abs(eta) <= 3.0) * (pt > 0.1) * (1.00) + 105 102 # (abs(eta) > 3) * (0.00) … … 122 119 (energy < 0.5 && energy >= 0.3) * (abs(eta) <= 3.0) * (0.65) + 123 120 (energy < 0.3) * (abs(eta) <= 3.0) * (0.06) 124 } 121 } 125 122 } 126 123 … … 143 140 } 144 141 142 143 ######################################## 144 # Momentum resolution for charged tracks 145 ######################################## 146 147 module MomentumSmearing ChargedHadronMomentumSmearing { 148 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons 149 set OutputArray chargedHadrons 150 151 152 # Resolution given in dpT/pT. 153 # IDEAdet 154 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 electrons 161 ################################### 162 163 module MomentumSmearing ElectronMomentumSmearing { 164 set InputArray ElectronTrackingEfficiency/electrons 165 set OutputArray electrons 166 167 # Resolution given in dpT/pT. 168 # IDEAdet 169 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 muons 176 ############################### 177 178 module MomentumSmearing MuonMomentumSmearing { 179 set InputArray MuonTrackingEfficiency/muons 180 set OutputArray muons 181 182 # Resolution given in dpT/pT. 183 # IDEAdet 184 set ResolutionFormula { 185 (abs(eta) <= 3.0) * sqrt(0.0001145^2 + 0.0002024^2*pt + (pt*2.093e-005)^2) 186 } 187 } 188 145 189 ############## 146 190 # Track merger 147 191 ############## 148 192 149 module Merger TrackMergerPre {150 # add InputArray InputArray151 add InputArray ChargedHadronTrackingEfficiency/chargedHadrons152 add InputArray ElectronTrackingEfficiency/electrons153 add InputArray MuonTrackingEfficiency/muons154 set OutputArray tracks155 }156 157 158 ########################################159 # Smearing for charged tracks160 ########################################161 162 module TrackCovariance TrackSmearing {163 set InputArray TrackMergerPre/tracks164 set OutputArray tracks165 166 167 set InputArray TrackMergerPre/tracks168 set OutputArray tracks169 170 set Bz 2.0171 172 ## minimum number of hits to accept a track173 set NMinHits 6174 175 ## uses https://raw.githubusercontent.com/selvaggi/FastTrackCovariance/master/GeoIDEA_BASE.txt176 set DetectorGeometry {177 178 179 # Layer type 1 = R (barrel) or 2 = z (forward/backward)180 # Layer label181 # Minimum dimension z for barrel or R for forward182 # Maximum dimension z for barrel or R for forward183 # R/z location of layer184 # 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 side188 # Stereo angle (rad) - 0(pi/2) = axial(z) layer - Lower side189 # Resolution Upper side (meters) - 0 = no measurement190 # Resolution Lower side (meters) - 0 = no measurement191 # measurement flag = T, scattering only = F192 193 # barrel name zmin zmax r w (m) X0 n_meas th_up (rad) th_down (rad) reso_up (m) reso_down (m) flag194 195 # barrel name zmin zmax r w (m) X0 n_meas th_up (rad) th_down (rad) reso_up (m) reso_down (m) flag196 197 1 PIPE -100 100 0.015 0.001655 0.2805 0 0 0 0 0 0198 1 VTXLOW -0.12 0.12 0.017 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1199 1 VTXLOW -0.16 0.16 0.023 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1200 1 VTXLOW -0.16 0.16 0.031 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1201 1 VTXHIGH -1 1 0.32 0.00047 0.0937 2 0 1.5708 7e-006 7e-006 1202 1 VTXHIGH -1.05 1.05 0.34 0.00047 0.0937 2 0 1.5708 7e-006 7e-006 1203 204 # endcap name rmin rmax z w (m) X0 n_meas th_up (rad) th_down (rad) reso_up (m) reso_down (m) flag205 206 2 VTXDSK 0.141 0.3 -0.92 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1207 2 VTXDSK 0.138 0.3 -0.9 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1208 2 VTXDSK 0.065 0.3 -0.42 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1209 2 VTXDSK 0.062 0.3 -0.4 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1210 2 VTXDSK 0.062 0.3 0.4 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1211 2 VTXDSK 0.065 0.3 0.42 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1212 2 VTXDSK 0.138 0.3 0.9 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1213 2 VTXDSK 0.141 0.3 0.92 0.00028 0.0937 2 0 1.5708 7e-006 7e-006 1214 215 1 DCHCANI -2.125 2.125 0.345 0.0002 0.237223 0 0 0 0 0 0216 1 DCH -2 2 0.36 0.0147748 1400 1 0.0203738 0 0.0001 0 1217 1 DCH -2 2 0.374775 0.0147748 1400 1 -0.0212097 0 0.0001 0 1218 1 DCH -2 2 0.38955 0.0147748 1400 1 0.0220456 0 0.0001 0 1219 1 DCH -2 2 0.404324 0.0147748 1400 1 -0.0228814 0 0.0001 0 1220 1 DCH -2 2 0.419099 0.0147748 1400 1 0.0237172 0 0.0001 0 1221 1 DCH -2 2 0.433874 0.0147748 1400 1 -0.024553 0 0.0001 0 1222 1 DCH -2 2 0.448649 0.0147748 1400 1 0.0253888 0 0.0001 0 1223 1 DCH -2 2 0.463423 0.0147748 1400 1 -0.0262245 0 0.0001 0 1224 1 DCH -2 2 0.478198 0.0147748 1400 1 0.0270602 0 0.0001 0 1225 1 DCH -2 2 0.492973 0.0147748 1400 1 -0.0278958 0 0.0001 0 1226 1 DCH -2 2 0.507748 0.0147748 1400 1 0.0287314 0 0.0001 0 1227 1 DCH -2 2 0.522523 0.0147748 1400 1 -0.029567 0 0.0001 0 1228 1 DCH -2 2 0.537297 0.0147748 1400 1 0.0304025 0 0.0001 0 1229 1 DCH -2 2 0.552072 0.0147748 1400 1 -0.031238 0 0.0001 0 1230 1 DCH -2 2 0.566847 0.0147748 1400 1 0.0320734 0 0.0001 0 1231 1 DCH -2 2 0.581622 0.0147748 1400 1 -0.0329088 0 0.0001 0 1232 1 DCH -2 2 0.596396 0.0147748 1400 1 0.0337442 0 0.0001 0 1233 1 DCH -2 2 0.611171 0.0147748 1400 1 -0.0345795 0 0.0001 0 1234 1 DCH -2 2 0.625946 0.0147748 1400 1 0.0354147 0 0.0001 0 1235 1 DCH -2 2 0.640721 0.0147748 1400 1 -0.0362499 0 0.0001 0 1236 1 DCH -2 2 0.655495 0.0147748 1400 1 0.0370851 0 0.0001 0 1237 1 DCH -2 2 0.67027 0.0147748 1400 1 -0.0379202 0 0.0001 0 1238 1 DCH -2 2 0.685045 0.0147748 1400 1 0.0387552 0 0.0001 0 1239 1 DCH -2 2 0.69982 0.0147748 1400 1 -0.0395902 0 0.0001 0 1240 1 DCH -2 2 0.714595 0.0147748 1400 1 0.0404252 0 0.0001 0 1241 1 DCH -2 2 0.729369 0.0147748 1400 1 -0.04126 0 0.0001 0 1242 1 DCH -2 2 0.744144 0.0147748 1400 1 0.0420949 0 0.0001 0 1243 1 DCH -2 2 0.758919 0.0147748 1400 1 -0.0429296 0 0.0001 0 1244 1 DCH -2 2 0.773694 0.0147748 1400 1 0.0437643 0 0.0001 0 1245 1 DCH -2 2 0.788468 0.0147748 1400 1 -0.044599 0 0.0001 0 1246 1 DCH -2 2 0.803243 0.0147748 1400 1 0.0454336 0 0.0001 0 1247 1 DCH -2 2 0.818018 0.0147748 1400 1 -0.0462681 0 0.0001 0 1248 1 DCH -2 2 0.832793 0.0147748 1400 1 0.0471025 0 0.0001 0 1249 1 DCH -2 2 0.847568 0.0147748 1400 1 -0.0479369 0 0.0001 0 1250 1 DCH -2 2 0.862342 0.0147748 1400 1 0.0487713 0 0.0001 0 1251 1 DCH -2 2 0.877117 0.0147748 1400 1 -0.0496055 0 0.0001 0 1252 1 DCH -2 2 0.891892 0.0147748 1400 1 0.0504397 0 0.0001 0 1253 1 DCH -2 2 0.906667 0.0147748 1400 1 -0.0512738 0 0.0001 0 1254 1 DCH -2 2 0.921441 0.0147748 1400 1 0.0521079 0 0.0001 0 1255 1 DCH -2 2 0.936216 0.0147748 1400 1 -0.0529418 0 0.0001 0 1256 1 DCH -2 2 0.950991 0.0147748 1400 1 0.0537757 0 0.0001 0 1257 1 DCH -2 2 0.965766 0.0147748 1400 1 -0.0546095 0 0.0001 0 1258 1 DCH -2 2 0.980541 0.0147748 1400 1 0.0554433 0 0.0001 0 1259 1 DCH -2 2 0.995315 0.0147748 1400 1 -0.056277 0 0.0001 0 1260 1 DCH -2 2 1.01009 0.0147748 1400 1 0.0571106 0 0.0001 0 1261 1 DCH -2 2 1.02486 0.0147748 1400 1 -0.0579441 0 0.0001 0 1262 1 DCH -2 2 1.03964 0.0147748 1400 1 0.0587775 0 0.0001 0 1263 1 DCH -2 2 1.05441 0.0147748 1400 1 -0.0596108 0 0.0001 0 1264 1 DCH -2 2 1.06919 0.0147748 1400 1 0.0604441 0 0.0001 0 1265 1 DCH -2 2 1.08396 0.0147748 1400 1 -0.0612773 0 0.0001 0 1266 1 DCH -2 2 1.09874 0.0147748 1400 1 0.0621104 0 0.0001 0 1267 1 DCH -2 2 1.11351 0.0147748 1400 1 -0.0629434 0 0.0001 0 1268 1 DCH -2 2 1.12829 0.0147748 1400 1 0.0637763 0 0.0001 0 1269 1 DCH -2 2 1.14306 0.0147748 1400 1 -0.0646092 0 0.0001 0 1270 1 DCH -2 2 1.15784 0.0147748 1400 1 0.0654419 0 0.0001 0 1271 1 DCH -2 2 1.17261 0.0147748 1400 1 -0.0662746 0 0.0001 0 1272 1 DCH -2 2 1.18739 0.0147748 1400 1 0.0671071 0 0.0001 0 1273 1 DCH -2 2 1.20216 0.0147748 1400 1 -0.0679396 0 0.0001 0 1274 1 DCH -2 2 1.21694 0.0147748 1400 1 0.068772 0 0.0001 0 1275 1 DCH -2 2 1.23171 0.0147748 1400 1 -0.0696042 0 0.0001 0 1276 1 DCH -2 2 1.24649 0.0147748 1400 1 0.0704364 0 0.0001 0 1277 1 DCH -2 2 1.26126 0.0147748 1400 1 -0.0712685 0 0.0001 0 1278 1 DCH -2 2 1.27604 0.0147748 1400 1 0.0721005 0 0.0001 0 1279 1 DCH -2 2 1.29081 0.0147748 1400 1 -0.0729324 0 0.0001 0 1280 1 DCH -2 2 1.30559 0.0147748 1400 1 0.0737642 0 0.0001 0 1281 1 DCH -2 2 1.32036 0.0147748 1400 1 -0.0745958 0 0.0001 0 1282 1 DCH -2 2 1.33514 0.0147748 1400 1 0.0754274 0 0.0001 0 1283 1 DCH -2 2 1.34991 0.0147748 1400 1 -0.0762589 0 0.0001 0 1284 1 DCH -2 2 1.36468 0.0147748 1400 1 0.0770903 0 0.0001 0 1285 1 DCH -2 2 1.37946 0.0147748 1400 1 -0.0779215 0 0.0001 0 1286 1 DCH -2 2 1.39423 0.0147748 1400 1 0.0787527 0 0.0001 0 1287 1 DCH -2 2 1.40901 0.0147748 1400 1 -0.0795837 0 0.0001 0 1288 1 DCH -2 2 1.42378 0.0147748 1400 1 0.0804147 0 0.0001 0 1289 1 DCH -2 2 1.43856 0.0147748 1400 1 -0.0812455 0 0.0001 0 1290 1 DCH -2 2 1.45333 0.0147748 1400 1 0.0820762 0 0.0001 0 1291 1 DCH -2 2 1.46811 0.0147748 1400 1 -0.0829068 0 0.0001 0 1292 1 DCH -2 2 1.48288 0.0147748 1400 1 0.0837373 0 0.0001 0 1293 1 DCH -2 2 1.49766 0.0147748 1400 1 -0.0845677 0 0.0001 0 1294 1 DCH -2 2 1.51243 0.0147748 1400 1 0.0853979 0 0.0001 0 1295 1 DCH -2 2 1.52721 0.0147748 1400 1 -0.086228 0 0.0001 0 1296 1 DCH -2 2 1.54198 0.0147748 1400 1 0.087058 0 0.0001 0 1297 1 DCH -2 2 1.55676 0.0147748 1400 1 -0.0878879 0 0.0001 0 1298 1 DCH -2 2 1.57153 0.0147748 1400 1 0.0887177 0 0.0001 0 1299 1 DCH -2 2 1.58631 0.0147748 1400 1 -0.0895474 0 0.0001 0 1300 1 DCH -2 2 1.60108 0.0147748 1400 1 0.0903769 0 0.0001 0 1301 1 DCH -2 2 1.61586 0.0147748 1400 1 -0.0912063 0 0.0001 0 1302 1 DCH -2 2 1.63063 0.0147748 1400 1 0.0920356 0 0.0001 0 1303 1 DCH -2 2 1.64541 0.0147748 1400 1 -0.0928647 0 0.0001 0 1304 1 DCH -2 2 1.66018 0.0147748 1400 1 0.0936937 0 0.0001 0 1305 1 DCH -2 2 1.67495 0.0147748 1400 1 -0.0945226 0 0.0001 0 1306 1 DCH -2 2 1.68973 0.0147748 1400 1 0.0953514 0 0.0001 0 1307 1 DCH -2 2 1.7045 0.0147748 1400 1 -0.09618 0 0.0001 0 1308 1 DCH -2 2 1.71928 0.0147748 1400 1 0.0970085 0 0.0001 0 1309 1 DCH -2 2 1.73405 0.0147748 1400 1 -0.0978369 0 0.0001 0 1310 1 DCH -2 2 1.74883 0.0147748 1400 1 0.0986651 0 0.0001 0 1311 1 DCH -2 2 1.7636 0.0147748 1400 1 -0.0994932 0 0.0001 0 1312 1 DCH -2 2 1.77838 0.0147748 1400 1 0.100321 0 0.0001 0 1313 1 DCH -2 2 1.79315 0.0147748 1400 1 -0.101149 0 0.0001 0 1314 1 DCH -2 2 1.80793 0.0147748 1400 1 0.101977 0 0.0001 0 1315 1 DCH -2 2 1.8227 0.0147748 1400 1 -0.102804 0 0.0001 0 1316 1 DCH -2 2 1.83748 0.0147748 1400 1 0.103632 0 0.0001 0 1317 1 DCH -2 2 1.85225 0.0147748 1400 1 -0.104459 0 0.0001 0 1318 1 DCH -2 2 1.86703 0.0147748 1400 1 0.105286 0 0.0001 0 1319 1 DCH -2 2 1.8818 0.0147748 1400 1 -0.106113 0 0.0001 0 1320 1 DCH -2 2 1.89658 0.0147748 1400 1 0.10694 0 0.0001 0 1321 1 DCH -2 2 1.91135 0.0147748 1400 1 -0.107766 0 0.0001 0 1322 1 DCH -2 2 1.92613 0.0147748 1400 1 0.108593 0 0.0001 0 1323 1 DCH -2 2 1.9409 0.0147748 1400 1 -0.109419 0 0.0001 0 1324 1 DCH -2 2 1.95568 0.0147748 1400 1 0.110246 0 0.0001 0 1325 1 DCH -2 2 1.97045 0.0147748 1400 1 -0.111072 0 0.0001 0 1326 1 DCH -2 2 1.98523 0.0147748 1400 1 0.111898 0 0.0001 0 1327 1 DCH -2 2 2 0.0147748 1400 1 -0.112723 0 0.0001 0 1328 1 DCHCANO -2.125 2.125 2.02 0.02 1.667 0 0 0 0 0 0329 1 BSILWRP -2.35 2.35 2.04 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1330 1 BSILWRP -2.35 2.35 2.06 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1331 1 MAG -2.5 2.5 2.25 0.05 0.0658 0 0 0 0 0 0332 1 BPRESH -2.55 2.55 2.45 0.02 1 2 0 1.5708 7e-005 0.01 1333 2 DCHWALL 0.345 2.02 2.125 0.25 5.55 0 0 0 0 0 0334 2 DCHWALL 0.345 2.02 -2.125 0.25 5.55 0 0 0 0 0 0335 2 FSILWRP 0.354 2.02 -2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1336 2 FSILWRP 0.35 2.02 -2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1337 2 FSILWRP 0.35 2.02 2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1338 2 FSILWRP 0.354 2.02 2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1339 2 FRAD 0.38 2.09 2.49 0.0043 0.005612 0 0 0 0 0 0340 2 FRAD 0.38 2.09 -2.49 0.0043 0.005612 0 0 0 0 0 0341 2 FPRESH 0.39 2.43 -2.55 0.02 1 2 0 1.5708 7e-005 0.01 1342 2 FPRESH 0.39 2.43 2.55 0.02 1 2 0 1.5708 7e-005 0.01 1343 }344 345 set Bz $B346 }347 348 ##############349 # Track merger350 ##############351 352 193 module Merger TrackMerger { 353 194 # add InputArray InputArray 354 add InputArray TrackSmearing/tracks 195 add InputArray ChargedHadronMomentumSmearing/chargedHadrons 196 add InputArray ElectronMomentumSmearing/electrons 197 add InputArray MuonMomentumSmearing/muons 355 198 set OutputArray tracks 356 199 } 357 200 358 201 359 ############# 360 # Calorimeter 361 ############# 202 ############# 203 # Calorimeter 204 ############# 362 205 module DualReadoutCalorimeter Calorimeter { 363 206 set ParticleInputArray ParticlePropagator/stableParticles … … 381 224 set pi [expr {acos(-1)}] 382 225 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: 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: 391 234 set PhiBins {} 392 235 for {set i -120} {$i <= 120} {incr i} { 393 236 add PhiBins [expr {$i * $pi/120}] 394 237 } 395 #deta=0.02 units for |eta| <= 0.88 238 #deta=0.02 units for |eta| <= 0.88 396 239 for {set i -44} {$i < 45} {incr i} { 397 240 set eta [expr {$i * 0.02}] … … 399 242 } 400 243 401 #endcaps: 244 #endcaps: 402 245 set PhiBins {} 403 246 for {set i -120} {$i <= 120} {incr i} { 404 247 add PhiBins [expr {$i* $pi/120}] 405 248 } 406 #deta=0.02 units for 0.88 < |eta| <= 3.0 407 #first, from -3.0 to -0.88 249 #deta=0.02 units for 0.88 < |eta| <= 3.0 250 #first, from -3.0 to -0.88 408 251 for {set i 1} {$i <=106} {incr i} { 409 252 set eta [expr {-3.00 + $i * 0.02}] 410 253 add EtaPhiBins $eta $PhiBins 411 254 } 412 #same for 0.88 to 3.0 255 #same for 0.88 to 3.0 413 256 for {set i 1} {$i <=106} {incr i} { 414 257 set eta [expr {0.88 + $i * 0.02}] … … 416 259 } 417 260 418 # default energy fractions {abs(PDG code)} {Fecal Fhcal} 261 # default energy fractions {abs(PDG code)} {Fecal Fhcal} 419 262 add EnergyFraction {0} {0.0 1.0} 420 # energy fractions for e, gamma and pi0 263 # energy fractions for e, gamma and pi0 421 264 add EnergyFraction {11} {1.0 0.0} 422 265 add EnergyFraction {22} {1.0 0.0} 423 266 add EnergyFraction {111} {1.0 0.0} 424 # energy fractions for muon, neutrinos and neutralinos 267 # energy fractions for muon, neutrinos and neutralinos 425 268 add EnergyFraction {12} {0.0 0.0} 426 269 add EnergyFraction {13} {0.0 0.0} … … 432 275 add EnergyFraction {1000035} {0.0 0.0} 433 276 add EnergyFraction {1000045} {0.0 0.0} 434 # energy fractions for K0short and Lambda 277 # energy fractions for K0short and Lambda 435 278 add EnergyFraction {310} {0.3 0.7} 436 279 add EnergyFraction {3122} {0.3 0.7} 437 280 438 281 439 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 282 # set ECalResolutionFormula {resolution formula as a function of eta and energy} 440 283 set ECalResolutionFormula { 441 284 (abs(eta) <= 0.88 ) * sqrt(energy^2*0.01^2 + energy*0.11^2)+ … … 443 286 } 444 287 445 # set HCalResolutionFormula {resolution formula as a function of eta and energy} 288 # set HCalResolutionFormula {resolution formula as a function of eta and energy} 446 289 set HCalResolutionFormula { 447 290 (abs(eta) <= 0.88 ) * sqrt(energy^2*0.01^2 + energy*0.30^2)+ … … 509 352 } 510 353 511 #################512 # Muon filter513 #################514 515 module PdgCodeFilter MuonFilter {516 set InputArray Calorimeter/eflowTracks517 set OutputArray muons518 set Invert true519 add PdgCode {13}520 add PdgCode {-13}521 }522 523 524 354 ##################### 525 355 # Electron efficiency … … 533 363 534 364 # efficiency formula for electrons 535 set EfficiencyFormula { 365 set EfficiencyFormula { 536 366 (energy < 2.0) * (0.000)+ 537 367 (energy >= 2.0) * (abs(eta) <= 0.88) * (0.99) + … … 563 393 564 394 module Efficiency MuonEfficiency { 565 set InputArray Muon Filter/muons395 set InputArray MuonMomentumSmearing/muons 566 396 set OutputArray muons 567 397 … … 569 399 570 400 # efficiency formula for muons 571 set EfficiencyFormula { 401 set EfficiencyFormula { 572 402 (energy < 2.0) * (0.000)+ 573 403 (energy >= 2.0) * (abs(eta) <= 0.88) * (0.99) + … … 717 547 718 548 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt} 719 549 720 550 # default efficiency formula (misidentification rate) 721 551 add EfficiencyFormula {0} {0.01} … … 773 603 module TreeWriter TreeWriter { 774 604 # add Branch InputArray BranchName BranchClass 775 605 776 606 add Branch Delphes/allParticles Particle GenParticle 777 607 778 608 add Branch TrackMerger/tracks Track Track 779 609 add Branch Calorimeter/towers Tower Tower 780 610 781 611 add Branch Calorimeter/eflowTracks EFlowTrack Track 782 612 add Branch Calorimeter/eflowPhotons EFlowPhoton Tower … … 786 616 add Branch PhotonEfficiency/photons PhotonEff Photon 787 617 add Branch PhotonIsolation/photons PhotonIso Photon 788 618 789 619 add Branch GenJetFinder/jets GenJet Jet 790 620 add Branch GenMissingET/momentum GenMissingET MissingET 791 621 792 622 add Branch UniqueObjectFinder/jets Jet Jet 793 623 add Branch UniqueObjectFinder/electrons Electron Electron 794 624 add Branch UniqueObjectFinder/photons Photon Photon 795 625 add Branch UniqueObjectFinder/muons Muon Muon 796 797 add Branch JetEnergyScale/jets AntiKtJet Jet 798 626 627 add Branch JetEnergyScale/jets AntiKtJet Jet 628 799 629 add Branch MissingET/momentum MissingET MissingET 800 630 add Branch ScalarHT/energy ScalarHT ScalarHT 801 802 # add Info InfoName InfoValue 803 add Info Bz $B 804 } 631 } 632 -
classes/DelphesClasses.cc
r13331dc ra3261d7 102 102 { 103 103 TLorentzVector vec; 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 104 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0); 105 return vec; 106 } 148 107 149 108 //------------------------------------------------------------------------------ … … 161 120 { 162 121 TLorentzVector 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; 122 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0); 123 return vec; 205 124 } 206 125 … … 234 153 NNeutrals(0), 235 154 NeutralEnergyFraction(0), // charged energy fraction 236 ChargedEnergyFraction(0), // neutral energy fraction 155 ChargedEnergyFraction(0), // neutral energy fraction 237 156 Beta(0), 238 157 BetaStar(0), -
classes/DelphesClasses.h
r13331dc ra3261d7 151 151 Float_t Eta; // particle pseudorapidity 152 152 Float_t Phi; // particle azimuthal angle 153 153 154 Float_t Rapidity; // particle rapidity 155 Float_t CtgTheta; // particle cotangent of theta 156 157 Float_t D0; // particle transverse impact parameter 158 Float_t DZ; // particle longitudinal impact parameter 154 159 155 160 Float_t T; // particle vertex position (t component) | hepevt.vhep[number][3] … … 385 390 386 391 Float_t NeutralEnergyFraction; // charged energy fraction 387 Float_t ChargedEnergyFraction; // neutral energy fraction 392 Float_t ChargedEnergyFraction; // neutral energy fraction 388 393 389 394 Float_t Beta; // (sum pt of charged pile-up constituents)/(sum pt of charged constituents) … … 438 443 Float_t Phi; // track azimuthal angle 439 444 Float_t CtgTheta; // track cotangent of theta 440 Float_t C; // track curvature inverse441 Float_t Mass; // particle mass442 445 443 446 Float_t EtaOuter; // track pseudorapidity at the tracker edge … … 470 473 Float_t ErrorD0; // track transverse impact parameter error 471 474 Float_t ErrorDZ; // track longitudinal impact parameter error 472 Float_t ErrorC; // track curvature error473 474 // track covariance off-diagonal terms475 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;485 475 486 476 TRef Particle; // reference to generated particle … … 492 482 493 483 TLorentzVector P4() const; 494 TMatrixDSym CovarianceMatrix() const;495 484 496 485 ClassDef(Track, 3) … … 542 531 Float_t Phi; // track azimuthal angle 543 532 Float_t CtgTheta; // track cotangent of theta 544 Float_t C; // track curvature inverse545 Float_t Mass; // particle mass546 533 547 534 Float_t EtaOuter; // track pseudorapidity at the tracker edge … … 574 561 Float_t ErrorD0; // track transverse impact parameter error 575 562 Float_t ErrorDZ; // track longitudinal impact parameter error 576 Float_t ErrorC; // track curvature error577 578 // track covariance off-diagonal terms579 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;589 563 590 564 Int_t VertexIndex; // reference to vertex … … 594 568 595 569 TLorentzVector P4() const; 596 TMatrixDSym CovarianceMatrix() const;597 570 598 571 Int_t NTimeHits; // number of hits contributing to time measurement … … 605 578 TRefArray Particles; // references to generated particles 606 579 607 ClassDef(ParticleFlowCandidate, 2)580 ClassDef(ParticleFlowCandidate, 1) 608 581 609 582 }; … … 712 685 Float_t FracPt[5]; 713 686 Float_t NeutralEnergyFraction; // charged energy fraction 714 Float_t ChargedEnergyFraction; // neutral energy fraction 687 Float_t ChargedEnergyFraction; // neutral energy fraction 715 688 716 689 … … 769 742 // event characteristics variables 770 743 Double_t ParticleDensity; // particle multiplicity density in the proximity of the particle 771 744 772 745 static CompBase *fgCompare; //! 773 746 const CompBase *GetCompare() const { return fgCompare; } -
classes/DelphesModule.cc
r13331dc ra3261d7 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 149 132 ExRootResult *DelphesModule::GetPlots() 150 133 { -
classes/DelphesModule.h
r13331dc ra3261d7 55 55 56 56 ExRootTreeBranch *NewBranch(const char *name, TClass *cl); 57 void AddInfo(const char *name, Double_t value);58 57 59 58 ExRootResult *GetPlots(); -
classes/DelphesTF2.cc
r13331dc ra3261d7 32 32 { 33 33 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) 34 #if ROOT_VERSION_CODE >= ROOT_VERSION(6, 3, 0) 37 35 fFormula = new TFormula(); 38 36 #endif -
doc/genMakefile.tcl
r13331dc ra3261d7 282 282 DISPLAYLIB = libDelphesDisplay.lib 283 283 284 VERSION = x.y.z284 VERSION = $(shell cat VERSION) 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 Makefile 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 VERSION 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
r13331dc ra3261d7 1 version=3.3. 41 version=3.3.2 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/VERSION 13 15 14 16 cd fastjet -
external/ExRootAnalysis/ExRootTreeReader.cc
r13331dc ra3261d7 12 12 #include "TBranchElement.h" 13 13 #include "TCanvas.h" 14 #include "TParameter.h"15 14 #include "TClonesArray.h" 16 15 #include "TH2.h" … … 120 119 //------------------------------------------------------------------------------ 121 120 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 135 121 Bool_t ExRootTreeReader::Notify() 136 122 { -
external/ExRootAnalysis/ExRootTreeReader.h
r13331dc ra3261d7 29 29 30 30 TClonesArray *UseBranch(const char *branchName); 31 Double_t GetInfo(const char *name);32 31 33 32 private: -
external/ExRootAnalysis/ExRootTreeWriter.cc
r13331dc ra3261d7 11 11 #include "ExRootAnalysis/ExRootTreeBranch.h" 12 12 13 #include "TParameter.h"14 13 #include "TClonesArray.h" 15 14 #include "TFile.h" … … 49 48 fBranches.insert(branch); 50 49 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));59 50 } 60 51 -
external/ExRootAnalysis/ExRootTreeWriter.h
r13331dc ra3261d7 29 29 30 30 ExRootTreeBranch *NewBranch(const char *name, TClass *cl); 31 void AddInfo(const char *name, Double_t value);32 31 33 32 void Clear(); -
external/TrackCovariance/ObsTrk.cc
r13331dc ra3261d7 10 10 // 11 11 // Constructors 12 //13 12 // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla 14 13 ObsTrk::ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC) 15 14 { 16 SetBfield(B);17 15 fGC = GC; 18 16 fGenX = x; … … 21 19 fB = B; 22 20 fGenPar.ResizeTo(5); 23 fGenParMm.ResizeTo(5);24 21 fGenParACTS.ResizeTo(6); 25 22 fGenParILC.ResizeTo(5); 26 23 fObsPar.ResizeTo(5); 27 fObsParMm.ResizeTo(5);28 24 fObsParACTS.ResizeTo(6); 29 25 fObsParILC.ResizeTo(5); 30 26 fCov.ResizeTo(5, 5); 31 fCovMm.ResizeTo(5, 5);32 27 fCovACTS.ResizeTo(6, 6); 33 28 fCovILC.ResizeTo(5, 5); 34 29 fGenPar = XPtoPar(x,p,Q); 35 fGenParMm = ParToMm(fGenPar);36 30 fGenParACTS = ParToACTS(fGenPar); 37 31 fGenParILC = ParToILC(fGenPar); 38 32 /* 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; 33 std::cout << "ObsTrk::ObsTrk: fGenPar"; 34 for (Int_t i = 0; i < 5; i++)std::cout << fGenPar(i) << ", "; 35 std::cout << std::endl; 83 36 */ 84 37 fObsPar = GenToObsPar(fGenPar, fGC); … … 88 41 fObsP = ParToP(fObsPar); 89 42 fObsQ = ParToQ(fObsPar); 90 fCovACTS = CovToACTS(f ObsPar, fCov);43 fCovACTS = CovToACTS(fCov); 91 44 fCovILC = CovToILC(fCov); 92 45 } … … 98 51 fGenP.Clear(); 99 52 fGenPar.Clear(); 100 fGenParMm.Clear();101 53 fGenParACTS.Clear(); 102 fGenParILC.Clear();103 54 fObsX.Clear(); 104 55 fObsP.Clear(); 105 56 fObsPar.Clear(); 106 fObsParMm.Clear();107 57 fObsParACTS.Clear(); 108 fObsParILC.Clear();109 58 fCov.Clear(); 110 fCovMm.Clear();111 59 fCovACTS.Clear(); 112 fCovILC.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)); 113 126 } 114 127 // … … 122 135 // Check ranges 123 136 Double_t minPt = GC->GetMinPt (); 124 //if (pt < minPt) cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is below grid range of " << minPt <<endl;137 if (pt < minPt) std::cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is below grid range of " << minPt << std::endl; 125 138 Double_t maxPt = GC->GetMaxPt(); 126 //if (pt > maxPt) cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is above grid range of " << maxPt <<endl;139 if (pt > maxPt) std::cout << "Warning ObsTrk::GenToObsPar: pt " << pt << " is above grid range of " << maxPt << std::endl; 127 140 Double_t minAn = GC->GetMinAng(); 128 //if (angd < minAn)cout << "Warning ObsTrk::GenToObsPar: angle " << angd129 // << " is below grid range of " << minAn <<endl;141 if (angd < minAn) std::cout << "Warning ObsTrk::GenToObsPar: angle " << angd 142 << " is below grid range of " << minAn << std::endl; 130 143 Double_t maxAn = GC->GetMaxAng(); 131 //if (angd > maxAn)cout << "Warning ObsTrk::GenToObsPar: angle " << angd132 // << " is above grid range of " << maxAn <<endl;144 if (angd > maxAn) std::cout << "Warning ObsTrk::GenToObsPar: angle " << angd 145 << " is above grid range of " << maxAn << std::endl; 133 146 // 134 147 TMatrixDSym Cov = GC->GetCov(pt, angd); … … 157 170 return oPar; 158 171 } 172 // Parameter conversion to ACTS format 173 TVectorD ObsTrk::ParToACTS(TVectorD Par) 174 { 175 TVectorD pACTS(6); // Return vector 176 // 177 Double_t b = -0.29988*fB / 2.; 178 pACTS(0) = 1000*Par(0); // D from m to mm 179 pACTS(1) = 1000 * Par(3); // z0 from m to mm 180 pACTS(2) = Par(1); // Phi0 is unchanged 181 pACTS(3) = TMath::ATan(1.0 / Par(4)) + TMath::PiOver2(); // Theta in [0, pi] range 182 pACTS(4) = Par(2) / (b*TMath::Sqrt(1 + Par(4)*Par(4))); // q/p in GeV 183 pACTS(5) = 0.0; // Time: currently undefined 184 // 185 return pACTS; 186 } 187 // Covariance conversion to ACTS format 188 TMatrixDSym ObsTrk::CovToACTS(TMatrixDSym Cov) 189 { 190 TMatrixDSym cACTS(6); cACTS.Zero(); 191 Double_t b = -0.29988*fB / 2.; 192 // 193 // Fill derivative matrix 194 TMatrixD A(5, 5); A.Zero(); 195 Double_t ct = fGenPar(4); // cot(theta) 196 Double_t C = fGenPar(2); // half curvature 197 A(0, 0) = 1000.; // D-D conversion to mm 198 A(1, 2) = 1.0; // phi0-phi0 199 A(2, 4) = 1.0/(TMath::Sqrt(1.0 + ct*ct) * b); // q/p-C 200 A(3, 1) = 1000.; // z0-z0 conversion to mm 201 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 crashes 210 // 211 return cACTS; 212 } 213 214 // Parameter conversion to ILC format 215 TVectorD ObsTrk::ParToILC(TVectorD Par) 216 { 217 TVectorD pILC(5); // Return vector 218 // 219 pILC(0) = Par(0)*1.0e3; // d0 in mm 220 pILC(1) = Par(1); // phi0 is unchanged 221 pILC(2) = -2 * Par(2)*1.0e-3; // w in mm^-1 222 pILC(3) = Par(3)*1.0e3; // z0 in mm 223 pILC(4) = Par(4); // tan(lambda) = cot(theta) 224 // 225 return pILC; 226 } 227 // Covariance conversion to ILC format 228 TMatrixDSym ObsTrk::CovToILC(TMatrixDSym Cov) 229 { 230 TMatrixDSym cILC(5); cILC.Zero(); 231 // 232 // Fill derivative matrix 233 TMatrixD A(5, 5); A.Zero(); 234 // 235 A(0, 0) = 1.0e3; // D-d0 in mm 236 A(1, 1) = 1.0; // phi0-phi0 237 A(2, 2) = -2.0e-3; // w-C 238 A(3, 3) = 1.0e3; // z0-z0 conversion to mm 239 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
r13331dc ra3261d7 6 6 #include <TMatrixDSym.h> 7 7 #include <TDecompChol.h> 8 #include "TrkUtil.h"9 8 #include "SolGridCov.h" 10 9 // … … 14 13 // INFN - Sezione di Pisa, Italy 15 14 // 16 class ObsTrk: public TrkUtil 17 { 15 class ObsTrk{ 18 16 // 19 17 // Class to handle simulation of tracking resolution … … 22 20 // 23 21 private: 24 Double_t fB; // Solenoid magnetic field25 SolGridCov *fGC; // Covariance matrix grid22 Double_t fB; // Solenoid magnetic field 23 SolGridCov *fGC; // Covariance matrix grid 26 24 Double_t fGenQ; // Generated track charge 27 25 Double_t fObsQ; // Observed track charge … … 30 28 TVector3 fGenP; // Generated track momentum at track origin 31 29 TVector3 fObsP; // Observed track momentum @ track minimum approach 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 30 TVectorD fGenPar; // Generated helix track parameters (D, phi0, C, z0, cot(th)) 34 31 TVectorD fGenParACTS; // Generated helix track parameters (D, z0, phi0, th, q/p, time 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 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)) 38 34 TVectorD fObsParACTS; // Observed helix track parameters (D, z0, phi0, th, q/p, time 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 35 TVectorD fObsParILC; // Observed helix track parameters (d0, phi0, w, z0, tan(lambda)) 36 TMatrixDSym fCov; // INterpolated covariance of track parameters 42 37 TMatrixDSym fCovACTS; // Covariance of track parameters in ACTS format 43 38 // (D, z0, phi0, theta, q/p, time) 44 TMatrixDSym fCovILC; // Covariance of track parameters in ILC format39 TMatrixDSym fCovILC; // Covariance of track parameters in ILC format 45 40 // (d0, phi0, w, z0, tan(lambda)) 46 41 // 47 // Service routines42 // Conversion to ACTS parametrization 48 43 // 49 TVectorD GenToObsPar(TVectorD gPar, SolGridCov* GC); 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 50 51 // 51 52 public: … … 53 54 // Constructors 54 55 // x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla 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 56 ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC); // Initialize and generate smeared track 57 57 // Destructor 58 58 ~ObsTrk(); 59 // 60 // Service routines 61 // 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); 59 67 // 60 68 // Accessors … … 66 74 TVector3 GetGenP() { return fGenP; } 67 75 // D, phi0, C, z0, cot(th) 68 TVectorD GetGenPar() { return fGenPar; } // in meters 69 TVectorD GetGenParMm() { return fGenParMm; } // in mm 76 TVectorD GetGenPar() { return fGenPar; } 70 77 // D, z0, phi0, theta, q/p, time 71 78 TVectorD GetGenParACTS() { return fGenParACTS; } … … 77 84 TVector3 GetObsP() { return fObsP; } 78 85 // D, phi0, C, z0, cot(th) 79 TVectorD GetObsPar() { return fObsPar; } // in meters 80 TVectorD GetObsParMm() { return fObsParMm; } // In mm 86 TVectorD GetObsPar() { return fObsPar; } 81 87 // D, z0, phi0, theta, q/p, time 82 88 TVectorD GetObsParACTS() { return fObsParACTS; } … … 84 90 TVectorD GetObsParILC() { return fObsParILC; } 85 91 // Covariances 86 TMatrixDSym GetCov() { return fCov; } // in meters 87 TMatrixDSym GetCovMm() { return fCov; } // in mm 92 TMatrixDSym GetCov(){ return fCov; } 88 93 TMatrixDSym GetCovACTS(){ return fCovACTS; } 89 94 TMatrixDSym GetCovILC(){ return fCovILC; } 90 //91 95 }; 92 96 -
external/TrackCovariance/SolGridCov.cc
r13331dc ra3261d7 3 3 #include <TMath.h> 4 4 #include <TVectorD.h> 5 #include <TVector3.h>6 5 #include <TMatrixDSym.h> 7 6 #include <TDecompChol.h> … … 37 36 { 38 37 delete[] fCov; 39 delete fAcc;40 38 } 41 39 … … 60 58 } 61 59 } 62 63 // Now make acceptance64 fAcc = new AcceptanceClx(G);65 60 } 66 67 68 //69 Bool_t SolGridCov::IsAccepted(Double_t pt, Double_t Theta)70 {71 //72 // pt in GeV, Theta in degrees73 //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 degrees84 //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 degrees97 //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 107 61 // Find bin in grid 108 62 Int_t SolGridCov::GetMinIndex(Double_t xval, Int_t N, TVectorD x) -
external/TrackCovariance/SolGridCov.h
r13331dc ra3261d7 4 4 #include <TVectorD.h> 5 5 #include <TMatrixDSym.h> 6 #include "AcceptanceClx.h"7 6 8 7 class SolGeom; … … 18 17 TVectorD fAnga; // Array of angle points in degrees 19 18 TMatrixDSym *fCov; // Pointers to grid of covariance matrices 20 AcceptanceClx *fAcc; // Pointer to acceptance class21 Int_t fNminHits; // Minimum number of hits to accept track22 19 // Service routines 23 20 Int_t GetMinIndex(Double_t xval, Int_t N, TVectorD x); // Find bin … … 35 32 Double_t GetMaxAng() { return fAnga(fNang - 1); } 36 33 TMatrixDSym GetCov(Double_t pt, Double_t ang); 37 38 // Acceptance related methods39 AcceptanceClx* AccPnt() { return fAcc; }; // Return Acceptance class pointer40 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 format45 46 34 }; 47 35 -
external/TrackCovariance/SolTrack.cc
r13331dc ra3261d7 45 45 fCov.ResizeTo(5, 5); 46 46 } 47 SolTrack::SolTrack(TVector3 x, TVector3 p, SolGeom* G)48 {49 fG = G;50 // Store momentum51 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 parameters56 Double_t pt = TMath::Sqrt(px * px + py * py);57 Double_t Charge = 1.0; // Don't worry about charge for now58 Double_t a = -Charge * G->B() * 0.2998; // Normalized speed of light59 Double_t C = a / (2 * pt); // pt in GeV, B in Tesla, C in meters60 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 covariances79 //80 fCov.ResizeTo(5, 5);81 }82 47 83 48 SolTrack::SolTrack(Double_t D, Double_t phi0, Double_t C, Double_t z0, Double_t ct, SolGeom *G) … … 104 69 SolTrack::~SolTrack() 105 70 { 106 delete[] & fp;107 delete[] & fpar;108 71 fCov.Clear(); 109 72 } … … 169 132 return kh; 170 133 } 171 172 // # of measurement layers hit173 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 185 134 // List of layers hit with intersections 186 135 Int_t SolTrack::HitList(Int_t *&ihh, Double_t *&rhh, Double_t *&zhh) … … 212 161 return kmh; 213 162 } 214 215 // List of XYZ measurements without any error216 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 hits221 // kmh = total number of measurement layers hit for given type222 // ihh = pointer to layer number223 // Xh, Yh, Zh = X, Y, Z of hit - No measurement error - No multiple scattering224 //225 //226 Int_t kmh = 0; // Number of measurement layers hit227 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 layers231 {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 //246 163 // Covariance matrix estimation 247 //248 164 void SolTrack::CovCalc(Bool_t Res, Bool_t MS) 249 165 { 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); 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); 543 431 } 544 432 … … 546 434 TMatrixDSym SolTrack::MakePosDef(TMatrixDSym NormMat) 547 435 { 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 } 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 } -
external/TrackCovariance/SolTrack.h
r13331dc ra3261d7 3 3 4 4 #include <TMath.h> 5 #include <TVector3.h>6 5 #include <TMatrixDSym.h> 7 6 … … 25 24 // Constructors 26 25 SolTrack(Double_t *x, Double_t *p, SolGeom *G); 27 SolTrack(TVector3 x, TVector3 p, SolGeom* G);28 26 SolTrack(Double_t D, Double_t phi0, Double_t C, Double_t z0, Double_t ct, SolGeom *G); 29 27 // Destructor … … 59 57 // Track hit management 60 58 Int_t nHit(); 61 Int_t nmHit();62 59 Bool_t HitLayer(Int_t Layer, Double_t &R, Double_t &phi, Double_t &zz); 63 60 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 66 61 // Make normalized matrix positive definite 67 62 TMatrixDSym MakePosDef(TMatrixDSym NormMat); -
external/fastjet/ActiveAreaSpec.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ActiveAreaSpec.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ActiveAreaSpec.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/AreaDefinition.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: AreaDefinition.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: AreaDefinition.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/AreaDefinition.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: AreaDefinition.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: AreaDefinition.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2006-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/BasicRandom.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: BasicRandom.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: BasicRandom.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CircularRange.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CircularRange.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: CircularRange.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClosestPair2D.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClosestPair2D.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequence.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, 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 GNU GPL v2 or higher.\n";441 (*ostr) << "# FastJet is provided without warranty under the terms of the GNU GPLv2.\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
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: ClusterSequence.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: ClusterSequence.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence1GhostPassiveArea.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence1GhostPassiveArea.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequence1GhostPassiveArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence1GhostPassiveArea.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence1GhostPassiveArea.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequence1GhostPassiveArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveArea.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveArea.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequenceActiveArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveArea.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveArea.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceArea.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceArea.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequenceArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2006-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceArea.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceArea.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2006-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceAreaBase.cc
r13331dc ra3261d7 1 1 2 2 //FJSTARTHEADER 3 // $Id: ClusterSequenceAreaBase.cc 4 442 2020-05-05 07:50:11Z soyez$4 // 5 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez3 // $Id: ClusterSequenceAreaBase.cc 4354 2018-04-22 07:12:37Z salam $ 4 // 5 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceAreaBase.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceAreaBase.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceAreaBase.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequencePassiveArea.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequencePassiveArea.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequencePassiveArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequencePassiveArea.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequencePassiveArea.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequencePassiveArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceStructure.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceStructure.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceStructure.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceStructure.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceStructure.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceStructure.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceVoronoiArea.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceVoronoiArea.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2006-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequenceVoronoiArea.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceVoronoiArea.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceVoronoiArea.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequenceVoronoiArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequenceWithArea.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequenceWithArea.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequenceWithArea.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2006-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_CP2DChan.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_CP2DChan.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequence_CP2DChan.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_Delaunay.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_Delaunay.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClusterSequence_Delaunay.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_DumbN3.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_DumbN3.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequence_DumbN3.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_N2.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_N2.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequence_N2.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/ClusterSequence_TiledN2.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClusterSequence_TiledN2.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClusterSequence_TiledN2.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CompositeJetStructure.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CompositeJetStructure.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: CompositeJetStructure.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/CompositeJetStructure.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CompositeJetStructure.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: CompositeJetStructure.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn2piCylinder.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Dnn2piCylinder.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn2piCylinder.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn3piCylinder.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Dnn3piCylinder.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Dnn3piCylinder.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Dnn4piCylinder.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Dnn4piCylinder.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Dnn4piCylinder.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/DnnPlane.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: DnnPlane.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Error.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Error.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Error.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Error.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: Error.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: Error.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/FunctionOfPseudoJet.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: FunctionOfPseudoJet.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: FunctionOfPseudoJet.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/FunctionOfPseudoJet.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: FunctionOfPseudoJet.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: FunctionOfPseudoJet.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/GhostedAreaSpec.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: GhostedAreaSpec.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: GhostedAreaSpec.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/GhostedAreaSpec.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: GhostedAreaSpec.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: GhostedAreaSpec.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/JetDefinition.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: JetDefinition.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JetDefinition.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/JetDefinition.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: JetDefinition.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: JetDefinition.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling25.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling25.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: LazyTiling25.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: LazyTiling9.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9Alt.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9Alt.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: LazyTiling9Alt.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LazyTiling9SeparateGhosts.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: LazyTiling9SeparateGhosts.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: LazyTiling9SeparateGhosts.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LimitedWarning.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: LimitedWarning.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: LimitedWarning.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/LimitedWarning.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: LimitedWarning.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: LimitedWarning.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/MinHeap.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: MinHeap.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: MinHeap.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 110 110 111 111 // now compare current location to children (at 2*loc+1, 2*loc+2) 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); 112 ValueLoc * child = &(_heap[2*loc+1]); 121 113 if (child < heap_end && child->minloc->value < here->minloc->value ) { 122 114 here->minloc = child->minloc; -
external/fastjet/NNBase.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNBase.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: NNBase.hh 4355 2018-04-22 15:38:54Z salam $ 6 6 // 7 // Copyright (c) 2016-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2016-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNFJN2Plain.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNFJN2Plain.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: NNFJN2Plain.hh 4355 2018-04-22 15:38:54Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNFJN2Tiled.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNFJN2Tiled.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: NNFJN2Tiled.hh 4355 2018-04-22 15:38:54Z salam $ 6 6 // 7 // Copyright (c) 2016-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2016-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/NNH.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: NNH.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: NNH.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/PseudoJet.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: PseudoJet.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/PseudoJet.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: PseudoJet.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: PseudoJet.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/PseudoJetStructureBase.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: PseudoJetStructureBase.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: PseudoJetStructureBase.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/PseudoJetStructureBase.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: PseudoJetStructureBase.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: PseudoJetStructureBase.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/RangeDefinition.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: RangeDefinition.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: RangeDefinition.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RangeDefinition.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: RangeDefinition.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: RangeDefinition.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RectangularGrid.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: RectangularGrid.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: RectangularGrid.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/RectangularGrid.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: RectangularGrid.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: RectangularGrid.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/Selector.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Selector.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Selector.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Selector.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: Selector.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2009-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Selector.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/SharedPtr.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: SharedPtr.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: SharedPtr.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/TilingExtent.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: TilingExtent.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: TilingExtent.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/Voronoi.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Voronoi.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Voronoi.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/WrappedStructure.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: WrappedStructure.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: WrappedStructure.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/config_auto.h
r13331dc ra3261d7 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 92 89 /* compiler supports GNU c++ deprecated attribute */ 93 90 #ifndef FASTJET_HAVE_GNUCXX_DEPRECATED … … 110 107 #endif 111 108 112 /* Define to 1 if you have the <mpfr.h> header file. */113 /* #undef HAVE_MPFR_H */114 115 109 /* compiler supports the "override" keyword */ 116 110 /* #undef HAVE_OVERRIDE */ … … 173 167 /* Define to the full name and version of this package. */ 174 168 #ifndef FASTJET_PACKAGE_STRING 175 #define FASTJET_PACKAGE_STRING "FastJet 3.3. 4"169 #define FASTJET_PACKAGE_STRING "FastJet 3.3.2" 176 170 #endif 177 171 … … 188 182 /* Define to the version of this package. */ 189 183 #ifndef FASTJET_PACKAGE_VERSION 190 #define FASTJET_PACKAGE_VERSION "3.3. 4"184 #define FASTJET_PACKAGE_VERSION "3.3.2" 191 185 #endif 192 186 … … 198 192 /* Version number of package */ 199 193 #ifndef FASTJET_VERSION 200 #define FASTJET_VERSION "3.3. 4"194 #define FASTJET_VERSION "3.3.2" 201 195 #endif 202 196 … … 213 207 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 214 208 #ifndef FASTJET_VERSION_NUMBER 215 #define FASTJET_VERSION_NUMBER 3030 4209 #define FASTJET_VERSION_NUMBER 30302 216 210 #endif 217 211 218 212 /* Patch version of this package */ 219 213 #ifndef FASTJET_VERSION_PATCHLEVEL 220 #define FASTJET_VERSION_PATCHLEVEL 4214 #define FASTJET_VERSION_PATCHLEVEL 2 221 215 #endif 222 216 -
external/fastjet/config_raw.h
r13331dc ra3261d7 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 62 59 /* compiler supports GNU c++ deprecated attribute */ 63 60 #define HAVE_GNUCXX_DEPRECATED /**/ … … 71 68 /* Define to 1 if you have the <memory.h> header file. */ 72 69 #define HAVE_MEMORY_H 1 73 74 /* Define to 1 if you have the <mpfr.h> header file. */75 /* #undef HAVE_MPFR_H */76 70 77 71 /* compiler supports the "override" keyword */ … … 112 106 113 107 /* Define to the full name and version of this package. */ 114 #define PACKAGE_STRING "FastJet 3.3. 4"108 #define PACKAGE_STRING "FastJet 3.3.2" 115 109 116 110 /* Define to the one symbol short name of this package. */ … … 121 115 122 116 /* Define to the version of this package. */ 123 #define PACKAGE_VERSION "3.3. 4"117 #define PACKAGE_VERSION "3.3.2" 124 118 125 119 /* Define to 1 if you have the ANSI C header files. */ … … 127 121 128 122 /* Version number of package */ 129 #define VERSION "3.3. 4"123 #define VERSION "3.3.2" 130 124 131 125 /* Major version of this package */ … … 136 130 137 131 /* Version of the package under the form XYYZZ (instead of X.Y.Z) */ 138 #define VERSION_NUMBER 3030 4132 #define VERSION_NUMBER 30302 139 133 140 134 /* Patch version of this package */ 141 #define VERSION_PATCHLEVEL 4135 #define VERSION_PATCHLEVEL 2 142 136 143 137 /* Pre-release version of this package */ -
external/fastjet/config_win.h
r13331dc ra3261d7 1 #define FASTJET_PACKAGE_STRING "FastJet 3.3. 4"2 #define FASTJET_PACKAGE_VERSION "3.3. 4"3 #define FASTJET_VERSION "3.3. 4"1 #define FASTJET_PACKAGE_STRING "FastJet 3.3.2" 2 #define FASTJET_PACKAGE_VERSION "3.3.2" 3 #define FASTJET_VERSION "3.3.2" 4 4 #define FASTJET_VERSION_MAJOR 3 5 5 #define FASTJET_VERSION_MINOR 3 6 #define FASTJET_VERSION_PATCHLEVEL 47 #define FASTJET_VERSION_NUMBER 3030 46 #define FASTJET_VERSION_PATCHLEVEL 2 7 #define FASTJET_VERSION_NUMBER 30302 8 8 9 9 /* The ATLASCone plugin is disabled by default*/ -
external/fastjet/contribs/RecursiveTools/AUTHORS
r13331dc ra3261d7 28 28 Recursive Soft Drop. 29 29 Frederic A. Dreyer, Lina Necib, Gregory Soyez, and Jesse Thaler 30 JHEP 1806:093 (2018),arXiv:1804.0365730 arXiv:1804.03657 31 31 -
external/fastjet/contribs/RecursiveTools/ChangeLog
r13331dc ra3261d7 1 2018-11-02 Jesse Thaler <jthaler@jthaler.net>2 3 * AUTHORS: updated journal for RecursiveSoftDrop4 5 2018-10-30 Gregory Soyez <soyez@fastjet.fr>6 7 * RecursiveSoftDrop.cc:8 fixed a few typos in comments9 10 * RecursiveSoftDrop.hh:11 used the native FJ Recluster tool when available (did create12 conflicts in some cases)13 14 2018-06-18 Jesse Thaler <jthaler@jthaler.net>15 16 * README17 Fixed incorrect order of zcut and beta in the README for SoftDrop example.18 19 1 2018-05-29 Jesse Thaler <jthaler@jthaler.net> 20 2 -
external/fastjet/contribs/RecursiveTools/NEWS
r13331dc ra3261d7 1 2020/03/03: release of version 2.0.0 with updated readme2 3 1 2018/05/31: release of version 2.0.0-beta2 with corrected syntax 4 2 -
external/fastjet/contribs/RecursiveTools/README
r13331dc ra3261d7 100 100 A default SoftDrop groomer can be created via: 101 101 102 double z_cut = 0.10; 102 103 double beta = 2.0; 103 double z_cut = 0.10;104 104 double R0 = 1.0; // this is the default value 105 SoftDrop sd( beta,z_cut,R0);105 SoftDrop sd(z_cut,beta,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 z_cut = 0.10; 139 140 double beta = 2.0; 140 double z_cut = 0.10;141 141 double R0 = 1.0; // this is the default value 142 142 int N = -1; 143 RecursiveSoftDrop rsd( beta, z_cut, N, R0);143 RecursiveSoftDrop rsd(z_cut, beta, 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 groomer221 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 value226 BottomUpSoftDrop busd(beta,z_cut,R0);227 228 One then acts on a jet as229 230 PseudoJet groomed_jet = busd(jet)231 219 232 220 ------------------------------------------------------------------------ -
external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.cc
r13331dc ra3261d7 1 // $Id: RecursiveSoftDrop.cc 11 92 2018-10-30 16:08:36Z gsoyez $1 // $Id: RecursiveSoftDrop.cc 1111 2018-04-04 10:06:11Z 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 se counter to 1 subjet (i.e. the full ca_jet)150 // initialize 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_jet 165 166 priority_queue<internal_recursive_softdrop::RSDHistoryElement*, vector<internal_recursive_softdrop::RSDHistoryElement*>, internal_recursive_softdrop::OrderRSDHistoryElements> active_branches; 166 167 active_branches.push(& (history[0])); … … 168 169 PseudoJet parent, piece1, piece2; 169 170 double sym, mu2; 171 172 // which R0 to use 173 //double R0sqr = _R0sqr; 170 174 171 175 // loop over C/A tree until we reach the appropriate number of subjets 172 176 while ((continue_grooming(n_tagged)) && (active_branches.size())) { 173 // get the element corresponding to the max dR and the associated PJ 177 // get the element corresponding to the max dR 178 // and the associated PJ 174 179 internal_recursive_softdrop::RSDHistoryElement * elm = active_branches.top(); 175 180 PseudoJet parent = cs_jets[cs_history[elm->current_in_ca_tree].jetp_index]; … … 212 217 active_branches.pop(); 213 218 // tagging failed and the softest branch should be dropped 214 // keep track of what has been groomed away219 // keep track of what has een groomed away 215 220 max_njet -= piece2.constituents().size(); 216 221 elm->dropped_delta_R .push_back((elm->theta_squared >= 0) ? sqrt(elm->theta_squared) : -sqrt(elm->theta_squared)); … … 218 223 elm->dropped_mu .push_back((mu2>=0) ? sqrt(mu2) : -sqrt(mu2)); 219 224 220 // keep the hardest b ranch in the recursion225 // keep the hardest bhanch in the recursion 221 226 elm->reset(piece1, this); 222 227 active_branches.push(elm); … … 251 256 const internal_recursive_softdrop::RSDHistoryElement & elm = history[history_index]; 252 257 253 // two kinds of events: either just a final leave, pote ntiallywith grooming258 // two kinds of events: either just a final leave, poteitially with grooming 254 259 // or a brandhing (also with potential grooming at the end) 255 260 if (elm.child1_in_history<0){ 256 // this is a leaf, i.e. with no further su bstructure261 // this is a leaf, i.e. with no further sustructure 257 262 PseudoJet & subjet = mapped_to_history[history_index] 258 263 = cs_jets[cs_history[elm.current_in_ca_tree].jetp_index]; … … 298 303 const vector<PseudoJet> &cs_jets = cs->jets(); 299 304 300 // initiali se counter to 1 subjet (i.e. the full ca_jet)305 // initialize counter to 1 subjet (i.e. the full ca_jet) 301 306 int n_depth = 0; 302 307 int max_njet = ca_jet.constituents().size(); … … 314 319 315 320 // create a priority queue containing the subjets and a comparison definition 321 // initialize counter to 1 subjet (i.e. the full ca_jet) 316 322 list<internal_recursive_softdrop::RSDHistoryElement*> active_branches; 317 323 active_branches.push_back(& (history[0])); … … 323 329 list<internal_recursive_softdrop::RSDHistoryElement*>::iterator hist_it=active_branches.begin(); 324 330 while (hist_it!=active_branches.end()){ 325 // get the element corresponding to the max dR and the associated PJ 331 // get the element corresponding to the max dR 332 // and the associated PJ 326 333 internal_recursive_softdrop::RSDHistoryElement * elm = (*hist_it); 327 334 PseudoJet parent = cs_jets[cs_history[elm->current_in_ca_tree].jetp_index]; -
external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.hh
r13331dc ra3261d7 1 // $Id: RecursiveSoftDrop.hh 1 192 2018-10-30 16:08:36Z gsoyez $1 // $Id: RecursiveSoftDrop.hh 1082 2017-10-10 12:00:13Z 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 available27 #if FASTJET_VERSION_NUMBER >= 3010028 #include "fastjet/tools/Recluster.hh"29 #else30 26 #include "Recluster.hh" 31 #endif32 27 #include "SoftDrop.hh" 33 28 #include "fastjet/WrappedStructure.hh" -
external/fastjet/internal/ClosestPair2D.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2D.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: ClosestPair2D.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/ClosestPair2DBase.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ClosestPair2DBase.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ClosestPair2DBase.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/ClusterSequence_N2.icc
r13331dc ra3261d7 7 7 // $Id: ClusterSequence_N2.cc 1351 2009-01-09 18:03:03Z salam $ 8 8 // 9 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn2piCylinder.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Dnn2piCylinder.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn2piCylinder.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn3piCylinder.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Dnn3piCylinder.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Dnn3piCylinder.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/Dnn4piCylinder.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Dnn4piCylinder.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Dnn4piCylinder.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/DnnPlane.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: DnnPlane.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: DnnPlane.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/DynamicNearestNeighbours.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: DynamicNearestNeighbours.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: DynamicNearestNeighbours.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/IsBase.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: IsBase.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: IsBase.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling25.hh
r13331dc ra3261d7 5 5 6 6 //FJSTARTHEADER 7 // $Id: LazyTiling25.hh 4 442 2020-05-05 07:50:11Z soyez$7 // $Id: LazyTiling25.hh 4354 2018-04-22 07:12:37Z salam $ 8 8 // 9 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9.hh
r13331dc ra3261d7 5 5 6 6 //FJSTARTHEADER 7 // $Id: LazyTiling9.hh 4 442 2020-05-05 07:50:11Z soyez$8 // 9 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // $Id: LazyTiling9.hh 4354 2018-04-22 07:12:37Z salam $ 8 // 9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9Alt.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9Alt.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: LazyTiling9Alt.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/LazyTiling9SeparateGhosts.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9SeparateGhosts.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: LazyTiling9SeparateGhosts.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/LimitedWarning.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: LimitedWarning.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: LimitedWarning.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/MinHeap.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: MinHeap.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: MinHeap.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/SearchTree.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: SearchTree.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: SearchTree.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/internal/TilingExtent.hh
r13331dc ra3261d7 5 5 6 6 //FJSTARTHEADER 7 // $Id: TilingExtent.hh 4 442 2020-05-05 07:50:11Z soyez$7 // $Id: TilingExtent.hh 4354 2018-04-22 07:12:37Z salam $ 8 8 // 9 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez9 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 10 10 // 11 11 //---------------------------------------------------------------------- -
external/fastjet/internal/Triangulation.hh
r13331dc ra3261d7 4 4 5 5 //FJSTARTHEADER 6 // $Id: Triangulation.hh 4 442 2020-05-05 07:50:11Z soyez$6 // $Id: Triangulation.hh 4354 2018-04-22 07:12:37Z salam $ 7 7 // 8 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez8 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 9 9 // 10 10 //---------------------------------------------------------------------- -
external/fastjet/internal/Voronoi.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: Voronoi.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Voronoi.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/internal/base.hh
r13331dc ra3261d7 1 1 2 2 //FJSTARTHEADER 3 // $Id: base.hh 4 442 2020-05-05 07:50:11Z soyez$3 // $Id: base.hh 4354 2018-04-22 07:12:37Z salam $ 4 4 // 5 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 6 6 // 7 7 //---------------------------------------------------------------------- -
external/fastjet/internal/deprecated.hh
r13331dc ra3261d7 1 1 2 2 //FJSTARTHEADER 3 // $Id: deprecated.hh 4 442 2020-05-05 07:50:11Z soyez$3 // $Id: deprecated.hh 4354 2018-04-22 07:12:37Z salam $ 4 4 // 5 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // Copyright (c) 2005-2018, 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) &&(!defined(__FJCORE__))41 #if defined(FASTJET_HAVE_CXX14_DEPRECATED) and (!defined(__FJCORE__)) 42 42 #define FASTJET_DEPRECATED [[deprecated]] 43 43 #define FASTJET_DEPRECATED_MSG(message) [[deprecated(message)]] -
external/fastjet/internal/numconsts.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: numconsts.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: numconsts.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/ATLASCone/ATLASConePlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ATLASConePlugin.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ATLASConePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/ATLASCone/fastjet/ATLASConePlugin.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: ATLASConePlugin.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: ATLASConePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/CDFJetCluPlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CDFJetCluPlugin.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: CDFJetCluPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/CDFMidPointPlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CDFMidPointPlugin.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: CDFMidPointPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CDFJetCluPlugin.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: CDFJetCluPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CDFMidPointPlugin.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: CDFMidPointPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.cc
r13331dc ra3261d7 2 2 // $Id: CMSIterativeConePlugin.cc 1504 2009-04-10 13:39:48Z salam $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh
r13331dc ra3261d7 2 2 // $Id: CMSIterativeConePlugin.hh 1508 2009-04-10 22:46:49Z soyez $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.cc
r13331dc ra3261d7 2 2 // $Id: D0RunIBaseConePlugin.cc 1779 2010-10-25 10:32:59Z soyez $ 3 3 // 4 // Copyright (c) 2009-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh
r13331dc ra3261d7 5 5 // $Id: D0RunIBaseConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIConePlugin.hh
r13331dc ra3261d7 5 5 // $Id: D0RunIConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh
r13331dc ra3261d7 5 5 // $Id: D0RunIpre96ConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 6 6 // 7 // Copyright (c) 2009-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: D0RunIIConePlugin.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: D0RunIIConePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: D0RunIIConePlugin.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: D0RunIIConePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/EECambridge/EECambridgePlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: EECambridgePlugin.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: EECambridgePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/EECambridge/fastjet/EECambridgePlugin.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: EECambridgePlugin.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: EECambridgePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/GridJet/GridJetPlugin.cc
r13331dc ra3261d7 2 2 // $Id: GridJetPlugin.cc 2268 2011-06-20 15:12:26Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/GridJet/fastjet/GridJetPlugin.hh
r13331dc ra3261d7 5 5 // $Id: GridJetPlugin.hh 2267 2011-06-20 15:10:23Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/Jade/JadePlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: JadePlugin.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JadePlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- … … 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. 111 // Watch out for cases where rt2E < 1.0 (cf. bug fix from 112 // andrii.verbytskyi@mpp.mpg.de on 2019-02-14) 110 // multiply it again, we won't get an overflow 113 111 const double almost_max = numeric_limits<double>::max() * (1 - 1e-13); 114 if (rt2E>1.0) return almost_max / rt2E; 115 else return almost_max; 112 return almost_max / rt2E; 116 113 } 117 114 -
external/fastjet/plugins/Jade/fastjet/JadePlugin.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: JadePlugin.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: JadePlugin.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/plugins/NestedDefs/NestedDefsPlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: NestedDefsPlugin.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: NestedDefsPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/NestedDefs/fastjet/NestedDefsPlugin.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: NestedDefsPlugin.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: NestedDefsPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/SISCone/AUTHORS
r13331dc ra3261d7 6 6 France 7 7 8 (2) Rudolf Peierls Centre for Theoretical Physics, Parks Road, Oxford OX1 3PU, UK; 9 PH-TH, CERN, CH-1211 Geneva 23, Switzerland; 8 (2) PH-TH, CERN, CH-1211 Geneva 23, Switzerland; 10 9 LPTHE, UPMC (Univ. Paris 6), 75252 Paris cedex 05, France. 11 10 11 phone : +33 69 08 40 11 12 +41 22 767 2462 13 12 14 email : soyez@fastjet.fr 13 gavin.salam@ physics.ox.ac.uk15 gavin.salam@cern.ch -
external/fastjet/plugins/SISCone/config.h
r13331dc ra3261d7 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. 5"85 #define SISCONE_PACKAGE_STRING "SISCone 3.0.4" 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. 5"100 #define SISCONE_PACKAGE_VERSION "3.0.4" 101 101 #endif 102 102 … … 111 111 /* Version number of package */ 112 112 #ifndef SISCONE_VERSION 113 #define SISCONE_VERSION "3.0. 5"113 #define SISCONE_VERSION "3.0.4" 114 114 #endif 115 115 -
external/fastjet/plugins/SISCone/config_raw.h
r13331dc ra3261d7 48 48 49 49 /* Define to the full name and version of this package. */ 50 #define PACKAGE_STRING "SISCone 3.0. 5"50 #define PACKAGE_STRING "SISCone 3.0.4" 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. 5"59 #define PACKAGE_VERSION "3.0.4" 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. 5"68 #define VERSION "3.0.4" -
external/fastjet/plugins/SISCone/geom_2d.h
r13331dc ra3261d7 22 22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 23 23 // // 24 // $Revision:: 422$//25 // $Date:: 20 20-04-22 11:51:09 +0200 (Wed, 22 Apr 2020) $//24 // $Revision:: 268 $// 25 // $Date:: 2009-03-12 21:24:16 +0100 (Thu, 12 Mar 2009) $// 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 u<< ((int) (32*((eta-eta_min)/(eta_max-eta_min)))));155 return (unsigned int) (1 << ((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 u<< ((int) (32*phi/twopi+16)%32));160 return (unsigned int) (1 << ((int) (32*phi/twopi+16)%32)); 161 161 } 162 162 }; -
external/fastjet/plugins/TrackJet/TrackJetPlugin.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: TrackJetPlugin.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: TrackJetPlugin.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/plugins/TrackJet/fastjet/TrackJetPlugin.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: TrackJetPlugin.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: TrackJetPlugin.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2007-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/BackgroundEstimatorBase.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: BackgroundEstimatorBase.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: BackgroundEstimatorBase.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/BackgroundEstimatorBase.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: BackgroundEstimatorBase.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: BackgroundEstimatorBase.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Boost.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Boost.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Boost.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/CASubJetTagger.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CASubJetTagger.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: CASubJetTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/CASubJetTagger.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: CASubJetTagger.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: CASubJetTagger.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Filter.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Filter.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Filter.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Filter.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: Filter.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Filter.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/GridMedianBackgroundEstimator.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: GridMedianBackgroundEstimator.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: GridMedianBackgroundEstimator.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/GridMedianBackgroundEstimator.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: GridMedianBackgroundEstimator.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: GridMedianBackgroundEstimator.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/JHTopTagger.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: JHTopTagger.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: JHTopTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/JHTopTagger.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: JHTopTagger.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: JHTopTagger.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/JetMedianBackgroundEstimator.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: JetMedianBackgroundEstimator.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: JetMedianBackgroundEstimator.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/JetMedianBackgroundEstimator.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: JetMedianBackgroundEstimator.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: JetMedianBackgroundEstimator.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/MassDropTagger.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: MassDropTagger.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: MassDropTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/MassDropTagger.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: MassDropTagger.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: MassDropTagger.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Pruner.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Pruner.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Pruner.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Pruner.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: Pruner.hh 4 442 2020-05-05 07:50:11Z soyez$6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez5 // $Id: Pruner.hh 4354 2018-04-22 07:12:37Z salam $ 6 // 7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/RestFrameNSubjettinessTagger.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: RestFrameNSubjettinessTagger.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: RestFrameNSubjettinessTagger.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/RestFrameNSubjettinessTagger.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: RestFrameNSubjettinessTagger.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: RestFrameNSubjettinessTagger.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Subtractor.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.cc 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Subtractor.cc 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/Subtractor.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Subtractor.hh 4 442 2020-05-05 07:50:11Z soyez$3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez2 // $Id: Subtractor.hh 4354 2018-04-22 07:12:37Z salam $ 3 // 4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/TopTaggerBase.cc
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: TopTaggerBase.cc 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: TopTaggerBase.cc 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/tools/TopTaggerBase.hh
r13331dc ra3261d7 3 3 4 4 //FJSTARTHEADER 5 // $Id: TopTaggerBase.hh 4 442 2020-05-05 07:50:11Z soyez$5 // $Id: TopTaggerBase.hh 4354 2018-04-22 07:12:37Z salam $ 6 6 // 7 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez7 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 8 8 // 9 9 //---------------------------------------------------------------------- -
external/fastjet/tools/Transformer.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: Transformer.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: Transformer.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
external/fastjet/version.hh
r13331dc ra3261d7 1 1 //FJSTARTHEADER 2 // $Id: version.hh 4 442 2020-05-05 07:50:11Z soyez$2 // $Id: version.hh 4354 2018-04-22 07:12:37Z salam $ 3 3 // 4 // Copyright (c) 2005-20 20, Matteo Cacciari, Gavin P. Salam and Gregory Soyez4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 5 5 // 6 6 //---------------------------------------------------------------------- -
modules/AngularSmearing.cc
r13331dc ra3261d7 98 98 { 99 99 Candidate *candidate, *mother; 100 Double_t pt, eta, phi, e , m;100 Double_t pt, eta, phi, e; 101 101 102 102 fItInputArray->Reset(); 103 103 while((candidate = static_cast<Candidate *>(fItInputArray->Next()))) 104 104 { 105 const TLorentzVector &candidatePosition = candidate->Position; 105 106 const TLorentzVector &candidateMomentum = candidate->Momentum; 106 eta = candidate Momentum.Eta();107 phi = candidate Momentum.Phi();107 eta = candidatePosition.Eta(); 108 phi = candidatePosition.Phi(); 108 109 pt = candidateMomentum.Pt(); 109 110 e = candidateMomentum.E(); 110 m = candidateMomentum.M();111 111 112 112 // apply smearing formula for eta,phi 113 113 114 eta = gRandom->Gaus(eta, fFormulaEta->Eval(pt, eta, phi, e, candidate)); 114 115 phi = gRandom->Gaus(phi, fFormulaPhi->Eval(pt, eta, phi, e, candidate)); … … 118 119 mother = candidate; 119 120 candidate = static_cast<Candidate *>(candidate->Clone()); 120 candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m); 121 eta = candidateMomentum.Eta(); 122 phi = candidateMomentum.Phi(); 123 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta)); 121 124 candidate->AddCandidate(mother); 122 125 -
modules/Calorimeter.cc
r13331dc ra3261d7 231 231 fItParticleInputArray->Reset(); 232 232 number = -1; 233 fTowerRmax=0.;234 233 while((particle = static_cast<Candidate *>(fItParticleInputArray->Next()))) 235 234 { 236 235 const TLorentzVector &particlePosition = particle->Position; 237 236 ++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();242 237 243 238 pdgCode = TMath::Abs(particle->PID); … … 455 450 456 451 fTower->AddCandidate(particle); 457 fTower->Position = position;458 452 } 459 453 … … 467 461 { 468 462 Candidate *track, *tower, *mother; 469 Double_t energy, pt, eta, phi , r;463 Double_t energy, pt, eta, phi; 470 464 Double_t ecalEnergy, hcalEnergy; 471 465 Double_t ecalNeutralEnergy, hcalNeutralEnergy; … … 517 511 for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i) 518 512 { 519 weight = TMath:: Power((fTower->ECalEnergyTimePairs[i].first),2);513 weight = TMath::Sqrt(fTower->ECalEnergyTimePairs[i].first); 520 514 sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second; 521 515 sumWeight += weight; … … 523 517 } 524 518 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); 519 if(sumWeight > 0.0) 520 { 521 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, sumWeightedTime / sumWeight); 522 } 528 523 else 529 r = fTower->Position.Pt(); 530 531 if(sumWeight > 0.0) 532 { 533 fTower->Position.SetPtEtaPhiE(r, eta, phi, sumWeightedTime / sumWeight); 534 } 535 else 536 { 537 fTower->Position.SetPtEtaPhiE(r, eta, phi, 999999.9); 524 { 525 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, 999999.9); 538 526 } 539 527 … … 571 559 if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin) 572 560 { 573 // create new photon tower assuming null mass561 // create new photon tower 574 562 tower = static_cast<Candidate *>(fTower->Clone()); 575 563 pt = ecalNeutralEnergy / TMath::CosH(eta); … … 658 646 track = static_cast<Candidate *>(track->Clone()); 659 647 track->AddCandidate(mother); 648 660 649 track->Momentum *= rescaleFactor; 661 track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M());662 650 663 651 fEFlowTrackOutputArray->Add(track); -
modules/Calorimeter.h
r13331dc ra3261d7 60 60 Double_t fTimingEnergyMin; 61 61 Bool_t fElectronsFromTrack; 62 Double_t fTowerRmax;63 62 64 63 Int_t fTowerTrackHits, fTowerPhotonHits; -
modules/DenseTrackFilter.cc
r13331dc ra3261d7 237 237 238 238 Candidate *candidate, *track; 239 Double_t pt, eta, phi , m;239 Double_t pt, eta, phi; 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 255 253 eta = gRandom->Gaus(eta, fEtaPhiRes); 256 254 phi = gRandom->Gaus(phi, fEtaPhiRes); 257 candidate->Momentum.SetPtEtaPhi M(pt, eta, phi, m);255 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta)); 258 256 candidate->AddCandidate(track); 259 257 -
modules/DualReadoutCalorimeter.cc
r13331dc ra3261d7 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.;250 249 while((particle = static_cast<Candidate*>(fItParticleInputArray->Next()))) 251 250 { 252 251 const TLorentzVector &particlePosition = particle->Position; 253 252 ++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();258 253 259 254 pdgCode = TMath::Abs(particle->PID); … … 384 379 fHCalTrackEnergy = 0.0; 385 380 fTrackEnergy = 0.0; 386 381 387 382 fECalTrackSigma = 0.0; 388 383 fHCalTrackSigma = 0.0; 389 384 fTrackSigma = 0.0; 390 385 391 386 fTowerTrackHits = 0; 392 387 fTowerPhotonHits = 0; … … 395 390 fHCalTowerTrackArray->Clear(); 396 391 fTowerTrackArray->Clear(); 397 392 398 393 } 399 394 … … 419 414 } 420 415 421 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 422 447 // in Dual Readout we do not care if tracks are ECAL of HCAL 423 448 if(fECalTrackFractions[number] > 1.0E-9 || fHCalTrackFractions[number] > 1.0E-9) 424 { 449 { 425 450 fTrackEnergy += energy; 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) 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) 427 452 sigma = 0.0; 428 453 if(fHCalTrackFractions[number] > 0) … … 430 455 else 431 456 sigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 432 433 if(sigma/momentum.E() < track->TrackResolution) 434 energyGuess = ecalEnergy + hcalEnergy; 457 458 if(sigma/momentum.E() < track->TrackResolution) 459 energyGuess = ecalEnergy + hcalEnergy; 435 460 else 436 461 energyGuess = momentum.E(); 437 462 438 463 fTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess; 439 464 fTowerTrackArray->Add(track); 440 465 441 466 } 442 467 else … … 471 496 472 497 fTower->AddCandidate(particle); 473 fTower->Position = position;474 498 } 475 499 … … 484 508 485 509 Candidate *track, *tower, *mother; 486 Double_t energy, pt, eta, phi , r;510 Double_t energy, pt, eta, phi; 487 511 Double_t ecalEnergy, hcalEnergy; 488 512 Double_t ecalNeutralEnergy, hcalNeutralEnergy, neutralEnergy; 489 513 490 514 Double_t ecalSigma, hcalSigma, sigma; 491 515 Double_t ecalNeutralSigma, hcalNeutralSigma, neutralSigma; 492 516 493 517 Double_t weightTrack, weightCalo, bestEnergyEstimate, rescaleFactor; 494 518 495 519 TLorentzVector momentum; 496 520 TFractionMap::iterator itFractionMap; … … 501 525 502 526 503 // if no hadronic energy, use ECAL resolution 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 504 539 if (fHCalTowerEnergy <= fHCalEnergyMin) 505 540 { … … 509 544 } 510 545 511 // if hadronic fraction > 0, use HCAL resolution 546 // if hadronic fraction > 0, use HCAL resolution 512 547 else 513 548 { … … 519 554 energy = LogNormal(energy, sigma); 520 555 //cout<<energy<<","<<ecalEnergy<<","<<hcalEnergy<<endl; 521 556 522 557 if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0; 523 558 … … 557 592 for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i) 558 593 { 559 weight = TMath:: Power((fTower->ECalEnergyTimePairs[i].first),2);594 weight = TMath::Sqrt(fTower->ECalEnergyTimePairs[i].first); 560 595 sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second; 561 596 sumWeight += weight; … … 563 598 } 564 599 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); 600 if(sumWeight > 0.0) 601 { 602 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, sumWeightedTime/sumWeight); 603 } 568 604 else 569 r = fTower->Position.Pt(); 570 571 if(sumWeight > 0.0) 572 { 573 fTower->Position.SetPtEtaPhiE(r, eta, phi, sumWeightedTime/sumWeight); 574 } 575 else 576 { 577 fTower->Position.SetPtEtaPhiE(r, eta, phi, 999999.9); 605 { 606 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, 999999.9); 578 607 } 579 608 … … 597 626 598 627 // fill energy flow candidates 599 628 600 629 fTrackSigma = TMath::Sqrt(fTrackSigma); 601 630 neutralEnergy = max( (energy - fTrackEnergy) , 0.0); … … 609 638 if(neutralEnergy > fEnergyMin && neutralSigma > fEnergySignificanceMin) 610 639 { 611 640 612 641 //cout<<"significant neutral excess found:"<<endl; 613 642 // create new photon tower … … 616 645 //cout<<"Creating tower with Pt, Eta, Phi, Energy: "<<pt<<","<<eta<<","<<phi<<","<<neutralEnergy<<endl; 617 646 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, neutralEnergy); 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 } 647 tower->Eem = neutralEnergy; 648 tower->Ehad = 0.0; 649 tower->PID = 22; 650 651 634 652 635 653 fEFlowPhotonOutputArray->Add(tower); … … 640 658 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 641 659 { 660 //cout<<"looping over tracks"<<endl; 642 661 mother = track; 643 662 track = static_cast<Candidate*>(track->Clone()); … … 647 666 } 648 667 649 668 650 669 // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the DualReadoutCalorimeter and tracking 651 670 else if(fTrackEnergy > 0.0) … … 655 674 weightCalo = (sigma > 0.0) ? 1 / (sigma*sigma) : 0.0; 656 675 657 bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo); 676 bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo); 658 677 rescaleFactor = bestEnergyEstimate/fTrackEnergy; 659 678 … … 661 680 fItTowerTrackArray->Reset(); 662 681 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 663 { 682 { 664 683 mother = track; 665 track = static_cast<Candidate 684 track = static_cast<Candidate*>(track->Clone()); 666 685 track->AddCandidate(mother); 667 track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M()); 686 687 track->Momentum *= rescaleFactor; 688 668 689 fEFlowTrackOutputArray->Add(track); 669 690 } 670 691 } 671 692 672 693 673 694 } -
modules/DualReadoutCalorimeter.h
r13331dc ra3261d7 60 60 Double_t fECalTrackEnergy, fHCalTrackEnergy; 61 61 Double_t fTrackEnergy; 62 Double_t fTowerRmax;63 62 64 63 Double_t fTimingEnergyMin; -
modules/EnergySmearing.cc
r13331dc ra3261d7 95 95 { 96 96 Candidate *candidate, *mother; 97 Double_t pt, energy, eta, phi , m;97 Double_t pt, energy, eta, phi; 98 98 99 99 fItInputArray->Reset(); … … 107 107 phi = candidatePosition.Phi(); 108 108 energy = candidateMomentum.E(); 109 m = candidateMomentum.M();110 109 111 110 // apply smearing formula … … 118 117 eta = candidateMomentum.Eta(); 119 118 phi = candidateMomentum.Phi(); 120 pt = (energy > m) ? TMath::Sqrt(energy*energy - m*m)/TMath::CosH(eta) : 0; 121 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); 119 candidate->Momentum.SetPtEtaPhiE(energy / TMath::CosH(eta), eta, phi, energy); 122 120 candidate->TrackResolution = fFormula->Eval(pt, eta, phi, energy) / candidateMomentum.E(); 123 121 candidate->AddCandidate(mother); -
modules/JetFakeParticle.cc
r13331dc ra3261d7 146 146 while((candidate = static_cast<Candidate *>(fItInputArray->Next()))) 147 147 { 148 const TLorentzVector &candidatePosition = candidate->Position; 148 149 const TLorentzVector &candidateMomentum = candidate->Momentum; 149 eta = candidate Momentum.Eta();150 phi = candidate Momentum.Phi();150 eta = candidatePosition.Eta(); 151 phi = candidatePosition.Phi(); 151 152 pt = candidateMomentum.Pt(); 152 153 e = candidateMomentum.E(); -
modules/MomentumSmearing.cc
r13331dc ra3261d7 95 95 { 96 96 Candidate *candidate, *mother; 97 Double_t pt, eta, phi, e, m,res;97 Double_t pt, eta, phi, e, res; 98 98 99 99 fItInputArray->Reset(); … … 106 106 pt = candidateMomentum.Pt(); 107 107 e = candidateMomentum.E(); 108 m = candidateMomentum.M();109 108 res = fFormula->Eval(pt, eta, phi, e, candidate); 110 109 … … 122 121 eta = candidateMomentum.Eta(); 123 122 phi = candidateMomentum.Phi(); 124 candidate->Momentum.SetPtEtaPhi M(pt, eta, phi, m);123 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta)); 125 124 //candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e); 126 125 candidate->TrackResolution = res; -
modules/SimpleCalorimeter.cc
r13331dc ra3261d7 208 208 fItParticleInputArray->Reset(); 209 209 number = -1; 210 fTowerRmax=0.;211 210 while((particle = static_cast<Candidate *>(fItParticleInputArray->Next()))) 212 211 { 213 212 const TLorentzVector &particlePosition = particle->Position; 214 213 ++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();219 214 220 215 pdgCode = TMath::Abs(particle->PID); … … 399 394 fTowerEnergy += energy; 400 395 401 fTowerTime += energy * energy * position.T(); //sigma_t ~ 1/E402 fTowerTimeWeight += energy * energy;396 fTowerTime += energy * position.T(); 397 fTowerTimeWeight += energy; 403 398 404 399 fTower->AddCandidate(particle); 405 fTower->Position = position;406 407 400 } 408 401 … … 416 409 { 417 410 Candidate *tower, *track, *mother; 418 Double_t energy, neutralEnergy, pt, eta, phi , r;411 Double_t energy, neutralEnergy, pt, eta, phi; 419 412 Double_t sigma, neutralSigma; 420 413 Double_t time; … … 450 443 pt = energy / TMath::CosH(eta); 451 444 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); 445 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, time); 459 446 fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); 460 447 … … 520 507 track = static_cast<Candidate *>(track->Clone()); 521 508 track->AddCandidate(mother); 522 track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M()); 509 510 track->Momentum *= rescaleFactor; 511 523 512 fEFlowTrackOutputArray->Add(track); 524 513 } -
modules/SimpleCalorimeter.h
r13331dc ra3261d7 62 62 Double_t fTrackTime; 63 63 64 Double_t fTowerRmax;65 66 64 Double_t fTowerTimeWeight; 67 65 Double_t fTrackTimeWeight; -
modules/TrackCovariance.cc
r13331dc ra3261d7 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 F. Bedeschi - INFN Pisa 24 * P. Demin - UCLouvain, Louvain-la-Neuve 23 * \authors P. Demin - UCLouvain, Louvain-la-Neuve 25 24 * M. Selvaggi - CERN 26 *27 25 * 28 26 */ … … 52 50 53 51 TrackCovariance::TrackCovariance() : 54 fGeometry(0), fCovariance(0), f Acx(0), fItInputArray(0)52 fGeometry(0), fCovariance(0), fItInputArray(0) 55 53 { 56 54 fGeometry = new SolGeom(); … … 72 70 fBz = GetDouble("Bz", 0.0); 73 71 fGeometry->Read(GetString("DetectorGeometry", "")); 74 fNMinHits = GetInt("NMinHits", 6);75 72 76 // load geometry77 73 fCovariance->Calc(fGeometry); 78 fCovariance->SetMinHits(fNMinHits);79 // load geometry80 fAcx = fCovariance->AccPnt();81 74 82 75 // import input array 76 83 77 fInputArray = ImportArray(GetString("InputArray", "TrackMerger/tracks")); 84 78 fItInputArray = fInputArray->MakeIterator(); … … 100 94 void TrackCovariance::Process() 101 95 { 102 Candidate *candidate, *mother , *particle;96 Candidate *candidate, *mother; 103 97 Double_t mass, p, pt, q, ct; 104 98 Double_t dd0, ddz, dphi, dct, dp, dpt, dC; 105 99 106 100 107 101 fItInputArray->Reset(); 108 102 while((candidate = static_cast<Candidate *>(fItInputArray->Next()))) 109 103 { 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; 104 const TLorentzVector &candidatePosition = candidate->InitialPosition; 105 const TLorentzVector &candidateMomentum = candidate->Momentum; 119 106 120 107 mass = candidateMomentum.M(); … … 123 110 124 111 mother = candidate; 125 candidate = static_cast<Candidate *>(candidate->Clone());112 candidate = static_cast<Candidate *>(candidate->Clone()); 126 113 127 114 candidate->Momentum.SetVectM(track.GetObsP(), mass); 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 115 candidate->InitialPosition.SetXYZT(track.GetObsX().X(),track.GetObsX().Y(),track.GetObsX().Z(),candidatePosition.T()); 116 132 117 // save full covariance 5x5 matrix internally (D0, phi, Curvature, dz, ctg(theta)) 133 118 candidate->TrackCovariance = track.GetCov(); … … 138 123 ct = track.GetObsPar()[4]; 139 124 140 candidate->Xd = track.GetObsX().X()*1e03; 141 candidate->Yd = track.GetObsX().Y()*1e03; 142 candidate->Zd = track.GetObsX().Z()*1e03; 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]; 133 candidate->CtgTheta = track.GetObsPar()[4]; 134 candidate->P = track.GetObsP().Mag(); 135 candidate->PT = pt; 136 candidate->Charge = q; 143 137 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; 150 candidate->CtgTheta = track.GetObsPar()[4]; 151 candidate->P = track.GetObsP().Mag(); 152 candidate->PT = pt; 153 candidate->Charge = q; 154 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)); 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)); 159 142 dpt = 2 * TMath::Sqrt( track.GetCov()(2, 2))*pt*pt / (0.2998*fBz); 160 143 dp = TMath::Sqrt((1.+ct*ct)*dpt*dpt + 4*pt*pt*ct*ct*dct*dct/(1.+ct*ct)/(1.+ct*ct)); 161 dC = TMath::Sqrt(track.GetCov()(2, 2)) *1e-03;144 dC = TMath::Sqrt(track.GetCov()(2, 2)); 162 145 163 146 candidate->ErrorD0 = dd0; … … 171 154 candidate->TrackResolution = dp / p; 172 155 156 173 157 candidate->AddCandidate(mother); 174 158 -
modules/TrackCovariance.h
r13331dc ra3261d7 36 36 class SolGeom; 37 37 class SolGridCov; 38 class AcceptanceClx;39 38 40 39 class TrackCovariance: public DelphesModule … … 50 49 private: 51 50 Double_t fBz; 52 Int_t fNMinHits;53 51 54 52 SolGeom *fGeometry; 55 53 SolGridCov *fCovariance; 56 57 AcceptanceClx *fAcx;58 54 59 55 TIterator *fItInputArray; //! -
modules/TrackSmearing.cc
r13331dc ra3261d7 158 158 TLorentzVector beamSpotPosition; 159 159 Candidate *candidate, *mother; 160 Double_t pt, eta, e, m,d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi;160 Double_t pt, eta, e, 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 m = momentum.M(); 227 226 228 227 d0 = trueD0 = candidate->D0; 229 228 dz = trueDZ = candidate->DZ; … … 333 332 candidate->Momentum.SetPy(p * TMath::Sin(phi) * TMath::Sin(theta)); 334 333 candidate->Momentum.SetPz(p * TMath::Cos(theta)); 335 candidate->Momentum.SetE( TMath::Sqrt(p*p + m*m));334 candidate->Momentum.SetE(candidate->Momentum.Pt() * TMath::CosH(eta)); 336 335 candidate->PT = candidate->Momentum.Pt(); 337 336 -
modules/TreeWriter.cc
r13331dc ra3261d7 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 }138 125 } 139 126 … … 151 138 it1.Reset(); 152 139 array->Clear(); 153 140 154 141 while((candidate = static_cast<Candidate *>(it1.Next()))) 155 142 { … … 228 215 entry->Pz = momentum.Pz(); 229 216 217 entry->D0 = candidate->D0; 218 entry->DZ = candidate->DZ; 219 entry->P = candidate->P; 220 entry->PT = candidate->PT; 221 entry->CtgTheta = candidate->CtgTheta; 222 entry->Phi = candidate->Phi; 223 230 224 entry->Eta = eta; 231 225 entry->Phi = momentum.Phi(); … … 320 314 Candidate *particle = 0; 321 315 Track *entry = 0; 322 Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi , m;316 Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi; 323 317 const Double_t c_light = 2.99792458E8; 324 318 … … 354 348 355 349 entry->D0 = candidate->D0; 350 entry->ErrorD0 = candidate->ErrorD0; 356 351 entry->DZ = candidate->DZ; 352 entry->ErrorDZ = candidate->ErrorDZ; 357 353 358 354 entry->ErrorP = candidate->ErrorP; 359 355 entry->ErrorPT = candidate->ErrorPT; 360 361 // diagonal covariance matrix terms 362 entry->ErrorD0 = candidate->ErrorD0; 363 entry->ErrorC = candidate->ErrorC; 356 entry->ErrorCtgTheta = candidate->ErrorCtgTheta; 364 357 entry->ErrorPhi = candidate->ErrorPhi; 365 entry->ErrorDZ = candidate->ErrorDZ;366 entry->ErrorCtgTheta = candidate->ErrorCtgTheta;367 368 // add some offdiagonal covariance matrix elements369 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);379 358 380 359 entry->Xd = candidate->Xd; … … 387 366 p = momentum.P(); 388 367 phi = momentum.Phi(); 389 m = momentum.M();390 368 ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10; 391 369 … … 400 378 entry->Phi = phi; 401 379 entry->CtgTheta = ctgTheta; 402 entry->C = candidate->C;403 entry->Mass = m;404 380 405 381 particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0)); … … 472 448 Candidate *particle = 0; 473 449 ParticleFlowCandidate *entry = 0; 474 Double_t e, pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi , m;450 Double_t e, pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi; 475 451 const Double_t c_light = 2.99792458E8; 476 452 … … 506 482 507 483 entry->D0 = candidate->D0; 484 entry->ErrorD0 = candidate->ErrorD0; 508 485 entry->DZ = candidate->DZ; 486 entry->ErrorDZ = candidate->ErrorDZ; 509 487 510 488 entry->ErrorP = candidate->ErrorP; 511 489 entry->ErrorPT = candidate->ErrorPT; 512 490 entry->ErrorCtgTheta = candidate->ErrorCtgTheta; 513 514 515 // diagonal covariance matrix terms516 517 entry->ErrorD0 = candidate->ErrorD0;518 entry->ErrorC = candidate->ErrorC;519 491 entry->ErrorPhi = candidate->ErrorPhi; 520 entry->ErrorDZ = candidate->ErrorDZ;521 entry->ErrorCtgTheta = candidate->ErrorCtgTheta;522 523 // add some offdiagonal covariance matrix elements524 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);534 492 535 493 entry->Xd = candidate->Xd; … … 543 501 p = momentum.P(); 544 502 phi = momentum.Phi(); 545 m = momentum.M();546 503 ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10; 547 504 … … 552 509 entry->Phi = phi; 553 510 entry->CtgTheta = ctgTheta; 554 entry->C = candidate->C;555 entry->Mass = m;556 511 557 512 particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0)); -
readers/DelphesPythia8.cpp
r13331dc ra3261d7 296 296 297 297 // jet matching 298 #if PYTHIA_VERSION_INTEGER < 8300299 298 matching = combined->getHook(*pythia); 300 299 if(!matching) … … 303 302 } 304 303 pythia->setUserHooksPtr(matching); 305 #endif306 304 307 305 if(pythia == NULL) -
validation/DelphesValidation.cpp
r13331dc ra3261d7 32 32 #include "TGraph.h" 33 33 #include "TGraphErrors.h" 34 #include "TF1.h"35 34 #include "TH1.h" 36 35 #include "TH2.h" -
validation/validation.sh
r13331dc ra3261d7 38 38 outputrootdir=report_${cardbase%.*}/root 39 39 cardlabel=${cardbase%.*} 40 version= x.y.z40 version=$(cat VERSION) 41 41 outpdf=$mainoutputdir/${output%.*}.pdf 42 42 cardsdir=validation/cards
Note:
See TracChangeset
for help on using the changeset viewer.