Fork me on GitHub

Changes in / [13331dc:a3261d7] in git


Ignore:
Files:
10 added
35 deleted
215 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r13331dc ra3261d7  
    8989DISPLAYLIB = libDelphesDisplay.lib
    9090
    91 VERSION = x.y.z
     91VERSION = $(shell cat VERSION)
    9292DISTDIR = Delphes-$(VERSION)
    9393DISTTAR = $(DISTDIR).tar.gz
     
    648648tmp/external/Hector/H_VerticalQuadrupole.$(ObjSuf): \
    649649        external/Hector/H_VerticalQuadrupole.$(SrcSuf)
    650 tmp/external/TrackCovariance/AcceptanceClx.$(ObjSuf): \
    651         external/TrackCovariance/AcceptanceClx.$(SrcSuf)
    652650tmp/external/TrackCovariance/ObsTrk.$(ObjSuf): \
    653651        external/TrackCovariance/ObsTrk.$(SrcSuf)
     
    658656tmp/external/TrackCovariance/SolTrack.$(ObjSuf): \
    659657        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)
    664658tmp/modules/AngularSmearing.$(ObjSuf): \
    665659        modules/AngularSmearing.$(SrcSuf) \
     
    11641158        tmp/external/Hector/H_VerticalKicker.$(ObjSuf) \
    11651159        tmp/external/Hector/H_VerticalQuadrupole.$(ObjSuf) \
    1166         tmp/external/TrackCovariance/AcceptanceClx.$(ObjSuf) \
    11671160        tmp/external/TrackCovariance/ObsTrk.$(ObjSuf) \
    11681161        tmp/external/TrackCovariance/SolGeom.$(ObjSuf) \
    11691162        tmp/external/TrackCovariance/SolGridCov.$(ObjSuf) \
    11701163        tmp/external/TrackCovariance/SolTrack.$(ObjSuf) \
    1171         tmp/external/TrackCovariance/TrkUtil.$(ObjSuf) \
    1172         tmp/external/TrackCovariance/VertexFit.$(ObjSuf) \
    11731164        tmp/modules/AngularSmearing.$(ObjSuf) \
    11741165        tmp/modules/BTagging.$(ObjSuf) \
     
    24432434        @echo ">> Building $(DISTTAR)"
    24442435        @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)
    24462437        @find $(DISTDIR) -depth -name .\* -exec rm -rf {} \;
    24472438        @tar -czf $(DISTTAR) $(DISTDIR)
  • README.md

    r13331dc ra3261d7  
    1 [![CI](https://github.com/delphes/delphes/actions/workflows/ci.yml/badge.svg)](https://github.com/delphes/delphes/actions/workflows/ci.yml) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.821635.svg)](https://doi.org/10.5281/zenodo.821635)
     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)
    22
    33Delphes
  • cards/FCC/FCChh.tcl

    r13331dc ra3261d7  
    44#  Main authors:  Michele Selvaggi (CERN)
    55#
    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
    117#
    128#  Configuration: FCC-hh baseline detector
     
    10531049  (abs(eta) <= 2.5) * (pt > 1.0 && pt < 5.0)  * (0.70) +
    10541050  (abs(eta) <= 2.5) * (pt > 5.0 && pt < 10.0) * (0.85) +
    1055   (abs(eta) <= 2.5) * (pt > 10.0)             * (0.90) +
     1051  (abs(eta) <= 2.5) * (pt > 10.0)             * (0.95) +
    10561052   
    10571053  (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0 && pt < 5.0)  * (0.60) +
     
    11421138  (abs(eta) < 2.5)                   * (pt > 500.0 && pt < 15000.0) * (0.01)*(1.0 - pt/15000.) + \
    11431139  (abs(eta) < 2.5)                   * (pt > 15000.0)               * (0.00) + \
    1144   (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500)      * (0.01) + \
    1145   (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.01)*(1.0 - pt/15000.) + \
     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.) + \
    11461142  (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0)               * (0.000) + \
    11471143  (abs(eta) > 4.0) * (0.00)}
     
    11501146
    11511147  (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.) + \
    11541150  (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.) + \
    11571153  (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0)               * (0.000) + \
    11581154  (abs(eta) > 4.0) * (0.00)}
     
    11611157
    11621158  (pt <= 10.0)                                                       * (0.00) +
    1163   (abs(eta) < 2.5)                    * (pt > 10.0 && pt < 500)      * (0.82) +
    1164   (abs(eta) < 2.5)                    * (pt > 500.0 && pt < 15000.0) * (0.82)*(1.0 - pt/15000.) +
     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.) +
    11651161  (abs(eta) < 2.5)                    * (pt > 15000.0)               * (0.000) +
    11661162  (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500)      * (0.64) +
     
    12211217
    12221218  (pt <= 10.0)                                                       * (0.00) +
    1223   (abs(eta) < 2.5)                   * (pt > 10.0 && pt < 5000.0)    * (0.02) + \
    1224   (abs(eta) < 2.5)                   * (pt > 5000.0 && pt < 34000.0) * (0.02)  *(8./9. - pt/30000.) + \
     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.) + \
    12251221  (abs(eta) < 2.5)                   * (pt > 34000.0)                * (0.000) + \
    12261222  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0)    * (0.0075) + \
     
    12321228
    12331229  (pt <= 10.0)                                                       * (0.00) +
    1234   (abs(eta) < 2.5)                   * (pt > 10.0 && pt < 5000.0)    * (0.001) + \
    1235   (abs(eta) < 2.5)                   * (pt > 5000.0 && pt < 34000.0) * (0.001)  *(8./9. - pt/30000.) + \
     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.) + \
    12361232  (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.001) + \
    1238   (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.001)*(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.) + \
    12391235  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0)                * (0.00) + \
    12401236  (abs(eta) > 4.0)                   * (0.00)}
  • cards/FCC/muonMomentumResolutionVsP.tcl

    r13331dc ra3261d7  
    1212set ResolutionFormula {
    1313 
    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) +
    2928 
    3029( abs(eta) > 1.35 && abs(eta) < 2.00) *
  • cards/ILCgen/ILCgen_BTagging_N.tcl

    r13331dc ra3261d7  
    104104    source ILCgen/ILCgen_BTagging_50.tcl
    105105}
     106
  • cards/ILCgen/ILCgen_BeamCalEfficiency.tcl

    r13331dc ra3261d7  
    22# Based on IDR Figure 8.8a and Moritz Hebermehl PhD Thesis Figure 4.10
    33# A.F.Zarnecki,  June 2020
     4
     5# set EfficiencyFormula {efficiency formula as a function of eta and pt}
    46
    57set EfficiencyFormula {
  • cards/ILCgen/ILCgen_BeamCalF_Binning.tcl

    r13331dc ra3261d7  
    22# corrected by A.F.Zarnecki
    33
    4 set pi [expr {acos(-1)} ]
    5 
     4set pi [expr {acos(-1)}]
     5   
    66# BeamCal eta range 4.0 - 5.8 -> 2.099-0.347 =1.752deg
    77#
  • cards/ILCgen/ILCgen_BeamCalR_Binning.tcl

    r13331dc ra3261d7  
    22# corrected by A.F.Zarnecki
    33
    4 set pi [expr {acos(-1)} ]
    5 
     4set pi [expr {acos(-1)}]
     5   
    66# BeamCal eta range 4.0 - 5.8 -> 2.099-0.347 =1.752deg
    77#
  • cards/ILCgen/ILCgen_BeamCal_EnergyFractions.tcl

    r13331dc ra3261d7  
    11#P.Sopicki
     2  # default energy fractions {abs(PDG code)} {fraction of energy deposited in BeamCal}
    23
    34  add EnergyFraction {0} {0.0}
     
    1920  add EnergyFraction {310} {0.3}
    2021  add EnergyFraction {3122} {0.3}
     22
  • cards/ILCgen/ILCgen_BeamCal_Resolution.tcl

    r13331dc ra3261d7  
    11# P.Sopicki, corrected by A.F.Zarnecki
    22# BeamCal resolution
     3
     4# set ResolutionFormula {resolution formula as a function of eta and energy}
    35
    46  set ResolutionFormula {
     
    68  (abs(eta) > 4.8 && abs(eta) <= 5.8) * sqrt(energy^2*0.03^2 + energy*0.45^2)
    79  }
     10
  • cards/ILCgen/ILCgen_CTagging_N.tcl

    r13331dc ra3261d7  
    104104    source ILCgen/ILCgen_CTagging_20.tcl
    105105}
     106
  • cards/ILCgen/ILCgen_ChrgHadMomentumSmearing.tcl

    r13331dc ra3261d7  
    66
    77set 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
    1011     + (0.829675 -0.188197*abs(eta) +  0.106226 * eta*eta  - 1.0) * log(pt)
    1112     + (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
    1518     + ( 0.87526 - 1.0) * log(pt)
    1619     + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt))
    17   }
     20
     21}
     22
  • cards/ILCgen/ILCgen_ChrgHadTrackingEff.tcl

    r13331dc ra3261d7  
    44#  A.F.Zarnecki, June 12, 2020
    55
    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  
    11#P.Sopicki
    2 
     2# default energy fractions {abs(PDG code)} {fraction in ECAL or LumiCal}
    33  add EnergyFraction {0} {0.0}
    44  # energy fractions for e, gamma and pi0
  • cards/ILCgen/ILCgen_ECAL_Resolution.tcl

    r13331dc ra3261d7  
    22# ECAL and LumiCal resolution: same formula used at the moment
    33#
    4 
     4# set ResolutionFormula {resolution formula as a function of eta and energy}
    55set ResolutionFormula {
    66    (abs(eta) <= 3 )                 * sqrt(energy^2*0.01^2 + energy*0.17^2)+
    77    (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}
    13
    24# efficiency formula for electrons (ECAL and LumiCal)
  • cards/ILCgen/ILCgen_ElectronMomentumSmearing.tcl

    r13331dc ra3261d7  
    66
    77set 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
    1011     + (0.829675 -0.188197*abs(eta) +  0.106226 * eta*eta  - 1.0) * log(pt)
    1112     + (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
    1518     + ( 0.87526 - 1.0) * log(pt)
    1619     + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt))
    17   }
     20
     21}
     22
  • cards/ILCgen/ILCgen_ElectronTrackingEff.tcl

    r13331dc ra3261d7  
    44#  A.F.Zarnecki, June 12, 2020
    55
    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  
    11#P.Sopicki
    2 
     2# default energy fractions {abs(PDG code)} {fraction in HCAL or LHCAL}
    33  add EnergyFraction {0} {1.0}
    44  # energy fractions for e, gamma and pi0
  • cards/ILCgen/ILCgen_HCAL_Resolution.tcl

    r13331dc ra3261d7  
    22# HCAL and LHCAL resolution: same formula used at the moment
    33#
    4 
     4# set ResolutionFormula {resolution formula as a function of eta and energy}
    55set ResolutionFormula {
    66   (abs(eta) <= 2.8 )                 * sqrt(energy^2*0.017^2 + energy*0.45^2)+
    77   (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  
    66
    77set 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
    1011     + (0.829675 -0.188197*abs(eta) +  0.106226 * eta*eta  - 1.0) * log(pt)
    1112     + (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
    1518     + ( 0.87526 - 1.0) * log(pt)
    1619     + (-0.0800672 + 0.0891669 * abs(eta)) * log(pt)*log(pt))
    17   }
     20
     21}
     22
  • cards/ILCgen/ILCgen_MuonTrackingEff.tcl

    r13331dc ra3261d7  
    44#  A.F.Zarnecki, June 12, 2020
    55
    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)
    35
    46  set EfficiencyFormula {
  • cards/delphes_card_CLICdet_Stage1.tcl

    r13331dc ra3261d7  
    298298
    299299    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)
    307306    }
    308307}
     
    319318    # Current full simulation with CLICdet provides for electrons:
    320319    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)
    331330    }
    332331}
     
    342341    # Current full simulation with CLICdet provides for muons:
    343342    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       
    352353    }
    353354}
     
    944945module FastJetFinder FastJetFinderKt {
    945946    #  set InputArray Calorimeter/towers
    946     set InputArray EFlowFilter/eflow
     947    set InputArray EFlowMerger/eflow
    947948
    948949    set OutputArray KTjets
  • cards/delphes_card_CLICdet_Stage2.tcl

    r13331dc ra3261d7  
    490490
    491491    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)
    499498    }
    500499}
     
    511510    # Current full simulation with CLICdet provides for electrons:
    512511    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)
    523522    }
    524523}
     
    534533    # Current full simulation with CLICdet provides for muons:
    535534    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       
    544545    }
    545546}
     
    11351136module FastJetFinder FastJetFinderKt {
    11361137    #  set InputArray Calorimeter/towers
    1137     set InputArray EFlowFilter/eflow
     1138    set InputArray EFlowMerger/eflow
    11381139
    11391140    set OutputArray KTjets
  • cards/delphes_card_CLICdet_Stage3.tcl

    r13331dc ra3261d7  
    484484
    485485    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)
    493492    }
    494493}
     
    505504    # Current full simulation with CLICdet provides for electrons:
    506505    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)
    517516    }
    518517}
     
    528527    # Current full simulation with CLICdet provides for muons:
    529528    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       
    538539    }
    539540}
     
    11311132module FastJetFinder FastJetFinderKt {
    11321133    #  set InputArray Calorimeter/towers
    1133     set InputArray EFlowFilter/eflow
     1134    set InputArray EFlowMerger/eflow
    11341135
    11351136    set OutputArray KTjets
  • cards/delphes_card_IDEA.tcl

    r13331dc ra3261d7  
    11####################################################################                                l
    2 # FCC-ee IDEA detector model
    3 #
    4 # Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello, Michele Selvaggi
     2# FCC-ee IDEA detector model                                                                                     
     3#                                                                                                   
     4# Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello                                 
    55# 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#       
    1310#######################################
    1411# Order of execution of various modules
     
    2219  MuonTrackingEfficiency
    2320
    24   TrackMergerPre
    25   TrackSmearing
    26 
    27   TrackMerger
     21  ChargedHadronMomentumSmearing
     22  ElectronMomentumSmearing
     23  MuonMomentumSmearing
     24
     25  TrackMerger
    2826  Calorimeter
    2927  EFlowMerger
     
    3129  PhotonEfficiency
    3230  PhotonIsolation
    33 
    34   MuonFilter
    3531
    3632  ElectronFilter
     
    4642  GenJetFinder
    4743  GenMissingET
    48 
     44 
    4945  FastJetFinder
    5046
     
    6157  TreeWriter
    6258}
     59
    6360
    6461#################################
     
    8178
    8279  # magnetic field, in T
    83   set Bz $B
     80  set Bz 2.0
    8481}
    8582
     
    10198}
    10299
    103 #       (pt <= 0.1)                                     * (0.00) +
     100#       (pt <= 0.1)                                     * (0.00) + 
    104101#       (abs(eta) <= 3.0)               * (pt > 0.1)    * (1.00) +
    105102#       (abs(eta) > 3)                                  * (0.00)
     
    122119        (energy < 0.5 && energy >= 0.3) * (abs(eta) <= 3.0)    * (0.65) +
    123120        (energy < 0.3) * (abs(eta) <= 3.0)                     * (0.06)
    124     }
     121    } 
    125122}
    126123
     
    143140}
    144141
     142
     143########################################
     144# Momentum resolution for charged tracks
     145########################################
     146
     147module 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
     163module 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
     178module 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
    145189##############
    146190# Track merger
    147191##############
    148192
    149 module Merger TrackMergerPre {
    150 # add InputArray InputArray
    151   add InputArray ChargedHadronTrackingEfficiency/chargedHadrons
    152   add InputArray ElectronTrackingEfficiency/electrons
    153   add InputArray MuonTrackingEfficiency/muons
    154   set OutputArray tracks
    155 }
    156 
    157 
    158 ########################################
    159 # Smearing for charged tracks
    160 ########################################
    161 
    162 module TrackCovariance TrackSmearing {
    163     set InputArray TrackMergerPre/tracks
    164     set OutputArray tracks
    165 
    166 
    167     set InputArray TrackMergerPre/tracks
    168     set OutputArray tracks
    169 
    170     set Bz 2.0
    171 
    172     ## minimum number of hits to accept a track
    173     set NMinHits 6
    174 
    175     ## uses https://raw.githubusercontent.com/selvaggi/FastTrackCovariance/master/GeoIDEA_BASE.txt
    176     set DetectorGeometry {
    177 
    178 
    179       # Layer type 1 = R (barrel) or 2 = z (forward/backward)
    180       # Layer label
    181       # Minimum dimension z for barrel or R for forward
    182       # Maximum dimension z for barrel or R for forward
    183       # R/z location of layer
    184       # Thickness (meters)
    185       # Radiation length (meters)
    186       # Number of measurements in layers (1D or 2D)
    187       # Stereo angle (rad) - 0(pi/2) = axial(z) layer - Upper side
    188       # Stereo angle (rad) - 0(pi/2) = axial(z) layer - Lower side
    189       # Resolution Upper side (meters) - 0 = no measurement
    190       # Resolution Lower side (meters) - 0 = no measurement
    191       # measurement flag = T, scattering only = F
    192 
    193       # barrel  name       zmin   zmax   r        w (m)      X0        n_meas  th_up (rad) th_down (rad)    reso_up (m)   reso_down (m)  flag
    194 
    195       # barrel  name       zmin   zmax   r        w (m)      X0        n_meas  th_up (rad) th_down (rad)    reso_up (m)   reso_down (m)  flag
    196 
    197       1        PIPE       -100    100    0.015    0.001655  0.2805     0        0          0                0             0              0
    198       1        VTXLOW     -0.12   0.12   0.017    0.00028   0.0937     2        0          1.5708           3e-006        3e-006         1
    199       1        VTXLOW     -0.16   0.16   0.023    0.00028   0.0937     2        0          1.5708           3e-006        3e-006         1
    200       1        VTXLOW     -0.16   0.16   0.031    0.00028   0.0937     2        0          1.5708           3e-006        3e-006         1
    201       1        VTXHIGH    -1      1      0.32     0.00047   0.0937     2        0          1.5708           7e-006        7e-006         1
    202       1        VTXHIGH    -1.05   1.05   0.34     0.00047   0.0937     2        0          1.5708           7e-006        7e-006         1
    203 
    204       # endcap  name       rmin   rmax   z        w (m)      X0        n_meas   th_up (rad)  th_down (rad)   reso_up (m)   reso_down (m) flag
    205 
    206       2        VTXDSK      0.141  0.3   -0.92     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    207       2        VTXDSK      0.138  0.3   -0.9      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    208       2        VTXDSK      0.065  0.3   -0.42     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    209       2        VTXDSK      0.062  0.3   -0.4      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    210       2        VTXDSK      0.062  0.3    0.4      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    211       2        VTXDSK      0.065  0.3    0.42     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    212       2        VTXDSK      0.138  0.3    0.9      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    213       2        VTXDSK      0.141  0.3    0.92     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
    214 
    215       1 DCHCANI -2.125 2.125 0.345 0.0002 0.237223 0 0 0 0 0 0
    216       1 DCH -2 2 0.36 0.0147748 1400 1 0.0203738 0 0.0001 0 1
    217       1 DCH -2 2 0.374775 0.0147748 1400 1 -0.0212097 0 0.0001 0 1
    218       1 DCH -2 2 0.38955 0.0147748 1400 1 0.0220456 0 0.0001 0 1
    219       1 DCH -2 2 0.404324 0.0147748 1400 1 -0.0228814 0 0.0001 0 1
    220       1 DCH -2 2 0.419099 0.0147748 1400 1 0.0237172 0 0.0001 0 1
    221       1 DCH -2 2 0.433874 0.0147748 1400 1 -0.024553 0 0.0001 0 1
    222       1 DCH -2 2 0.448649 0.0147748 1400 1 0.0253888 0 0.0001 0 1
    223       1 DCH -2 2 0.463423 0.0147748 1400 1 -0.0262245 0 0.0001 0 1
    224       1 DCH -2 2 0.478198 0.0147748 1400 1 0.0270602 0 0.0001 0 1
    225       1 DCH -2 2 0.492973 0.0147748 1400 1 -0.0278958 0 0.0001 0 1
    226       1 DCH -2 2 0.507748 0.0147748 1400 1 0.0287314 0 0.0001 0 1
    227       1 DCH -2 2 0.522523 0.0147748 1400 1 -0.029567 0 0.0001 0 1
    228       1 DCH -2 2 0.537297 0.0147748 1400 1 0.0304025 0 0.0001 0 1
    229       1 DCH -2 2 0.552072 0.0147748 1400 1 -0.031238 0 0.0001 0 1
    230       1 DCH -2 2 0.566847 0.0147748 1400 1 0.0320734 0 0.0001 0 1
    231       1 DCH -2 2 0.581622 0.0147748 1400 1 -0.0329088 0 0.0001 0 1
    232       1 DCH -2 2 0.596396 0.0147748 1400 1 0.0337442 0 0.0001 0 1
    233       1 DCH -2 2 0.611171 0.0147748 1400 1 -0.0345795 0 0.0001 0 1
    234       1 DCH -2 2 0.625946 0.0147748 1400 1 0.0354147 0 0.0001 0 1
    235       1 DCH -2 2 0.640721 0.0147748 1400 1 -0.0362499 0 0.0001 0 1
    236       1 DCH -2 2 0.655495 0.0147748 1400 1 0.0370851 0 0.0001 0 1
    237       1 DCH -2 2 0.67027 0.0147748 1400 1 -0.0379202 0 0.0001 0 1
    238       1 DCH -2 2 0.685045 0.0147748 1400 1 0.0387552 0 0.0001 0 1
    239       1 DCH -2 2 0.69982 0.0147748 1400 1 -0.0395902 0 0.0001 0 1
    240       1 DCH -2 2 0.714595 0.0147748 1400 1 0.0404252 0 0.0001 0 1
    241       1 DCH -2 2 0.729369 0.0147748 1400 1 -0.04126 0 0.0001 0 1
    242       1 DCH -2 2 0.744144 0.0147748 1400 1 0.0420949 0 0.0001 0 1
    243       1 DCH -2 2 0.758919 0.0147748 1400 1 -0.0429296 0 0.0001 0 1
    244       1 DCH -2 2 0.773694 0.0147748 1400 1 0.0437643 0 0.0001 0 1
    245       1 DCH -2 2 0.788468 0.0147748 1400 1 -0.044599 0 0.0001 0 1
    246       1 DCH -2 2 0.803243 0.0147748 1400 1 0.0454336 0 0.0001 0 1
    247       1 DCH -2 2 0.818018 0.0147748 1400 1 -0.0462681 0 0.0001 0 1
    248       1 DCH -2 2 0.832793 0.0147748 1400 1 0.0471025 0 0.0001 0 1
    249       1 DCH -2 2 0.847568 0.0147748 1400 1 -0.0479369 0 0.0001 0 1
    250       1 DCH -2 2 0.862342 0.0147748 1400 1 0.0487713 0 0.0001 0 1
    251       1 DCH -2 2 0.877117 0.0147748 1400 1 -0.0496055 0 0.0001 0 1
    252       1 DCH -2 2 0.891892 0.0147748 1400 1 0.0504397 0 0.0001 0 1
    253       1 DCH -2 2 0.906667 0.0147748 1400 1 -0.0512738 0 0.0001 0 1
    254       1 DCH -2 2 0.921441 0.0147748 1400 1 0.0521079 0 0.0001 0 1
    255       1 DCH -2 2 0.936216 0.0147748 1400 1 -0.0529418 0 0.0001 0 1
    256       1 DCH -2 2 0.950991 0.0147748 1400 1 0.0537757 0 0.0001 0 1
    257       1 DCH -2 2 0.965766 0.0147748 1400 1 -0.0546095 0 0.0001 0 1
    258       1 DCH -2 2 0.980541 0.0147748 1400 1 0.0554433 0 0.0001 0 1
    259       1 DCH -2 2 0.995315 0.0147748 1400 1 -0.056277 0 0.0001 0 1
    260       1 DCH -2 2 1.01009 0.0147748 1400 1 0.0571106 0 0.0001 0 1
    261       1 DCH -2 2 1.02486 0.0147748 1400 1 -0.0579441 0 0.0001 0 1
    262       1 DCH -2 2 1.03964 0.0147748 1400 1 0.0587775 0 0.0001 0 1
    263       1 DCH -2 2 1.05441 0.0147748 1400 1 -0.0596108 0 0.0001 0 1
    264       1 DCH -2 2 1.06919 0.0147748 1400 1 0.0604441 0 0.0001 0 1
    265       1 DCH -2 2 1.08396 0.0147748 1400 1 -0.0612773 0 0.0001 0 1
    266       1 DCH -2 2 1.09874 0.0147748 1400 1 0.0621104 0 0.0001 0 1
    267       1 DCH -2 2 1.11351 0.0147748 1400 1 -0.0629434 0 0.0001 0 1
    268       1 DCH -2 2 1.12829 0.0147748 1400 1 0.0637763 0 0.0001 0 1
    269       1 DCH -2 2 1.14306 0.0147748 1400 1 -0.0646092 0 0.0001 0 1
    270       1 DCH -2 2 1.15784 0.0147748 1400 1 0.0654419 0 0.0001 0 1
    271       1 DCH -2 2 1.17261 0.0147748 1400 1 -0.0662746 0 0.0001 0 1
    272       1 DCH -2 2 1.18739 0.0147748 1400 1 0.0671071 0 0.0001 0 1
    273       1 DCH -2 2 1.20216 0.0147748 1400 1 -0.0679396 0 0.0001 0 1
    274       1 DCH -2 2 1.21694 0.0147748 1400 1 0.068772 0 0.0001 0 1
    275       1 DCH -2 2 1.23171 0.0147748 1400 1 -0.0696042 0 0.0001 0 1
    276       1 DCH -2 2 1.24649 0.0147748 1400 1 0.0704364 0 0.0001 0 1
    277       1 DCH -2 2 1.26126 0.0147748 1400 1 -0.0712685 0 0.0001 0 1
    278       1 DCH -2 2 1.27604 0.0147748 1400 1 0.0721005 0 0.0001 0 1
    279       1 DCH -2 2 1.29081 0.0147748 1400 1 -0.0729324 0 0.0001 0 1
    280       1 DCH -2 2 1.30559 0.0147748 1400 1 0.0737642 0 0.0001 0 1
    281       1 DCH -2 2 1.32036 0.0147748 1400 1 -0.0745958 0 0.0001 0 1
    282       1 DCH -2 2 1.33514 0.0147748 1400 1 0.0754274 0 0.0001 0 1
    283       1 DCH -2 2 1.34991 0.0147748 1400 1 -0.0762589 0 0.0001 0 1
    284       1 DCH -2 2 1.36468 0.0147748 1400 1 0.0770903 0 0.0001 0 1
    285       1 DCH -2 2 1.37946 0.0147748 1400 1 -0.0779215 0 0.0001 0 1
    286       1 DCH -2 2 1.39423 0.0147748 1400 1 0.0787527 0 0.0001 0 1
    287       1 DCH -2 2 1.40901 0.0147748 1400 1 -0.0795837 0 0.0001 0 1
    288       1 DCH -2 2 1.42378 0.0147748 1400 1 0.0804147 0 0.0001 0 1
    289       1 DCH -2 2 1.43856 0.0147748 1400 1 -0.0812455 0 0.0001 0 1
    290       1 DCH -2 2 1.45333 0.0147748 1400 1 0.0820762 0 0.0001 0 1
    291       1 DCH -2 2 1.46811 0.0147748 1400 1 -0.0829068 0 0.0001 0 1
    292       1 DCH -2 2 1.48288 0.0147748 1400 1 0.0837373 0 0.0001 0 1
    293       1 DCH -2 2 1.49766 0.0147748 1400 1 -0.0845677 0 0.0001 0 1
    294       1 DCH -2 2 1.51243 0.0147748 1400 1 0.0853979 0 0.0001 0 1
    295       1 DCH -2 2 1.52721 0.0147748 1400 1 -0.086228 0 0.0001 0 1
    296       1 DCH -2 2 1.54198 0.0147748 1400 1 0.087058 0 0.0001 0 1
    297       1 DCH -2 2 1.55676 0.0147748 1400 1 -0.0878879 0 0.0001 0 1
    298       1 DCH -2 2 1.57153 0.0147748 1400 1 0.0887177 0 0.0001 0 1
    299       1 DCH -2 2 1.58631 0.0147748 1400 1 -0.0895474 0 0.0001 0 1
    300       1 DCH -2 2 1.60108 0.0147748 1400 1 0.0903769 0 0.0001 0 1
    301       1 DCH -2 2 1.61586 0.0147748 1400 1 -0.0912063 0 0.0001 0 1
    302       1 DCH -2 2 1.63063 0.0147748 1400 1 0.0920356 0 0.0001 0 1
    303       1 DCH -2 2 1.64541 0.0147748 1400 1 -0.0928647 0 0.0001 0 1
    304       1 DCH -2 2 1.66018 0.0147748 1400 1 0.0936937 0 0.0001 0 1
    305       1 DCH -2 2 1.67495 0.0147748 1400 1 -0.0945226 0 0.0001 0 1
    306       1 DCH -2 2 1.68973 0.0147748 1400 1 0.0953514 0 0.0001 0 1
    307       1 DCH -2 2 1.7045 0.0147748 1400 1 -0.09618 0 0.0001 0 1
    308       1 DCH -2 2 1.71928 0.0147748 1400 1 0.0970085 0 0.0001 0 1
    309       1 DCH -2 2 1.73405 0.0147748 1400 1 -0.0978369 0 0.0001 0 1
    310       1 DCH -2 2 1.74883 0.0147748 1400 1 0.0986651 0 0.0001 0 1
    311       1 DCH -2 2 1.7636 0.0147748 1400 1 -0.0994932 0 0.0001 0 1
    312       1 DCH -2 2 1.77838 0.0147748 1400 1 0.100321 0 0.0001 0 1
    313       1 DCH -2 2 1.79315 0.0147748 1400 1 -0.101149 0 0.0001 0 1
    314       1 DCH -2 2 1.80793 0.0147748 1400 1 0.101977 0 0.0001 0 1
    315       1 DCH -2 2 1.8227 0.0147748 1400 1 -0.102804 0 0.0001 0 1
    316       1 DCH -2 2 1.83748 0.0147748 1400 1 0.103632 0 0.0001 0 1
    317       1 DCH -2 2 1.85225 0.0147748 1400 1 -0.104459 0 0.0001 0 1
    318       1 DCH -2 2 1.86703 0.0147748 1400 1 0.105286 0 0.0001 0 1
    319       1 DCH -2 2 1.8818 0.0147748 1400 1 -0.106113 0 0.0001 0 1
    320       1 DCH -2 2 1.89658 0.0147748 1400 1 0.10694 0 0.0001 0 1
    321       1 DCH -2 2 1.91135 0.0147748 1400 1 -0.107766 0 0.0001 0 1
    322       1 DCH -2 2 1.92613 0.0147748 1400 1 0.108593 0 0.0001 0 1
    323       1 DCH -2 2 1.9409 0.0147748 1400 1 -0.109419 0 0.0001 0 1
    324       1 DCH -2 2 1.95568 0.0147748 1400 1 0.110246 0 0.0001 0 1
    325       1 DCH -2 2 1.97045 0.0147748 1400 1 -0.111072 0 0.0001 0 1
    326       1 DCH -2 2 1.98523 0.0147748 1400 1 0.111898 0 0.0001 0 1
    327       1 DCH -2 2 2 0.0147748 1400 1 -0.112723 0 0.0001 0 1
    328       1 DCHCANO -2.125 2.125 2.02 0.02 1.667 0 0 0 0 0 0
    329       1 BSILWRP -2.35 2.35 2.04 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
    330       1 BSILWRP -2.35 2.35 2.06 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
    331       1 MAG -2.5 2.5 2.25 0.05 0.0658 0 0 0 0 0 0
    332       1 BPRESH -2.55 2.55 2.45 0.02 1 2 0 1.5708 7e-005 0.01 1
    333       2 DCHWALL 0.345 2.02 2.125 0.25 5.55 0 0 0 0 0 0
    334       2 DCHWALL 0.345 2.02 -2.125 0.25 5.55 0 0 0 0 0 0
    335       2 FSILWRP 0.354 2.02 -2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
    336       2 FSILWRP 0.35 2.02 -2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
    337       2 FSILWRP 0.35 2.02 2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
    338       2 FSILWRP 0.354 2.02 2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
    339       2 FRAD 0.38 2.09 2.49 0.0043 0.005612 0 0 0 0 0 0
    340       2 FRAD 0.38 2.09 -2.49 0.0043 0.005612 0 0 0 0 0 0
    341       2 FPRESH 0.39 2.43 -2.55 0.02 1 2 0 1.5708 7e-005 0.01 1
    342       2 FPRESH 0.39 2.43 2.55 0.02 1 2 0 1.5708 7e-005 0.01 1
    343     }
    344 
    345     set Bz $B
    346 }
    347 
    348 ##############
    349 # Track merger
    350 ##############
    351 
    352193module Merger TrackMerger {
    353194# add InputArray InputArray
    354   add InputArray TrackSmearing/tracks
     195  add InputArray ChargedHadronMomentumSmearing/chargedHadrons
     196  add InputArray ElectronMomentumSmearing/electrons
     197  add InputArray MuonMomentumSmearing/muons
    355198  set OutputArray tracks
    356199}
    357200
    358201
    359 #############
    360 # Calorimeter
    361 #############
     202#############                                                                                                                         
     203# Calorimeter                                                                                                                                           
     204#############                                                                                                                                           
    362205module DualReadoutCalorimeter Calorimeter {
    363206  set ParticleInputArray ParticlePropagator/stableParticles
     
    381224    set pi [expr {acos(-1)}]
    382225
    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:                                                                                       
    391234    set PhiBins {}
    392235    for {set i -120} {$i <= 120} {incr i} {
    393236        add PhiBins [expr {$i * $pi/120}]
    394237    }
    395     #deta=0.02 units for |eta| <= 0.88
     238    #deta=0.02 units for |eta| <= 0.88                                                             
    396239    for {set i -44} {$i < 45} {incr i} {
    397240        set eta [expr {$i * 0.02}]
     
    399242    }
    400243
    401     #endcaps:
     244    #endcaps:                                                                                       
    402245    set PhiBins {}
    403246    for {set i -120} {$i <= 120} {incr i} {
    404247        add PhiBins [expr {$i* $pi/120}]
    405248    }
    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                                                                     
    408251    for {set i 1} {$i <=106} {incr i} {
    409252        set eta [expr {-3.00 + $i * 0.02}]
    410253        add EtaPhiBins $eta $PhiBins
    411254    }
    412     #same for 0.88 to 3.0
     255    #same for 0.88 to 3.0                                                                           
    413256    for  {set i 1} {$i <=106} {incr i} {
    414257        set eta [expr {0.88 + $i * 0.02}]
     
    416259    }
    417260
    418     # default energy fractions {abs(PDG code)} {Fecal Fhcal}
     261    # default energy fractions {abs(PDG code)} {Fecal Fhcal}                                                                                 
    419262    add EnergyFraction {0} {0.0 1.0}
    420     # energy fractions for e, gamma and pi0
     263    # energy fractions for e, gamma and pi0                                                                                                           
    421264    add EnergyFraction {11} {1.0 0.0}
    422265    add EnergyFraction {22} {1.0 0.0}
    423266    add EnergyFraction {111} {1.0 0.0}
    424     # energy fractions for muon, neutrinos and neutralinos
     267    # energy fractions for muon, neutrinos and neutralinos                                                                             
    425268    add EnergyFraction {12} {0.0 0.0}
    426269    add EnergyFraction {13} {0.0 0.0}
     
    432275    add EnergyFraction {1000035} {0.0 0.0}
    433276    add EnergyFraction {1000045} {0.0 0.0}
    434     # energy fractions for K0short and Lambda
     277    # energy fractions for K0short and Lambda                                                                                                           
    435278    add EnergyFraction {310} {0.3 0.7}
    436279    add EnergyFraction {3122} {0.3 0.7}
    437280
    438281
    439     # set ECalResolutionFormula {resolution formula as a function of eta and energy}
     282    # set ECalResolutionFormula {resolution formula as a function of eta and energy}                               
    440283    set ECalResolutionFormula {
    441284    (abs(eta) <= 0.88 )                     * sqrt(energy^2*0.01^2 + energy*0.11^2)+
     
    443286    }
    444287
    445     # set HCalResolutionFormula {resolution formula as a function of eta and energy}
     288    # set HCalResolutionFormula {resolution formula as a function of eta and energy}                                               
    446289    set HCalResolutionFormula {
    447290    (abs(eta) <= 0.88 )                     * sqrt(energy^2*0.01^2 + energy*0.30^2)+
     
    509352}
    510353
    511 #################
    512 # Muon filter
    513 #################
    514 
    515 module PdgCodeFilter MuonFilter {
    516   set InputArray Calorimeter/eflowTracks
    517   set OutputArray muons
    518   set Invert true
    519   add PdgCode {13}
    520   add PdgCode {-13}
    521 }
    522 
    523 
    524354#####################
    525355# Electron efficiency
     
    533363
    534364  # efficiency formula for electrons
    535   set EfficiencyFormula {
     365  set EfficiencyFormula {         
    536366        (energy < 2.0)                                         * (0.000)+
    537367        (energy >= 2.0) * (abs(eta) <= 0.88)                   * (0.99) +
     
    563393
    564394module Efficiency MuonEfficiency {
    565   set InputArray MuonFilter/muons
     395  set InputArray MuonMomentumSmearing/muons
    566396  set OutputArray muons
    567397
     
    569399
    570400  # efficiency formula for muons
    571   set EfficiencyFormula {
     401  set EfficiencyFormula {                                   
    572402        (energy < 2.0)                                         * (0.000)+
    573403        (energy >= 2.0) * (abs(eta) <= 0.88)                   * (0.99) +
     
    717547
    718548  # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
    719 
     549 
    720550  # default efficiency formula (misidentification rate)
    721551  add EfficiencyFormula {0} {0.01}
     
    773603module TreeWriter TreeWriter {
    774604    # add Branch InputArray BranchName BranchClass
    775 
     605   
    776606    add Branch Delphes/allParticles Particle GenParticle
    777607
    778608    add Branch TrackMerger/tracks Track Track
    779609    add Branch Calorimeter/towers Tower Tower
    780 
     610   
    781611    add Branch Calorimeter/eflowTracks EFlowTrack Track
    782612    add Branch Calorimeter/eflowPhotons EFlowPhoton Tower
     
    786616    add Branch PhotonEfficiency/photons PhotonEff Photon
    787617    add Branch PhotonIsolation/photons PhotonIso Photon
    788 
     618   
    789619    add Branch GenJetFinder/jets GenJet Jet
    790620    add Branch GenMissingET/momentum GenMissingET MissingET
    791 
     621   
    792622    add Branch UniqueObjectFinder/jets Jet Jet
    793623    add Branch UniqueObjectFinder/electrons Electron Electron
    794624    add Branch UniqueObjectFinder/photons Photon Photon
    795625    add Branch UniqueObjectFinder/muons Muon Muon
    796 
    797     add Branch JetEnergyScale/jets AntiKtJet Jet
    798 
     626   
     627    add Branch JetEnergyScale/jets AntiKtJet Jet 
     628   
    799629    add Branch MissingET/momentum MissingET MissingET
    800630    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  
    102102{
    103103  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}
    148107
    149108//------------------------------------------------------------------------------
     
    161120{
    162121  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;
    205124}
    206125
     
    234153  NNeutrals(0),
    235154  NeutralEnergyFraction(0),  // charged energy fraction
    236   ChargedEnergyFraction(0),  // neutral energy fraction
     155  ChargedEnergyFraction(0),  // neutral energy fraction 
    237156  Beta(0),
    238157  BetaStar(0),
  • classes/DelphesClasses.h

    r13331dc ra3261d7  
    151151  Float_t Eta; // particle pseudorapidity
    152152  Float_t Phi; // particle azimuthal angle
     153
    153154  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
    154159
    155160  Float_t T; // particle vertex position (t component) | hepevt.vhep[number][3]
     
    385390
    386391  Float_t NeutralEnergyFraction;  // charged energy fraction
    387   Float_t ChargedEnergyFraction;  // neutral energy fraction
     392  Float_t ChargedEnergyFraction;  // neutral energy fraction 
    388393
    389394  Float_t Beta; // (sum pt of charged pile-up constituents)/(sum pt of charged constituents)
     
    438443  Float_t Phi; // track azimuthal angle
    439444  Float_t CtgTheta; // track cotangent of theta
    440   Float_t C; // track curvature inverse
    441   Float_t Mass; // particle mass
    442445
    443446  Float_t EtaOuter; // track pseudorapidity at the tracker edge
     
    470473  Float_t ErrorD0; // track transverse impact parameter error
    471474  Float_t ErrorDZ; // track longitudinal impact parameter error
    472   Float_t ErrorC; // track curvature error
    473 
    474   // track covariance off-diagonal terms
    475   Float_t ErrorD0Phi;
    476   Float_t ErrorD0C;
    477   Float_t ErrorD0DZ;
    478   Float_t ErrorD0CtgTheta;
    479   Float_t ErrorPhiC;
    480   Float_t ErrorPhiDZ;
    481   Float_t ErrorPhiCtgTheta ;
    482   Float_t ErrorCDZ;
    483   Float_t ErrorCCtgTheta;
    484   Float_t ErrorDZCtgTheta;
    485475
    486476  TRef Particle; // reference to generated particle
     
    492482
    493483  TLorentzVector P4() const;
    494   TMatrixDSym CovarianceMatrix() const;
    495484
    496485  ClassDef(Track, 3)
     
    542531  Float_t Phi; // track azimuthal angle
    543532  Float_t CtgTheta; // track cotangent of theta
    544   Float_t C; // track curvature inverse
    545   Float_t Mass; // particle mass
    546533
    547534  Float_t EtaOuter; // track pseudorapidity at the tracker edge
     
    574561  Float_t ErrorD0; // track transverse impact parameter error
    575562  Float_t ErrorDZ; // track longitudinal impact parameter error
    576   Float_t ErrorC; // track curvature error
    577 
    578   // track covariance off-diagonal terms
    579   Float_t ErrorD0Phi;
    580   Float_t ErrorD0C;
    581   Float_t ErrorD0DZ;
    582   Float_t ErrorD0CtgTheta;
    583   Float_t ErrorPhiC;
    584   Float_t ErrorPhiDZ;
    585   Float_t ErrorPhiCtgTheta ;
    586   Float_t ErrorCDZ;
    587   Float_t ErrorCCtgTheta;
    588   Float_t ErrorDZCtgTheta;
    589563
    590564  Int_t VertexIndex; // reference to vertex
     
    594568
    595569  TLorentzVector P4() const;
    596   TMatrixDSym CovarianceMatrix() const;
    597570
    598571  Int_t NTimeHits; // number of hits contributing to time measurement
     
    605578  TRefArray Particles; // references to generated particles
    606579
    607   ClassDef(ParticleFlowCandidate, 2)
     580  ClassDef(ParticleFlowCandidate, 1)
    608581
    609582};
     
    712685  Float_t FracPt[5];
    713686  Float_t NeutralEnergyFraction;  // charged energy fraction
    714   Float_t ChargedEnergyFraction;  // neutral energy fraction
     687  Float_t ChargedEnergyFraction;  // neutral energy fraction 
    715688
    716689
     
    769742  // event characteristics variables
    770743  Double_t ParticleDensity; // particle multiplicity density in the proximity of the particle
    771 
     744 
    772745  static CompBase *fgCompare; //!
    773746  const CompBase *GetCompare() const { return fgCompare; }
  • classes/DelphesModule.cc

    r13331dc ra3261d7  
    130130//------------------------------------------------------------------------------
    131131
    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 
    149132ExRootResult *DelphesModule::GetPlots()
    150133{
  • classes/DelphesModule.h

    r13331dc ra3261d7  
    5555
    5656  ExRootTreeBranch *NewBranch(const char *name, TClass *cl);
    57   void AddInfo(const char *name, Double_t value);
    5857
    5958  ExRootResult *GetPlots();
  • classes/DelphesTF2.cc

    r13331dc ra3261d7  
    3232{
    3333
    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)
    3735  fFormula = new TFormula();
    3836#endif
  • doc/genMakefile.tcl

    r13331dc ra3261d7  
    282282DISPLAYLIB = libDelphesDisplay.lib
    283283
    284 VERSION = x.y.z
     284VERSION = $(shell cat VERSION)
    285285DISTDIR = Delphes-$(VERSION)
    286286DISTTAR = $(DISTDIR).tar.gz
     
    434434        @echo ">> Building $(DISTTAR)"
    435435        @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)
    437437        @find $(DISTDIR) -depth -name .\* -exec rm -rf {} \;
    438438        @tar -czf $(DISTTAR) $(DISTDIR)
  • doc/update_fastjet.sh

    r13331dc ra3261d7  
    1 version=3.3.4
     1version=3.3.2
    22
    33wget http://fastjet.fr/repo/fastjet-${version}.tar.gz
     
    1111./configure --enable-allcxxplugins --disable-auto-ptr
    1212cd -
     13
     14echo ${version} > fastjet/VERSION
    1315
    1416cd fastjet
  • external/ExRootAnalysis/ExRootTreeReader.cc

    r13331dc ra3261d7  
    1212#include "TBranchElement.h"
    1313#include "TCanvas.h"
    14 #include "TParameter.h"
    1514#include "TClonesArray.h"
    1615#include "TH2.h"
     
    120119//------------------------------------------------------------------------------
    121120
    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 
    135121Bool_t ExRootTreeReader::Notify()
    136122{
  • external/ExRootAnalysis/ExRootTreeReader.h

    r13331dc ra3261d7  
    2929
    3030  TClonesArray *UseBranch(const char *branchName);
    31   Double_t GetInfo(const char *name);
    3231
    3332private:
  • external/ExRootAnalysis/ExRootTreeWriter.cc

    r13331dc ra3261d7  
    1111#include "ExRootAnalysis/ExRootTreeBranch.h"
    1212
    13 #include "TParameter.h"
    1413#include "TClonesArray.h"
    1514#include "TFile.h"
     
    4948  fBranches.insert(branch);
    5049  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));
    5950}
    6051
  • external/ExRootAnalysis/ExRootTreeWriter.h

    r13331dc ra3261d7  
    2929
    3030  ExRootTreeBranch *NewBranch(const char *name, TClass *cl);
    31   void AddInfo(const char *name, Double_t value);
    3231
    3332  void Clear();
  • external/TrackCovariance/ObsTrk.cc

    r13331dc ra3261d7  
    1010//
    1111// Constructors
    12 //
    1312// x(3) track origin, p(3) track momentum at origin, Q charge, B magnetic field in Tesla
    1413ObsTrk::ObsTrk(TVector3 x, TVector3 p, Double_t Q, Double_t B, SolGridCov *GC)
    1514{
    16         SetBfield(B);
    1715        fGC = GC;
    1816        fGenX = x;
     
    2119        fB = B;
    2220        fGenPar.ResizeTo(5);
    23         fGenParMm.ResizeTo(5);
    2421        fGenParACTS.ResizeTo(6);
    2522        fGenParILC.ResizeTo(5);
    2623        fObsPar.ResizeTo(5);
    27         fObsParMm.ResizeTo(5);
    2824        fObsParACTS.ResizeTo(6);
    2925        fObsParILC.ResizeTo(5);
    3026        fCov.ResizeTo(5, 5);
    31         fCovMm.ResizeTo(5, 5);
    3227        fCovACTS.ResizeTo(6, 6);
    3328        fCovILC.ResizeTo(5, 5);
    3429        fGenPar = XPtoPar(x,p,Q);
    35         fGenParMm = ParToMm(fGenPar);
    3630        fGenParACTS = ParToACTS(fGenPar);
    3731        fGenParILC = ParToILC(fGenPar);
    3832        /*
    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;
    8336        */
    8437        fObsPar = GenToObsPar(fGenPar, fGC);
     
    8841        fObsP = ParToP(fObsPar);
    8942        fObsQ = ParToQ(fObsPar);
    90         fCovACTS = CovToACTS(fObsPar, fCov);
     43        fCovACTS = CovToACTS(fCov);
    9144        fCovILC = CovToILC(fCov);
    9245}
     
    9851        fGenP.Clear();
    9952        fGenPar.Clear();
    100         fGenParMm.Clear();
    10153        fGenParACTS.Clear();
    102         fGenParILC.Clear();
    10354        fObsX.Clear();
    10455        fObsP.Clear();
    10556        fObsPar.Clear();
    106         fObsParMm.Clear();
    10757        fObsParACTS.Clear();
    108         fObsParILC.Clear();
    10958        fCov.Clear();
    110         fCovMm.Clear();
    11159        fCovACTS.Clear();
    112         fCovILC.Clear();
     60}
     61TVectorD 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//
     93TVector3 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//
     107TVector3 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
     123Double_t ObsTrk::ParToQ(TVectorD Par)
     124{
     125        return TMath::Sign(1.0, -Par(2));
    113126}
    114127//
     
    122135        // Check ranges
    123136        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;
    125138        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;
    127140        Double_t minAn = GC->GetMinAng();
    128         //if (angd < minAn) cout << "Warning ObsTrk::GenToObsPar: angle " << angd
    129         //      << " 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;
    130143        Double_t maxAn = GC->GetMaxAng();
    131         //if (angd > maxAn) cout << "Warning ObsTrk::GenToObsPar: angle " << angd
    132         //      << " 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;
    133146        //
    134147        TMatrixDSym Cov = GC->GetCov(pt, angd);
     
    157170        return oPar;
    158171}
     172// Parameter conversion to ACTS format
     173TVectorD 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
     188TMatrixDSym 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
     215TVectorD 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
     228TMatrixDSym 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  
    66#include <TMatrixDSym.h>
    77#include <TDecompChol.h>
    8 #include "TrkUtil.h"
    98#include "SolGridCov.h"
    109//
     
    1413//         INFN - Sezione di Pisa, Italy
    1514//
    16 class ObsTrk: public TrkUtil
    17 {
     15class ObsTrk{
    1816        //
    1917        // Class to handle simulation of tracking resolution
     
    2220        //
    2321private:       
    24         Double_t fB;                                    // Solenoid magnetic field
    25         SolGridCov *fGC;                                // Covariance matrix grid
     22        Double_t fB;                                            // Solenoid magnetic field
     23        SolGridCov *fGC;                                        // Covariance matrix grid
    2624        Double_t fGenQ;                                 // Generated track charge
    2725        Double_t fObsQ;                                 // Observed  track charge
     
    3028        TVector3 fGenP;                                 // Generated track momentum at track origin
    3129        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))
    3431        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))
    3834        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
    4237        TMatrixDSym fCovACTS;                   // Covariance of track parameters in ACTS format
    4338                                                                        // (D, z0, phi0, theta, q/p, time)
    44         TMatrixDSym fCovILC;                    // Covariance of track parameters in ILC format
     39        TMatrixDSym fCovILC;                            // Covariance of track parameters in ILC format
    4540                                                                        // (d0, phi0, w, z0, tan(lambda))
    4641        //
    47         // Service routines
     42        // Conversion to ACTS parametrization
    4843        //
    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
    5051        //
    5152public:
     
    5354        // Constructors
    5455        // 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
    5757        // Destructor
    5858        ~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);
    5967        //
    6068        // Accessors
     
    6674        TVector3 GetGenP()      { return fGenP; }
    6775        // 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; }
    7077        // D, z0, phi0, theta, q/p, time
    7178        TVectorD GetGenParACTS()        { return fGenParACTS; }
     
    7784        TVector3 GetObsP()      { return fObsP; }
    7885        // 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; }
    8187        // D, z0, phi0, theta, q/p, time
    8288        TVectorD GetObsParACTS()        { return fObsParACTS; }
     
    8490        TVectorD GetObsParILC() { return fObsParILC; }
    8591        // Covariances
    86         TMatrixDSym GetCov()    { return fCov; }        // in meters
    87         TMatrixDSym GetCovMm()  { return fCov; }        // in mm
     92        TMatrixDSym GetCov(){ return fCov; }
    8893        TMatrixDSym GetCovACTS(){ return fCovACTS; }
    8994        TMatrixDSym GetCovILC(){ return fCovILC; }
    90         //
    9195};
    9296
  • external/TrackCovariance/SolGridCov.cc

    r13331dc ra3261d7  
    33#include <TMath.h>
    44#include <TVectorD.h>
    5 #include <TVector3.h>
    65#include <TMatrixDSym.h>
    76#include <TDecompChol.h>
     
    3736{
    3837  delete[] fCov;
    39   delete fAcc;
    4038}
    4139
     
    6058    }
    6159  }
    62 
    63 // Now make acceptance
    64 fAcc = new AcceptanceClx(G);
    6560}
    66 
    67 
    68 //
    69 Bool_t SolGridCov::IsAccepted(Double_t pt, Double_t Theta)
    70 {
    71         //
    72         // pt in GeV, Theta in degrees
    73         //
    74         Bool_t Accept = kFALSE;
    75         if (fAcc->HitNumber(pt, Theta) >= fNminHits)Accept = kTRUE;
    76         //
    77         return Accept;
    78 }
    79 //
    80 Bool_t SolGridCov::IsAccepted(Double_t *p)
    81 {
    82         //
    83         // pt in GeV, Theta in degrees
    84         //
    85         Bool_t Accept = kFALSE;
    86         Double_t pt = TMath::Sqrt(p[0] * p[0] + p[1] * p[1]);
    87         Double_t th = 180. * TMath::ATan2(pt, p[2])/TMath::Pi();
    88         if (fAcc->HitNumber(pt,th) >= fNminHits)Accept = kTRUE;
    89         //
    90         return Accept;
    91 }
    92 //
    93 Bool_t SolGridCov::IsAccepted(TVector3 p)
    94 {
    95         //
    96         // pt in GeV, Theta in degrees
    97         //
    98         Bool_t Accept = kFALSE;
    99         Double_t pt = p.Pt();
    100         Double_t th = 180.*TMath::ACos(p.CosTheta())/TMath::Pi();
    101         if (fAcc->HitNumber(pt,th) >= fNminHits)Accept = kTRUE;
    102         //
    103         return Accept;
    104 }
    105 
    106 
    10761// Find bin in grid
    10862Int_t SolGridCov::GetMinIndex(Double_t xval, Int_t N, TVectorD x)
  • external/TrackCovariance/SolGridCov.h

    r13331dc ra3261d7  
    44#include <TVectorD.h>
    55#include <TMatrixDSym.h>
    6 #include "AcceptanceClx.h"
    76
    87class SolGeom;
     
    1817  TVectorD fAnga;    // Array of angle points in degrees
    1918  TMatrixDSym *fCov; // Pointers to grid of covariance matrices
    20         AcceptanceClx *fAcc;                            // Pointer to acceptance class
    21         Int_t fNminHits;                                        // Minimum number of hits to accept track
    2219  // Service routines
    2320  Int_t GetMinIndex(Double_t xval, Int_t N, TVectorD x); // Find bin
     
    3532  Double_t GetMaxAng() { return fAnga(fNang - 1); }
    3633  TMatrixDSym GetCov(Double_t pt, Double_t ang);
    37 
    38         // Acceptance related methods
    39         AcceptanceClx* AccPnt() { return fAcc; };                       // Return Acceptance class pointer
    40         void SetMinHits(Int_t MinHits) { fNminHits = MinHits; };        // Set minimum number of hits to accept (default = 6)
    41         Int_t GetMinHits() { return fNminHits; };
    42         Bool_t IsAccepted(Double_t pt, Double_t Theta);         // From pt (GeV) and theta (degrees)
    43         Bool_t IsAccepted(Double_t *p);                                         // From momentum components (GeV)
    44         Bool_t IsAccepted(TVector3 p);                                          // As above in Vector3 format
    45 
    4634};
    4735
  • external/TrackCovariance/SolTrack.cc

    r13331dc ra3261d7  
    4545  fCov.ResizeTo(5, 5);
    4646}
    47 SolTrack::SolTrack(TVector3 x, TVector3 p, SolGeom* G)
    48 {
    49         fG = G;
    50         // Store momentum
    51         fp[0] = p(0); fp[1] = p(1); fp[2] = p(2);
    52         Double_t px = p(0); Double_t py = p(1); Double_t pz = p(2);
    53         fx[0] = x(0); fx[1] = x(1); fx[2] = x(2);
    54         Double_t xx = x(0); Double_t yy = x(1); Double_t zz = x(2);
    55         // Store parameters
    56         Double_t pt = TMath::Sqrt(px * px + py * py);
    57         Double_t Charge = 1.0;                                          // Don't worry about charge for now
    58         Double_t a = -Charge * G->B() * 0.2998;                 // Normalized speed of light
    59         Double_t C = a / (2 * pt);                                      // pt in GeV, B in Tesla, C in meters
    60         Double_t r2 = xx * xx + yy * yy;
    61         Double_t cross = xx * py - yy * px;
    62         Double_t T = TMath::Sqrt(pt * pt - 2 * a * cross + a * a * r2);
    63         Double_t phi0 = TMath::ATan2((py - a * xx) / T, (px + a * yy) / T);
    64         Double_t D;
    65         if (pt < 10.0) D = (T - pt) / a;
    66         else D = (-2 * cross + a * r2) / (T + pt);
    67         Double_t B = C * TMath::Sqrt((r2 - D * D) / (1 + 2 * C * D));
    68         Double_t st = TMath::ASin(B) / C;
    69         Double_t ct = pz / pt;
    70         Double_t z0 = zz - ct * st;
    71         fpar[0] = D;
    72         fpar[1] = phi0;
    73         fpar[2] = C;
    74         fpar[3] = z0;
    75         fpar[4] = ct;
    76         //cout << "SolTrack:: C = " << C << ", fpar[2] = " << fpar[2] << endl;
    77         //
    78         // Init covariances
    79         //
    80         fCov.ResizeTo(5, 5);
    81 }
    8247
    8348SolTrack::SolTrack(Double_t D, Double_t phi0, Double_t C, Double_t z0, Double_t ct, SolGeom *G)
     
    10469SolTrack::~SolTrack()
    10570{
    106         delete[] & fp;
    107         delete[] & fpar;
    10871  fCov.Clear();
    10972}
     
    169132  return kh;
    170133}
    171 
    172 // # of measurement layers hit
    173 Int_t SolTrack::nmHit()
    174 {
    175         Int_t kmh = 0;
    176         Double_t R; Double_t phi; Double_t zz;
    177         for (Int_t i = 0; i < fG->Nl(); i++)
    178         if (HitLayer(i, R, phi, zz))if (fG->isMeasure(i))kmh++;
    179         //
    180         return kmh;
    181 }
    182 //
    183 
    184 
    185134// List of layers hit with intersections
    186135Int_t SolTrack::HitList(Int_t *&ihh, Double_t *&rhh, Double_t *&zhh)
     
    212161  return kmh;
    213162}
    214 
    215 // List of XYZ measurements without any error
    216 Int_t SolTrack::HitListXYZ(Int_t *&ihh, Double_t *&Xh, Double_t *&Yh, Double_t *&Zh)
    217 {
    218         //
    219         // Return lists of hits associated to a track for all measurement layers.
    220         // Return value is the total number of measurement hits
    221         // kmh = total number of measurement layers hit for given type
    222         // ihh = pointer to layer number
    223         // Xh, Yh, Zh = X, Y, Z of hit - No measurement error - No multiple scattering
    224         //
    225         //
    226         Int_t kmh = 0;  // Number of measurement layers hit
    227         for (Int_t i = 0; i < fG->Nl(); i++)
    228         {
    229                 Double_t R; Double_t phi; Double_t zz;
    230                 if (HitLayer(i, R, phi, zz)) // Only barrel type layers
    231                 {
    232                         if (fG->isMeasure(i))
    233                         {
    234                                 ihh[kmh] = i;
    235                                 Xh[kmh] = R*cos(phi);
    236                                 Yh[kmh] = R*sin(phi);
    237                                 Zh[kmh] = zz;
    238                                 kmh++;
    239                         }
    240                 }
    241         }
    242         //
    243         return kmh;
    244 }
    245 //
    246163// Covariance matrix estimation
    247 //
    248164void SolTrack::CovCalc(Bool_t Res, Bool_t MS)
    249165{
    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);
    543431}
    544432
     
    546434TMatrixDSym SolTrack::MakePosDef(TMatrixDSym NormMat)
    547435{
    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  
    33
    44#include <TMath.h>
    5 #include <TVector3.h>
    65#include <TMatrixDSym.h>
    76
     
    2524  // Constructors
    2625  SolTrack(Double_t *x, Double_t *p, SolGeom *G);
    27         SolTrack(TVector3 x, TVector3 p, SolGeom* G);
    2826  SolTrack(Double_t D, Double_t phi0, Double_t C, Double_t z0, Double_t ct, SolGeom *G);
    2927  // Destructor
     
    5957  // Track hit management
    6058  Int_t nHit();
    61   Int_t nmHit();
    6259  Bool_t HitLayer(Int_t Layer, Double_t &R, Double_t &phi, Double_t &zz);
    6360  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 
    6661  // Make normalized matrix positive definite
    6762  TMatrixDSym MakePosDef(TMatrixDSym NormMat);
  • external/fastjet/ActiveAreaSpec.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ActiveAreaSpec.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ActiveAreaSpec.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/AreaDefinition.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: AreaDefinition.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: AreaDefinition.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/AreaDefinition.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: AreaDefinition.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: AreaDefinition.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/BasicRandom.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: BasicRandom.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: BasicRandom.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/CircularRange.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CircularRange.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: CircularRange.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClosestPair2D.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClosestPair2D.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequence.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
     
    254254      // in a similar way.
    255255      if (_Rparam > pi) {
    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) );
     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) );
    260260      } else {
    261         _R2    = 2 * ( 1.0 - cos(_Rparam) );
     261        _R2    = 2 * ( 1.0 - cos(_Rparam) );
    262262      }
    263263      _invR2 = 1.0/_R2;
     
    439439  (*ostr) << "# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210].   \n";
    440440  (*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";
    442442  (*ostr) << "# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code";
    443443#ifndef DROP_CGAL
  • external/fastjet/ClusterSequence.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: ClusterSequence.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: ClusterSequence.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence1GhostPassiveArea.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence1GhostPassiveArea.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequence1GhostPassiveArea.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence1GhostPassiveArea.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence1GhostPassiveArea.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequence1GhostPassiveArea.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceActiveArea.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceActiveArea.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequenceActiveArea.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceActiveArea.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceActiveArea.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceArea.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceArea.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequenceArea.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceArea.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceArea.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceAreaBase.cc

    r13331dc ra3261d7  
    11
    22//FJSTARTHEADER
    3 // $Id: ClusterSequenceAreaBase.cc 4442 2020-05-05 07:50:11Z soyez $
    4 //
    5 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     3// $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
    66//
    77//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceAreaBase.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceAreaBase.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequencePassiveArea.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequencePassiveArea.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequencePassiveArea.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequencePassiveArea.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequencePassiveArea.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequencePassiveArea.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceStructure.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceStructure.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceStructure.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceStructure.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceVoronoiArea.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceVoronoiArea.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceVoronoiArea.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceVoronoiArea.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequenceVoronoiArea.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceWithArea.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequenceWithArea.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequenceWithArea.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2006-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2006-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence_CP2DChan.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence_CP2DChan.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence_Delaunay.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence_Delaunay.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence_DumbN3.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence_DumbN3.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequence_DumbN3.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence_N2.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence_N2.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequence_N2.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence_TiledN2.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence_TiledN2.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClusterSequence_TiledN2.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/CompositeJetStructure.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CompositeJetStructure.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: CompositeJetStructure.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/CompositeJetStructure.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CompositeJetStructure.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Dnn2piCylinder.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Dnn2piCylinder.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Dnn3piCylinder.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Dnn3piCylinder.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Dnn3piCylinder.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Dnn4piCylinder.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Dnn4piCylinder.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Dnn4piCylinder.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/DnnPlane.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: DnnPlane.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: DnnPlane.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Error.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Error.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Error.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Error.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: Error.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: Error.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/FunctionOfPseudoJet.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: FunctionOfPseudoJet.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: FunctionOfPseudoJet.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/FunctionOfPseudoJet.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: FunctionOfPseudoJet.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: FunctionOfPseudoJet.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/GhostedAreaSpec.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: GhostedAreaSpec.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: GhostedAreaSpec.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/GhostedAreaSpec.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: GhostedAreaSpec.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/JetDefinition.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: JetDefinition.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/JetDefinition.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: JetDefinition.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/LazyTiling25.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: LazyTiling25.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: LazyTiling25.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/LazyTiling9.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: LazyTiling9.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: LazyTiling9.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/LazyTiling9Alt.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: LazyTiling9Alt.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: LazyTiling9Alt.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/LazyTiling9SeparateGhosts.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: LazyTiling9SeparateGhosts.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: LazyTiling9SeparateGhosts.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/LimitedWarning.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: LimitedWarning.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: LimitedWarning.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/LimitedWarning.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: LimitedWarning.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: LimitedWarning.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/MinHeap.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: MinHeap.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: MinHeap.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
     
    110110
    111111    // 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]);
    121113    if (child < heap_end && child->minloc->value < here->minloc->value ) {
    122114      here->minloc = child->minloc;
  • external/fastjet/NNBase.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: NNBase.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: NNBase.hh 4355 2018-04-22 15:38:54Z salam $
    66//
    7 // Copyright (c) 2016-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2016-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/NNFJN2Plain.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: NNFJN2Plain.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/NNFJN2Tiled.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: NNFJN2Tiled.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: NNFJN2Tiled.hh 4355 2018-04-22 15:38:54Z salam $
    66//
    7 // Copyright (c) 2016-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2016-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/NNH.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: NNH.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/PseudoJet.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: PseudoJet.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/PseudoJet.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: PseudoJet.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: PseudoJet.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/PseudoJetStructureBase.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: PseudoJetStructureBase.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/PseudoJetStructureBase.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: PseudoJetStructureBase.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/RangeDefinition.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: RangeDefinition.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: RangeDefinition.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/RangeDefinition.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: RangeDefinition.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: RangeDefinition.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/RectangularGrid.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: RectangularGrid.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: RectangularGrid.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/RectangularGrid.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: RectangularGrid.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: RectangularGrid.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/Selector.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Selector.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Selector.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Selector.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: Selector.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/SharedPtr.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: SharedPtr.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/TilingExtent.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: TilingExtent.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: TilingExtent.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Voronoi.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Voronoi.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Voronoi.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/WrappedStructure.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: WrappedStructure.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/config_auto.h

    r13331dc ra3261d7  
    8787/* #undef HAVE_EXPLICIT_FOR_OPERATORS */
    8888
    89 /* Define to 1 if you have the <gmp.h> header file. */
    90 /* #undef HAVE_GMP_H */
    91 
    9289/* compiler supports GNU c++ deprecated attribute */
    9390#ifndef FASTJET_HAVE_GNUCXX_DEPRECATED
     
    110107#endif
    111108
    112 /* Define to 1 if you have the <mpfr.h> header file. */
    113 /* #undef HAVE_MPFR_H */
    114 
    115109/* compiler supports the "override" keyword */
    116110/* #undef HAVE_OVERRIDE */
     
    173167/* Define to the full name and version of this package. */
    174168#ifndef FASTJET_PACKAGE_STRING
    175 #define FASTJET_PACKAGE_STRING  "FastJet 3.3.4"
     169#define FASTJET_PACKAGE_STRING  "FastJet 3.3.2"
    176170#endif
    177171
     
    188182/* Define to the version of this package. */
    189183#ifndef FASTJET_PACKAGE_VERSION
    190 #define FASTJET_PACKAGE_VERSION  "3.3.4"
     184#define FASTJET_PACKAGE_VERSION  "3.3.2"
    191185#endif
    192186
     
    198192/* Version number of package */
    199193#ifndef FASTJET_VERSION
    200 #define FASTJET_VERSION  "3.3.4"
     194#define FASTJET_VERSION  "3.3.2"
    201195#endif
    202196
     
    213207/* Version of the package under the form XYYZZ (instead of X.Y.Z) */
    214208#ifndef FASTJET_VERSION_NUMBER
    215 #define FASTJET_VERSION_NUMBER  30304
     209#define FASTJET_VERSION_NUMBER  30302
    216210#endif
    217211
    218212/* Patch version of this package */
    219213#ifndef FASTJET_VERSION_PATCHLEVEL
    220 #define FASTJET_VERSION_PATCHLEVEL  4
     214#define FASTJET_VERSION_PATCHLEVEL  2
    221215#endif
    222216
  • external/fastjet/config_raw.h

    r13331dc ra3261d7  
    5757/* #undef HAVE_EXPLICIT_FOR_OPERATORS */
    5858
    59 /* Define to 1 if you have the <gmp.h> header file. */
    60 /* #undef HAVE_GMP_H */
    61 
    6259/* compiler supports GNU c++ deprecated attribute */
    6360#define HAVE_GNUCXX_DEPRECATED /**/
     
    7168/* Define to 1 if you have the <memory.h> header file. */
    7269#define HAVE_MEMORY_H 1
    73 
    74 /* Define to 1 if you have the <mpfr.h> header file. */
    75 /* #undef HAVE_MPFR_H */
    7670
    7771/* compiler supports the "override" keyword */
     
    112106
    113107/* 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"
    115109
    116110/* Define to the one symbol short name of this package. */
     
    121115
    122116/* Define to the version of this package. */
    123 #define PACKAGE_VERSION "3.3.4"
     117#define PACKAGE_VERSION "3.3.2"
    124118
    125119/* Define to 1 if you have the ANSI C header files. */
     
    127121
    128122/* Version number of package */
    129 #define VERSION "3.3.4"
     123#define VERSION "3.3.2"
    130124
    131125/* Major version of this package */
     
    136130
    137131/* Version of the package under the form XYYZZ (instead of X.Y.Z) */
    138 #define VERSION_NUMBER 30304
     132#define VERSION_NUMBER 30302
    139133
    140134/* Patch version of this package */
    141 #define VERSION_PATCHLEVEL 4
     135#define VERSION_PATCHLEVEL 2
    142136
    143137/* 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"
    44#define FASTJET_VERSION_MAJOR       3
    55#define FASTJET_VERSION_MINOR       3
    6 #define FASTJET_VERSION_PATCHLEVEL  4
    7 #define FASTJET_VERSION_NUMBER      30304
     6#define FASTJET_VERSION_PATCHLEVEL  2
     7#define FASTJET_VERSION_NUMBER      30302
    88
    99/* The ATLASCone plugin is disabled by default*/
  • external/fastjet/contribs/RecursiveTools/AUTHORS

    r13331dc ra3261d7  
    2828   Recursive Soft Drop.
    2929   Frederic A. Dreyer, Lina Necib, Gregory Soyez, and Jesse Thaler
    30    JHEP 1806:093 (2018), arXiv:1804.03657
     30   arXiv:1804.03657
    3131   
  • external/fastjet/contribs/RecursiveTools/ChangeLog

    r13331dc ra3261d7  
    1 2018-11-02  Jesse Thaler  <jthaler@jthaler.net>
    2 
    3         * AUTHORS:  updated journal for RecursiveSoftDrop
    4 
    5 2018-10-30  Gregory Soyez  <soyez@fastjet.fr>
    6 
    7         * RecursiveSoftDrop.cc:
    8         fixed a few typos in comments
    9 
    10         * RecursiveSoftDrop.hh:
    11         used the native FJ Recluster tool when available (did create
    12         conflicts in some cases)
    13 
    14 2018-06-18  Jesse Thaler  <jthaler@jthaler.net>
    15 
    16         * README
    17         Fixed incorrect order of zcut and beta in the README for SoftDrop example.
    18 
    1912018-05-29  Jesse Thaler  <jthaler@jthaler.net>
    202
  • external/fastjet/contribs/RecursiveTools/NEWS

    r13331dc ra3261d7  
    1 2020/03/03: release of version 2.0.0 with updated readme
    2 
    312018/05/31: release of version 2.0.0-beta2 with corrected syntax
    42
  • external/fastjet/contribs/RecursiveTools/README

    r13331dc ra3261d7  
    100100A default SoftDrop groomer can be created via:
    101101
     102   double z_cut = 0.10;
    102103   double beta  = 2.0;
    103    double z_cut = 0.10;
    104104   double R0    = 1.0; // this is the default value
    105    SoftDrop sd(beta,z_cut,R0);
     105   SoftDrop sd(z_cut,beta,R0);
    106106
    107107and acts on a desired jet as
     
    137137further substructure is found (i.e. corresponds to taking N=infinity).
    138138
     139   double z_cut = 0.10;
    139140   double beta  = 2.0;
    140    double z_cut = 0.10;
    141141   double R0    = 1.0; // this is the default value
    142142   int N        = -1; 
    143    RecursiveSoftDrop rsd(beta, z_cut, N, R0);
     143   RecursiveSoftDrop rsd(z_cut, beta, N, R0);
    144144
    145145One then acts on a jet as
     
    217217not met, only the hardest of the two objects is kept for further
    218218clustering and the softest is rejected.
    219 
    220 BottomUpSoftDrop takes the same arguments as SoftDrop, and a groomer
    221 can be created with:
    222 
    223    double beta  = 2.0;
    224    double z_cut = 0.10;
    225    double R0    = 1.0; // this is the default value
    226    BottomUpSoftDrop busd(beta,z_cut,R0);
    227 
    228 One then acts on a jet as
    229 
    230    PseudoJet groomed_jet = busd(jet)
    231219
    232220------------------------------------------------------------------------
  • external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.cc

    r13331dc ra3261d7  
    1 // $Id: RecursiveSoftDrop.cc 1192 2018-10-30 16:08:36Z gsoyez $
     1// $Id: RecursiveSoftDrop.cc 1111 2018-04-04 10:06:11Z gsoyez $
    22//
    33// Copyright (c) 2017-, Gavin P. Salam, Gregory Soyez, Jesse Thaler,
     
    148148  const vector<PseudoJet> &cs_jets = cs->jets();
    149149
    150   // initialise counter to 1 subjet (i.e. the full ca_jet)
     150  // initialize counter to 1 subjet (i.e. the full ca_jet)
    151151  int n_tagged = 0;
    152152  int max_njet = ca_jet.constituents().size();
     
    163163 
    164164  // create a priority queue containing the subjets and a comparison definition
     165  // initialise to the full ca_jet
    165166  priority_queue<internal_recursive_softdrop::RSDHistoryElement*, vector<internal_recursive_softdrop::RSDHistoryElement*>, internal_recursive_softdrop::OrderRSDHistoryElements> active_branches;
    166167  active_branches.push(& (history[0]));
     
    168169  PseudoJet parent, piece1, piece2;
    169170  double sym, mu2;
     171
     172  // which R0 to use
     173  //double R0sqr = _R0sqr;
    170174 
    171175  // loop over C/A tree until we reach the appropriate number of subjets
    172176  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
    174179    internal_recursive_softdrop::RSDHistoryElement * elm = active_branches.top();
    175180    PseudoJet parent = cs_jets[cs_history[elm->current_in_ca_tree].jetp_index];
     
    212217      active_branches.pop();
    213218      // tagging failed and the softest branch should be dropped
    214       // keep track of what has been groomed away
     219      // keep track of what has een groomed away
    215220      max_njet -= piece2.constituents().size();
    216221      elm->dropped_delta_R .push_back((elm->theta_squared >= 0) ? sqrt(elm->theta_squared) : -sqrt(elm->theta_squared));
     
    218223      elm->dropped_mu      .push_back((mu2>=0) ? sqrt(mu2) : -sqrt(mu2));
    219224     
    220       // keep the hardest branch in the recursion
     225      // keep the hardest bhanch in the recursion
    221226      elm->reset(piece1, this);
    222227      active_branches.push(elm);
     
    251256    const internal_recursive_softdrop::RSDHistoryElement & elm = history[history_index];
    252257
    253     // two kinds of events: either just a final leave, potentially with grooming
     258    // two kinds of events: either just a final leave, poteitially with grooming
    254259    // or a brandhing (also with potential grooming at the end)
    255260    if (elm.child1_in_history<0){
    256       // this is a leaf, i.e. with no further substructure
     261      // this is a leaf, i.e. with no further sustructure
    257262      PseudoJet & subjet = mapped_to_history[history_index]
    258263        = cs_jets[cs_history[elm.current_in_ca_tree].jetp_index];
     
    298303  const vector<PseudoJet> &cs_jets = cs->jets();
    299304
    300   // initialise counter to 1 subjet (i.e. the full ca_jet)
     305  // initialize counter to 1 subjet (i.e. the full ca_jet)
    301306  int n_depth = 0;
    302307  int max_njet = ca_jet.constituents().size();
     
    314319 
    315320  // create a priority queue containing the subjets and a comparison definition
     321  // initialize counter to 1 subjet (i.e. the full ca_jet)
    316322  list<internal_recursive_softdrop::RSDHistoryElement*> active_branches;
    317323  active_branches.push_back(& (history[0]));
     
    323329    list<internal_recursive_softdrop::RSDHistoryElement*>::iterator hist_it=active_branches.begin();
    324330    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
    326333      internal_recursive_softdrop::RSDHistoryElement * elm = (*hist_it);
    327334      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 1192 2018-10-30 16:08:36Z gsoyez $
     1// $Id: RecursiveSoftDrop.hh 1082 2017-10-10 12:00:13Z gsoyez $
    22//
    33// Copyright (c) 2014-, Gavin P. Salam, Gregory Soyez, Jesse Thaler,
     
    2424#define __RECURSIVESOFTDROP_HH__
    2525
    26 // we'll use the native FJ class for reculstering if available
    27 #if FASTJET_VERSION_NUMBER >= 30100
    28 #include "fastjet/tools/Recluster.hh"
    29 #else
    3026#include "Recluster.hh"
    31 #endif
    3227#include "SoftDrop.hh"
    3328#include "fastjet/WrappedStructure.hh"
  • external/fastjet/internal/ClosestPair2D.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClosestPair2D.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/ClosestPair2DBase.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ClosestPair2DBase.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ClosestPair2DBase.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/ClusterSequence_N2.icc

    r13331dc ra3261d7  
    77// $Id: ClusterSequence_N2.cc 1351 2009-01-09 18:03:03Z salam $
    88//
    9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     9// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    1010//
    1111//----------------------------------------------------------------------
  • external/fastjet/internal/Dnn2piCylinder.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Dnn2piCylinder.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/Dnn3piCylinder.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Dnn3piCylinder.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/Dnn4piCylinder.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Dnn4piCylinder.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Dnn4piCylinder.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/DnnPlane.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: DnnPlane.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/DynamicNearestNeighbours.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: DynamicNearestNeighbours.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: DynamicNearestNeighbours.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/IsBase.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: IsBase.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: IsBase.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/LazyTiling25.hh

    r13331dc ra3261d7  
    55
    66//FJSTARTHEADER
    7 // $Id: LazyTiling25.hh 4442 2020-05-05 07:50:11Z soyez $
     7// $Id: LazyTiling25.hh 4354 2018-04-22 07:12:37Z salam $
    88//
    9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     9// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    1010//
    1111//----------------------------------------------------------------------
  • external/fastjet/internal/LazyTiling9.hh

    r13331dc ra3261d7  
    55
    66//FJSTARTHEADER
    7 // $Id: LazyTiling9.hh 4442 2020-05-05 07:50:11Z soyez $
    8 //
    9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// $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
    1010//
    1111//----------------------------------------------------------------------
  • external/fastjet/internal/LazyTiling9Alt.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: LazyTiling9Alt.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/internal/LazyTiling9SeparateGhosts.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: LazyTiling9SeparateGhosts.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: LazyTiling9SeparateGhosts.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/internal/LimitedWarning.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: LimitedWarning.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: LimitedWarning.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/internal/MinHeap.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: MinHeap.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: MinHeap.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/SearchTree.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: SearchTree.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: SearchTree.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/TilingExtent.hh

    r13331dc ra3261d7  
    55
    66//FJSTARTHEADER
    7 // $Id: TilingExtent.hh 4442 2020-05-05 07:50:11Z soyez $
     7// $Id: TilingExtent.hh 4354 2018-04-22 07:12:37Z salam $
    88//
    9 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     9// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    1010//
    1111//----------------------------------------------------------------------
  • external/fastjet/internal/Triangulation.hh

    r13331dc ra3261d7  
    44
    55//FJSTARTHEADER
    6 // $Id: Triangulation.hh 4442 2020-05-05 07:50:11Z soyez $
     6// $Id: Triangulation.hh 4354 2018-04-22 07:12:37Z salam $
    77//
    8 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     8// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    99//
    1010//----------------------------------------------------------------------
  • external/fastjet/internal/Voronoi.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: Voronoi.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/internal/base.hh

    r13331dc ra3261d7  
    11
    22//FJSTARTHEADER
    3 // $Id: base.hh 4442 2020-05-05 07:50:11Z soyez $
     3// $Id: base.hh 4354 2018-04-22 07:12:37Z salam $
    44//
    5 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    66//
    77//----------------------------------------------------------------------
  • external/fastjet/internal/deprecated.hh

    r13331dc ra3261d7  
    11
    22//FJSTARTHEADER
    3 // $Id: deprecated.hh 4442 2020-05-05 07:50:11Z soyez $
     3// $Id: deprecated.hh 4354 2018-04-22 07:12:37Z salam $
    44//
    5 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    66//
    77//----------------------------------------------------------------------
     
    3939// define a deprecation macro based on the capabilities of the compiler
    4040// (as determined at configure time).
    41 #if defined(FASTJET_HAVE_CXX14_DEPRECATED) && (!defined(__FJCORE__))
     41#if defined(FASTJET_HAVE_CXX14_DEPRECATED) and (!defined(__FJCORE__))
    4242#define FASTJET_DEPRECATED               [[deprecated]]
    4343#define FASTJET_DEPRECATED_MSG(message)  [[deprecated(message)]]
  • external/fastjet/internal/numconsts.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: numconsts.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: numconsts.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/ATLASCone/ATLASConePlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ATLASConePlugin.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ATLASConePlugin.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/ATLASCone/fastjet/ATLASConePlugin.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: ATLASConePlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: ATLASConePlugin.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/CDFCones/CDFJetCluPlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CDFJetCluPlugin.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: CDFJetCluPlugin.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/CDFCones/CDFMidPointPlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CDFMidPointPlugin.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: CDFMidPointPlugin.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CDFJetCluPlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: CDFJetCluPlugin.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CDFMidPointPlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: CDFMidPointPlugin.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.cc

    r13331dc ra3261d7  
    22// $Id: CMSIterativeConePlugin.cc 1504 2009-04-10 13:39:48Z salam $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh

    r13331dc ra3261d7  
    22// $Id: CMSIterativeConePlugin.hh 1508 2009-04-10 22:46:49Z soyez $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.cc

    r13331dc ra3261d7  
    22// $Id: D0RunIBaseConePlugin.cc 1779 2010-10-25 10:32:59Z soyez $
    33//
    4 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh

    r13331dc ra3261d7  
    55// $Id: D0RunIBaseConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $
    66//
    7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/plugins/D0RunICone/fastjet/D0RunIConePlugin.hh

    r13331dc ra3261d7  
    55// $Id: D0RunIConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $
    66//
    7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh

    r13331dc ra3261d7  
    55// $Id: D0RunIpre96ConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $
    66//
    7 // Copyright (c) 2009-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2009-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: D0RunIIConePlugin.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: D0RunIIConePlugin.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: D0RunIIConePlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: D0RunIIConePlugin.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/plugins/EECambridge/EECambridgePlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: EECambridgePlugin.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: EECambridgePlugin.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/EECambridge/fastjet/EECambridgePlugin.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: EECambridgePlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: EECambridgePlugin.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/plugins/GridJet/GridJetPlugin.cc

    r13331dc ra3261d7  
    22// $Id: GridJetPlugin.cc 2268 2011-06-20 15:12:26Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/GridJet/fastjet/GridJetPlugin.hh

    r13331dc ra3261d7  
    55// $Id: GridJetPlugin.hh 2267 2011-06-20 15:10:23Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/plugins/Jade/JadePlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: JadePlugin.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
     
    108108    // get a number that is almost the same as max(), just a little
    109109    // 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
    113111    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;
    116113  }
    117114 
  • external/fastjet/plugins/Jade/fastjet/JadePlugin.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: JadePlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: JadePlugin.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/plugins/NestedDefs/NestedDefsPlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: NestedDefsPlugin.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: NestedDefsPlugin.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/NestedDefs/fastjet/NestedDefsPlugin.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: NestedDefsPlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: NestedDefsPlugin.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/SISCone/AUTHORS

    r13331dc ra3261d7  
    66             France
    77
    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;
    109             LPTHE, UPMC (Univ. Paris 6), 75252 Paris cedex 05, France.
    1110
     11phone  : +33 69 08 40 11
     12         +41 22 767 2462
     13
    1214email  : soyez@fastjet.fr
    13          gavin.salam@physics.ox.ac.uk
     15         gavin.salam@cern.ch
  • external/fastjet/plugins/SISCone/config.h

    r13331dc ra3261d7  
    8383/* Define to the full name and version of this package. */
    8484#ifndef SISCONE_PACKAGE_STRING
    85 #define SISCONE_PACKAGE_STRING  "SISCone 3.0.5"
     85#define SISCONE_PACKAGE_STRING  "SISCone 3.0.4"
    8686#endif
    8787
     
    9898/* Define to the version of this package. */
    9999#ifndef SISCONE_PACKAGE_VERSION
    100 #define SISCONE_PACKAGE_VERSION  "3.0.5"
     100#define SISCONE_PACKAGE_VERSION  "3.0.4"
    101101#endif
    102102
     
    111111/* Version number of package */
    112112#ifndef SISCONE_VERSION
    113 #define SISCONE_VERSION  "3.0.5"
     113#define SISCONE_VERSION  "3.0.4"
    114114#endif
    115115 
  • external/fastjet/plugins/SISCone/config_raw.h

    r13331dc ra3261d7  
    4848
    4949/* 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"
    5151
    5252/* Define to the one symbol short name of this package. */
     
    5757
    5858/* Define to the version of this package. */
    59 #define PACKAGE_VERSION "3.0.5"
     59#define PACKAGE_VERSION "3.0.4"
    6060
    6161/* Define to 1 if you have the ANSI C header files. */
     
    6666
    6767/* 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  
    2222// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
    2323//                                                                           //
    24 // $Revision:: 422                                                          $//
    25 // $Date:: 2020-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)                     $//
    2626///////////////////////////////////////////////////////////////////////////////
    2727
     
    153153  /// return the cell index corrsponding to an eta value
    154154  inline unsigned int get_eta_cell(double eta){
    155     return (unsigned int) (1u << ((int) (32*((eta-eta_min)/(eta_max-eta_min)))));
     155    return (unsigned int) (1 << ((int) (32*((eta-eta_min)/(eta_max-eta_min)))));
    156156  }
    157157
    158158  /// return the cell index corrsponding to a phi value
    159159  inline unsigned int get_phi_cell(double phi){
    160     return (unsigned int) (1u << ((int) (32*phi/twopi+16)%32));
     160    return (unsigned int) (1 << ((int) (32*phi/twopi+16)%32));
    161161  }
    162162};
  • external/fastjet/plugins/TrackJet/TrackJetPlugin.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: TrackJetPlugin.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/TrackJet/fastjet/TrackJetPlugin.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: TrackJetPlugin.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: TrackJetPlugin.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2007-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2007-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/BackgroundEstimatorBase.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: BackgroundEstimatorBase.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: BackgroundEstimatorBase.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/BackgroundEstimatorBase.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: BackgroundEstimatorBase.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/Boost.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Boost.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Boost.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/CASubJetTagger.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CASubJetTagger.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: CASubJetTagger.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/CASubJetTagger.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: CASubJetTagger.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Filter.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Filter.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Filter.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Filter.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: Filter.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/GridMedianBackgroundEstimator.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: GridMedianBackgroundEstimator.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/GridMedianBackgroundEstimator.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: GridMedianBackgroundEstimator.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/JHTopTagger.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: JHTopTagger.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: JHTopTagger.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/JHTopTagger.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: JHTopTagger.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/JetMedianBackgroundEstimator.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: JetMedianBackgroundEstimator.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/JetMedianBackgroundEstimator.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: JetMedianBackgroundEstimator.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: JetMedianBackgroundEstimator.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/MassDropTagger.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: MassDropTagger.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: MassDropTagger.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/MassDropTagger.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: MassDropTagger.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: MassDropTagger.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Pruner.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Pruner.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Pruner.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: Pruner.hh 4442 2020-05-05 07:50:11Z soyez $
    6 //
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// $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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/RestFrameNSubjettinessTagger.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: RestFrameNSubjettinessTagger.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: RestFrameNSubjettinessTagger.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/RestFrameNSubjettinessTagger.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: RestFrameNSubjettinessTagger.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: RestFrameNSubjettinessTagger.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/Subtractor.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Subtractor.cc 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Subtractor.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Subtractor.hh 4442 2020-05-05 07:50:11Z soyez $
    3 //
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     2// $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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/TopTaggerBase.cc

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: TopTaggerBase.cc 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: TopTaggerBase.cc 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/TopTaggerBase.hh

    r13331dc ra3261d7  
    33
    44//FJSTARTHEADER
    5 // $Id: TopTaggerBase.hh 4442 2020-05-05 07:50:11Z soyez $
     5// $Id: TopTaggerBase.hh 4354 2018-04-22 07:12:37Z salam $
    66//
    7 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     7// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/Transformer.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: Transformer.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: Transformer.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/version.hh

    r13331dc ra3261d7  
    11//FJSTARTHEADER
    2 // $Id: version.hh 4442 2020-05-05 07:50:11Z soyez $
     2// $Id: version.hh 4354 2018-04-22 07:12:37Z salam $
    33//
    4 // Copyright (c) 2005-2020, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
    55//
    66//----------------------------------------------------------------------
  • modules/AngularSmearing.cc

    r13331dc ra3261d7  
    9898{
    9999  Candidate *candidate, *mother;
    100   Double_t pt, eta, phi, e, m;
     100  Double_t pt, eta, phi, e;
    101101
    102102  fItInputArray->Reset();
    103103  while((candidate = static_cast<Candidate *>(fItInputArray->Next())))
    104104  {
     105    const TLorentzVector &candidatePosition = candidate->Position;
    105106    const TLorentzVector &candidateMomentum = candidate->Momentum;
    106     eta = candidateMomentum.Eta();
    107     phi = candidateMomentum.Phi();
     107    eta = candidatePosition.Eta();
     108    phi = candidatePosition.Phi();
    108109    pt = candidateMomentum.Pt();
    109110    e = candidateMomentum.E();
    110     m = candidateMomentum.M();
    111111
    112112    // apply smearing formula for eta,phi
     113
    113114    eta = gRandom->Gaus(eta, fFormulaEta->Eval(pt, eta, phi, e, candidate));
    114115    phi = gRandom->Gaus(phi, fFormulaPhi->Eval(pt, eta, phi, e, candidate));
     
    118119    mother = candidate;
    119120    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));
    121124    candidate->AddCandidate(mother);
    122125
  • modules/Calorimeter.cc

    r13331dc ra3261d7  
    231231  fItParticleInputArray->Reset();
    232232  number = -1;
    233   fTowerRmax=0.;
    234233  while((particle = static_cast<Candidate *>(fItParticleInputArray->Next())))
    235234  {
    236235    const TLorentzVector &particlePosition = particle->Position;
    237236    ++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();
    242237
    243238    pdgCode = TMath::Abs(particle->PID);
     
    455450
    456451    fTower->AddCandidate(particle);
    457     fTower->Position = position;
    458452  }
    459453
     
    467461{
    468462  Candidate *track, *tower, *mother;
    469   Double_t energy, pt, eta, phi, r;
     463  Double_t energy, pt, eta, phi;
    470464  Double_t ecalEnergy, hcalEnergy;
    471465  Double_t ecalNeutralEnergy, hcalNeutralEnergy;
     
    517511  for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i)
    518512  {
    519     weight = TMath::Power((fTower->ECalEnergyTimePairs[i].first),2);
     513    weight = TMath::Sqrt(fTower->ECalEnergyTimePairs[i].first);
    520514    sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second;
    521515    sumWeight += weight;
     
    523517  }
    524518
    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  }
    528523  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);
    538526  }
    539527
     
    571559  if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin)
    572560  {
    573     // create new photon tower assuming null mass
     561    // create new photon tower
    574562    tower = static_cast<Candidate *>(fTower->Clone());
    575563    pt = ecalNeutralEnergy / TMath::CosH(eta);
     
    658646      track = static_cast<Candidate *>(track->Clone());
    659647      track->AddCandidate(mother);
     648
    660649      track->Momentum *= rescaleFactor;
    661       track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M());
    662650
    663651      fEFlowTrackOutputArray->Add(track);
  • modules/Calorimeter.h

    r13331dc ra3261d7  
    6060  Double_t fTimingEnergyMin;
    6161  Bool_t fElectronsFromTrack;
    62   Double_t fTowerRmax;
    6362
    6463  Int_t fTowerTrackHits, fTowerPhotonHits;
  • modules/DenseTrackFilter.cc

    r13331dc ra3261d7  
    237237
    238238  Candidate *candidate, *track;
    239   Double_t pt, eta, phi, m;
     239  Double_t pt, eta, phi;
    240240  Int_t numberOfCandidates;
    241241
     
    251251  eta = candidate->Momentum.Eta();
    252252  phi = candidate->Momentum.Phi();
    253   m = candidate->Momentum.M();
    254 
    255253  eta = gRandom->Gaus(eta, fEtaPhiRes);
    256254  phi = gRandom->Gaus(phi, fEtaPhiRes);
    257   candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m);
     255  candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta));
    258256  candidate->AddCandidate(track);
    259257
  • modules/DualReadoutCalorimeter.cc

    r13331dc ra3261d7  
    2424  // This implementation of dual calorimetry relies on several approximations:
    2525  // - 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. 
    2727  //   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.
    2828
     
    6363  fItParticleInputArray(0), fItTrackInputArray(0)
    6464{
    65 
     65 
    6666  fECalResolutionFormula = new DelphesFormula;
    6767  fHCalResolutionFormula = new DelphesFormula;
     
    7575  fTowerTrackArray = new TObjArray;
    7676  fItTowerTrackArray = fTowerTrackArray->MakeIterator();
    77 
     77 
    7878}
    7979
     
    8282DualReadoutCalorimeter::~DualReadoutCalorimeter()
    8383{
    84 
     84 
    8585  if(fECalResolutionFormula) delete fECalResolutionFormula;
    8686  if(fHCalResolutionFormula) delete fHCalResolutionFormula;
     
    9494  if(fTowerTrackArray) delete fTowerTrackArray;
    9595  if(fItTowerTrackArray) delete fItTowerTrackArray;
    96 
     96 
    9797}
    9898
     
    247247  fItParticleInputArray->Reset();
    248248  number = -1;
    249   fTowerRmax=0.;
    250249  while((particle = static_cast<Candidate*>(fItParticleInputArray->Next())))
    251250  {
    252251    const TLorentzVector &particlePosition = particle->Position;
    253252    ++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();
    258253
    259254    pdgCode = TMath::Abs(particle->PID);
     
    384379      fHCalTrackEnergy = 0.0;
    385380      fTrackEnergy = 0.0;
    386 
     381     
    387382      fECalTrackSigma = 0.0;
    388383      fHCalTrackSigma = 0.0;
    389384      fTrackSigma = 0.0;
    390 
     385     
    391386      fTowerTrackHits = 0;
    392387      fTowerPhotonHits = 0;
     
    395390      fHCalTowerTrackArray->Clear();
    396391      fTowerTrackArray->Clear();
    397 
     392   
    398393    }
    399394
     
    419414      }
    420415
    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     
    422447      // in Dual Readout we do not care if tracks are ECAL of HCAL
    423448      if(fECalTrackFractions[number] > 1.0E-9 || fHCalTrackFractions[number] > 1.0E-9)
    424       {
     449      { 
    425450        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)     
    427452        sigma = 0.0;
    428453        if(fHCalTrackFractions[number] > 0)
     
    430455        else
    431456          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;     
    435460        else
    436461          energyGuess = momentum.E();
    437 
     462             
    438463        fTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess;
    439464        fTowerTrackArray->Add(track);
    440 
     465     
    441466      }
    442467      else
     
    471496
    472497    fTower->AddCandidate(particle);
    473     fTower->Position = position;
    474498  }
    475499
     
    484508
    485509  Candidate *track, *tower, *mother;
    486   Double_t energy, pt, eta, phi, r;
     510  Double_t energy, pt, eta, phi;
    487511  Double_t ecalEnergy, hcalEnergy;
    488512  Double_t ecalNeutralEnergy, hcalNeutralEnergy, neutralEnergy;
    489 
     513 
    490514  Double_t ecalSigma, hcalSigma, sigma;
    491515  Double_t ecalNeutralSigma, hcalNeutralSigma, neutralSigma;
    492516
    493517  Double_t weightTrack, weightCalo, bestEnergyEstimate, rescaleFactor;
    494 
     518 
    495519  TLorentzVector momentum;
    496520  TFractionMap::iterator itFractionMap;
     
    501525
    502526
    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
    504539  if (fHCalTowerEnergy <= fHCalEnergyMin)
    505540  {
     
    509544  }
    510545
    511   // if hadronic fraction > 0, use HCAL resolution
     546  // if hadronic fraction > 0, use HCAL resolution 
    512547  else
    513548  {
     
    519554  energy = LogNormal(energy, sigma);
    520555  //cout<<energy<<","<<ecalEnergy<<","<<hcalEnergy<<endl;
    521 
     556 
    522557  if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0;
    523558
     
    557592  for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i)
    558593  {
    559     weight = TMath::Power((fTower->ECalEnergyTimePairs[i].first),2);
     594    weight = TMath::Sqrt(fTower->ECalEnergyTimePairs[i].first);
    560595    sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second;
    561596    sumWeight += weight;
     
    563598  }
    564599
    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  }
    568604  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);
    578607  }
    579608
     
    597626
    598627  // fill energy flow candidates
    599 
     628 
    600629  fTrackSigma = TMath::Sqrt(fTrackSigma);
    601630  neutralEnergy = max( (energy - fTrackEnergy) , 0.0);
     
    609638  if(neutralEnergy > fEnergyMin && neutralSigma > fEnergySignificanceMin)
    610639  {
    611 
     640   
    612641    //cout<<"significant neutral excess found:"<<endl;
    613642    // create new photon tower
     
    616645    //cout<<"Creating tower with Pt, Eta, Phi, Energy: "<<pt<<","<<eta<<","<<phi<<","<<neutralEnergy<<endl;
    617646    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   
    634652
    635653    fEFlowPhotonOutputArray->Add(tower);
     
    640658    while((track = static_cast<Candidate*>(fItTowerTrackArray->Next())))
    641659    {
     660      //cout<<"looping over tracks"<<endl;
    642661      mother = track;
    643662      track = static_cast<Candidate*>(track->Clone());
     
    647666  }
    648667
    649 
     668 
    650669  // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the DualReadoutCalorimeter and tracking
    651670  else if(fTrackEnergy > 0.0)
     
    655674    weightCalo  = (sigma > 0.0) ? 1 / (sigma*sigma) : 0.0;
    656675
    657     bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo);
     676    bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo); 
    658677    rescaleFactor = bestEnergyEstimate/fTrackEnergy;
    659678
     
    661680    fItTowerTrackArray->Reset();
    662681    while((track = static_cast<Candidate*>(fItTowerTrackArray->Next())))
    663     {
     682    { 
    664683      mother = track;
    665       track = static_cast<Candidate *>(track->Clone());
     684      track = static_cast<Candidate*>(track->Clone());
    666685      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
    668689      fEFlowTrackOutputArray->Add(track);
    669690    }
    670691  }
    671 
     692 
    672693
    673694}
  • modules/DualReadoutCalorimeter.h

    r13331dc ra3261d7  
    6060  Double_t fECalTrackEnergy, fHCalTrackEnergy;
    6161  Double_t fTrackEnergy;
    62   Double_t fTowerRmax;
    6362
    6463  Double_t fTimingEnergyMin;
  • modules/EnergySmearing.cc

    r13331dc ra3261d7  
    9595{
    9696  Candidate *candidate, *mother;
    97   Double_t pt, energy, eta, phi, m;
     97  Double_t pt, energy, eta, phi;
    9898
    9999  fItInputArray->Reset();
     
    107107    phi = candidatePosition.Phi();
    108108    energy = candidateMomentum.E();
    109     m = candidateMomentum.M();
    110109
    111110    // apply smearing formula
     
    118117    eta = candidateMomentum.Eta();
    119118    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);
    122120    candidate->TrackResolution = fFormula->Eval(pt, eta, phi, energy) / candidateMomentum.E();
    123121    candidate->AddCandidate(mother);
  • modules/JetFakeParticle.cc

    r13331dc ra3261d7  
    146146  while((candidate = static_cast<Candidate *>(fItInputArray->Next())))
    147147  {
     148    const TLorentzVector &candidatePosition = candidate->Position;
    148149    const TLorentzVector &candidateMomentum = candidate->Momentum;
    149     eta = candidateMomentum.Eta();
    150     phi = candidateMomentum.Phi();
     150    eta = candidatePosition.Eta();
     151    phi = candidatePosition.Phi();
    151152    pt = candidateMomentum.Pt();
    152153    e = candidateMomentum.E();
  • modules/MomentumSmearing.cc

    r13331dc ra3261d7  
    9595{
    9696  Candidate *candidate, *mother;
    97   Double_t pt, eta, phi, e, m, res;
     97  Double_t pt, eta, phi, e, res;
    9898
    9999  fItInputArray->Reset();
     
    106106    pt = candidateMomentum.Pt();
    107107    e = candidateMomentum.E();
    108     m = candidateMomentum.M();
    109108    res = fFormula->Eval(pt, eta, phi, e, candidate);
    110109
     
    122121    eta = candidateMomentum.Eta();
    123122    phi = candidateMomentum.Phi();
    124     candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m);
     123    candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta));
    125124    //candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e);
    126125    candidate->TrackResolution = res;
  • modules/SimpleCalorimeter.cc

    r13331dc ra3261d7  
    208208  fItParticleInputArray->Reset();
    209209  number = -1;
    210   fTowerRmax=0.;
    211210  while((particle = static_cast<Candidate *>(fItParticleInputArray->Next())))
    212211  {
    213212    const TLorentzVector &particlePosition = particle->Position;
    214213    ++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();
    219214
    220215    pdgCode = TMath::Abs(particle->PID);
     
    399394    fTowerEnergy += energy;
    400395
    401     fTowerTime += energy * energy * position.T(); //sigma_t ~ 1/E
    402     fTowerTimeWeight += energy * energy;
     396    fTowerTime += energy * position.T();
     397    fTowerTimeWeight += energy;
    403398
    404399    fTower->AddCandidate(particle);
    405     fTower->Position = position;
    406 
    407400  }
    408401
     
    416409{
    417410  Candidate *tower, *track, *mother;
    418   Double_t energy, neutralEnergy, pt, eta, phi, r;
     411  Double_t energy, neutralEnergy, pt, eta, phi;
    419412  Double_t sigma, neutralSigma;
    420413  Double_t time;
     
    450443  pt = energy / TMath::CosH(eta);
    451444
    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);
    459446  fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy);
    460447
     
    520507      track = static_cast<Candidate *>(track->Clone());
    521508      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
    523512      fEFlowTrackOutputArray->Add(track);
    524513    }
  • modules/SimpleCalorimeter.h

    r13331dc ra3261d7  
    6262  Double_t fTrackTime;
    6363
    64   Double_t fTowerRmax;
    65 
    6664  Double_t fTowerTimeWeight;
    6765  Double_t fTrackTimeWeight;
  • modules/TrackCovariance.cc

    r13331dc ra3261d7  
    1   /*
     1/*
    22 *  Delphes: a framework for fast simulation of a generic collider experiment
    33 *  Copyright (C) 2020  Universite catholique de Louvain (UCLouvain), Belgium
     
    2121 *  Smears track parameters according to appropriate covariance matrix.
    2222 *
    23  *  \authors F. Bedeschi - INFN Pisa
    24 *            P. Demin - UCLouvain, Louvain-la-Neuve
     23 *  \authors P. Demin - UCLouvain, Louvain-la-Neuve
    2524 *           M. Selvaggi - CERN
    26  *
    2725 *
    2826 */
     
    5250
    5351TrackCovariance::TrackCovariance() :
    54   fGeometry(0), fCovariance(0), fAcx(0), fItInputArray(0)
     52  fGeometry(0), fCovariance(0), fItInputArray(0)
    5553{
    5654  fGeometry = new SolGeom();
     
    7270  fBz = GetDouble("Bz", 0.0);
    7371  fGeometry->Read(GetString("DetectorGeometry", ""));
    74   fNMinHits = GetInt("NMinHits", 6);
    7572
    76   // load geometry
    7773  fCovariance->Calc(fGeometry);
    78   fCovariance->SetMinHits(fNMinHits);
    79   // load geometry
    80   fAcx = fCovariance->AccPnt();
    8174
    8275  // import input array
     76
    8377  fInputArray = ImportArray(GetString("InputArray", "TrackMerger/tracks"));
    8478  fItInputArray = fInputArray->MakeIterator();
     
    10094void TrackCovariance::Process()
    10195{
    102   Candidate *candidate, *mother, *particle;
     96  Candidate *candidate, *mother;
    10397  Double_t mass, p, pt, q, ct;
    10498  Double_t dd0, ddz, dphi, dct, dp, dpt, dC;
    105 
     99 
    106100
    107101  fItInputArray->Reset();
    108102  while((candidate = static_cast<Candidate *>(fItInputArray->Next())))
    109103  {
    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;
    119106
    120107    mass = candidateMomentum.M();
     
    123110
    124111    mother    = candidate;
    125     candidate = static_cast<Candidate*>(candidate->Clone());
     112    candidate = static_cast<Candidate *>(candidate->Clone());
    126113
    127114    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   
    132117    // save full covariance 5x5 matrix internally (D0, phi, Curvature, dz, ctg(theta))
    133118    candidate->TrackCovariance = track.GetCov();
     
    138123    ct = track.GetObsPar()[4];
    139124
    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;
    143137
    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));
    159142    dpt       = 2 * TMath::Sqrt( track.GetCov()(2, 2))*pt*pt / (0.2998*fBz);
    160143    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));
    162145
    163146    candidate->ErrorD0 = dd0;
     
    171154    candidate->TrackResolution = dp / p;
    172155
     156
    173157    candidate->AddCandidate(mother);
    174158
  • modules/TrackCovariance.h

    r13331dc ra3261d7  
    3636class SolGeom;
    3737class SolGridCov;
    38 class AcceptanceClx;
    3938
    4039class TrackCovariance: public DelphesModule
     
    5049private:
    5150  Double_t fBz;
    52   Int_t fNMinHits;
    5351
    5452  SolGeom *fGeometry;
    5553  SolGridCov *fCovariance;
    56 
    57   AcceptanceClx *fAcx;
    5854
    5955  TIterator *fItInputArray; //!
  • modules/TrackSmearing.cc

    r13331dc ra3261d7  
    158158  TLorentzVector beamSpotPosition;
    159159  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;
    161161  Double_t x, y, z, t, px, py, pz, theta;
    162162  Double_t q, r;
     
    224224    eta = momentum.Eta();
    225225    e = momentum.E();
    226     m = momentum.M();
    227 
     226   
    228227    d0 = trueD0 = candidate->D0;
    229228    dz = trueDZ = candidate->DZ;
     
    333332    candidate->Momentum.SetPy(p * TMath::Sin(phi) * TMath::Sin(theta));
    334333    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));
    336335    candidate->PT = candidate->Momentum.Pt();
    337336
  • modules/TreeWriter.cc

    r13331dc ra3261d7  
    123123    fBranchMap.insert(make_pair(branch, make_pair(itClassMap->second, array)));
    124124  }
    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   }
    138125}
    139126
     
    151138  it1.Reset();
    152139  array->Clear();
    153 
     140 
    154141  while((candidate = static_cast<Candidate *>(it1.Next())))
    155142  {
     
    228215    entry->Pz = momentum.Pz();
    229216
     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
    230224    entry->Eta = eta;
    231225    entry->Phi = momentum.Phi();
     
    320314  Candidate *particle = 0;
    321315  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;
    323317  const Double_t c_light = 2.99792458E8;
    324318
     
    354348
    355349    entry->D0 = candidate->D0;
     350    entry->ErrorD0 = candidate->ErrorD0;
    356351    entry->DZ = candidate->DZ;
     352    entry->ErrorDZ = candidate->ErrorDZ;
    357353
    358354    entry->ErrorP = candidate->ErrorP;
    359355    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;
    364357    entry->ErrorPhi = candidate->ErrorPhi;
    365     entry->ErrorDZ = candidate->ErrorDZ;
    366     entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
    367 
    368     // add some offdiagonal covariance matrix elements
    369     entry->ErrorD0Phi          = candidate->TrackCovariance(0,1);
    370     entry->ErrorD0C            = candidate->TrackCovariance(0,2);
    371     entry->ErrorD0DZ           = candidate->TrackCovariance(0,3);
    372     entry->ErrorD0CtgTheta     = candidate->TrackCovariance(0,4);
    373     entry->ErrorPhiC           = candidate->TrackCovariance(1,2);
    374     entry->ErrorPhiDZ          = candidate->TrackCovariance(1,3);
    375     entry->ErrorPhiCtgTheta    = candidate->TrackCovariance(1,4);
    376     entry->ErrorCDZ            = candidate->TrackCovariance(2,3);
    377     entry->ErrorCCtgTheta      = candidate->TrackCovariance(2,4);
    378     entry->ErrorDZCtgTheta     = candidate->TrackCovariance(3,4);
    379358
    380359    entry->Xd = candidate->Xd;
     
    387366    p = momentum.P();
    388367    phi = momentum.Phi();
    389     m = momentum.M();
    390368    ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10;
    391369
     
    400378    entry->Phi = phi;
    401379    entry->CtgTheta = ctgTheta;
    402     entry->C = candidate->C;
    403     entry->Mass = m;
    404380
    405381    particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
     
    472448  Candidate *particle = 0;
    473449  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;
    475451  const Double_t c_light = 2.99792458E8;
    476452
     
    506482
    507483    entry->D0 = candidate->D0;
     484    entry->ErrorD0 = candidate->ErrorD0;
    508485    entry->DZ = candidate->DZ;
     486    entry->ErrorDZ = candidate->ErrorDZ;
    509487
    510488    entry->ErrorP = candidate->ErrorP;
    511489    entry->ErrorPT = candidate->ErrorPT;
    512490    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
    513 
    514 
    515     // diagonal covariance matrix terms
    516 
    517     entry->ErrorD0 = candidate->ErrorD0;
    518     entry->ErrorC = candidate->ErrorC;
    519491    entry->ErrorPhi = candidate->ErrorPhi;
    520     entry->ErrorDZ = candidate->ErrorDZ;
    521     entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
    522 
    523     // add some offdiagonal covariance matrix elements
    524     entry->ErrorD0Phi          = candidate->TrackCovariance(0,1);
    525     entry->ErrorD0C            = candidate->TrackCovariance(0,2);
    526     entry->ErrorD0DZ           = candidate->TrackCovariance(0,3);
    527     entry->ErrorD0CtgTheta     = candidate->TrackCovariance(0,4);
    528     entry->ErrorPhiC           = candidate->TrackCovariance(1,2);
    529     entry->ErrorPhiDZ          = candidate->TrackCovariance(1,3);
    530     entry->ErrorPhiCtgTheta    = candidate->TrackCovariance(1,4);
    531     entry->ErrorCDZ            = candidate->TrackCovariance(2,3);
    532     entry->ErrorCCtgTheta      = candidate->TrackCovariance(2,4);
    533     entry->ErrorDZCtgTheta     = candidate->TrackCovariance(3,4);
    534492
    535493    entry->Xd = candidate->Xd;
     
    543501    p = momentum.P();
    544502    phi = momentum.Phi();
    545     m = momentum.M();
    546503    ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10;
    547504
     
    552509    entry->Phi = phi;
    553510    entry->CtgTheta = ctgTheta;
    554     entry->C = candidate->C;
    555     entry->Mass = m;
    556511
    557512    particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
  • readers/DelphesPythia8.cpp

    r13331dc ra3261d7  
    296296
    297297    // jet matching
    298 #if PYTHIA_VERSION_INTEGER < 8300
    299298    matching = combined->getHook(*pythia);
    300299    if(!matching)
     
    303302    }
    304303    pythia->setUserHooksPtr(matching);
    305 #endif
    306304
    307305    if(pythia == NULL)
  • validation/DelphesValidation.cpp

    r13331dc ra3261d7  
    3232#include "TGraph.h"
    3333#include "TGraphErrors.h"
    34 #include "TF1.h"
    3534#include "TH1.h"
    3635#include "TH2.h"
  • validation/validation.sh

    r13331dc ra3261d7  
    3838outputrootdir=report_${cardbase%.*}/root
    3939cardlabel=${cardbase%.*}
    40 version=x.y.z
     40version=$(cat VERSION)
    4141outpdf=$mainoutputdir/${output%.*}.pdf
    4242cardsdir=validation/cards
Note: See TracChangeset for help on using the changeset viewer.