Fork me on GitHub

Changes in / [a5af1df:d612dec] in git


Ignore:
Files:
112 added
12 deleted
217 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    ra5af1df rd612dec  
     13.5.0:
     2
     3- fixed validation code
     4- fixed weighted time and tower position in calorimeter modules
     5- fixed propagation of charged particles with low transverse momentum (thanks to Olmo Cerri)
     6- updated FastJet library to 3.3.4 and FastJet Contrib library to 1.045
     7- removed zero mass assumption for all tracks
     8- added support for HepMC3 format
     9- added particle-density dependence to formula parameterization (thanks to Roberto Preghenella)
     10- added DecayFilter module for LLP decay in flight
     11- added PFcandidate class to ROOT tree writer
     12- added neutral and charged energy fraction to jets
     13- added generalized ee kT clustering
     14- added covariance matrix for track parameters smearing (thanks to Franco Bedeschi)
     15- added IDEA card with track covariance
     16- added generic ILC detector model
     17- added muon collider detector model
     18- added LHeC and FCCeh cards
     19
    1203.4.2:
    221- added DenseTrackFilter for modelling tracking inefficiencies in boosted, dense environments
  • CMakeLists.txt

    ra5af1df rd612dec  
    7070  $<TARGET_OBJECTS:Hector>
    7171  $<TARGET_OBJECTS:PUPPI>
     72  $<TARGET_OBJECTS:TrackCovariance>
    7273)
    7374
     
    8182  $<TARGET_OBJECTS:Hector>
    8283  $<TARGET_OBJECTS:PUPPI>
     84  $<TARGET_OBJECTS:TrackCovariance>
    8385)
    8486
  • DelphesEnv.sh

    ra5af1df rd612dec  
    1 export PYTHONPATH=`pwd`/python:$PYTHONPATH
    2 export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
     1DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
    32
     3export DELPHES_HOME="$DIR"
     4export PYTHONPATH="$DIR/python:${PYTHONPATH}"
     5export LD_LIBRARY_PATH="$DIR:${LD_LIBRARY_PATH}"
     6export LIBRARY_PATH="$DIR:${LIBRARY_PATH}"
  • Makefile

    ra5af1df rd612dec  
    9090DISPLAYLIB = libDelphesDisplay.lib
    9191
    92 VERSION = $(shell cat VERSION)
     92VERSION = x.y.z
    9393DISTDIR = Delphes-$(VERSION)
    9494DISTTAR = $(DISTDIR).tar.gz
     
    104104        classes/DelphesClasses.h \
    105105        classes/DelphesFactory.h \
    106         classes/DelphesHepMCReader.h \
     106        classes/DelphesHepMC2Reader.h \
    107107        classes/DelphesPileUpWriter.h \
    108108        external/ExRootAnalysis/ExRootProgressBar.h \
     
    214214        tmp/validation/DelphesValidation.$(ObjSuf)
    215215
    216 DelphesHepMC$(ExeSuf): \
    217         tmp/readers/DelphesHepMC.$(ObjSuf)
    218 
    219 tmp/readers/DelphesHepMC.$(ObjSuf): \
    220         readers/DelphesHepMC.cpp \
    221         classes/DelphesClasses.h \
    222         classes/DelphesFactory.h \
    223         classes/DelphesHepMCReader.h \
     216DelphesHepMC2$(ExeSuf): \
     217        tmp/readers/DelphesHepMC2.$(ObjSuf)
     218
     219tmp/readers/DelphesHepMC2.$(ObjSuf): \
     220        readers/DelphesHepMC2.cpp \
     221        classes/DelphesClasses.h \
     222        classes/DelphesFactory.h \
     223        classes/DelphesHepMC2Reader.h \
     224        modules/Delphes.h \
     225        external/ExRootAnalysis/ExRootProgressBar.h \
     226        external/ExRootAnalysis/ExRootTreeBranch.h \
     227        external/ExRootAnalysis/ExRootTreeWriter.h
     228DelphesHepMC3$(ExeSuf): \
     229        tmp/readers/DelphesHepMC3.$(ObjSuf)
     230
     231tmp/readers/DelphesHepMC3.$(ObjSuf): \
     232        readers/DelphesHepMC3.cpp \
     233        classes/DelphesClasses.h \
     234        classes/DelphesFactory.h \
     235        classes/DelphesHepMC3Reader.h \
    224236        modules/Delphes.h \
    225237        external/ExRootAnalysis/ExRootProgressBar.h \
     
    264276        external/ExRootAnalysis/ExRootTreeWriter.h
    265277EXECUTABLE +=  \
    266         DelphesHepMC$(ExeSuf) \
     278        DelphesHepMC2$(ExeSuf) \
     279        DelphesHepMC3$(ExeSuf) \
    267280        DelphesLHEF$(ExeSuf) \
    268281        DelphesROOT$(ExeSuf) \
     
    270283
    271284EXECUTABLE_OBJ +=  \
    272         tmp/readers/DelphesHepMC.$(ObjSuf) \
     285        tmp/readers/DelphesHepMC2.$(ObjSuf) \
     286        tmp/readers/DelphesHepMC3.$(ObjSuf) \
    273287        tmp/readers/DelphesLHEF.$(ObjSuf) \
    274288        tmp/readers/DelphesROOT.$(ObjSuf) \
     
    409423        modules/MomentumSmearing.h \
    410424        modules/TrackSmearing.h \
     425        modules/TrackCovariance.h \
     426        modules/ClusterCounting.h \
    411427        modules/ImpactParameterSmearing.h \
    412428        modules/TimeSmearing.h \
     429        modules/TimeOfFlight.h \
    413430        modules/SimpleCalorimeter.h \
    414431        modules/DenseTrackFilter.h \
     
    445462        modules/VertexFinder.h \
    446463        modules/VertexFinderDA4D.h \
    447         modules/ExampleModule.h \
    448464        modules/LLPFilter.h \
    449465        modules/CscClusterEfficiency.h \
    450         modules/CscClusterId.h
     466        modules/CscClusterId.h \
     467        modules/DecayFilter.h \
     468        modules/ParticleDensity.h \
     469        modules/TruthVertexFinder.h \
     470        modules/ExampleModule.h
    451471tmp/modules/ModulesDict$(PcmSuf): \
    452472        tmp/modules/ModulesDict.$(SrcSuf)
     
    512532tmp/classes/DelphesFormula.$(ObjSuf): \
    513533        classes/DelphesFormula.$(SrcSuf) \
    514         classes/DelphesFormula.h
    515 tmp/classes/DelphesHepMCReader.$(ObjSuf): \
    516         classes/DelphesHepMCReader.$(SrcSuf) \
    517         classes/DelphesHepMCReader.h \
     534        classes/DelphesFormula.h \
     535        classes/DelphesClasses.h
     536tmp/classes/DelphesHepMC2Reader.$(ObjSuf): \
     537        classes/DelphesHepMC2Reader.$(SrcSuf) \
     538        classes/DelphesHepMC2Reader.h \
     539        classes/DelphesClasses.h \
     540        classes/DelphesFactory.h \
     541        classes/DelphesStream.h \
     542        external/ExRootAnalysis/ExRootTreeBranch.h
     543tmp/classes/DelphesHepMC3Reader.$(ObjSuf): \
     544        classes/DelphesHepMC3Reader.$(SrcSuf) \
     545        classes/DelphesHepMC3Reader.h \
    518546        classes/DelphesClasses.h \
    519547        classes/DelphesFactory.h \
     
    648676tmp/external/Hector/H_VerticalQuadrupole.$(ObjSuf): \
    649677        external/Hector/H_VerticalQuadrupole.$(SrcSuf)
     678tmp/external/TrackCovariance/AcceptanceClx.$(ObjSuf): \
     679        external/TrackCovariance/AcceptanceClx.$(SrcSuf)
     680tmp/external/TrackCovariance/ObsTrk.$(ObjSuf): \
     681        external/TrackCovariance/ObsTrk.$(SrcSuf)
     682tmp/external/TrackCovariance/SolGeom.$(ObjSuf): \
     683        external/TrackCovariance/SolGeom.$(SrcSuf)
     684tmp/external/TrackCovariance/SolGridCov.$(ObjSuf): \
     685        external/TrackCovariance/SolGridCov.$(SrcSuf)
     686tmp/external/TrackCovariance/SolTrack.$(ObjSuf): \
     687        external/TrackCovariance/SolTrack.$(SrcSuf)
     688tmp/external/TrackCovariance/TrkUtil.$(ObjSuf): \
     689        external/TrackCovariance/TrkUtil.$(SrcSuf)
     690tmp/external/TrackCovariance/VertexFit.$(ObjSuf): \
     691        external/TrackCovariance/VertexFit.$(SrcSuf)
    650692tmp/modules/AngularSmearing.$(ObjSuf): \
    651693        modules/AngularSmearing.$(SrcSuf) \
     
    690732        external/ExRootAnalysis/ExRootFilter.h \
    691733        external/ExRootAnalysis/ExRootResult.h
     734tmp/modules/ClusterCounting.$(ObjSuf): \
     735        modules/ClusterCounting.$(SrcSuf) \
     736        modules/ClusterCounting.h \
     737        classes/DelphesClasses.h \
     738        external/TrackCovariance/TrkUtil.h
    692739tmp/modules/ConstituentFilter.$(ObjSuf): \
    693         modules/ConstituentFilter.$(SrcSuf) \
    694         modules/ConstituentFilter.h \
    695         classes/DelphesClasses.h \
    696         classes/DelphesFactory.h \
    697         classes/DelphesFormula.h \
    698         external/ExRootAnalysis/ExRootClassifier.h \
    699         external/ExRootAnalysis/ExRootFilter.h \
    700         external/ExRootAnalysis/ExRootResult.h
     740        modules/ConstituentFilter.$(SrcSuf) \
     741        modules/ConstituentFilter.h \
     742        classes/DelphesClasses.h \
     743        classes/DelphesFactory.h \
     744        classes/DelphesFormula.h \
     745        external/ExRootAnalysis/ExRootClassifier.h \
     746        external/ExRootAnalysis/ExRootFilter.h \
     747        external/ExRootAnalysis/ExRootResult.h
    701748tmp/modules/CscClusterEfficiency.$(ObjSuf): \
    702749        modules/CscClusterEfficiency.$(SrcSuf) \
     
    711758        modules/CscClusterId.$(SrcSuf) \
    712759        modules/CscClusterId.h \
     760        classes/DelphesClasses.h \
     761        classes/DelphesFactory.h \
     762        classes/DelphesFormula.h \
     763        external/ExRootAnalysis/ExRootClassifier.h \
     764        external/ExRootAnalysis/ExRootFilter.h \
     765        external/ExRootAnalysis/ExRootResult.h
     766tmp/modules/DecayFilter.$(ObjSuf): \
     767        modules/DecayFilter.$(SrcSuf) \
     768        modules/DecayFilter.h \
    713769        classes/DelphesClasses.h \
    714770        classes/DelphesFactory.h \
     
    893949        external/ExRootAnalysis/ExRootFilter.h \
    894950        external/ExRootAnalysis/ExRootResult.h
     951tmp/modules/ParticleDensity.$(ObjSuf): \
     952        modules/ParticleDensity.$(SrcSuf) \
     953        modules/ParticleDensity.h \
     954        classes/DelphesClasses.h \
     955        classes/DelphesFactory.h \
     956        classes/DelphesFormula.h \
     957        external/ExRootAnalysis/ExRootClassifier.h \
     958        external/ExRootAnalysis/ExRootFilter.h \
     959        external/ExRootAnalysis/ExRootResult.h
    895960tmp/modules/ParticlePropagator.$(ObjSuf): \
    896961        modules/ParticlePropagator.$(SrcSuf) \
     
    10011066        classes/DelphesFactory.h \
    10021067        classes/DelphesFormula.h
     1068tmp/modules/TimeOfFlight.$(ObjSuf): \
     1069        modules/TimeOfFlight.$(SrcSuf) \
     1070        modules/TimeOfFlight.h \
     1071        classes/DelphesClasses.h \
     1072        classes/DelphesFactory.h \
     1073        classes/DelphesFormula.h \
     1074        external/ExRootAnalysis/ExRootClassifier.h \
     1075        external/ExRootAnalysis/ExRootFilter.h \
     1076        external/ExRootAnalysis/ExRootResult.h
    10031077tmp/modules/TimeSmearing.$(ObjSuf): \
    10041078        modules/TimeSmearing.$(SrcSuf) \
     
    10251099        external/ExRootAnalysis/ExRootFilter.h \
    10261100        external/ExRootAnalysis/ExRootResult.h
     1101tmp/modules/TrackCovariance.$(ObjSuf): \
     1102        modules/TrackCovariance.$(SrcSuf) \
     1103        modules/TrackCovariance.h \
     1104        classes/DelphesClasses.h \
     1105        external/TrackCovariance/SolGeom.h \
     1106        external/TrackCovariance/SolGridCov.h \
     1107        external/TrackCovariance/ObsTrk.h
    10271108tmp/modules/TrackPileUpSubtractor.$(ObjSuf): \
    10281109        modules/TrackPileUpSubtractor.$(SrcSuf) \
     
    10531134        external/ExRootAnalysis/ExRootResult.h \
    10541135        external/ExRootAnalysis/ExRootTreeBranch.h
     1136tmp/modules/TruthVertexFinder.$(ObjSuf): \
     1137        modules/TruthVertexFinder.$(SrcSuf) \
     1138        modules/TruthVertexFinder.h \
     1139        classes/DelphesClasses.h \
     1140        classes/DelphesFactory.h \
     1141        classes/DelphesPileUpReader.h \
     1142        classes/DelphesTF2.h \
     1143        external/ExRootAnalysis/ExRootClassifier.h \
     1144        external/ExRootAnalysis/ExRootFilter.h \
     1145        external/ExRootAnalysis/ExRootResult.h
    10551146tmp/modules/UniqueObjectFinder.$(ObjSuf): \
    10561147        modules/UniqueObjectFinder.$(SrcSuf) \
     
    11061197        tmp/classes/DelphesFactory.$(ObjSuf) \
    11071198        tmp/classes/DelphesFormula.$(ObjSuf) \
    1108         tmp/classes/DelphesHepMCReader.$(ObjSuf) \
     1199        tmp/classes/DelphesHepMC2Reader.$(ObjSuf) \
     1200        tmp/classes/DelphesHepMC3Reader.$(ObjSuf) \
    11091201        tmp/classes/DelphesLHEFReader.$(ObjSuf) \
    11101202        tmp/classes/DelphesModule.$(ObjSuf) \
     
    11521244        tmp/external/Hector/H_VerticalKicker.$(ObjSuf) \
    11531245        tmp/external/Hector/H_VerticalQuadrupole.$(ObjSuf) \
     1246        tmp/external/TrackCovariance/AcceptanceClx.$(ObjSuf) \
     1247        tmp/external/TrackCovariance/ObsTrk.$(ObjSuf) \
     1248        tmp/external/TrackCovariance/SolGeom.$(ObjSuf) \
     1249        tmp/external/TrackCovariance/SolGridCov.$(ObjSuf) \
     1250        tmp/external/TrackCovariance/SolTrack.$(ObjSuf) \
     1251        tmp/external/TrackCovariance/TrkUtil.$(ObjSuf) \
     1252        tmp/external/TrackCovariance/VertexFit.$(ObjSuf) \
    11541253        tmp/modules/AngularSmearing.$(ObjSuf) \
    11551254        tmp/modules/BTagging.$(ObjSuf) \
     
    11571256        tmp/modules/Calorimeter.$(ObjSuf) \
    11581257        tmp/modules/Cloner.$(ObjSuf) \
     1258        tmp/modules/ClusterCounting.$(ObjSuf) \
    11591259        tmp/modules/ConstituentFilter.$(ObjSuf) \
    11601260        tmp/modules/CscClusterEfficiency.$(ObjSuf) \
    11611261        tmp/modules/CscClusterId.$(ObjSuf) \
     1262        tmp/modules/DecayFilter.$(ObjSuf) \
    11621263        tmp/modules/Delphes.$(ObjSuf) \
    11631264        tmp/modules/DenseTrackFilter.$(ObjSuf) \
     
    11791280        tmp/modules/MomentumSmearing.$(ObjSuf) \
    11801281        tmp/modules/OldCalorimeter.$(ObjSuf) \
     1282        tmp/modules/ParticleDensity.$(ObjSuf) \
    11811283        tmp/modules/ParticlePropagator.$(ObjSuf) \
    11821284        tmp/modules/PdgCodeFilter.$(ObjSuf) \
     
    11901292        tmp/modules/TaggingParticlesSkimmer.$(ObjSuf) \
    11911293        tmp/modules/TauTagging.$(ObjSuf) \
     1294        tmp/modules/TimeOfFlight.$(ObjSuf) \
    11921295        tmp/modules/TimeSmearing.$(ObjSuf) \
    11931296        tmp/modules/TrackCountingBTagging.$(ObjSuf) \
    11941297        tmp/modules/TrackCountingTauTagging.$(ObjSuf) \
     1298        tmp/modules/TrackCovariance.$(ObjSuf) \
    11951299        tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \
    11961300        tmp/modules/TrackSmearing.$(ObjSuf) \
    11971301        tmp/modules/TreeWriter.$(ObjSuf) \
     1302        tmp/modules/TruthVertexFinder.$(ObjSuf) \
    11981303        tmp/modules/UniqueObjectFinder.$(ObjSuf) \
    11991304        tmp/modules/VertexFinder.$(ObjSuf) \
     
    19112016        @touch $@
    19122017
     2018modules/TrackCovariance.h: \
     2019        classes/DelphesModule.h
     2020        @touch $@
     2021
    19132022modules/ExampleModule.h: \
    19142023        classes/DelphesModule.h
    19152024        @touch $@
    19162025
     2026modules/Merger.h: \
     2027        classes/DelphesModule.h
     2028        @touch $@
     2029
    19172030modules/Isolation.h: \
    19182031        classes/DelphesModule.h
     
    19202033
    19212034modules/EnergyScale.h: \
    1922         classes/DelphesModule.h
    1923         @touch $@
    1924 
    1925 modules/Merger.h: \
    19262035        classes/DelphesModule.h
    19272036        @touch $@
     
    19582067        external/fastjet/config.h \
    19592068        external/fastjet/LimitedWarning.hh
     2069        @touch $@
     2070
     2071modules/DecayFilter.h: \
     2072        classes/DelphesModule.h
    19602073        @touch $@
    19612074
     
    20372150        @touch $@
    20382151
     2152modules/TimeOfFlight.h: \
     2153        classes/DelphesModule.h
     2154        @touch $@
     2155
    20392156external/fastjet/contribs/Nsubjettiness/NjettinessPlugin.hh: \
    20402157        external/fastjet/ClusterSequence.hh \
     
    21552272        @touch $@
    21562273
     2274modules/TruthVertexFinder.h: \
     2275        classes/DelphesModule.h
     2276        @touch $@
     2277
    21572278classes/DelphesSTDHEPReader.h: \
    21582279        classes/DelphesXDRReader.h
     
    22312352        @touch $@
    22322353
     2354modules/ClusterCounting.h: \
     2355        classes/DelphesModule.h
     2356        @touch $@
     2357
    22332358modules/SimpleCalorimeter.h: \
    22342359        classes/DelphesModule.h
     
    22662391        @touch $@
    22672392
     2393modules/ParticleDensity.h: \
     2394        classes/DelphesModule.h
     2395        @touch $@
     2396
     2397modules/TreeWriter.h: \
     2398        classes/DelphesModule.h
     2399        @touch $@
     2400
    22682401modules/TimeSmearing.h: \
    2269         classes/DelphesModule.h
    2270         @touch $@
    2271 
    2272 modules/TreeWriter.h: \
    22732402        classes/DelphesModule.h
    22742403        @touch $@
     
    23362465        @mkdir -p $(@D)
    23372466        @echo ">> Building $@"
    2338 ifeq ($(ARCH),aix5)
    2339         @$(MAKESHARED) $(OutPutOpt) $@ $(DELPHES_LIBS) -p 0 $^
    2340 else
    23412467ifeq ($(PLATFORM),macosx)
    2342 # We need to make both the .dylib and the .so
    23432468        @$(LD) $(SOFLAGS)$@ $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    2344 ifneq ($(subst $(MACOSX_MINOR),,1234),1234)
    2345 ifeq ($(MACOSX_MINOR),4)
    2346         @ln -sf $@ $(subst .$(DllSuf),.so,$@)
    2347 endif
    2348 endif
    23492469else
    23502470ifeq ($(PLATFORM),win32)
     
    23552475else
    23562476        @$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    2357         @$(MT_DLL)
    2358 endif
    23592477endif
    23602478endif
     
    23632481        @mkdir -p $(@D)
    23642482        @echo ">> Building $@"
    2365 ifeq ($(ARCH),aix5)
    2366         @$(MAKESHARED) $(OutPutOpt) $@ $(DELPHES_LIBS) -p 0 $^
    2367 else
    23682483ifeq ($(PLATFORM),macosx)
    2369 # We need to make both the .dylib and the .so
    23702484        @$(LD) $(SOFLAGS)$@ $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    2371 ifneq ($(subst $(MACOSX_MINOR),,1234),1234)
    2372 ifeq ($(MACOSX_MINOR),4)
    2373         @ln -sf $@ $(subst .$(DllSuf),.so,$@)
    2374 endif
    2375 endif
    23762485else
    23772486ifeq ($(PLATFORM),win32)
     
    23822491else
    23832492        @$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    2384         @$(MT_DLL)
    2385 endif
    23862493endif
    23872494endif
     
    23902497        @mkdir -p $(@D)
    23912498        @echo ">> Building $@"
    2392 ifeq ($(ARCH),aix5)
    2393         @$(MAKESHARED) $(OutPutOpt) $@ $(DISPLAY_LIBS) -p 0 $^
    2394 else
    23952499ifeq ($(PLATFORM),macosx)
    2396 # We need to make both the .dylib and the .so
    23972500        @$(LD) $(SOFLAGS)$@ $(LDFLAGS) $^ $(OutPutOpt) $@ $(DISPLAY_LIBS)
    2398 ifneq ($(subst $(MACOSX_MINOR),,1234),1234)
    2399 ifeq ($(MACOSX_MINOR),4)
    2400         @ln -sf $@ $(subst .$(DllSuf),.so,$@)
    2401 endif
    2402 endif
    24032501else
    24042502ifeq ($(PLATFORM),win32)
     
    24092507else
    24102508        @$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(DISPLAY_LIBS)
    2411         @$(MT_DLL)
    2412 endif
    24132509endif
    24142510endif
     
    24242520        @echo ">> Building $(DISTTAR)"
    24252521        @mkdir -p $(DISTDIR)
    2426         @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)
     2522        @cp -a AUTHORS CHANGELOG CMakeLists.txt COPYING DelphesEnv.sh LICENSE NOTICE README README_4LHCb Makefile MinBias.pileup configure cards classes cmake converters display doc examples external modules python readers validation $(DISTDIR)
    24272523        @find $(DISTDIR) -depth -name .\* -exec rm -rf {} \;
    24282524        @tar -czf $(DISTTAR) $(DISTDIR)
  • README

    ra5af1df rd612dec  
    44Commands to get the code:
    55
    6    wget http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.4.2.tar.gz
     6   wget http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.5.0.tar.gz
    77
    8    tar -zxf Delphes-3.4.2.tar.gz
     8   tar -zxf Delphes-3.5.0.tar.gz
    99
    1010Commands to compile the code:
    1111
    12    cd Delphes-3.4.2
     12   cd Delphes-3.5.0
    1313
    1414   make
     
    1616Finally, we can run Delphes:
    1717
    18    ./DelphesHepMC
     18   ./DelphesHepMC3
    1919
    2020Command line parameters:
    2121
    22    ./DelphesHepMC config_file output_file [input_file(s)]
     22   ./DelphesHepMC3 config_file output_file [input_file(s)]
    2323     config_file - configuration file in Tcl format
    2424     output_file - output file in ROOT format,
     
    4747cd Delphes
    4848
    49 source  /afs/cern.ch/sw/lcg/external/gcc/4.9.3/x86_64-slc6/setup.sh
    50 
    51 source /afs/cern.ch/sw/lcg/app/releases/ROOT/6.06.00/x86_64-slc6-gcc49-opt/root/bin/thisroot.sh
     49source /cvmfs/sft.cern.ch/lcg/views/LCG_99/x86_64-centos7-gcc10-opt/setup.sh
    5250
    5351make
     
    6664Open ROOT file and do some basic analysis using Draw or TBrowser:
    6765
    68    TFile::Open("delphes_output.root");
    69    Delphes->Draw("Electron.PT");
     66   TFile *f = TFile::Open("delphes_output.root");
     67   f->Get("Delphes")->Draw("Electron.PT");
    7068   TBrowser browser;
    7169
  • README.md

    ra5af1df rd612dec  
    1 [![CircleCI](https://circleci.com/gh/delphes/delphes.svg?style=shield)](https://circleci.com/gh/delphes/delphes)
     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/21390046.svg)](https://zenodo.org/badge/latestdoi/21390046)
    22
    33Delphes
     
    1414
    1515```
    16    wget http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.4.2.tar.gz
     16   wget http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.5.0.tar.gz
    1717
    18    tar -zxf Delphes-3.4.2.tar.gz
     18   tar -zxf Delphes-3.5.0.tar.gz
    1919```
    2020
     
    2222
    2323```
    24    cd Delphes-3.4.2
     24   cd Delphes-3.5.0
    2525
    2626   make
     
    3030
    3131```
    32    ./DelphesHepMC
     32   ./DelphesHepMC3
    3333```
    3434
     
    3636
    3737```
    38    ./DelphesHepMC config_file output_file [input_file(s)]
     38   ./DelphesHepMC3 config_file output_file [input_file(s)]
    3939     config_file - configuration file in Tcl format
    4040     output_file - output file in ROOT format,
     
    6767cd Delphes
    6868
    69 source  /afs/cern.ch/sw/lcg/external/gcc/4.9.3/x86_64-slc6/setup.sh
    70 
    71 source /afs/cern.ch/sw/lcg/app/releases/ROOT/6.06.00/x86_64-slc6-gcc49-opt/root/bin/thisroot.sh
     69source /cvmfs/sft.cern.ch/lcg/views/LCG_99/x86_64-centos7-gcc10-opt/setup.sh
    7270
    7371make
     
    8987
    9088```
    91    TFile::Open("delphes_output.root");
    92    Delphes->Draw("Electron.PT");
     89   TFile *f = TFile::Open("delphes_output.root");
     90   f->Get("Delphes")->Draw("Electron.PT");
    9391   TBrowser browser;
    9492```
  • cards/FCC/FCChh.tcl

    ra5af1df rd612dec  
    44#  Main authors:  Michele Selvaggi (CERN)
    55#
    6 #  Released on: Dec. 1st, 2017
     6#  Released on: October 14th, 2020
     7#
     8#  - fix muon resolution at high pT
     9#  - updated btagging, tau tagging and photon ID
     10#
    711#
    812#  Configuration: FCC-hh baseline detector
     
    10491053  (abs(eta) <= 2.5) * (pt > 1.0 && pt < 5.0)  * (0.70) +
    10501054  (abs(eta) <= 2.5) * (pt > 5.0 && pt < 10.0) * (0.85) +
    1051   (abs(eta) <= 2.5) * (pt > 10.0)             * (0.95) +
     1055  (abs(eta) <= 2.5) * (pt > 10.0)             * (0.90) +
    10521056   
    10531057  (abs(eta) > 2.5 && abs(eta) <= 4.0) * (pt > 1.0 && pt < 5.0)  * (0.60) +
     
    11381142  (abs(eta) < 2.5)                   * (pt > 500.0 && pt < 15000.0) * (0.01)*(1.0 - pt/15000.) + \
    11391143  (abs(eta) < 2.5)                   * (pt > 15000.0)               * (0.00) + \
    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.) + \
     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.) + \
    11421146  (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0)               * (0.000) + \
    11431147  (abs(eta) > 4.0) * (0.00)}
     
    11461150
    11471151  (pt <= 10.0)                       * (0.00) +
    1148   (abs(eta) < 2.5)                   * (pt > 10.0 && pt < 500)      * (0.05) + \
    1149   (abs(eta) < 2.5)                   * (pt > 500.0 && pt < 15000.0) * (0.05)*(1.0 - pt/15000.) + \
     1152  (abs(eta) < 2.5)                   * (pt > 10.0 && pt < 500)      * (0.15) + \
     1153  (abs(eta) < 2.5)                   * (pt > 500.0 && pt < 15000.0) * (0.15)*(1.0 - pt/15000.) + \
    11501154  (abs(eta) < 2.5)                   * (pt > 15000.0)               * (0.000) + \
    1151   (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500)      * (0.03) + \
    1152   (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.03)*(1.0 - pt/15000.) + \
     1155  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500)      * (0.10) + \
     1156  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 500.0 && pt < 15000.0) * (0.10)*(1.0 - pt/15000.) + \
    11531157  (abs(eta) < 2.5 && abs(eta) < 4.0) * (pt > 15000.0)               * (0.000) + \
    11541158  (abs(eta) > 4.0) * (0.00)}
     
    11571161
    11581162  (pt <= 10.0)                                                       * (0.00) +
    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.) +
     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.) +
    11611165  (abs(eta) < 2.5)                    * (pt > 15000.0)               * (0.000) +
    11621166  (abs(eta) >= 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 500)      * (0.64) +
     
    12171221
    12181222  (pt <= 10.0)                                                       * (0.00) +
    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.) + \
     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.) + \
    12211225  (abs(eta) < 2.5)                   * (pt > 34000.0)                * (0.000) + \
    12221226  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0)    * (0.0075) + \
     
    12281232
    12291233  (pt <= 10.0)                                                       * (0.00) +
    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.) + \
     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.) + \
    12321236  (abs(eta) < 2.5)                   * (pt > 34000.0)                * (0.000) + \
    1233   (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0)    * (0.00375) + \
    1234   (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.00375)*(8./9. - pt/30000.) + \
     1237  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 10.0 && pt < 5000.0)    * (0.001) + \
     1238  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 5000.0 && pt < 34000.0) * (0.001)*(8./9. - pt/30000.) + \
    12351239  (abs(eta) > 2.5 && abs(eta) < 4.0) * (pt > 34000.0)                * (0.00) + \
    12361240  (abs(eta) > 4.0)                   * (0.00)}
  • cards/FCC/muonMomentumResolutionVsP.tcl

    ra5af1df rd612dec  
    1212set ResolutionFormula {
    1313 
    14 ( abs(eta) < 1.35 ) *
    15 
    16 (sqrt(0.0000364164 + (
    17    9.06262e-8 *pt^2* cosh(
    18      eta)^2 *(2.82074e-7/sin(2*atan(exp(-abs(eta))))^2 + (
    19       504.525 *(1/400000000 + (0.117945* 1/cosh(eta)^2)/(
    20          pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/
    21       sin(2*atan(exp(-abs(eta))))^2) *sin(2*atan(exp(-abs(eta))))^2)/(
    22    0.00516429/sin(2*atan(exp(-abs(eta))))^2 + (
    23     96868.8 *(1/400000000 + (0.117945 * 1/cosh(eta)^2)/(
    24        pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/
    25     sin(2*atan(exp(-abs(eta))))^2))
    26 
    27 ) +
     14
     15( abs(eta) < 1.35 ) *
     16
     17    (sqrt(0.0000364164 + (
     18                          3*9.06262e-8 *pt^2* cosh(
     19         eta)^2 *(2.82074e-7/sin(2*atan(exp(-abs(eta))))^2 + (
     20          504.525 *(1/400000000 + (0.117945* 1/cosh(eta)^2)/(
     21             pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/
     22          sin(2*atan(exp(-abs(eta))))^2) *sin(2*atan(exp(-abs(eta))))^2)/(
     23       0.00516429/sin(2*atan(exp(-abs(eta))))^2 + (
     24        96868.8 *(1/400000000 + 5*(0.117945 * 1/cosh(eta)^2)/(
     25           pt^2 *sin(2*atan(exp(-abs(eta))))^2)))/
     26        sin(2*atan(exp(-abs(eta))))^2))
     27
     28    ) +
    2829 
    2930( abs(eta) > 1.35 && abs(eta) < 2.00) *
  • cards/delphes_card_CLICdet_Stage1.tcl

    ra5af1df rd612dec  
    298298
    299299    set EfficiencyFormula {
    300         (abs(eta) > 2.54) * (0.000) +
    301         (energy >= 80) * (abs(eta) < 2.54)  * (1.000) +
    302         (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34)  * (0.994) +
    303         (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) +
    304         (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.000) +
    305         (energy < 3) * (abs(eta) <= 0.55 ) * (1.000)
     300 (pt <= 0.1)                                                                        * (0.000) +
     301 (pt > 0.1)                                * (abs(eta) > 2.54)                      * (0.000) +
     302 (pt > 0.1) * (energy >= 80)               * (abs(eta) < 2.54)                      * (1.000) +
     303 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34)   * (0.994) +
     304 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <= 2.34)                     * (1.000) +
     305 (pt > 0.1) * (energy < 3)                 * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.990) +
     306 (pt > 0.1) * (energy < 3)                 * (abs(eta) <= 0.55 )                    * (1.000)
    306307    }
    307308}
     
    318319    # Current full simulation with CLICdet provides for electrons:
    319320    set EfficiencyFormula {
    320         (pt <= 1)                                                               * (0.000) +
    321         (abs(eta) > 2.54)                                                       * (0.000) +
    322         (energy >= 80)                 * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) +
    323         (energy >= 80)                 * (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) +
    324         (energy >= 80)                 * (abs(eta) <= 2.34  )                   * (1.000) +
    325         (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)
     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)
    330331    }
    331332}
     
    341342    # Current full simulation with CLICdet provides for muons:
    342343    set EfficiencyFormula {
    343         (pt < 1)                                                                * (0.000) +
    344         (abs(eta) > 2.54)                                                       * (0.000) +
    345         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80)                 * (0.994) +
    346         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80)   * (0.996) +
    347         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 )                  * (0.996) +
    348         (abs(eta) <= 2.44 )                    * (energy >= 5 )                 * (1.000) +
    349         (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 && pt >=1 )        * (0.999) +
    350         (abs(eta) <= 2.25 )                    * (energy >= 1)                  * (1.000)
    351 
    352        
     344  (pt <= 0.1)                                                                          * (0.000) +
     345  (pt > 0.1) * (abs(eta) > 2.54)                                                       * (0.000) +
     346  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80)                 * (0.994) +
     347  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80)   * (0.996) +
     348  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 )                  * (0.996) +
     349  (pt > 0.1) * (abs(eta) <= 2.44 )                    * (energy >= 5 )                 * (1.000) +
     350  (pt > 0.1) * (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 )                  * (0.999) +
     351  (pt > 0.1) * (abs(eta) <= 2.25 )                    * (energy < 5 )                  * (1.000)
    353352    }
    354353}
     
    945944module FastJetFinder FastJetFinderKt {
    946945    #  set InputArray Calorimeter/towers
    947     set InputArray EFlowMerger/eflow
     946    set InputArray EFlowFilter/eflow
    948947
    949948    set OutputArray KTjets
  • cards/delphes_card_CLICdet_Stage2.tcl

    ra5af1df rd612dec  
    490490
    491491    set EfficiencyFormula {
    492         (abs(eta) > 2.54) * (0.000) +
    493         (energy >= 80) * (abs(eta) < 2.54)  * (1.000) +
    494         (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34)  * (0.994) +
    495         (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) +
    496         (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.000) +
    497         (energy < 3) * (abs(eta) <= 0.55 ) * (1.000)
     492 (pt <= 0.1)                                                                        * (0.000) +
     493 (pt > 0.1)                                * (abs(eta) > 2.54)                      * (0.000) +
     494 (pt > 0.1) * (energy >= 80)               * (abs(eta) < 2.54)                      * (1.000) +
     495 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34)   * (0.994) +
     496 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <= 2.34)                     * (1.000) +
     497 (pt > 0.1) * (energy < 3)                 * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.990) +
     498 (pt > 0.1) * (energy < 3)                 * (abs(eta) <= 0.55 )                    * (1.000)
    498499    }
    499500}
     
    510511    # Current full simulation with CLICdet provides for electrons:
    511512    set EfficiencyFormula {
    512         (pt <= 1)                                                               * (0.000) +
    513         (abs(eta) > 2.54)                                                       * (0.000) +
    514         (energy >= 80)                 * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) +
    515         (energy >= 80)                 * (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) +
    516         (energy >= 80)                 * (abs(eta) <= 2.34  )                   * (1.000) +
    517         (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)
     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)
    522523    }
    523524}
     
    533534    # Current full simulation with CLICdet provides for muons:
    534535    set EfficiencyFormula {
    535         (pt < 1)                                                                * (0.000) +
    536         (abs(eta) > 2.54)                                                       * (0.000) +
    537         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80)                 * (0.994) +
    538         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80)   * (0.996) +
    539         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 )                  * (0.996) +
    540         (abs(eta) <= 2.44 )                    * (energy >= 5 )                 * (1.000) +
    541         (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 && pt >=1 )        * (0.999) +
    542         (abs(eta) <= 2.25 )                    * (energy >= 1)                  * (1.000)
    543 
    544        
     536  (pt <= 0.1)                                                                          * (0.000) +
     537  (pt > 0.1) * (abs(eta) > 2.54)                                                       * (0.000) +
     538  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80)                 * (0.994) +
     539  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80)   * (0.996) +
     540  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 )                  * (0.996) +
     541  (pt > 0.1) * (abs(eta) <= 2.44 )                    * (energy >= 5 )                 * (1.000) +
     542  (pt > 0.1) * (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 )                  * (0.999) +
     543  (pt > 0.1) * (abs(eta) <= 2.25 )                    * (energy < 5 )                  * (1.000)
    545544    }
    546545}
     
    11361135module FastJetFinder FastJetFinderKt {
    11371136    #  set InputArray Calorimeter/towers
    1138     set InputArray EFlowMerger/eflow
     1137    set InputArray EFlowFilter/eflow
    11391138
    11401139    set OutputArray KTjets
  • cards/delphes_card_CLICdet_Stage3.tcl

    ra5af1df rd612dec  
    484484
    485485    set EfficiencyFormula {
    486         (abs(eta) > 2.54) * (0.000) +
    487         (energy >= 80) * (abs(eta) < 2.54)  * (1.000) +
    488         (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34)  * (0.994) +
    489         (energy < 80 && energy >= 3) * (abs(eta) <= 2.34) * (1.000) +
    490         (energy < 3) * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.000) +
    491         (energy < 3) * (abs(eta) <= 0.55 ) * (1.000)
     486 (pt <= 0.1)                                                                        * (0.000) +
     487 (pt > 0.1)                                * (abs(eta) > 2.54)                      * (0.000) +
     488 (pt > 0.1) * (energy >= 80)               * (abs(eta) < 2.54)                      * (1.000) +
     489 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <=2.54 && abs(eta) > 2.34)   * (0.994) +
     490 (pt > 0.1) * (energy < 80 && energy >= 3) * (abs(eta) <= 2.34)                     * (1.000) +
     491 (pt > 0.1) * (energy < 3)                 * (abs(eta) <= 2.54 && abs(eta) > 0.55 ) * (0.990) +
     492 (pt > 0.1) * (energy < 3)                 * (abs(eta) <= 0.55 )                    * (1.000)
    492493    }
    493494}
     
    504505    # Current full simulation with CLICdet provides for electrons:
    505506    set EfficiencyFormula {
    506         (pt <= 1)                                                               * (0.000) +
    507         (abs(eta) > 2.54)                                                       * (0.000) +
    508         (energy >= 80)                 * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (0.993) +
    509         (energy >= 80)                 * (abs(eta) <= 2.44 && abs(eta) > 2.34 ) * (0.997) +
    510         (energy >= 80)                 * (abs(eta) <= 2.34  )                   * (1.000) +
    511         (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)
     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)
    516517    }
    517518}
     
    527528    # Current full simulation with CLICdet provides for muons:
    528529    set EfficiencyFormula {
    529         (pt < 1)                                                                * (0.000) +
    530         (abs(eta) > 2.54)                                                       * (0.000) +
    531         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80)                 * (0.994) +
    532         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80)   * (0.996) +
    533         (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 )                  * (0.996) +
    534         (abs(eta) <= 2.44 )                    * (energy >= 5 )                 * (1.000) +
    535         (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 && pt >=1 )        * (0.999) +
    536         (abs(eta) <= 2.25 )                    * (energy >= 1)                  * (1.000)
    537 
    538        
     530  (pt <= 0.1)                                                                          * (0.000) +
     531  (pt > 0.1) * (abs(eta) > 2.54)                                                       * (0.000) +
     532  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 80)                 * (0.994) +
     533  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy >= 5 && energy < 80)   * (0.996) +
     534  (pt > 0.1) * (abs(eta) <= 2.54 && abs(eta) > 2.44 ) * (energy < 5 )                  * (0.996) +
     535  (pt > 0.1) * (abs(eta) <= 2.44 )                    * (energy >= 5 )                 * (1.000) +
     536  (pt > 0.1) * (abs(eta) <= 2.44 && abs(eta) > 2.25 ) * (energy < 5 )                  * (0.999) +
     537  (pt > 0.1) * (abs(eta) <= 2.25 )                    * (energy < 5 )                  * (1.000)
    539538    }
    540539}
     
    11321131module FastJetFinder FastJetFinderKt {
    11331132    #  set InputArray Calorimeter/towers
    1134     set InputArray EFlowMerger/eflow
     1133    set InputArray EFlowFilter/eflow
    11351134
    11361135    set OutputArray KTjets
  • cards/delphes_card_IDEA.tcl

    ra5af1df rd612dec  
     1set RandomSeed 123
     2
    13####################################################################                                l
    2 # FCC-ee IDEA detector model                                                                                     
    3 #                                                                                                   
    4 # Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello                                 
     4# FCC-ee IDEA detector model
     5#
     6# Authors: Elisa Fontanesi, Lorenzo Pezzotti, Massimiliano Antonello, Michele Selvaggi
    57# email: efontane@bo.infn.it,
    6 #        lorenzo.pezzotti01@universitadipavia.it,                                                   
    7 #        m.antonello@uninsubria.it,                                                                 
    8 #####################################################################                               
    9 #       
     8#        lorenzo.pezzotti01@universitadipavia.it,
     9#        m.antonello@uninsubria.it,
     10#        michele.selvaggi@cern.ch
     11#####################################################################
     12
     13## MOD2: set vtx mode timing to MC truth
     14
     15set B 2.0
     16
     17## Drift chamber coordinates
     18set DCHZMIN -2.125
     19set DCHZMAX 2.125
     20set DCHRMIN 0.345
     21set DCHRMAX 2.02
     22
     23
    1024#######################################
    1125# Order of execution of various modules
     
    1327
    1428set ExecutionPath {
     29
     30  TruthVertexFinder
    1531  ParticlePropagator
    1632
     
    1935  MuonTrackingEfficiency
    2036
    21   ChargedHadronMomentumSmearing
    22   ElectronMomentumSmearing
    23   MuonMomentumSmearing
    24 
    25   TrackMerger
     37  TrackMergerPre
     38  TrackSmearing
     39  ClusterCounting
     40  TimeSmearing
     41  TimeOfFlight
     42
     43  TrackMerger
     44  ForwardLooperTracks
    2645  Calorimeter
     46
     47  TimeSmearingNeutrals
     48  TimeOfFlightNeutralHadron
     49
     50  EFlowTrackMerger
    2751  EFlowMerger
    2852
    2953  PhotonEfficiency
    3054  PhotonIsolation
     55
     56  MuonFilter
    3157
    3258  ElectronFilter
     
    4268  GenJetFinder
    4369  GenMissingET
    44  
     70
    4571  FastJetFinder
    4672
     
    5278  TauTagging
    5379
    54   UniqueObjectFinder
    55 
    56   ScalarHT
    5780  TreeWriter
    5881}
    5982
     83#################################
     84# Truth Vertex Finder
     85#################################
     86
     87module TruthVertexFinder TruthVertexFinder {
     88
     89  ## below this distance two vertices are assumed to be merged
     90  set Resolution 1E-06
     91
     92  set InputArray Delphes/stableParticles
     93  set VertexOutputArray vertices
     94}
    6095
    6196#################################
     
    78113
    79114  # magnetic field, in T
    80   set Bz 2.0
     115  set Bz $B
    81116}
    82117
     
    88123    set InputArray ParticlePropagator/chargedHadrons
    89124    set OutputArray chargedHadrons
    90     # We use only one efficiency, we set only 0 effincency out of eta bounds:
     125    set UseMomentumVector true
    91126
    92127    set EfficiencyFormula {
    93         (abs(eta) > 3.0)                                       * (0.000) +
    94         (energy >= 0.5) * (abs(eta) <= 3.0)                    * (0.997) +
    95         (energy < 0.5 && energy >= 0.3) * (abs(eta) <= 3.0)    * (0.65) +
    96         (energy < 0.3) * (abs(eta) <= 3.0)                     * (0.06)
    97     }
    98 }
    99 
    100 #       (pt <= 0.1)                                     * (0.00) +
    101 #       (abs(eta) <= 3.0)               * (pt > 0.1)    * (1.00) +
    102 #       (abs(eta) > 3)                                  * (0.00)
     128        (abs(eta) > 2.56)                                  * (0.000) +
     129        (pt < 0.1) * (abs(eta) <= 2.56)                    * (0.000) +
     130        (pt >= 0.1) * (abs(eta) <= 2.56)                   * (1.000)
     131    }
     132}
    103133
    104134
     
    111141    set InputArray ParticlePropagator/electrons
    112142    set OutputArray electrons
    113 
    114 
    115     # Current full simulation with CLICdet provides for electrons:
     143    set UseMomentumVector true
     144
    116145    set EfficiencyFormula {
    117         (abs(eta) > 3.0)                                       * (0.000) +
    118         (energy >= 0.5) * (abs(eta) <= 3.0)                    * (0.997) +
    119         (energy < 0.5 && energy >= 0.3) * (abs(eta) <= 3.0)    * (0.65) +
    120         (energy < 0.3) * (abs(eta) <= 3.0)                     * (0.06)
    121     }
     146        (abs(eta) > 2.56)                                  * (0.000) +
     147        (pt < 0.1) * (abs(eta) <= 2.56)                    * (0.000) +
     148        (pt >= 0.1) * (abs(eta) <= 2.56)                   * (1.000)
     149    }
    122150}
    123151
     
    130158    set InputArray ParticlePropagator/muons
    131159    set OutputArray muons
    132 
    133     # Current full simulation with CLICdet provides for muons:
     160    set UseMomentumVector true
     161
    134162    set EfficiencyFormula {
    135         (abs(eta) > 3.0)                                       * (0.000) +
    136         (energy >= 0.5) * (abs(eta) <= 3.0)                    * (0.997) +
    137         (energy < 0.5 && energy >= 0.3) * (abs(eta) <= 3.0)    * (0.65) +
    138         (energy < 0.3) * (abs(eta) <= 3.0)                     * (0.06)
    139     }
    140 }
    141 
    142 
    143 ########################################
    144 # Momentum resolution for charged tracks
    145 ########################################
    146 
    147 module MomentumSmearing ChargedHadronMomentumSmearing {
    148     set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
    149     set OutputArray chargedHadrons
    150 
    151 
    152     # Resolution given in dpT/pT.
    153     # IDEAdet
    154     set ResolutionFormula {
    155         (abs(eta) <= 3.0)                   * sqrt(0.0006^2 + (pt*7.e-5)^2)
    156     }
    157 }
    158 
    159 ###################################
    160 # Momentum resolution for electrons
    161 ###################################
    162 
    163 module MomentumSmearing ElectronMomentumSmearing {
    164     set InputArray ElectronTrackingEfficiency/electrons
    165     set OutputArray electrons
    166 
    167     # Resolution given in dpT/pT.
    168     # IDEAdet
    169     set ResolutionFormula {
    170         (abs(eta) <= 3.0)                   * sqrt(0.0006^2 + (pt*7.e-5)^2)
    171     } 
    172 }
    173 
    174 ###############################
    175 # Momentum resolution for muons
    176 ###############################
    177 
    178 module MomentumSmearing MuonMomentumSmearing {
    179     set InputArray MuonTrackingEfficiency/muons
    180     set OutputArray muons
    181 
    182     # Resolution given in dpT/pT.
    183     # IDEAdet
    184     set ResolutionFormula {
    185         (abs(eta) <= 3.0)                   * sqrt(0.0006^2 + (pt*7.e-5)^2)
     163        (abs(eta) > 2.56)                                  * (0.000) +
     164        (pt < 0.1) * (abs(eta) <= 2.56)                    * (0.000) +
     165        (pt >= 0.1) * (abs(eta) <= 2.56)                   * (1.000)
    186166    }
    187167}
     
    191171##############
    192172
     173module Merger TrackMergerPre {
     174# add InputArray InputArray
     175  add InputArray ChargedHadronTrackingEfficiency/chargedHadrons
     176  add InputArray ElectronTrackingEfficiency/electrons
     177  add InputArray MuonTrackingEfficiency/muons
     178  set OutputArray tracks
     179}
     180
     181
     182
     183########################################
     184# Smearing for charged tracks
     185########################################
     186
     187module TrackCovariance TrackSmearing {
     188
     189    set InputArray TrackMergerPre/tracks
     190    set OutputArray tracks
     191
     192    ## minimum number of hits to accept a track
     193    set NMinHits 6
     194
     195    ## magnetic field
     196    set Bz $B
     197
     198    ## uses https://raw.githubusercontent.com/selvaggi/FastTrackCovariance/master/GeoIDEA_BASE.txt
     199    set DetectorGeometry {
     200
     201
     202      # Layer type 1 = R (barrel) or 2 = z (forward/backward)
     203      # Layer label
     204      # Minimum dimension z for barrel or R for forward
     205      # Maximum dimension z for barrel or R for forward
     206      # R/z location of layer
     207      # Thickness (meters)
     208      # Radiation length (meters)
     209      # Number of measurements in layers (1D or 2D)
     210      # Stereo angle (rad) - 0(pi/2) = axial(z) layer - Upper side
     211      # Stereo angle (rad) - 0(pi/2) = axial(z) layer - Lower side
     212      # Resolution Upper side (meters) - 0 = no measurement
     213      # Resolution Lower side (meters) - 0 = no measurement
     214      # measurement flag = T, scattering only = F
     215
     216      # barrel  name       zmin   zmax   r        w (m)      X0        n_meas  th_up (rad) th_down (rad)    reso_up (m)   reso_down (m)  flag
     217
     218      # barrel  name       zmin   zmax   r        w (m)      X0        n_meas  th_up (rad) th_down (rad)    reso_up (m)   reso_down (m)  flag
     219
     220      1        PIPE       -100    100    0.015    0.001655  0.2805     0        0          0                0             0              0
     221      1        VTXLOW     -0.12   0.12   0.017    0.00028   0.0937     2        0          1.5708           3e-006        3e-006         1
     222      1        VTXLOW     -0.16   0.16   0.023    0.00028   0.0937     2        0          1.5708           3e-006        3e-006         1
     223      1        VTXLOW     -0.16   0.16   0.031    0.00028   0.0937     2        0          1.5708           3e-006        3e-006         1
     224      1        VTXHIGH    -1      1      0.32     0.00047   0.0937     2        0          1.5708           7e-006        7e-006         1
     225      1        VTXHIGH    -1.05   1.05   0.34     0.00047   0.0937     2        0          1.5708           7e-006        7e-006         1
     226
     227      # endcap  name       rmin   rmax   z        w (m)      X0        n_meas   th_up (rad)  th_down (rad)   reso_up (m)   reso_down (m) flag
     228
     229      2        VTXDSK      0.141  0.3   -0.92     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     230      2        VTXDSK      0.138  0.3   -0.9      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     231      2        VTXDSK      0.065  0.3   -0.42     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     232      2        VTXDSK      0.062  0.3   -0.4      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     233      2        VTXDSK      0.062  0.3    0.4      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     234      2        VTXDSK      0.065  0.3    0.42     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     235      2        VTXDSK      0.138  0.3    0.9      0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     236      2        VTXDSK      0.141  0.3    0.92     0.00028   0.0937     2        0          1.5708           7e-006        7e-006         1
     237
     238      1 DCHCANI $DCHZMIN $DCHZMAX $DCHRMIN 0.0002 0.237223 0 0 0 0 0 0
     239      1 DCH -2 2 0.36 0.0147748 1400 1 0.0203738 0 0.0001 0 1
     240      1 DCH -2 2 0.374775 0.0147748 1400 1 -0.0212097 0 0.0001 0 1
     241      1 DCH -2 2 0.38955 0.0147748 1400 1 0.0220456 0 0.0001 0 1
     242      1 DCH -2 2 0.404324 0.0147748 1400 1 -0.0228814 0 0.0001 0 1
     243      1 DCH -2 2 0.419099 0.0147748 1400 1 0.0237172 0 0.0001 0 1
     244      1 DCH -2 2 0.433874 0.0147748 1400 1 -0.024553 0 0.0001 0 1
     245      1 DCH -2 2 0.448649 0.0147748 1400 1 0.0253888 0 0.0001 0 1
     246      1 DCH -2 2 0.463423 0.0147748 1400 1 -0.0262245 0 0.0001 0 1
     247      1 DCH -2 2 0.478198 0.0147748 1400 1 0.0270602 0 0.0001 0 1
     248      1 DCH -2 2 0.492973 0.0147748 1400 1 -0.0278958 0 0.0001 0 1
     249      1 DCH -2 2 0.507748 0.0147748 1400 1 0.0287314 0 0.0001 0 1
     250      1 DCH -2 2 0.522523 0.0147748 1400 1 -0.029567 0 0.0001 0 1
     251      1 DCH -2 2 0.537297 0.0147748 1400 1 0.0304025 0 0.0001 0 1
     252      1 DCH -2 2 0.552072 0.0147748 1400 1 -0.031238 0 0.0001 0 1
     253      1 DCH -2 2 0.566847 0.0147748 1400 1 0.0320734 0 0.0001 0 1
     254      1 DCH -2 2 0.581622 0.0147748 1400 1 -0.0329088 0 0.0001 0 1
     255      1 DCH -2 2 0.596396 0.0147748 1400 1 0.0337442 0 0.0001 0 1
     256      1 DCH -2 2 0.611171 0.0147748 1400 1 -0.0345795 0 0.0001 0 1
     257      1 DCH -2 2 0.625946 0.0147748 1400 1 0.0354147 0 0.0001 0 1
     258      1 DCH -2 2 0.640721 0.0147748 1400 1 -0.0362499 0 0.0001 0 1
     259      1 DCH -2 2 0.655495 0.0147748 1400 1 0.0370851 0 0.0001 0 1
     260      1 DCH -2 2 0.67027 0.0147748 1400 1 -0.0379202 0 0.0001 0 1
     261      1 DCH -2 2 0.685045 0.0147748 1400 1 0.0387552 0 0.0001 0 1
     262      1 DCH -2 2 0.69982 0.0147748 1400 1 -0.0395902 0 0.0001 0 1
     263      1 DCH -2 2 0.714595 0.0147748 1400 1 0.0404252 0 0.0001 0 1
     264      1 DCH -2 2 0.729369 0.0147748 1400 1 -0.04126 0 0.0001 0 1
     265      1 DCH -2 2 0.744144 0.0147748 1400 1 0.0420949 0 0.0001 0 1
     266      1 DCH -2 2 0.758919 0.0147748 1400 1 -0.0429296 0 0.0001 0 1
     267      1 DCH -2 2 0.773694 0.0147748 1400 1 0.0437643 0 0.0001 0 1
     268      1 DCH -2 2 0.788468 0.0147748 1400 1 -0.044599 0 0.0001 0 1
     269      1 DCH -2 2 0.803243 0.0147748 1400 1 0.0454336 0 0.0001 0 1
     270      1 DCH -2 2 0.818018 0.0147748 1400 1 -0.0462681 0 0.0001 0 1
     271      1 DCH -2 2 0.832793 0.0147748 1400 1 0.0471025 0 0.0001 0 1
     272      1 DCH -2 2 0.847568 0.0147748 1400 1 -0.0479369 0 0.0001 0 1
     273      1 DCH -2 2 0.862342 0.0147748 1400 1 0.0487713 0 0.0001 0 1
     274      1 DCH -2 2 0.877117 0.0147748 1400 1 -0.0496055 0 0.0001 0 1
     275      1 DCH -2 2 0.891892 0.0147748 1400 1 0.0504397 0 0.0001 0 1
     276      1 DCH -2 2 0.906667 0.0147748 1400 1 -0.0512738 0 0.0001 0 1
     277      1 DCH -2 2 0.921441 0.0147748 1400 1 0.0521079 0 0.0001 0 1
     278      1 DCH -2 2 0.936216 0.0147748 1400 1 -0.0529418 0 0.0001 0 1
     279      1 DCH -2 2 0.950991 0.0147748 1400 1 0.0537757 0 0.0001 0 1
     280      1 DCH -2 2 0.965766 0.0147748 1400 1 -0.0546095 0 0.0001 0 1
     281      1 DCH -2 2 0.980541 0.0147748 1400 1 0.0554433 0 0.0001 0 1
     282      1 DCH -2 2 0.995315 0.0147748 1400 1 -0.056277 0 0.0001 0 1
     283      1 DCH -2 2 1.01009 0.0147748 1400 1 0.0571106 0 0.0001 0 1
     284      1 DCH -2 2 1.02486 0.0147748 1400 1 -0.0579441 0 0.0001 0 1
     285      1 DCH -2 2 1.03964 0.0147748 1400 1 0.0587775 0 0.0001 0 1
     286      1 DCH -2 2 1.05441 0.0147748 1400 1 -0.0596108 0 0.0001 0 1
     287      1 DCH -2 2 1.06919 0.0147748 1400 1 0.0604441 0 0.0001 0 1
     288      1 DCH -2 2 1.08396 0.0147748 1400 1 -0.0612773 0 0.0001 0 1
     289      1 DCH -2 2 1.09874 0.0147748 1400 1 0.0621104 0 0.0001 0 1
     290      1 DCH -2 2 1.11351 0.0147748 1400 1 -0.0629434 0 0.0001 0 1
     291      1 DCH -2 2 1.12829 0.0147748 1400 1 0.0637763 0 0.0001 0 1
     292      1 DCH -2 2 1.14306 0.0147748 1400 1 -0.0646092 0 0.0001 0 1
     293      1 DCH -2 2 1.15784 0.0147748 1400 1 0.0654419 0 0.0001 0 1
     294      1 DCH -2 2 1.17261 0.0147748 1400 1 -0.0662746 0 0.0001 0 1
     295      1 DCH -2 2 1.18739 0.0147748 1400 1 0.0671071 0 0.0001 0 1
     296      1 DCH -2 2 1.20216 0.0147748 1400 1 -0.0679396 0 0.0001 0 1
     297      1 DCH -2 2 1.21694 0.0147748 1400 1 0.068772 0 0.0001 0 1
     298      1 DCH -2 2 1.23171 0.0147748 1400 1 -0.0696042 0 0.0001 0 1
     299      1 DCH -2 2 1.24649 0.0147748 1400 1 0.0704364 0 0.0001 0 1
     300      1 DCH -2 2 1.26126 0.0147748 1400 1 -0.0712685 0 0.0001 0 1
     301      1 DCH -2 2 1.27604 0.0147748 1400 1 0.0721005 0 0.0001 0 1
     302      1 DCH -2 2 1.29081 0.0147748 1400 1 -0.0729324 0 0.0001 0 1
     303      1 DCH -2 2 1.30559 0.0147748 1400 1 0.0737642 0 0.0001 0 1
     304      1 DCH -2 2 1.32036 0.0147748 1400 1 -0.0745958 0 0.0001 0 1
     305      1 DCH -2 2 1.33514 0.0147748 1400 1 0.0754274 0 0.0001 0 1
     306      1 DCH -2 2 1.34991 0.0147748 1400 1 -0.0762589 0 0.0001 0 1
     307      1 DCH -2 2 1.36468 0.0147748 1400 1 0.0770903 0 0.0001 0 1
     308      1 DCH -2 2 1.37946 0.0147748 1400 1 -0.0779215 0 0.0001 0 1
     309      1 DCH -2 2 1.39423 0.0147748 1400 1 0.0787527 0 0.0001 0 1
     310      1 DCH -2 2 1.40901 0.0147748 1400 1 -0.0795837 0 0.0001 0 1
     311      1 DCH -2 2 1.42378 0.0147748 1400 1 0.0804147 0 0.0001 0 1
     312      1 DCH -2 2 1.43856 0.0147748 1400 1 -0.0812455 0 0.0001 0 1
     313      1 DCH -2 2 1.45333 0.0147748 1400 1 0.0820762 0 0.0001 0 1
     314      1 DCH -2 2 1.46811 0.0147748 1400 1 -0.0829068 0 0.0001 0 1
     315      1 DCH -2 2 1.48288 0.0147748 1400 1 0.0837373 0 0.0001 0 1
     316      1 DCH -2 2 1.49766 0.0147748 1400 1 -0.0845677 0 0.0001 0 1
     317      1 DCH -2 2 1.51243 0.0147748 1400 1 0.0853979 0 0.0001 0 1
     318      1 DCH -2 2 1.52721 0.0147748 1400 1 -0.086228 0 0.0001 0 1
     319      1 DCH -2 2 1.54198 0.0147748 1400 1 0.087058 0 0.0001 0 1
     320      1 DCH -2 2 1.55676 0.0147748 1400 1 -0.0878879 0 0.0001 0 1
     321      1 DCH -2 2 1.57153 0.0147748 1400 1 0.0887177 0 0.0001 0 1
     322      1 DCH -2 2 1.58631 0.0147748 1400 1 -0.0895474 0 0.0001 0 1
     323      1 DCH -2 2 1.60108 0.0147748 1400 1 0.0903769 0 0.0001 0 1
     324      1 DCH -2 2 1.61586 0.0147748 1400 1 -0.0912063 0 0.0001 0 1
     325      1 DCH -2 2 1.63063 0.0147748 1400 1 0.0920356 0 0.0001 0 1
     326      1 DCH -2 2 1.64541 0.0147748 1400 1 -0.0928647 0 0.0001 0 1
     327      1 DCH -2 2 1.66018 0.0147748 1400 1 0.0936937 0 0.0001 0 1
     328      1 DCH -2 2 1.67495 0.0147748 1400 1 -0.0945226 0 0.0001 0 1
     329      1 DCH -2 2 1.68973 0.0147748 1400 1 0.0953514 0 0.0001 0 1
     330      1 DCH -2 2 1.7045 0.0147748 1400 1 -0.09618 0 0.0001 0 1
     331      1 DCH -2 2 1.71928 0.0147748 1400 1 0.0970085 0 0.0001 0 1
     332      1 DCH -2 2 1.73405 0.0147748 1400 1 -0.0978369 0 0.0001 0 1
     333      1 DCH -2 2 1.74883 0.0147748 1400 1 0.0986651 0 0.0001 0 1
     334      1 DCH -2 2 1.7636 0.0147748 1400 1 -0.0994932 0 0.0001 0 1
     335      1 DCH -2 2 1.77838 0.0147748 1400 1 0.100321 0 0.0001 0 1
     336      1 DCH -2 2 1.79315 0.0147748 1400 1 -0.101149 0 0.0001 0 1
     337      1 DCH -2 2 1.80793 0.0147748 1400 1 0.101977 0 0.0001 0 1
     338      1 DCH -2 2 1.8227 0.0147748 1400 1 -0.102804 0 0.0001 0 1
     339      1 DCH -2 2 1.83748 0.0147748 1400 1 0.103632 0 0.0001 0 1
     340      1 DCH -2 2 1.85225 0.0147748 1400 1 -0.104459 0 0.0001 0 1
     341      1 DCH -2 2 1.86703 0.0147748 1400 1 0.105286 0 0.0001 0 1
     342      1 DCH -2 2 1.8818 0.0147748 1400 1 -0.106113 0 0.0001 0 1
     343      1 DCH -2 2 1.89658 0.0147748 1400 1 0.10694 0 0.0001 0 1
     344      1 DCH -2 2 1.91135 0.0147748 1400 1 -0.107766 0 0.0001 0 1
     345      1 DCH -2 2 1.92613 0.0147748 1400 1 0.108593 0 0.0001 0 1
     346      1 DCH -2 2 1.9409 0.0147748 1400 1 -0.109419 0 0.0001 0 1
     347      1 DCH -2 2 1.95568 0.0147748 1400 1 0.110246 0 0.0001 0 1
     348      1 DCH -2 2 1.97045 0.0147748 1400 1 -0.111072 0 0.0001 0 1
     349      1 DCH -2 2 1.98523 0.0147748 1400 1 0.111898 0 0.0001 0 1
     350      1 DCH -2 2 2 0.0147748 1400 1 -0.112723 0 0.0001 0 1
     351      1 DCHCANO $DCHZMIN $DCHZMAX $DCHRMAX $DCHRMAX 0.02 1.667 0 0 0 0 0 0
     352      1 BSILWRP -2.35 2.35 2.04 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
     353      1 BSILWRP -2.35 2.35 2.06 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
     354      1 MAG -2.5 2.5 2.25 0.05 0.0658 0 0 0 0 0 0
     355      1 BPRESH -2.55 2.55 2.45 0.02 1 2 0 1.5708 7e-005 0.01 1
     356      2 DCHWALL $DCHRMIN $DCHRMAX $DCHZMAX 0.25 5.55 0 0 0 0 0 0
     357      2 DCHWALL $DCHRMIN $DCHRMAX $DCHZMIN 0.25 5.55 0 0 0 0 0 0
     358      2 FSILWRP 0.354 2.02 -2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
     359      2 FSILWRP 0.35 2.02 -2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
     360      2 FSILWRP 0.35 2.02 2.3 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
     361      2 FSILWRP 0.354 2.02 2.32 0.00047 0.0937 2 0 1.5708 7e-006 9e-005 1
     362      2 FRAD 0.38 2.09 2.49 0.0043 0.005612 0 0 0 0 0 0
     363      2 FRAD 0.38 2.09 -2.49 0.0043 0.005612 0 0 0 0 0 0
     364      2 FPRESH 0.39 2.43 -2.55 0.02 1 2 0 1.5708 7e-005 0.01 1
     365      2 FPRESH 0.39 2.43 2.55 0.02 1 2 0 1.5708 7e-005 0.01 1
     366    }
     367
     368}
     369
     370###################
     371# Cluster Counting
     372###################
     373
     374module ClusterCounting ClusterCounting {
     375
     376  add InputArray TrackSmearing/tracks
     377  set OutputArray tracks
     378
     379  set Bz $B
     380
     381  ## check that these are consistent with DCHCANI/DCHNANO parameters in TrackCovariance module
     382  set Rmin $DCHRMIN
     383  set Rmax $DCHRMAX
     384  set Zmin $DCHZMIN
     385  set Zmax $DCHZMAX
     386
     387  # gas mix option:
     388  # 0:  Helium 90% - Isobutane 10%
     389  # 1:  Helium 100%
     390  # 2:  Argon 50% - Ethane 50%
     391  # 3:  Argon 100%
     392
     393  set GasOption 0
     394
     395}
     396
     397
     398########################################
     399#   Time Smearing MIP
     400########################################
     401
     402module TimeSmearing TimeSmearing {
     403  set InputArray ClusterCounting/tracks
     404  set OutputArray tracks
     405
     406  # assume constant 30 ps resolution for now
     407  set TimeResolution {
     408                       (abs(eta) > 0.0 && abs(eta) <= 3.0)* 30E-12
     409                     }
     410}
     411
     412
     413########################################
     414#   Time Of Flight Measurement
     415########################################
     416
     417module TimeOfFlight TimeOfFlight {
     418  set InputArray TimeSmearing/tracks
     419  set VertexInputArray TruthVertexFinder/vertices
     420
     421  set OutputArray tracks
     422
     423  # 0: assume vertex time tV from MC Truth (ideal case)
     424  # 1: assume vertex time tV = 0
     425  # 2: calculate vertex time as vertex TOF, assuming tPV=0
     426
     427  set VertexTimeMode 0
     428}
     429
     430##############
     431# Track merger
     432##############
     433
    193434module Merger TrackMerger {
    194435# add InputArray InputArray
    195   add InputArray ChargedHadronMomentumSmearing/chargedHadrons
    196   add InputArray ElectronMomentumSmearing/electrons
    197   add InputArray MuonMomentumSmearing/muons
     436  add InputArray TimeOfFlight/tracks
    198437  set OutputArray tracks
    199438}
    200439
    201440
    202 #############                                                                                                                         
    203 # Calorimeter                                                                                                                                           
    204 #############                                                                                                                                           
     441######################
     442# Looper Selection
     443######################
     444
     445module Efficiency ForwardLooperTracks  {
     446  set InputArray TrackMerger/tracks
     447  set OutputArray tracks
     448  set UseMomentumVector False
     449
     450  ## select looping tracks that end up in position |eta| > 3.142 (lost by calo)
     451  set EfficiencyFormula {
     452    (abs(eta) > 3.0 )                                 * (1.000) +
     453    (abs(eta) <= 3.0 )                                * (0.000)
     454  }
     455
     456}
     457
     458
     459#############
     460# Calorimeter
     461#############
    205462module DualReadoutCalorimeter Calorimeter {
    206463  set ParticleInputArray ParticlePropagator/stableParticles
     
    216473  set ECalEnergyMin 0.5
    217474  set HCalEnergyMin 0.5
     475  set ECalEnergySignificanceMin 3.0
     476  set HCalEnergySignificanceMin 3.0
     477
    218478  set EnergyMin 0.5
    219   set ECalEnergySignificanceMin 1.0
    220   set HCalEnergySignificanceMin 1.0
    221   set EnergySignificanceMin 1.0
    222 
    223   set SmearTowerCenter true
     479  set EnergySignificanceMin 3.0
     480
     481  #set SmearTowerCenter true
     482  set SmearTowerCenter false
    224483    set pi [expr {acos(-1)}]
    225484
    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:                                                                                       
     485    # Lists of the edges of each tower in eta and phi;
     486    # each list starts with the lower edge of the first tower;
     487    # the list ends with the higher edged of the last tower.
     488    # Barrel:  deta=0.02 towers up to |eta| <= 0.88 ( up to 45°)
     489    # Endcaps: deta=0.02 towers up to |eta| <= 3.0 (8.6° = 100 mrad)
     490    # Cell size: about 6 cm x 6 cm
     491
     492    #barrel:
    234493    set PhiBins {}
    235494    for {set i -120} {$i <= 120} {incr i} {
    236495        add PhiBins [expr {$i * $pi/120}]
    237496    }
    238     #deta=0.02 units for |eta| <= 0.88                                                             
     497    #deta=0.02 units for |eta| <= 0.88
    239498    for {set i -44} {$i < 45} {incr i} {
    240499        set eta [expr {$i * 0.02}]
     
    242501    }
    243502
    244     #endcaps:                                                                                       
     503    #endcaps:
    245504    set PhiBins {}
    246505    for {set i -120} {$i <= 120} {incr i} {
    247506        add PhiBins [expr {$i* $pi/120}]
    248507    }
    249     #deta=0.02 units for 0.88 < |eta| <= 3.0                                                       
    250     #first, from -3.0 to -0.88                                                                     
    251     for {set i 1} {$i <=106} {incr i} {
     508    #deta=0.02 units for 0.88 < |eta| <= 3.0
     509    #first, from -3.0 to -0.88
     510    for {set i 0} {$i <=106} {incr i} {
    252511        set eta [expr {-3.00 + $i * 0.02}]
    253512        add EtaPhiBins $eta $PhiBins
    254513    }
    255     #same for 0.88 to 3.0                                                                           
     514    #same for 0.88 to 3.0
    256515    for  {set i 1} {$i <=106} {incr i} {
    257516        set eta [expr {0.88 + $i * 0.02}]
     
    259518    }
    260519
    261     # default energy fractions {abs(PDG code)} {Fecal Fhcal}                                                                                 
     520    # default energy fractions {abs(PDG code)} {Fecal Fhcal}
    262521    add EnergyFraction {0} {0.0 1.0}
    263     # energy fractions for e, gamma and pi0                                                                                                           
     522    # energy fractions for e, gamma and pi0
    264523    add EnergyFraction {11} {1.0 0.0}
    265524    add EnergyFraction {22} {1.0 0.0}
    266525    add EnergyFraction {111} {1.0 0.0}
    267     # energy fractions for muon, neutrinos and neutralinos                                                                             
     526    # energy fractions for muon, neutrinos and neutralinos
    268527    add EnergyFraction {12} {0.0 0.0}
    269528    add EnergyFraction {13} {0.0 0.0}
     
    275534    add EnergyFraction {1000035} {0.0 0.0}
    276535    add EnergyFraction {1000045} {0.0 0.0}
    277     # energy fractions for K0short and Lambda                                                                                                           
     536    # energy fractions for K0short and Lambda
    278537    add EnergyFraction {310} {0.3 0.7}
     538    add EnergyFraction {130} {0.3 0.7}
    279539    add EnergyFraction {3122} {0.3 0.7}
    280540
    281541
    282     # set ECalResolutionFormula {resolution formula as a function of eta and energy}                               
     542    # set ECalResolutionFormula {resolution formula as a function of eta and energy}
    283543    set ECalResolutionFormula {
    284544    (abs(eta) <= 0.88 )                     * sqrt(energy^2*0.01^2 + energy*0.11^2)+
     
    286546    }
    287547
    288     # set HCalResolutionFormula {resolution formula as a function of eta and energy}                                               
     548    # set HCalResolutionFormula {resolution formula as a function of eta and energy}
    289549    set HCalResolutionFormula {
    290550    (abs(eta) <= 0.88 )                     * sqrt(energy^2*0.01^2 + energy*0.30^2)+
     
    293553}
    294554
     555########################################
     556#   Time Smearing Neutrals
     557########################################
     558
     559module TimeSmearing TimeSmearingNeutrals {
     560  set InputArray Calorimeter/eflowNeutralHadrons
     561  set OutputArray eflowNeutralHadrons
     562
     563  # assume constant 30 ps resolution for now
     564  set TimeResolution {
     565                       (abs(eta) > 0.0 && abs(eta) <= 3.0)* 30E-12
     566                     }
     567}
     568
     569########################################
     570#   Time Of Flight Measurement
     571########################################
     572
     573module TimeOfFlight TimeOfFlightNeutralHadron {
     574  set InputArray TimeSmearingNeutrals/eflowNeutralHadrons
     575  set VertexInputArray TruthVertexFinder/vertices
     576
     577  set OutputArray eflowNeutralHadrons
     578
     579  # 0: assume vertex time tV from MC Truth (ideal case)
     580  # 1: assume vertex time tV = 0
     581  # 2: calculate vertex time as vertex TOF, assuming tPV=0
     582
     583  ## TBF (add option to take hard vertex time)
     584  set VertexTimeMode 1
     585}
     586
     587
     588############################
     589# Energy flow track merger
     590############################
     591
     592module Merger EFlowTrackMerger {
     593# add InputArray InputArray
     594  add InputArray Calorimeter/eflowTracks
     595  add InputArray ForwardLooperTracks/tracks
     596  set OutputArray eflowTracks
     597}
     598
     599
     600
    295601####################
    296602# Energy flow merger
     
    299605module Merger EFlowMerger {
    300606# add InputArray InputArray
    301   add InputArray Calorimeter/eflowTracks
     607  add InputArray EFlowTrackMerger/eflowTracks
    302608  add InputArray Calorimeter/eflowPhotons
    303   add InputArray Calorimeter/eflowNeutralHadrons
     609  add InputArray TimeOfFlightNeutralHadron/eflowNeutralHadrons
    304610  set OutputArray eflow
    305611}
     612
    306613
    307614###################
     
    337644  set PTMin 0.5
    338645
    339   set PTRatioMax 999.
     646  set PTRatioMax 9999.
    340647}
    341648
     
    345652
    346653module PdgCodeFilter ElectronFilter {
    347   set InputArray Calorimeter/eflowTracks
     654  set InputArray EFlowTrackMerger/eflowTracks
    348655  set OutputArray electrons
    349656  set Invert true
     
    352659}
    353660
     661#################
     662# Muon filter
     663#################
     664
     665module PdgCodeFilter MuonFilter {
     666  set InputArray EFlowTrackMerger/eflowTracks
     667  set OutputArray muons
     668  set Invert true
     669  add PdgCode {13}
     670  add PdgCode {-13}
     671}
     672
     673
    354674#####################
    355675# Electron efficiency
     
    363683
    364684  # efficiency formula for electrons
    365   set EfficiencyFormula {         
     685  set EfficiencyFormula {
    366686        (energy < 2.0)                                         * (0.000)+
    367687        (energy >= 2.0) * (abs(eta) <= 0.88)                   * (0.99) +
     
    385705  set PTMin 0.5
    386706
    387   set PTRatioMax 0.12
     707  set PTRatioMax 9999
    388708}
    389709
     
    393713
    394714module Efficiency MuonEfficiency {
    395   set InputArray MuonMomentumSmearing/muons
     715  set InputArray MuonFilter/muons
    396716  set OutputArray muons
    397717
     
    399719
    400720  # efficiency formula for muons
    401   set EfficiencyFormula {                                   
     721  set EfficiencyFormula {
    402722        (energy < 2.0)                                         * (0.000)+
    403723        (energy >= 2.0) * (abs(eta) <= 0.88)                   * (0.99) +
     
    421741  set PTMin 0.5
    422742
    423   set PTRatioMax 0.25
     743  set PTRatioMax 9999.
    424744}
    425745
     
    473793module FastJetFinder GenJetFinder {
    474794  set InputArray NeutrinoFilter/filteredParticles
    475 
    476795  set OutputArray jets
    477796
    478   # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
    479   set JetAlgorithm 6
    480   set ParameterR 0.4
     797  set JetAlgorithm 10
     798  set ParameterR 1.5
     799  set ParameterP -1.0
    481800  set JetPTMin 1.0
     801
    482802}
    483803
     
    504824
    505825  # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
    506   set JetAlgorithm 6
    507   set ParameterR 0.4
     826  set JetAlgorithm 10
     827  set ParameterR 1.5
     828  set ParameterP -1.0
    508829  set JetPTMin 1.0
     830
     831
    509832}
    510833
     
    518841
    519842  # scale formula for jets
    520   set ScaleFormula {1.08}
     843  set ScaleFormula {1.00}
    521844}
    522845
     
    547870
    548871  # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
    549  
     872
    550873  # default efficiency formula (misidentification rate)
    551874  add EfficiencyFormula {0} {0.01}
     
    578901
    579902
    580 #####################################################
    581 # Find uniquely identified photons/electrons/tau/jets
    582 #####################################################
    583 
    584 module UniqueObjectFinder UniqueObjectFinder {
    585 # earlier arrays take precedence over later ones
    586 # add InputArray InputArray OutputArray
    587   add InputArray PhotonIsolation/photons photons
    588   add InputArray ElectronIsolation/electrons electrons
    589   add InputArray MuonIsolation/muons muons
    590   add InputArray JetEnergyScale/jets jets
    591 }
    592 
    593 
    594903
    595904##################
     
    603912module TreeWriter TreeWriter {
    604913    # add Branch InputArray BranchName BranchClass
    605    
     914
    606915    add Branch Delphes/allParticles Particle GenParticle
    607 
    608     add Branch TrackMerger/tracks Track Track
    609     add Branch Calorimeter/towers Tower Tower
    610    
    611     add Branch Calorimeter/eflowTracks EFlowTrack Track
     916    add Branch TruthVertexFinder/vertices GenVertex Vertex
     917
     918    add Branch EFlowTrackMerger/eflowTracks EFlowTrack Track
     919    add Branch TrackSmearing/tracks Track Track
    612920    add Branch Calorimeter/eflowPhotons EFlowPhoton Tower
    613     add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
    614 
    615     add Branch Calorimeter/photons CaloPhoton Photon
    616     add Branch PhotonEfficiency/photons PhotonEff Photon
    617     add Branch PhotonIsolation/photons PhotonIso Photon
    618    
     921    add Branch TimeOfFlightNeutralHadron/eflowNeutralHadrons EFlowNeutralHadron Tower
     922
     923    add Branch EFlowMerger/eflow ParticleFlowCandidate ParticleFlowCandidate
     924
     925    add Branch ElectronEfficiency/electrons Electron Electron
     926    add Branch MuonEfficiency/muons Muon Muon
     927    add Branch PhotonEfficiency/photons Photon Photon
     928
     929    add Branch JetEnergyScale/jets Jet Jet
     930    add Branch MissingET/momentum MissingET MissingET
     931
    619932    add Branch GenJetFinder/jets GenJet Jet
    620933    add Branch GenMissingET/momentum GenMissingET MissingET
    621    
    622     add Branch UniqueObjectFinder/jets Jet Jet
    623     add Branch UniqueObjectFinder/electrons Electron Electron
    624     add Branch UniqueObjectFinder/photons Photon Photon
    625     add Branch UniqueObjectFinder/muons Muon Muon
    626    
    627     add Branch JetEnergyScale/jets AntiKtJet Jet 
    628    
    629     add Branch MissingET/momentum MissingET MissingET
    630     add Branch ScalarHT/energy ScalarHT ScalarHT
    631 }
    632 
     934
     935    # add Info InfoName InfoValue
     936    add Info Bz $B
     937}
  • classes/CMakeLists.txt

    ra5af1df rd612dec  
    99list(REMOVE_ITEM headers ${CMAKE_CURRENT_SOURCE_DIR}/ClassesLinkDef.h)
    1010
    11 DELPHES_GENERATE_DICTIONARY(ClassesDict
     11# the macro invocation for ROOT6 ensures that the headers are relocatable
     12if (NOT ${ROOT_VERSION} VERSION_LESS "6.0.0")
     13  DELPHES_GENERATE_DICTIONARY(ClassesDict
     14    classes/DelphesModule.h
     15    classes/DelphesFactory.h
     16    classes/SortableObject.h
     17    classes/DelphesClasses.h
     18    LINKDEF ClassesLinkDef.h
     19  )
     20else()
     21  # for ROOT5 the above fails, keep the following as workaround
     22  DELPHES_GENERATE_DICTIONARY(ClassesDict
    1223  ${CMAKE_CURRENT_SOURCE_DIR}/DelphesModule.h
    1324  ${CMAKE_CURRENT_SOURCE_DIR}/DelphesFactory.h
    1425  ${CMAKE_CURRENT_SOURCE_DIR}/SortableObject.h
    1526  ${CMAKE_CURRENT_SOURCE_DIR}/DelphesClasses.h
    16   LINKDEF ClassesLinkDef.h
    17 )
     27    LINKDEF ClassesLinkDef.h
     28  )
     29endif()
    1830
    1931add_library(classes OBJECT ${sources} ClassesDict.cxx)
  • classes/ClassesLinkDef.h

    ra5af1df rd612dec  
    6262#pragma link C++ class Track+;
    6363#pragma link C++ class Tower+;
     64#pragma link C++ class ParticleFlowCandidate+;
    6465#pragma link C++ class HectorHit+;
    6566
  • classes/DelphesClasses.cc

    ra5af1df rd612dec  
    2828
    2929#include "classes/DelphesClasses.h"
    30 
    3130#include "classes/DelphesFactory.h"
    3231#include "classes/SortableObject.h"
     
    4039CompBase *Track::fgCompare = CompPT<Track>::Instance();
    4140CompBase *Tower::fgCompare = CompE<Tower>::Instance();
     41CompBase *ParticleFlowCandidate::fgCompare = CompE<ParticleFlowCandidate>::Instance();
    4242CompBase *HectorHit::fgCompare = CompE<HectorHit>::Instance();
    4343CompBase *Vertex::fgCompare = CompSumPT2<Vertex>::Instance();
     
    104104{
    105105  TLorentzVector vec;
    106   vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
    107   return vec;
    108 }
     106  vec.SetPtEtaPhiM(PT, Eta, Phi, Mass);
     107  return vec;
     108}
     109
     110//------------------------------------------------------------------------------
     111
     112TMatrixDSym Track::CovarianceMatrix() const
     113{
     114  TMatrixDSym Cv;
     115  Cv.ResizeTo(5, 5);
     116
     117  // convert diagonal term to original units
     118  Cv(0, 0)=TMath::Power(ErrorD0, 2.);
     119  Cv(1, 1)=TMath::Power(ErrorPhi, 2.);
     120  Cv(2, 2)=TMath::Power(ErrorC, 2.);
     121  Cv(3, 3)=TMath::Power(ErrorDZ, 2.);
     122  Cv(4, 4)=TMath::Power(ErrorCtgTheta, 2.);
     123
     124  // off diagonal terms
     125  Cv(0, 1)=ErrorD0Phi;
     126  Cv(0, 2)=ErrorD0C;
     127  Cv(0, 3)=ErrorD0DZ;
     128  Cv(0, 4)=ErrorD0CtgTheta;
     129  Cv(1, 2)=ErrorPhiC;
     130  Cv(1, 3)=ErrorPhiDZ;
     131  Cv(1, 4)=ErrorPhiCtgTheta;
     132  Cv(2, 3)=ErrorCDZ;
     133  Cv(2, 4)=ErrorCCtgTheta;
     134  Cv(3, 4)=ErrorDZCtgTheta;
     135
     136  Cv(1, 0)=Cv(0, 1);
     137  Cv(2, 0)=Cv(0, 2);
     138  Cv(3, 0)=Cv(0, 3);
     139  Cv(4, 0)=Cv(0, 4);
     140  Cv(2, 1)=Cv(1, 2);
     141  Cv(3, 1)=Cv(1, 3);
     142  Cv(4, 1)=Cv(1, 4);
     143  Cv(3, 2)=Cv(2, 3);
     144  Cv(4, 2)=Cv(2, 4);
     145  Cv(4, 3)=Cv(3, 4);
     146
     147  return Cv;
     148}
     149
    109150
    110151//------------------------------------------------------------------------------
     
    115156  vec.SetPtEtaPhiM(ET, Eta, Phi, 0.0);
    116157  return vec;
     158}
     159
     160//------------------------------------------------------------------------------
     161
     162TLorentzVector ParticleFlowCandidate::P4() const
     163{
     164  TLorentzVector vec;
     165  vec.SetPtEtaPhiM(PT, Eta, Phi, Mass);
     166  return vec;
     167}
     168
     169//------------------------------------------------------------------------------
     170
     171TMatrixDSym ParticleFlowCandidate::CovarianceMatrix() const
     172{
     173  TMatrixDSym Cv;
     174  Cv.ResizeTo(5, 5);
     175
     176  // convert diagonal term to original units
     177  Cv(0, 0)=TMath::Power(ErrorD0, 2.);
     178  Cv(1, 1)=TMath::Power(ErrorPhi, 2.);
     179  Cv(2, 2)=TMath::Power(ErrorC, 2.);
     180  Cv(3, 3)=TMath::Power(ErrorDZ, 2.);
     181  Cv(4, 4)=TMath::Power(ErrorCtgTheta, 2.);
     182
     183  // off diagonal terms
     184  Cv(0, 1)=ErrorD0Phi;
     185  Cv(0, 2)=ErrorD0C;
     186  Cv(0, 3)=ErrorD0DZ;
     187  Cv(0, 4)=ErrorD0CtgTheta;
     188  Cv(1, 2)=ErrorPhiC;
     189  Cv(1, 3)=ErrorPhiDZ;
     190  Cv(1, 4)=ErrorPhiCtgTheta;
     191  Cv(2, 3)=ErrorCDZ;
     192  Cv(2, 4)=ErrorCCtgTheta;
     193  Cv(3, 4)=ErrorDZCtgTheta;
     194
     195  Cv(1, 0)=Cv(0, 1);
     196  Cv(2, 0)=Cv(0, 2);
     197  Cv(3, 0)=Cv(0, 3);
     198  Cv(4, 0)=Cv(0, 4);
     199  Cv(2, 1)=Cv(1, 2);
     200  Cv(3, 1)=Cv(1, 3);
     201  Cv(4, 1)=Cv(1, 4);
     202  Cv(3, 2)=Cv(2, 3);
     203  Cv(4, 2)=Cv(2, 4);
     204  Cv(4, 3)=Cv(3, 4);
     205
     206  return Cv;
    117207}
    118208
     
    125215  Flavor(0), FlavorAlgo(0), FlavorPhys(0),
    126216  BTag(0), BTagAlgo(0), BTagPhys(0),
    127   TauTag(0), TauWeight(0.0), Eem(0.0), Ehad(0.0),
     217  TauTag(0), TauWeight(0.0), Eem(0.0), Ehad(0.0), Etrk(0.0),
    128218  DeltaEta(0.0), DeltaPhi(0.0),
    129219  Momentum(0.0, 0.0, 0.0, 0.0),
     
    133223  PositionError(0.0, 0.0, 0.0, 0.0),
    134224  Area(0.0, 0.0, 0.0, 0.0),
     225  TrackCovariance(5),
    135226  L(0),
    136227  D0(0), ErrorD0(0),
    137228  DZ(0), ErrorDZ(0),
    138229  P(0), ErrorP(0),
     230  C(0), ErrorC(0),
    139231  PT(0), ErrorPT(0),
    140232  CtgTheta(0), ErrorCtgTheta(0),
    141233  Phi(0), ErrorPhi(0),
    142234  Xd(0), Yd(0), Zd(0),
     235  Nclusters(0.0),
     236  dNdx(0.0),
    143237  TrackResolution(0),
    144238  NCharged(0),
    145239  NNeutrals(0),
     240  NeutralEnergyFraction(0),  // charged energy fraction
     241  ChargedEnergyFraction(0),  // neutral energy fraction
    146242  Beta(0),
    147243  BetaStar(0),
     
    163259  ExclYmerge45(0),
    164260  ExclYmerge56(0),
     261  ParticleDensity(0),
    165262  fFactory(0),
    166263  fArray(0)
     
    284381  object.Eem = Eem;
    285382  object.Ehad = Ehad;
     383  object.Etrk = Etrk;
    286384  object.Edges[0] = Edges[0];
    287385  object.Edges[1] = Edges[1];
     
    304402  object.P = P;
    305403  object.ErrorP = ErrorP;
     404  object.C = C;
     405  object.ErrorC = ErrorC;
    306406  object.PT = PT;
    307407  object.ErrorPT = ErrorPT;
     
    313413  object.Yd = Yd;
    314414  object.Zd = Zd;
     415  object.Nclusters = Nclusters;
     416  object.dNdx = dNdx;
    315417  object.TrackResolution = TrackResolution;
    316418  object.NCharged = NCharged;
    317419  object.NNeutrals = NNeutrals;
     420  object.NeutralEnergyFraction = NeutralEnergyFraction;
     421  object.ChargedEnergyFraction = ChargedEnergyFraction;
    318422  object.Beta = Beta;
    319423  object.BetaStar = BetaStar;
     
    366470  object.SoftDroppedSubJet1 = SoftDroppedSubJet1;
    367471  object.SoftDroppedSubJet2 = SoftDroppedSubJet2;
    368 
     472  object.TrackCovariance = TrackCovariance;
    369473  object.fFactory = fFactory;
    370474  object.fArray = 0;
     
    413517  Eem = 0.0;
    414518  Ehad = 0.0;
     519  Etrk = 0.0;
    415520  Edges[0] = 0.0;
    416521  Edges[1] = 0.0;
     
    424529  DecayPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);
    425530  Area.SetXYZT(0.0, 0.0, 0.0, 0.0);
     531  TrackCovariance.Zero();
    426532  L = 0.0;
    427533  ErrorT = 0.0;
     
    432538  P = 0.0;
    433539  ErrorP = 0.0;
     540  C = 0.0;
     541  ErrorC = 0.0;
    434542  PT = 0.0;
    435543  ErrorPT = 0.0;
     
    441549  Yd = 0.0;
    442550  Zd = 0.0;
     551  Nclusters = 0.0;
     552  dNdx = 0.0;
    443553  TrackResolution = 0.0;
    444554  NCharged = 0;
  • classes/DelphesClasses.h

    ra5af1df rd612dec  
    3333
    3434#include "TLorentzVector.h"
     35#include "TMatrixDSym.h"
    3536#include "TObject.h"
    3637#include "TRef.h"
     
    150151  Float_t Eta; // particle pseudorapidity
    151152  Float_t Phi; // particle azimuthal angle
    152 
    153153  Float_t Rapidity; // particle rapidity
    154   Float_t CtgTheta; // particle cotangent of theta
    155 
    156   Float_t D0; // particle transverse impact parameter
    157   Float_t DZ; // particle longitudinal impact parameter
    158154
    159155  Float_t T; // particle vertex position (t component) | hepevt.vhep[number][3]
     
    394390  Int_t NCharged; // number of charged constituents
    395391  Int_t NNeutrals; // number of neutral constituents
     392
     393  Float_t NeutralEnergyFraction;  // charged energy fraction
     394  Float_t ChargedEnergyFraction;  // neutral energy fraction
     395
    396396  Float_t Beta; // (sum pt of charged pile-up constituents)/(sum pt of charged constituents)
    397397  Float_t BetaStar; // (sum pt of charged constituents coming from hard interaction)/(sum pt of charged constituents)
     
    445445  Float_t Phi; // track azimuthal angle
    446446  Float_t CtgTheta; // track cotangent of theta
     447  Float_t C; // track curvature inverse
     448  Float_t Mass; // particle mass
    447449
    448450  Float_t EtaOuter; // track pseudorapidity at the tracker edge
     
    466468  Float_t D0; // track transverse impact parameter
    467469  Float_t DZ; // track longitudinal impact parameter
     470  Float_t Nclusters; // Number of ionization clusters
     471  Float_t dNdx; // Number of ionization clusters
    468472
    469473  Float_t ErrorP; // track momentum error
     
    475479  Float_t ErrorD0; // track transverse impact parameter error
    476480  Float_t ErrorDZ; // track longitudinal impact parameter error
     481  Float_t ErrorC; // track curvature error
     482
     483  // track covariance off-diagonal terms
     484  Float_t ErrorD0Phi;
     485  Float_t ErrorD0C;
     486  Float_t ErrorD0DZ;
     487  Float_t ErrorD0CtgTheta;
     488  Float_t ErrorPhiC;
     489  Float_t ErrorPhiDZ;
     490  Float_t ErrorPhiCtgTheta ;
     491  Float_t ErrorCDZ;
     492  Float_t ErrorCCtgTheta;
     493  Float_t ErrorDZCtgTheta;
    477494
    478495  TRef Particle; // reference to generated particle
     
    484501
    485502  TLorentzVector P4() const;
     503  TMatrixDSym CovarianceMatrix() const;
    486504
    487505  ClassDef(Track, 3)
     
    504522  Float_t Eem; // calorimeter tower electromagnetic energy
    505523  Float_t Ehad; // calorimeter tower hadronic energy
     524  Float_t Etrk; // total charged energy hitting tower
    506525
    507526  Float_t Edges[4]; // calorimeter tower edges
     
    514533  TLorentzVector P4() const;
    515534
    516   ClassDef(Tower, 2)
     535  ClassDef(Tower, 3)
     536};
     537
     538//---------------------------------------------------------------------------
     539
     540class ParticleFlowCandidate: public SortableObject
     541{
     542
     543public:
     544  Int_t PID; // HEP ID number
     545
     546  Int_t Charge; // track charge
     547
     548  Float_t E; // reconstructed energy [GeV]
     549  Float_t P; // track momentum
     550  Float_t PT; // track transverse momentum
     551  Float_t Eta; // track pseudorapidity
     552  Float_t Phi; // track azimuthal angle
     553  Float_t CtgTheta; // track cotangent of theta
     554  Float_t C; // track curvature inverse
     555  Float_t Mass; // particle mass
     556
     557  Float_t EtaOuter; // track pseudorapidity at the tracker edge
     558  Float_t PhiOuter; // track azimuthal angle at the tracker edge
     559
     560  Float_t T; // track vertex position (t component)
     561  Float_t X; // track vertex position (x component)
     562  Float_t Y; // track vertex position (y component)
     563  Float_t Z; // track vertex position (z component)
     564
     565  Float_t TOuter; // track position (t component) at the tracker edge
     566  Float_t XOuter; // track position (x component) at the tracker edge
     567  Float_t YOuter; // track position (y component) at the tracker edge
     568  Float_t ZOuter; // track position (z component) at the tracker edge
     569
     570  Float_t Xd; // X coordinate of point of closest approach to vertex
     571  Float_t Yd; // Y coordinate of point of closest approach to vertex
     572  Float_t Zd; // Z coordinate of point of closest approach to vertex
     573
     574  Float_t L; // track path length
     575  Float_t D0; // track transverse impact parameter
     576  Float_t DZ; // track longitudinal impact parameter
     577  Float_t Nclusters; // Number of ionization clusters
     578  Float_t dNdx; // Number of ionization clusters
     579
     580  Float_t ErrorP; // track momentum error
     581  Float_t ErrorPT; // track transverse momentum error
     582  Float_t ErrorPhi; // track azimuthal angle error
     583  Float_t ErrorCtgTheta; // track cotangent of theta error
     584
     585  Float_t ErrorT; // time measurement error
     586  Float_t ErrorD0; // track transverse impact parameter error
     587  Float_t ErrorDZ; // track longitudinal impact parameter error
     588  Float_t ErrorC; // track curvature error
     589
     590  // track covariance off-diagonal terms
     591  Float_t ErrorD0Phi;
     592  Float_t ErrorD0C;
     593  Float_t ErrorD0DZ;
     594  Float_t ErrorD0CtgTheta;
     595  Float_t ErrorPhiC;
     596  Float_t ErrorPhiDZ;
     597  Float_t ErrorPhiCtgTheta ;
     598  Float_t ErrorCDZ;
     599  Float_t ErrorCCtgTheta;
     600  Float_t ErrorDZCtgTheta;
     601
     602  Int_t VertexIndex; // reference to vertex
     603
     604  static CompBase *fgCompare; //!
     605  const CompBase *GetCompare() const { return fgCompare; }
     606
     607  TLorentzVector P4() const;
     608  TMatrixDSym CovarianceMatrix() const;
     609
     610  Int_t NTimeHits; // number of hits contributing to time measurement
     611
     612  Float_t Eem; // calorimeter tower electromagnetic energy
     613  Float_t Ehad; // calorimeter tower hadronic energy
     614  Float_t Etrk; // total charged energy hitting tower
     615
     616  Float_t Edges[4]; // calorimeter tower edges
     617
     618  TRefArray Particles; // references to generated particles
     619
     620  ClassDef(ParticleFlowCandidate, 3)
     621
    517622};
    518623
     
    610715  Float_t Eem;
    611716  Float_t Ehad;
     717  Float_t Etrk;
    612718
    613719  Float_t Edges[4];
     
    618724
    619725  Float_t L; // path length
     726  Float_t DZ;
     727  Float_t ErrorDZ;
    620728  Float_t ErrorT; // path length
    621729  Float_t D0;
    622730  Float_t ErrorD0;
    623   Float_t DZ;
    624   Float_t ErrorDZ;
     731  Float_t C;
     732  Float_t ErrorC;
    625733  Float_t P;
    626734  Float_t ErrorP;
     
    632740  Float_t ErrorPhi;
    633741
     742  Float_t Nclusters; // Number of ionization clusters
     743  Float_t dNdx; // Number of ionization clusters per unit length
     744
    634745  Float_t Xd;
    635746  Float_t Yd;
     
    649760  Float_t PTD;
    650761  Float_t FracPt[5];
     762  Float_t NeutralEnergyFraction;  // charged energy fraction
     763  Float_t ChargedEnergyFraction;  // neutral energy fraction
     764
    651765
    652766  // Timing information
     
    663777  Float_t SumPtChargedPU;
    664778  Float_t SumPt;
     779
     780  // ACTS compliant 6x6 track covariance (D0, phi, Curvature, dz, ctg(theta))
     781
     782  TMatrixDSym TrackCovariance;
    665783
    666784  // vertex variables
     
    698816  Double_t ExclYmerge56;
    699817
     818  // event characteristics variables
     819  Double_t ParticleDensity; // particle multiplicity density in the proximity of the particle
     820
    700821  static CompBase *fgCompare; //!
    701822  const CompBase *GetCompare() const { return fgCompare; }
  • classes/DelphesFormula.cc

    ra5af1df rd612dec  
    1818
    1919#include "classes/DelphesFormula.h"
     20#include "classes/DelphesClasses.h"
    2021
    2122#include "TString.h"
     
    6364  buffer.ReplaceAll("dz", "[1]");
    6465  buffer.ReplaceAll("ctgTheta", "[2]");
     66  buffer.ReplaceAll("radius", "[3]");
     67  buffer.ReplaceAll("density", "[4]");
    6568
    6669#if ROOT_VERSION_CODE < ROOT_VERSION(6, 3, 0)
     
    7780//------------------------------------------------------------------------------
    7881
    79 Double_t DelphesFormula::Eval(Double_t pt, Double_t eta, Double_t phi,
    80   Double_t energy, Double_t d0, Double_t dz,
    81   Double_t ctgTheta)
     82Double_t DelphesFormula::Eval(Double_t pt, Double_t eta, Double_t phi, Double_t energy, Candidate *candidate)
    8283{
     84
     85  Double_t d0 = 0., dz = 0., ctgTheta = 0., radius = 0., density = 0.;
     86  if (candidate) {
     87    d0 = candidate->D0;
     88    dz = candidate->DZ;
     89    ctgTheta = candidate->CtgTheta;
     90    radius = candidate->Position.Pt();
     91    density = candidate->ParticleDensity;
     92  }
     93   
    8394  Double_t x[4] = {pt, eta, phi, energy};
    84   Double_t params[3] = {d0, dz, ctgTheta};
     95  Double_t params[5] = {d0, dz, ctgTheta, radius, density};
    8596  return EvalPar(x, params);
    8697}
  • classes/DelphesFormula.h

    ra5af1df rd612dec  
    2222#include "TFormula.h"
    2323
     24class Candidate;
     25
    2426class DelphesFormula: public TFormula
    2527{
     
    3335  Int_t Compile(const char *expression);
    3436
    35   Double_t Eval(Double_t pt, Double_t eta = 0, Double_t phi = 0,
    36     Double_t energy = 0, Double_t d0 = 0, Double_t dz = 0,
    37     Double_t ctgTheta = 0);
     37  Double_t Eval(Double_t pt, Double_t eta = 0, Double_t phi = 0, Double_t energy = 0, Candidate *candidate = nullptr);
    3838};
    3939
  • classes/DelphesModule.cc

    ra5af1df rd612dec  
    130130//------------------------------------------------------------------------------
    131131
     132void 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
    132149ExRootResult *DelphesModule::GetPlots()
    133150{
  • classes/DelphesModule.h

    ra5af1df rd612dec  
    5555
    5656  ExRootTreeBranch *NewBranch(const char *name, TClass *cl);
     57  void AddInfo(const char *name, Double_t value);
    5758
    5859  ExRootResult *GetPlots();
  • classes/DelphesStream.cc

    ra5af1df rd612dec  
    106106
    107107//------------------------------------------------------------------------------
     108
     109bool DelphesStream::FindChr(int value)
     110{
     111  char *position;
     112  bool result = false;
     113
     114  position = strchr(fBuffer, value);
     115
     116  if(position)
     117  {
     118    result = true;
     119    fBuffer = position + 1;
     120  }
     121
     122  return result;
     123}
     124
     125//------------------------------------------------------------------------------
     126
     127bool DelphesStream::FindStr(const char *value)
     128{
     129  char *position;
     130  bool result = false;
     131
     132  position = strstr(fBuffer, value);
     133
     134  if(position)
     135  {
     136    result = true;
     137    fBuffer = position + strlen(value);
     138  }
     139
     140  return result;
     141}
     142
     143//------------------------------------------------------------------------------
  • classes/DelphesStream.h

    ra5af1df rd612dec  
    3535  bool ReadDbl(double &value);
    3636  bool ReadInt(int &value);
     37  bool FindChr(int value);
     38  bool FindStr(const char *value);
    3739
    3840private:
  • classes/DelphesTF2.cc

    ra5af1df rd612dec  
    3232{
    3333
    34 #if ROOT_VERSION_CODE >= ROOT_VERSION(6, 3, 0)
     34#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 22, 7)
     35  fFormula = std::unique_ptr<TFormula>(new TFormula());
     36#elif ROOT_VERSION_CODE >= ROOT_VERSION(6, 3, 0)
    3537  fFormula = new TFormula();
    3638#endif
  • converters/hepmc2pileup.cpp

    ra5af1df rd612dec  
    3535#include "classes/DelphesClasses.h"
    3636#include "classes/DelphesFactory.h"
    37 #include "classes/DelphesHepMCReader.h"
     37#include "classes/DelphesHepMC2Reader.h"
    3838#include "classes/DelphesPileUpWriter.h"
    3939
     
    6565  Candidate *candidate = 0;
    6666  DelphesPileUpWriter *writer = 0;
    67   DelphesHepMCReader *reader = 0;
     67  DelphesHepMC2Reader *reader = 0;
    6868  Int_t i;
    6969  Long64_t length, eventCounter;
     
    9898    itParticle = stableParticleOutputArray->MakeIterator();
    9999
    100     reader = new DelphesHepMCReader;
     100    reader = new DelphesHepMC2Reader;
    101101
    102102    i = 2;
  • doc/Makefile.arch

    ra5af1df rd612dec  
    3939OPT2          = -g
    4040else
    41 ifneq ($(findstring debug, $(strip $(shell $(RC) --config))),)
    42 OPT           = -g
    43 OPT2          = -g
    44 else
    4541OPT           = -O
    4642OPT2          = -O2
    47 endif
    4843endif
    4944
     
    5247ROOTLIBS     := $(shell $(RC) --libs)
    5348ROOTGLIBS    := $(shell $(RC) --glibs)
    54 HASTHREAD    := $(shell $(RC) --has-thread)
    55 ROOTCINT     := rootcint
     49ROOTCLING    := rootcling
    5650
    5751ifeq ($(PLATFORM),macosx)
    58 MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
     52ROOTLIBDIR   := $(shell $(RC) --libdir)
     53MACOSX_MAJOR := $(strip $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 1))
     54MACOSX_MINOR := $(strip $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2))
    5955ifeq ($(MACOSX_DEPLOYMENT_TARGET),)
    60 MACOSXTARGET := 10.$(MACOSX_MINOR)
     56MACOSXTARGET := $(MACOSX_MAJOR).$(MACOSX_MINOR)
    6157else
    6258MACOSXTARGET := $(MACOSX_DEPLOYMENT_TARGET)
     
    118114SOFLAGS       = -shared
    119115DllSuf        = a
    120 EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
     116EXPLLINKLIBS  = $(ROOTGLIBS)
    121117endif
    122118
     
    146142LDFLAGS       = $(OPT)
    147143SOFLAGS       = -G
    148 endif
    149 
    150 ifeq ($(ARCH),sgicc)
    151 # SGI
    152 CXX           = CC -n32  -I/usr/include/CC.sgi
    153 CXXFLAGS      = $(OPT)
    154 LD            = CC -n32 -LANG:std  -I/usr/include/CC.sgi
    155 LDFLAGS       = $(OPT)
    156 SOFLAGS       = -shared
    157 endif
    158 
    159 ifeq ($(ARCH),sgicc64)
    160 # SGI
    161 CXX           = CC -64  -I/usr/include/CC.sgi
    162 CXXFLAGS      = $(OPT)
    163 LD            = CC -64 -LANG:std -I/usr/include/CC.sgi
    164 LDFLAGS       = $(OPT)
    165 SOFLAGS       = -shared
    166 endif
    167 
    168 ifeq ($(ARCH),sgigcc)
    169 # SGI 6.x with gcc
    170 CXX           = g++
    171 CXXFLAGS      = $(OPT) -Wall -fPIC
    172 LD            = g++
    173 LDFLAGS       = $(OPT) -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv
    174 SOFLAGS       = -shared
    175 endif
    176 
    177 ifeq ($(ARCH),sgin32gcc)
    178 # SGI 6.x with gcc for n32 ABI
    179 CXX           = g++
    180 CXXFLAGS      = $(OPT) -Wall -fPIC
    181 LD            = g++
    182 LDFLAGS       = $(OPT) -L/usr/lib32 -Wl,-woff,134 -lgen
    183 SOFLAGS       = -shared
    184 endif
    185 
    186 ifeq ($(ARCH),alphagcc)
    187 # Alpha/OSF with gcc
    188 CXX           = g++
    189 CXXFLAGS      = $(OPT2) -Wall -fPIC
    190 LD            = g++
    191 LDFLAGS       = $(OPT2)
    192 SOFLAGS       = -Wl,-expect_unresolved,* -shared
    193 endif
    194 
    195 ifeq ($(ARCH),alphacxx6)
    196 # Alpha/OSF with cxx6
    197 CXX           = cxx
    198 CXXFLAGS      = $(OPT)
    199 LD            = cxx
    200 LDFLAGS       = $(OPT)
    201 SOFLAGS       = -shared -nocxxstd -Wl,-expect_unresolved,*,-msym
    202144endif
    203145
     
    282224endif
    283225
    284 ifeq ($(ARCH),linuxalphagcc)
    285 # Alpha Linux with gcc
    286 CXX           = g++
    287 CXXFLAGS      = $(OPT2) -Wall -fPIC
    288 LD            = g++
    289 LDFLAGS       = $(OPT2)
    290 SOFLAGS       = -shared
    291 endif
    292 
    293 ifeq ($(ARCH),linuxmips)
    294 # GNU/Linux on mips (BE/LE, O32/N32/N64) with gcc
    295 CXX           = g++
    296 CXXFLAGS      = $(OPT2) -Wall -fPIC
    297 LD            = g++
    298 LDFLAGS       = $(OPT2)
    299 SOFLAGS       = -shared
    300 endif
    301 
    302226ifeq ($(ARCH),linuxhppa)
    303227# GNU/Linux on hppa with gcc
     
    318242endif
    319243
     244ifeq ($(ARCH),linuxarm64)
     245# ARMv8-A (AArch64) Linux with gcc and glibc
     246CXX           = g++
     247CXXFLAGS      = $(OPT) -Wall -fPIC
     248LD            = g++
     249LDFLAGS       = $(OPT)
     250SOFLAGS       = -shared
     251endif
     252
    320253ifeq ($(ARCH),freebsd4)
    321254# FreeBSD with glibc
     
    360293LD            = g++
    361294LDFLAGS       = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET)
    362 EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
    363 # The SOFLAGS will be used to create the .dylib,
    364 # the .so will be created separately
    365 ifeq ($(subst $(MACOSX_MINOR),,1234),1234)
     295EXPLLINKLIBS  = $(ROOTGLIBS)
    366296DllSuf        = so
    367 else
    368 DllSuf        = dylib
    369 endif
    370 ifneq ($(subst $(MACOSX_MINOR),,12),12)
    371 LD            = g++
    372 endif
    373297SOFLAGS       = -dynamiclib -single_module -install_name $(CURDIR)/
    374298endif
     
    376300ifeq ($(ARCH),macosxicc)
    377301# MacOS X with Intel icc compiler
    378 ifeq ($(MACOSX_MINOR),5)
    379 MACOSX_MINOR := 4
    380 endif
    381302CXX           = icc
    382303CXXFLAGS      = $(OPT) -fPIC -wd1476
    383304LD            = icpc
    384305LDFLAGS       = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET)
    385 EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
    386 # The SOFLAGS will be used to create the .dylib,
    387 # the .so will be created separately
    388 ifeq ($(subst $(MACOSX_MINOR),,1234),1234)
     306EXPLLINKLIBS  = $(ROOTGLIBS)
    389307DllSuf        = so
    390 else
    391 DllSuf        = dylib
    392 endif
    393308SOFLAGS       = -dynamiclib -single_module -install_name $(CURDIR)/
    394309endif
     
    400315CXXFLAGS      = $(OPT2) -pipe -Wall -W -Woverloaded-virtual
    401316LD            = g++
    402 LDFLAGS       = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET)
    403 EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
    404 # The SOFLAGS will be used to create the .dylib,
    405 # the .so will be created separately
    406 ifeq ($(subst $(MACOSX_MINOR),,1234),1234)
     317LDFLAGS       = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET) -Wl,-rpath,$(ROOTLIBDIR)
     318EXPLLINKLIBS  = $(ROOTGLIBS)
    407319DllSuf        = so
    408 else
    409 DllSuf        = dylib
    410 endif
     320SOFLAGS       = -dynamiclib -single_module -install_name $(CURDIR)/
     321endif
     322
     323ifeq ($(ARCH),macosxarm64)
     324# Apple Silicon running macOS 11.x.
     325CXX           = g++
     326CXXFLAGS      = $(OPT2) -pipe -Wall -W -Woverloaded-virtual
     327LD            = g++
     328LDFLAGS       = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET)  -Wl,-rpath,$(ROOTLIBDIR)
     329EXPLLINKLIBS  = $(ROOTGLIBS)
     330DllSuf        = so
    411331SOFLAGS       = -dynamiclib -single_module -install_name $(CURDIR)/
    412332endif
     
    426346LDOPT         = -debug
    427347else
    428 ifneq ($(findstring debug, $(strip $(shell $(RC) --config))),)
    429 CXXOPT        = -Z7
    430 LDOPT         = -debug
    431 else
    432348CXXOPT        = -O2
    433349LDOPT         = -opt:ref
    434 endif
    435350endif
    436351ROOTINCDIR   := -I$(shell cygpath -m `$(RC) --incdir`)
     
    440355SOFLAGS       = -DLL
    441356
    442 EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
     357EXPLLINKLIBS  = $(ROOTGLIBS)
    443358ifneq (,$(findstring $(VC_MAJOR),14 15))
    444359MT_EXE        = mt -nologo -manifest $@.manifest -outputresource:$@\;1; rm -f $@.manifest
     
    462377SOFLAGS       = -shared -Wl,--enable-auto-image-base \
    463378                -Wl,--export-all-symbols
    464 EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
     379EXPLLINKLIBS  = $(ROOTGLIBS)
    465380endif
    466381
     
    471386CXXFLAGS     += $(ROOTCFLAGS)
    472387LDFLAGS      += $(ROOTLDFLAGS)
    473 LIBS          = $(ROOTLIBS) $(SYSLIBS)
    474 GLIBS         = $(ROOTGLIBS) $(SYSLIBS)
     388LIBS          = $(ROOTLIBS)
     389GLIBS         = $(ROOTGLIBS)
    475390
    476391ifneq ($(ALTCC),)
  • doc/genMakefile.tcl

    ra5af1df rd612dec  
    282282DISPLAYLIB = libDelphesDisplay.lib
    283283
    284 VERSION = $(shell cat VERSION)
     284VERSION = x.y.z
    285285DISTDIR = Delphes-$(VERSION)
    286286DISTTAR = $(DISTDIR).tar.gz
     
    292292executableDeps {converters/*.cpp} {examples/*.cpp} {validation/*.cpp}
    293293
    294 executableDeps {readers/DelphesHepMC.cpp} {readers/DelphesLHEF.cpp} {readers/DelphesSTDHEP.cpp} {readers/DelphesROOT.cpp}
     294executableDeps {readers/DelphesHepMC2.cpp} {readers/DelphesHepMC3.cpp} {readers/DelphesLHEF.cpp} {readers/DelphesSTDHEP.cpp} {readers/DelphesROOT.cpp}
    295295
    296296puts {ifeq ($(HAS_CMSSW),true)}
     
    321321dictDeps {DISPLAY_DICT} {display/DisplayLinkDef.h}
    322322
    323 sourceDeps {DELPHES} {classes/*.cc} {modules/*.cc} {external/ExRootAnalysis/*.cc} {external/Hector/*.cc}
     323sourceDeps {DELPHES} {classes/*.cc} {modules/*.cc} {external/ExRootAnalysis/*.cc} {external/Hector/*.cc} {external/TrackCovariance/*.cc}
    324324
    325325sourceDeps {FASTJET} {modules/FastJet*.cc} {modules/RunPUPPI.cc} {external/PUPPI/*.cc} {external/fastjet/*.cc} {external/fastjet/tools/*.cc} {external/fastjet/plugins/*/*.cc} {external/fastjet/contribs/*/*.cc}
     
    346346        @mkdir -p $(@D)
    347347        @echo ">> Building $@"
    348 ifeq ($(ARCH),aix5)
    349         @$(MAKESHARED) $(OutPutOpt) $@ $(DELPHES_LIBS) -p 0 $^
    350 else
    351348ifeq ($(PLATFORM),macosx)
    352 # We need to make both the .dylib and the .so
    353349        @$(LD) $(SOFLAGS)$@ $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    354 ifneq ($(subst $(MACOSX_MINOR),,1234),1234)
    355 ifeq ($(MACOSX_MINOR),4)
    356         @ln -sf $@ $(subst .$(DllSuf),.so,$@)
    357 endif
    358 endif
    359350else
    360351ifeq ($(PLATFORM),win32)
     
    365356else
    366357        @$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    367         @$(MT_DLL)
    368 endif
    369358endif
    370359endif
     
    373362        @mkdir -p $(@D)
    374363        @echo ">> Building $@"
    375 ifeq ($(ARCH),aix5)
    376         @$(MAKESHARED) $(OutPutOpt) $@ $(DELPHES_LIBS) -p 0 $^
    377 else
    378364ifeq ($(PLATFORM),macosx)
    379 # We need to make both the .dylib and the .so
    380365        @$(LD) $(SOFLAGS)$@ $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    381 ifneq ($(subst $(MACOSX_MINOR),,1234),1234)
    382 ifeq ($(MACOSX_MINOR),4)
    383         @ln -sf $@ $(subst .$(DllSuf),.so,$@)
    384 endif
    385 endif
    386366else
    387367ifeq ($(PLATFORM),win32)
     
    392372else
    393373        @$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(DELPHES_LIBS)
    394         @$(MT_DLL)
    395 endif
    396374endif
    397375endif
     
    400378        @mkdir -p $(@D)
    401379        @echo ">> Building $@"
    402 ifeq ($(ARCH),aix5)
    403         @$(MAKESHARED) $(OutPutOpt) $@ $(DISPLAY_LIBS) -p 0 $^
    404 else
    405380ifeq ($(PLATFORM),macosx)
    406 # We need to make both the .dylib and the .so
    407381        @$(LD) $(SOFLAGS)$@ $(LDFLAGS) $^ $(OutPutOpt) $@ $(DISPLAY_LIBS)
    408 ifneq ($(subst $(MACOSX_MINOR),,1234),1234)
    409 ifeq ($(MACOSX_MINOR),4)
    410         @ln -sf $@ $(subst .$(DllSuf),.so,$@)
    411 endif
    412 endif
    413382else
    414383ifeq ($(PLATFORM),win32)
     
    419388else
    420389        @$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(DISPLAY_LIBS)
    421         @$(MT_DLL)
    422 endif
    423390endif
    424391endif
     
    434401        @echo ">> Building $(DISTTAR)"
    435402        @mkdir -p $(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)
     403        @cp -a AUTHORS CHANGELOG CMakeLists.txt COPYING DelphesEnv.sh LICENSE NOTICE README README_4LHCb Makefile MinBias.pileup configure cards classes cmake converters display doc examples external modules python readers validation $(DISTDIR)
    437404        @find $(DISTDIR) -depth -name .\* -exec rm -rf {} \;
    438405        @tar -czf $(DISTTAR) $(DISTDIR)
  • doc/update_fastjet.sh

    ra5af1df rd612dec  
    1 version=3.3.2
     1version=3.3.4
    22
    33wget http://fastjet.fr/repo/fastjet-${version}.tar.gz
     
    1111./configure --enable-allcxxplugins --disable-auto-ptr
    1212cd -
    13 
    14 echo ${version} > fastjet/VERSION
    1513
    1614cd fastjet
  • examples/Example5.C

    ra5af1df rd612dec  
    3737    // Load selected branches with data from specified event
    3838    treeReader->ReadEntry(entry);
    39    
     39
    4040    if(entry>10) break;
    41    
     41
    4242    cout<<"" <<endl;
    4343    cout<<"--------- New Event ---------" <<endl;
    4444    cout<<"" <<endl;
    45  
     45
    4646    // loop over all input particles in the event
    4747    for(Int_t i=0; i < branchParticle->GetEntriesFast(); i++)
    48     {   
    49      GenParticle *gen = (GenParticle*) branchParticle->At(i);     
    50      cout<<"N: "<<i<<", St: "<<gen->Status<<", PID: "<<gen->PID<<", E: "<<gen->E<<", Px: "<<gen->Px<<", Py: "<<gen->Py<<", Pz: "<<gen->Pz<<", M: "<<gen->Mass<<", M1: "<<gen->M1<<", M2: "<<gen->M2<<", D1: "<<gen->D1<<", D2: "<<gen->D2<<endl;
     48    {
     49     GenParticle *gen = (GenParticle*) branchParticle->At(i);
     50     cout<<"N: "<<i<<", St: "<<gen->Status<<", PID: "<<gen->PID<<", E: "<<gen->E<<", Px: "<<gen->Px<<", Py: "<<gen->Py<<", Pz: "<<gen->Pz<<", M: "<<gen->Mass<<", T: "<<gen->T<<", X: "<<gen->X<<", Y: "<<gen->Y<<", Z: "<<gen->Z<<", M1: "<<gen->M1<<", M2: "<<gen->M2<<", D1: "<<gen->D1<<", D2: "<<gen->D2<<endl;
    5151    }
    5252  }
  • external/CMakeLists.txt

    ra5af1df rd612dec  
    44add_subdirectory(tcl)
    55add_subdirectory(PUPPI)
     6add_subdirectory(TrackCovariance)
  • external/ExRootAnalysis/CMakeLists.txt

    ra5af1df rd612dec  
    66file(GLOB sources *.cc)
    77file(GLOB headers *.h)
     8
    89list(REMOVE_ITEM headers ${CMAKE_CURRENT_SOURCE_DIR}/ExRootAnalysisLinkDef.h)
    910
    10 DELPHES_GENERATE_DICTIONARY(ExRootAnalysisDict ${headers} LINKDEF ExRootAnalysisLinkDef.h)
     11# the macro invocation for ROOT6 ensures that the headers are relocatable
     12if (NOT ${ROOT_VERSION} VERSION_LESS "6.0.0")
     13  DELPHES_GENERATE_DICTIONARY(ExRootAnalysisDict
     14    ExRootAnalysis/ExRootClassifier.h
     15    ExRootAnalysis/ExRootConfReader.h
     16    ExRootAnalysis/ExRootFilter.h
     17    ExRootAnalysis/ExRootProgressBar.h
     18    ExRootAnalysis/ExRootResult.h
     19    ExRootAnalysis/ExRootTask.h
     20    ExRootAnalysis/ExRootTreeBranch.h
     21    ExRootAnalysis/ExRootTreeReader.h
     22    ExRootAnalysis/ExRootTreeWriter.h
     23    ExRootAnalysis/ExRootUtilities.h
     24    LINKDEF ExRootAnalysisLinkDef.h)
     25else()
     26  # for ROOT5 the above fails, keep the following as workaround
     27  DELPHES_GENERATE_DICTIONARY(ExRootAnalysisDict ${headers} LINKDEF ExRootAnalysisLinkDef.h)
     28endif()
    1129
    1230add_library(ExRootAnalysis OBJECT ${sources} ExRootAnalysisDict.cxx)
  • external/ExRootAnalysis/ExRootTreeReader.cc

    ra5af1df rd612dec  
    1212#include "TBranchElement.h"
    1313#include "TCanvas.h"
     14#include "TParameter.h"
    1415#include "TClonesArray.h"
    1516#include "TH2.h"
     
    119120//------------------------------------------------------------------------------
    120121
     122Double_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
    121135Bool_t ExRootTreeReader::Notify()
    122136{
  • external/ExRootAnalysis/ExRootTreeReader.h

    ra5af1df rd612dec  
    2929
    3030  TClonesArray *UseBranch(const char *branchName);
     31  Double_t GetInfo(const char *name);
    3132
    3233private:
  • external/ExRootAnalysis/ExRootTreeWriter.cc

    ra5af1df rd612dec  
    1111#include "ExRootAnalysis/ExRootTreeBranch.h"
    1212
     13#include "TParameter.h"
    1314#include "TClonesArray.h"
    1415#include "TFile.h"
     
    4849  fBranches.insert(branch);
    4950  return branch;
     51}
     52
     53//------------------------------------------------------------------------------
     54
     55void ExRootTreeWriter::AddInfo(const char *name, Double_t value)
     56{
     57  if(!fTree) fTree = NewTree();
     58  fTree->GetUserInfo()->Add(new TParameter<Double_t>(name, value));
    5059}
    5160
  • external/ExRootAnalysis/ExRootTreeWriter.h

    ra5af1df rd612dec  
    2828  void SetTreeName(const char *name) { fTreeName = name; }
    2929
     30  TTree* GetTree() { return fTree; }
     31  void SetTree(TTree* t) { fTree = t; }
     32
    3033  ExRootTreeBranch *NewBranch(const char *name, TClass *cl);
     34  void AddInfo(const char *name, Double_t value);
    3135
    3236  void Clear();
  • external/fastjet/ActiveAreaSpec.hh

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

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

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

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    2 // $Id: ClusterSequence.cc 4354 2018-04-22 07:12:37Z salam $
     2// $Id: ClusterSequence.cc 4442 2020-05-05 07:50:11Z soyez $
    33//
    4 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     4// Copyright (c) 2005-2020, 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 terms of the GNU GPLv2.\n";
     441  (*ostr) << "# FastJet is provided without warranty under the GNU GPL v2 or higher.  \n";
    442442  (*ostr) << "# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code";
    443443#ifndef DROP_CGAL
  • external/fastjet/ClusterSequence.hh

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

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

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceArea.cc

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceAreaBase.cc

    ra5af1df rd612dec  
    11
    22//FJSTARTHEADER
    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
     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
    66//
    77//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceAreaBase.hh

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequencePassiveArea.cc

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceStructure.hh

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceVoronoiArea.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequenceVoronoiArea.hh

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence_Delaunay.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/ClusterSequence_DumbN3.cc

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

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

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Dnn2piCylinder.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/Dnn3piCylinder.cc

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

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

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

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

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

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

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/JetDefinition.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/JetDefinition.hh

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/LazyTiling25.cc

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

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

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

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

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

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

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

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

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/NNFJN2Tiled.hh

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

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/PseudoJet.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/PseudoJet.hh

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/PseudoJetStructureBase.hh

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/RangeDefinition.cc

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

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

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

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

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

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/SharedPtr.hh

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/TilingExtent.cc

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/config_auto.h

    ra5af1df rd612dec  
    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
    8992/* compiler supports GNU c++ deprecated attribute */
    9093#ifndef FASTJET_HAVE_GNUCXX_DEPRECATED
     
    107110#endif
    108111
     112/* Define to 1 if you have the <mpfr.h> header file. */
     113/* #undef HAVE_MPFR_H */
     114
    109115/* compiler supports the "override" keyword */
    110116/* #undef HAVE_OVERRIDE */
     
    167173/* Define to the full name and version of this package. */
    168174#ifndef FASTJET_PACKAGE_STRING
    169 #define FASTJET_PACKAGE_STRING  "FastJet 3.3.2"
     175#define FASTJET_PACKAGE_STRING  "FastJet 3.3.4"
    170176#endif
    171177
     
    182188/* Define to the version of this package. */
    183189#ifndef FASTJET_PACKAGE_VERSION
    184 #define FASTJET_PACKAGE_VERSION  "3.3.2"
     190#define FASTJET_PACKAGE_VERSION  "3.3.4"
    185191#endif
    186192
     
    192198/* Version number of package */
    193199#ifndef FASTJET_VERSION
    194 #define FASTJET_VERSION  "3.3.2"
     200#define FASTJET_VERSION  "3.3.4"
    195201#endif
    196202
     
    207213/* Version of the package under the form XYYZZ (instead of X.Y.Z) */
    208214#ifndef FASTJET_VERSION_NUMBER
    209 #define FASTJET_VERSION_NUMBER  30302
     215#define FASTJET_VERSION_NUMBER  30304
    210216#endif
    211217
    212218/* Patch version of this package */
    213219#ifndef FASTJET_VERSION_PATCHLEVEL
    214 #define FASTJET_VERSION_PATCHLEVEL  2
     220#define FASTJET_VERSION_PATCHLEVEL  4
    215221#endif
    216222
  • external/fastjet/config_raw.h

    ra5af1df rd612dec  
    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
    5962/* compiler supports GNU c++ deprecated attribute */
    6063#define HAVE_GNUCXX_DEPRECATED /**/
     
    6871/* Define to 1 if you have the <memory.h> header file. */
    6972#define HAVE_MEMORY_H 1
     73
     74/* Define to 1 if you have the <mpfr.h> header file. */
     75/* #undef HAVE_MPFR_H */
    7076
    7177/* compiler supports the "override" keyword */
     
    106112
    107113/* Define to the full name and version of this package. */
    108 #define PACKAGE_STRING "FastJet 3.3.2"
     114#define PACKAGE_STRING "FastJet 3.3.4"
    109115
    110116/* Define to the one symbol short name of this package. */
     
    115121
    116122/* Define to the version of this package. */
    117 #define PACKAGE_VERSION "3.3.2"
     123#define PACKAGE_VERSION "3.3.4"
    118124
    119125/* Define to 1 if you have the ANSI C header files. */
     
    121127
    122128/* Version number of package */
    123 #define VERSION "3.3.2"
     129#define VERSION "3.3.4"
    124130
    125131/* Major version of this package */
     
    130136
    131137/* Version of the package under the form XYYZZ (instead of X.Y.Z) */
    132 #define VERSION_NUMBER 30302
     138#define VERSION_NUMBER 30304
    133139
    134140/* Patch version of this package */
    135 #define VERSION_PATCHLEVEL 2
     141#define VERSION_PATCHLEVEL 4
    136142
    137143/* Pre-release version of this package */
  • external/fastjet/config_win.h

    ra5af1df rd612dec  
    1 #define FASTJET_PACKAGE_STRING  "FastJet 3.3.2"
    2 #define FASTJET_PACKAGE_VERSION  "3.3.2"
    3 #define FASTJET_VERSION  "3.3.2"
     1#define FASTJET_PACKAGE_STRING  "FastJet 3.3.4"
     2#define FASTJET_PACKAGE_VERSION  "3.3.4"
     3#define FASTJET_VERSION  "3.3.4"
    44#define FASTJET_VERSION_MAJOR       3
    55#define FASTJET_VERSION_MINOR       3
    6 #define FASTJET_VERSION_PATCHLEVEL  2
    7 #define FASTJET_VERSION_NUMBER      30302
     6#define FASTJET_VERSION_PATCHLEVEL  4
     7#define FASTJET_VERSION_NUMBER      30304
    88
    99/* The ATLASCone plugin is disabled by default*/
  • external/fastjet/contribs/RecursiveTools/AUTHORS

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

    ra5af1df rd612dec  
     12018-11-02  Jesse Thaler  <jthaler@jthaler.net>
     2
     3        * AUTHORS:  updated journal for RecursiveSoftDrop
     4
     52018-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
     142018-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
    1192018-05-29  Jesse Thaler  <jthaler@jthaler.net>
    220
  • external/fastjet/contribs/RecursiveTools/NEWS

    ra5af1df rd612dec  
     12020/03/03: release of version 2.0.0 with updated readme
     2
    132018/05/31: release of version 2.0.0-beta2 with corrected syntax
    24
  • external/fastjet/contribs/RecursiveTools/README

    ra5af1df rd612dec  
    100100A default SoftDrop groomer can be created via:
    101101
     102   double beta  = 2.0;
    102103   double z_cut = 0.10;
    103    double beta  = 2.0;
    104104   double R0    = 1.0; // this is the default value
    105    SoftDrop sd(z_cut,beta,R0);
     105   SoftDrop sd(beta,z_cut,R0);
    106106
    107107and acts on a desired jet as
     
    137137further substructure is found (i.e. corresponds to taking N=infinity).
    138138
     139   double beta  = 2.0;
    139140   double z_cut = 0.10;
    140    double beta  = 2.0;
    141141   double R0    = 1.0; // this is the default value
    142142   int N        = -1; 
    143    RecursiveSoftDrop rsd(z_cut, beta, N, R0);
     143   RecursiveSoftDrop rsd(beta, z_cut, 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
     220BottomUpSoftDrop takes the same arguments as SoftDrop, and a groomer
     221can 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
     228One then acts on a jet as
     229
     230   PseudoJet groomed_jet = busd(jet)
    219231
    220232------------------------------------------------------------------------
  • external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.cc

    ra5af1df rd612dec  
    1 // $Id: RecursiveSoftDrop.cc 1111 2018-04-04 10:06:11Z gsoyez $
     1// $Id: RecursiveSoftDrop.cc 1192 2018-10-30 16:08:36Z gsoyez $
    22//
    33// Copyright (c) 2017-, Gavin P. Salam, Gregory Soyez, Jesse Thaler,
     
    148148  const vector<PseudoJet> &cs_jets = cs->jets();
    149149
    150   // initialize counter to 1 subjet (i.e. the full ca_jet)
     150  // initialise 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
    166165  priority_queue<internal_recursive_softdrop::RSDHistoryElement*, vector<internal_recursive_softdrop::RSDHistoryElement*>, internal_recursive_softdrop::OrderRSDHistoryElements> active_branches;
    167166  active_branches.push(& (history[0]));
     
    169168  PseudoJet parent, piece1, piece2;
    170169  double sym, mu2;
    171 
    172   // which R0 to use
    173   //double R0sqr = _R0sqr;
    174170 
    175171  // loop over C/A tree until we reach the appropriate number of subjets
    176172  while ((continue_grooming(n_tagged)) && (active_branches.size())) {
    177     // get the element corresponding to the max dR
    178     // and the associated PJ
     173    // get the element corresponding to the max dR and the associated PJ
    179174    internal_recursive_softdrop::RSDHistoryElement * elm = active_branches.top();
    180175    PseudoJet parent = cs_jets[cs_history[elm->current_in_ca_tree].jetp_index];
     
    217212      active_branches.pop();
    218213      // tagging failed and the softest branch should be dropped
    219       // keep track of what has een groomed away
     214      // keep track of what has been groomed away
    220215      max_njet -= piece2.constituents().size();
    221216      elm->dropped_delta_R .push_back((elm->theta_squared >= 0) ? sqrt(elm->theta_squared) : -sqrt(elm->theta_squared));
     
    223218      elm->dropped_mu      .push_back((mu2>=0) ? sqrt(mu2) : -sqrt(mu2));
    224219     
    225       // keep the hardest bhanch in the recursion
     220      // keep the hardest branch in the recursion
    226221      elm->reset(piece1, this);
    227222      active_branches.push(elm);
     
    256251    const internal_recursive_softdrop::RSDHistoryElement & elm = history[history_index];
    257252
    258     // two kinds of events: either just a final leave, poteitially with grooming
     253    // two kinds of events: either just a final leave, potentially with grooming
    259254    // or a brandhing (also with potential grooming at the end)
    260255    if (elm.child1_in_history<0){
    261       // this is a leaf, i.e. with no further sustructure
     256      // this is a leaf, i.e. with no further substructure
    262257      PseudoJet & subjet = mapped_to_history[history_index]
    263258        = cs_jets[cs_history[elm.current_in_ca_tree].jetp_index];
     
    303298  const vector<PseudoJet> &cs_jets = cs->jets();
    304299
    305   // initialize counter to 1 subjet (i.e. the full ca_jet)
     300  // initialise counter to 1 subjet (i.e. the full ca_jet)
    306301  int n_depth = 0;
    307302  int max_njet = ca_jet.constituents().size();
     
    319314 
    320315  // create a priority queue containing the subjets and a comparison definition
    321   // initialize counter to 1 subjet (i.e. the full ca_jet)
    322316  list<internal_recursive_softdrop::RSDHistoryElement*> active_branches;
    323317  active_branches.push_back(& (history[0]));
     
    329323    list<internal_recursive_softdrop::RSDHistoryElement*>::iterator hist_it=active_branches.begin();
    330324    while (hist_it!=active_branches.end()){
    331       // get the element corresponding to the max dR
    332       // and the associated PJ
     325      // get the element corresponding to the max dR and the associated PJ
    333326      internal_recursive_softdrop::RSDHistoryElement * elm = (*hist_it);
    334327      PseudoJet parent = cs_jets[cs_history[elm->current_in_ca_tree].jetp_index];
  • external/fastjet/contribs/RecursiveTools/RecursiveSoftDrop.hh

    ra5af1df rd612dec  
    1 // $Id: RecursiveSoftDrop.hh 1082 2017-10-10 12:00:13Z gsoyez $
     1// $Id: RecursiveSoftDrop.hh 1192 2018-10-30 16:08:36Z 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
    2630#include "Recluster.hh"
     31#endif
    2732#include "SoftDrop.hh"
    2833#include "fastjet/WrappedStructure.hh"
  • external/fastjet/internal/ClosestPair2D.hh

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/ClosestPair2DBase.hh

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/Dnn3piCylinder.hh

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/Dnn4piCylinder.hh

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/internal/DynamicNearestNeighbours.hh

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

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

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

    ra5af1df rd612dec  
    55
    66//FJSTARTHEADER
    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
     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
    1010//
    1111//----------------------------------------------------------------------
  • external/fastjet/internal/LazyTiling9Alt.hh

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/internal/LazyTiling9SeparateGhosts.hh

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

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

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

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

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

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

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/internal/base.hh

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

    ra5af1df rd612dec  
    11
    22//FJSTARTHEADER
    3 // $Id: deprecated.hh 4354 2018-04-22 07:12:37Z salam $
     3// $Id: deprecated.hh 4442 2020-05-05 07:50:11Z soyez $
    44//
    5 // Copyright (c) 2005-2018, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
     5// Copyright (c) 2005-2020, 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) and (!defined(__FJCORE__))
     41#if defined(FASTJET_HAVE_CXX14_DEPRECATED) && (!defined(__FJCORE__))
    4242#define FASTJET_DEPRECATED               [[deprecated]]
    4343#define FASTJET_DEPRECATED_MSG(message)  [[deprecated(message)]]
  • external/fastjet/internal/numconsts.hh

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    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
     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)
    111113    const double almost_max = numeric_limits<double>::max() * (1 - 1e-13);
    112     return almost_max / rt2E;
     114    if (rt2E>1.0) return almost_max / rt2E;
     115    else          return almost_max;
    113116  }
    114117 
  • external/fastjet/plugins/Jade/fastjet/JadePlugin.hh

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

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

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

    ra5af1df rd612dec  
    66             France
    77
    8          (2) PH-TH, CERN, CH-1211 Geneva 23, Switzerland;
     8         (2) Rudolf Peierls Centre for Theoretical Physics, Parks Road, Oxford OX1 3PU, UK;
     9             PH-TH, CERN, CH-1211 Geneva 23, Switzerland;
    910             LPTHE, UPMC (Univ. Paris 6), 75252 Paris cedex 05, France.
    1011
    11 phone  : +33 69 08 40 11
    12          +41 22 767 2462
    13 
    1412email  : soyez@fastjet.fr
    15          gavin.salam@cern.ch
     13         gavin.salam@physics.ox.ac.uk
  • external/fastjet/plugins/SISCone/config.h

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

    ra5af1df rd612dec  
    4848
    4949/* Define to the full name and version of this package. */
    50 #define PACKAGE_STRING "SISCone 3.0.4"
     50#define PACKAGE_STRING "SISCone 3.0.5"
    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.4"
     59#define PACKAGE_VERSION "3.0.5"
    6060
    6161/* Define to 1 if you have the ANSI C header files. */
     
    6666
    6767/* Version number of package */
    68 #define VERSION "3.0.4"
     68#define VERSION "3.0.5"
  • external/fastjet/plugins/SISCone/geom_2d.h

    ra5af1df rd612dec  
    2222// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
    2323//                                                                           //
    24 // $Revision:: 268                                                          $//
    25 // $Date:: 2009-03-12 21:24:16 +0100 (Thu, 12 Mar 2009)                     $//
     24// $Revision:: 422                                                          $//
     25// $Date:: 2020-04-22 11:51:09 +0200 (Wed, 22 Apr 2020)                     $//
    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) (1 << ((int) (32*((eta-eta_min)/(eta_max-eta_min)))));
     155    return (unsigned int) (1u << ((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) (1 << ((int) (32*phi/twopi+16)%32));
     160    return (unsigned int) (1u << ((int) (32*phi/twopi+16)%32));
    161161  }
    162162};
  • external/fastjet/plugins/TrackJet/TrackJetPlugin.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/plugins/TrackJet/fastjet/TrackJetPlugin.hh

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

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

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/Boost.hh

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Filter.cc

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

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/GridMedianBackgroundEstimator.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/GridMedianBackgroundEstimator.hh

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/JHTopTagger.cc

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

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/JetMedianBackgroundEstimator.cc

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/JetMedianBackgroundEstimator.hh

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

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Pruner.hh

    ra5af1df rd612dec  
    33
    44//FJSTARTHEADER
    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
     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
    88//
    99//----------------------------------------------------------------------
  • external/fastjet/tools/RestFrameNSubjettinessTagger.cc

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

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

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/Subtractor.hh

    ra5af1df rd612dec  
    11//FJSTARTHEADER
    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
     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
    55//
    66//----------------------------------------------------------------------
  • external/fastjet/tools/TopTaggerBase.cc

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

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

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

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

    ra5af1df rd612dec  
    9898{
    9999  Candidate *candidate, *mother;
    100   Double_t pt, eta, phi, e;
     100  Double_t pt, eta, phi, e, m;
    101101
    102102  fItInputArray->Reset();
    103103  while((candidate = static_cast<Candidate *>(fItInputArray->Next())))
    104104  {
    105     const TLorentzVector &candidatePosition = candidate->Position;
    106105    const TLorentzVector &candidateMomentum = candidate->Momentum;
    107     eta = candidatePosition.Eta();
    108     phi = candidatePosition.Phi();
     106    eta = candidateMomentum.Eta();
     107    phi = candidateMomentum.Phi();
    109108    pt = candidateMomentum.Pt();
    110109    e = candidateMomentum.E();
     110    m = candidateMomentum.M();
    111111
    112112    // apply smearing formula for eta,phi
    113 
    114     eta = gRandom->Gaus(eta, fFormulaEta->Eval(pt, eta, phi, e));
    115     phi = gRandom->Gaus(phi, fFormulaPhi->Eval(pt, eta, phi, e));
     113    eta = gRandom->Gaus(eta, fFormulaEta->Eval(pt, eta, phi, e, candidate));
     114    phi = gRandom->Gaus(phi, fFormulaPhi->Eval(pt, eta, phi, e, candidate));
    116115
    117116    if(pt <= 0.0) continue;
     
    119118    mother = candidate;
    120119    candidate = static_cast<Candidate *>(candidate->Clone());
    121     eta = candidateMomentum.Eta();
    122     phi = candidateMomentum.Phi();
    123     candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta));
     120    candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m);
    124121    candidate->AddCandidate(mother);
    125122
  • modules/Calorimeter.cc

    ra5af1df rd612dec  
    231231  fItParticleInputArray->Reset();
    232232  number = -1;
     233  fTowerRmax=0.;
    233234  while((particle = static_cast<Candidate *>(fItParticleInputArray->Next())))
    234235  {
    235236    const TLorentzVector &particlePosition = particle->Position;
    236237    ++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();
    237242
    238243    pdgCode = TMath::Abs(particle->PID);
     
    450455
    451456    fTower->AddCandidate(particle);
     457    fTower->Position = position;
    452458  }
    453459
     
    461467{
    462468  Candidate *track, *tower, *mother;
    463   Double_t energy, pt, eta, phi;
     469  Double_t energy, pt, eta, phi, r;
    464470  Double_t ecalEnergy, hcalEnergy;
    465471  Double_t ecalNeutralEnergy, hcalNeutralEnergy;
     
    511517  for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i)
    512518  {
    513     weight = TMath::Sqrt(fTower->ECalEnergyTimePairs[i].first);
     519    weight = TMath::Power((fTower->ECalEnergyTimePairs[i].first),2);
    514520    sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second;
    515521    sumWeight += weight;
     
    517523  }
    518524
     525  // check whether barrel or endcap tower
     526  if (fTower->Position.Perp() < fTowerRmax && TMath::Abs(eta) > 0.)
     527    r = fTower->Position.Z()/TMath::SinH(eta);
     528  else
     529    r = fTower->Position.Pt();
     530
    519531  if(sumWeight > 0.0)
    520532  {
    521     fTower->Position.SetPtEtaPhiE(1.0, eta, phi, sumWeightedTime / sumWeight);
     533    fTower->Position.SetPtEtaPhiE(r, eta, phi, sumWeightedTime / sumWeight);
    522534  }
    523535  else
    524536  {
    525     fTower->Position.SetPtEtaPhiE(1.0, eta, phi, 999999.9);
     537    fTower->Position.SetPtEtaPhiE(r, eta, phi, 999999.9);
    526538  }
    527539
     
    559571  if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin)
    560572  {
    561     // create new photon tower
     573    // create new photon tower assuming null mass
    562574    tower = static_cast<Candidate *>(fTower->Clone());
    563575    pt = ecalNeutralEnergy / TMath::CosH(eta);
     
    646658      track = static_cast<Candidate *>(track->Clone());
    647659      track->AddCandidate(mother);
    648 
    649660      track->Momentum *= rescaleFactor;
     661      track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M());
    650662
    651663      fEFlowTrackOutputArray->Add(track);
  • modules/Calorimeter.h

    ra5af1df rd612dec  
    6060  Double_t fTimingEnergyMin;
    6161  Bool_t fElectronsFromTrack;
     62  Double_t fTowerRmax;
    6263
    6364  Int_t fTowerTrackHits, fTowerPhotonHits;
  • modules/Delphes.cc

    ra5af1df rd612dec  
    6161  fFactory(0)
    6262{
    63   TFolder *folder = new TFolder(name, "");
     63  TFolder *folder;
     64
    6465  fFactory = new DelphesFactory("ObjectFactory");
     66
     67  folder = new TFolder(name, "");
    6568
    6669  SetName(name);
     
    8083  if(folder)
    8184  {
     85    gROOT->GetListOfBrowsables()->Remove(folder);
    8286    folder->Clear();
    8387    delete folder;
  • modules/DenseTrackFilter.cc

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

    ra5af1df rd612dec  
    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
     
    172172  fECalEnergyMin = GetDouble("ECalEnergyMin", 0.0);
    173173  fHCalEnergyMin = GetDouble("HCalEnergyMin", 0.0);
     174  fEnergyMin = GetDouble("EnergyMin", 0.0);
    174175
    175176  fECalEnergySignificanceMin = GetDouble("ECalEnergySignificanceMin", 0.0);
    176177  fHCalEnergySignificanceMin = GetDouble("HCalEnergySignificanceMin", 0.0);
     178  fEnergySignificanceMin = GetDouble("EnergySignificanceMin", 0.0);
    177179
    178180  // switch on or off the dithering of the center of DualReadoutCalorimeter towers
     
    245247  fItParticleInputArray->Reset();
    246248  number = -1;
     249  fTowerRmax=0.;
     250
     251  //cout<<"--------- new event ---------- "<<endl;
     252
    247253  while((particle = static_cast<Candidate*>(fItParticleInputArray->Next())))
    248254  {
    249255    const TLorentzVector &particlePosition = particle->Position;
    250256    ++number;
     257
     258    // compute maximum radius (needed in FinalizeTower to assess whether barrel or endcap tower)
     259    if (particlePosition.Perp() > fTowerRmax)
     260      fTowerRmax=particlePosition.Perp();
    251261
    252262    pdgCode = TMath::Abs(particle->PID);
     
    377387      fHCalTrackEnergy = 0.0;
    378388      fTrackEnergy = 0.0;
    379      
     389
    380390      fECalTrackSigma = 0.0;
    381391      fHCalTrackSigma = 0.0;
    382392      fTrackSigma = 0.0;
    383      
     393
    384394      fTowerTrackHits = 0;
    385395      fTowerPhotonHits = 0;
     396
     397      fTowerTime = 0.0;
     398      fTowerTimeWeight = 0.0;
    386399
    387400      fECalTowerTrackArray->Clear();
    388401      fHCalTowerTrackArray->Clear();
    389402      fTowerTrackArray->Clear();
    390    
     403
    391404    }
    392405
     
    412425      }
    413426
    414      
    415       /*
    416       if(fECalTrackFractions[number] > 1.0E-9 && fHCalTrackFractions[number] < 1.0E-9)
    417       {
    418         fECalTrackEnergy += ecalEnergy;
    419         ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E());       
    420         if(ecalSigma/momentum.E() < track->TrackResolution) energyGuess = ecalEnergy;       
    421         else energyGuess = momentum.E();
    422 
    423         fECalTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess;
    424         fECalTowerTrackArray->Add(track);
    425       }
    426      
    427       else if(fECalTrackFractions[number] < 1.0E-9 && fHCalTrackFractions[number] > 1.0E-9)
    428       {
    429         fHCalTrackEnergy += hcalEnergy;
    430         hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E());
    431         if(hcalSigma/momentum.E() < track->TrackResolution) energyGuess = hcalEnergy;
    432         else energyGuess = momentum.E();
    433 
    434         fHCalTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess;
    435         fHCalTowerTrackArray->Add(track);
    436       }
    437      
    438       // muons
    439       else if(fECalTrackFractions[number] < 1.0E-9 && fHCalTrackFractions[number] < 1.0E-9)
    440       {
    441         fEFlowTrackOutputArray->Add(track);
    442       }
    443       */
    444      
    445427      // in Dual Readout we do not care if tracks are ECAL of HCAL
    446428      if(fECalTrackFractions[number] > 1.0E-9 || fHCalTrackFractions[number] > 1.0E-9)
    447       { 
     429      {
    448430        fTrackEnergy += energy;
    449         // 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)     
     431        // 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)
    450432        sigma = 0.0;
    451433        if(fHCalTrackFractions[number] > 0)
     
    453435        else
    454436          sigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E());
    455          
    456         if(sigma/momentum.E() < track->TrackResolution) 
    457           energyGuess = ecalEnergy + hcalEnergy;     
     437
     438        if(sigma/momentum.E() < track->TrackResolution)
     439          energyGuess = ecalEnergy + hcalEnergy;
    458440        else
    459441          energyGuess = momentum.E();
    460              
     442
    461443        fTrackSigma += (track->TrackResolution)*energyGuess*(track->TrackResolution)*energyGuess;
    462444        fTowerTrackArray->Add(track);
    463      
    464445      }
    465446      else
     
    478459    position = particle->Position;
    479460
     461
    480462    // fill current tower
    481463    ecalEnergy = momentum.E() * fECalTowerFractions[number];
     
    485467    fHCalTowerEnergy += hcalEnergy;
    486468
    487     if(ecalEnergy > fTimingEnergyMin && fTower)
    488     {
    489       if (abs(particle->PID) != 11 || !fElectronsFromTrack)
    490       {
    491         fTower->ECalEnergyTimePairs.push_back(make_pair<Float_t, Float_t>(ecalEnergy, particle->Position.T()));
    492       }
    493     }
     469    // assume combined timing measurements in ECAL/HCAL sections
     470    fTowerTime += (ecalEnergy + hcalEnergy) * position.T(); //sigma_t ~ 1/sqrt(E)
     471    fTowerTimeWeight += ecalEnergy + hcalEnergy;
    494472
    495473    fTower->AddCandidate(particle);
     474    fTower->Position = position;
    496475  }
    497476
     
    506485
    507486  Candidate *track, *tower, *mother;
    508   Double_t energy, pt, eta, phi;
     487  Double_t energy, pt, eta, phi, r, time;
    509488  Double_t ecalEnergy, hcalEnergy;
    510489  Double_t ecalNeutralEnergy, hcalNeutralEnergy, neutralEnergy;
    511  
     490
    512491  Double_t ecalSigma, hcalSigma, sigma;
    513492  Double_t ecalNeutralSigma, hcalNeutralSigma, neutralSigma;
    514493
    515494  Double_t weightTrack, weightCalo, bestEnergyEstimate, rescaleFactor;
    516  
     495
    517496  TLorentzVector momentum;
    518497  TFractionMap::iterator itFractionMap;
     
    522501  if(!fTower) return;
    523502
    524 
    525   //if (fHCalTowerEnergy < 30 && fECalTowerEnergy < 30) return;
    526   //cout<<"----------- New tower ---------"<<endl;
    527 
    528 
    529   // 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.
    530   // For example, if overlapping charged pions and photons take hadronic resolution as combined measurement
    531 
    532   // if no hadronic fraction at all, then use ECAL resolution
    533 
    534   //cout<<"fECalTowerEnergy: "<<fECalTowerEnergy<<", fHCalTowerEnergy: "<<fHCalTowerEnergy<<", Eta: "<<fTowerEta<<endl;
    535 
    536   // if no hadronic energy, use ECAL resolution
     503  // if no hadronic energy, use ECAL resolution
    537504  if (fHCalTowerEnergy <= fHCalEnergyMin)
    538505  {
    539506    energy = fECalTowerEnergy;
    540507    sigma  = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy);
    541     //cout<<"em energy"<<energy<<", sigma: "<<sigma<<endl;
    542   }
    543 
    544   // if hadronic fraction > 0, use HCAL resolution
     508  }
     509
     510  // if hadronic fraction > 0, use HCAL resolution
    545511  else
    546512  {
    547513    energy = fECalTowerEnergy + fHCalTowerEnergy;
    548514    sigma  = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy);
    549     //cout<<"had energy: "<<energy<<", sigma: "<<sigma<<endl;
    550515  }
    551516
    552517  energy = LogNormal(energy, sigma);
    553   //cout<<energy<<","<<ecalEnergy<<","<<hcalEnergy<<endl;
    554  
     518
    555519  if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0;
    556520
     
    562526  hcalEnergy = LogNormal(fHCalTowerEnergy, hcalSigma);
    563527
     528  time = (fTowerTimeWeight < 1.0E-09) ? 0.0 : fTowerTime / fTowerTimeWeight;
     529
    564530  ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, ecalEnergy);
    565531  hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, hcalEnergy);
     
    568534  if(hcalEnergy < fHCalEnergyMin || hcalEnergy < fHCalEnergySignificanceMin*hcalSigma) hcalEnergy = 0.0;
    569535
    570   //cout<<"Measured energy: "<<energy<<endl;
    571 
    572536  if(fSmearTowerCenter)
    573537  {
     
    583547  pt = energy / TMath::CosH(eta);
    584548
    585   // Time calculation for tower
    586   fTower->NTimeHits = 0;
    587   sumWeightedTime = 0.0;
    588   sumWeight = 0.0;
    589 
    590   for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i)
    591   {
    592     weight = TMath::Sqrt(fTower->ECalEnergyTimePairs[i].first);
    593     sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second;
    594     sumWeight += weight;
    595     fTower->NTimeHits++;
    596   }
    597 
    598   if(sumWeight > 0.0)
    599   {
    600     fTower->Position.SetPtEtaPhiE(1.0, eta, phi, sumWeightedTime/sumWeight);
    601   }
    602   else
    603   {
    604     fTower->Position.SetPtEtaPhiE(1.0, eta, phi, 999999.9);
    605   }
     549  // check whether barrel or endcap tower
     550
     551  // endcap
     552  if (TMath::Abs(fTower->Position.Pt() - fTowerRmax) > 1.e-06 && TMath::Abs(eta) > 0.){
     553    r = fTower->Position.Z()/TMath::SinH(eta);
     554  }
     555  // barrel
     556  else {
     557    r = fTower->Position.Pt();
     558  }
     559
     560  fTower->Position.SetPtEtaPhiE(r, eta, phi, time);
     561  fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy);
     562  fTower->L = fTower->Position.Vect().Mag();
    606563
    607564  fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy);
    608565  fTower->Eem = ecalEnergy;
    609566  fTower->Ehad = hcalEnergy;
    610 
     567  fTower->Etrk = fTrackEnergy;
    611568  fTower->Edges[0] = fTowerEdges[0];
    612569  fTower->Edges[1] = fTowerEdges[1];
     
    624581
    625582  // fill energy flow candidates
    626  
     583
    627584  fTrackSigma = TMath::Sqrt(fTrackSigma);
    628585  neutralEnergy = max( (energy - fTrackEnergy) , 0.0);
    629586  neutralSigma = neutralEnergy / TMath::Sqrt(fTrackSigma*fTrackSigma + sigma*sigma);
    630587
    631   //cout<<"trackEnergy: "<<fTrackEnergy<<", trackSigma: "<<fTrackSigma<<", Ntracks: "<<fTowerTrackArray->GetEntries()<<endl;
    632 
    633   //cout<<"neutralEnergy: "<<neutralEnergy<<", neutralSigma: "<<neutralSigma<<endl;
    634 
    635    // For now, if neutral excess is significant, simply create neutral EflowPhoton tower and clone each track into eflowtrack !!! -> Creating only photons !! EFlowNeutralHadron collection will be empy!!! TO BE FIXED
    636588  if(neutralEnergy > fEnergyMin && neutralSigma > fEnergySignificanceMin)
    637589  {
    638    
    639     //cout<<"significant neutral excess found:"<<endl;
    640590    // create new photon tower
    641591    tower = static_cast<Candidate*>(fTower->Clone());
    642     pt =  neutralEnergy / TMath::CosH(eta);
    643     //cout<<"Creating tower with Pt, Eta, Phi, Energy: "<<pt<<","<<eta<<","<<phi<<","<<neutralEnergy<<endl;
     592    pt = neutralEnergy / TMath::CosH(eta);
    644593    tower->Momentum.SetPtEtaPhiE(pt, eta, phi, neutralEnergy);
    645     tower->Eem = neutralEnergy;
    646     tower->Ehad = 0.0;
    647     tower->PID = 22;
    648 
    649     fEFlowPhotonOutputArray->Add(tower);
    650 
     594
     595    // if no hadronic energy, use ECAL resolution
     596    if (fHCalTowerEnergy <= fHCalEnergyMin)
     597    {
     598      tower->Eem = neutralEnergy;
     599      tower->Ehad = 0.0;
     600      tower->PID = 22;
     601      fEFlowPhotonOutputArray->Add(tower);
     602    }
     603    // if hadronic fraction > 0, use HCAL resolution
     604    else
     605    {
     606      tower->Eem = 0;
     607      tower->Ehad = neutralEnergy;
     608      tower->PID = 130;
     609      fEFlowNeutralHadronOutputArray->Add(tower);
     610    }
    651611
    652612    //clone tracks
     
    654614    while((track = static_cast<Candidate*>(fItTowerTrackArray->Next())))
    655615    {
    656       //cout<<"looping over tracks"<<endl;
    657616      mother = track;
    658617      track = static_cast<Candidate*>(track->Clone());
     
    662621  }
    663622
    664  
     623
    665624  // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the DualReadoutCalorimeter and tracking
    666625  else if(fTrackEnergy > 0.0)
     
    670629    weightCalo  = (sigma > 0.0) ? 1 / (sigma*sigma) : 0.0;
    671630
    672     bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo); 
     631    bestEnergyEstimate = (weightTrack*fTrackEnergy + weightCalo*energy) / (weightTrack + weightCalo);
    673632    rescaleFactor = bestEnergyEstimate/fTrackEnergy;
    674633
     
    676635    fItTowerTrackArray->Reset();
    677636    while((track = static_cast<Candidate*>(fItTowerTrackArray->Next())))
    678     { 
     637    {
    679638      mother = track;
    680       track = static_cast<Candidate*>(track->Clone());
     639      track = static_cast<Candidate *>(track->Clone());
    681640      track->AddCandidate(mother);
    682 
    683       track->Momentum *= rescaleFactor;
    684 
     641      track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M());
    685642      fEFlowTrackOutputArray->Add(track);
    686643    }
    687644  }
    688  
    689 
    690   /*
    691   // fill energy flow candidates
    692   fECalTrackSigma = TMath::Sqrt(fECalTrackSigma);
    693   fHCalTrackSigma = TMath::Sqrt(fHCalTrackSigma);
    694 
    695   //compute neutral excesses
    696   ecalNeutralEnergy = max( (ecalEnergy - fECalTrackEnergy) , 0.0);
    697   hcalNeutralEnergy = max( (hcalEnergy - fHCalTrackEnergy) , 0.0);
    698  
    699   ecalNeutralSigma = ecalNeutralEnergy / TMath::Sqrt(fECalTrackSigma*fECalTrackSigma + ecalSigma*ecalSigma);
    700   hcalNeutralSigma = hcalNeutralEnergy / TMath::Sqrt(fHCalTrackSigma*fHCalTrackSigma + hcalSigma*hcalSigma);
    701  
    702    // if ecal neutral excess is significant, simply create neutral EflowPhoton tower and clone each track into eflowtrack
    703   if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin)
    704   {
    705     // create new photon tower
    706     tower = static_cast<Candidate*>(fTower->Clone());
    707     pt =  ecalNeutralEnergy / TMath::CosH(eta);
    708    
    709     tower->Momentum.SetPtEtaPhiE(pt, eta, phi, ecalNeutralEnergy);
    710     tower->Eem = ecalNeutralEnergy;
    711     tower->Ehad = 0.0;
    712     tower->PID = 22;
    713    
    714     fEFlowPhotonOutputArray->Add(tower);
    715    
    716     //clone tracks
    717     fItECalTowerTrackArray->Reset();
    718     while((track = static_cast<Candidate*>(fItECalTowerTrackArray->Next())))
    719     {
    720       mother = track;
    721       track = static_cast<Candidate*>(track->Clone());
    722       track->AddCandidate(mother);
    723 
    724       fEFlowTrackOutputArray->Add(track);
    725     }
    726  
    727   }
    728  
    729   // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the DualReadoutCalorimeter and tracking
    730   else if(fECalTrackEnergy > 0.0)
    731   {
    732     weightTrack = (fECalTrackSigma > 0.0) ? 1 / (fECalTrackSigma*fECalTrackSigma) : 0.0;
    733     weightCalo  = (ecalSigma > 0.0) ? 1 / (ecalSigma*ecalSigma) : 0.0;
    734  
    735     bestEnergyEstimate = (weightTrack*fECalTrackEnergy + weightCalo*ecalEnergy) / (weightTrack + weightCalo);
    736     rescaleFactor = bestEnergyEstimate/fECalTrackEnergy;
    737 
    738     //rescale tracks
    739     fItECalTowerTrackArray->Reset();
    740     while((track = static_cast<Candidate*>(fItECalTowerTrackArray->Next())))
    741     { 
    742       mother = track;
    743       track = static_cast<Candidate*>(track->Clone());
    744       track->AddCandidate(mother);
    745 
    746       track->Momentum *= rescaleFactor;
    747 
    748       fEFlowTrackOutputArray->Add(track);
    749     }
    750   }
    751 
    752 
    753   // if hcal neutral excess is significant, simply create neutral EflowNeutralHadron tower and clone each track into eflowtrack
    754   if(hcalNeutralEnergy > fHCalEnergyMin && hcalNeutralSigma > fHCalEnergySignificanceMin)
    755   {
    756     // create new photon tower
    757     tower = static_cast<Candidate*>(fTower->Clone());
    758     pt =  hcalNeutralEnergy / TMath::CosH(eta);
    759    
    760     tower->Momentum.SetPtEtaPhiE(pt, eta, phi, hcalNeutralEnergy);
    761     tower->Ehad = hcalNeutralEnergy;
    762     tower->Eem = 0.0;
    763    
    764     fEFlowNeutralHadronOutputArray->Add(tower);
    765    
    766     //clone tracks
    767     fItHCalTowerTrackArray->Reset();
    768     while((track = static_cast<Candidate*>(fItHCalTowerTrackArray->Next())))
    769     {
    770       mother = track;
    771       track = static_cast<Candidate*>(track->Clone());
    772       track->AddCandidate(mother);
    773 
    774       fEFlowTrackOutputArray->Add(track);
    775     }
    776  
    777   }
    778  
    779   // if neutral excess is not significant, rescale eflow tracks, such that the total charged equals the best measurement given by the DualReadoutCalorimeter and tracking
    780   else if(fHCalTrackEnergy > 0.0)
    781   {
    782     weightTrack = (fHCalTrackSigma > 0.0) ? 1 / (fHCalTrackSigma*fHCalTrackSigma) : 0.0;
    783     weightCalo  = (hcalSigma > 0.0) ? 1 / (hcalSigma*hcalSigma) : 0.0;
    784  
    785     bestEnergyEstimate = (weightTrack*fHCalTrackEnergy + weightCalo*hcalEnergy) / (weightTrack + weightCalo);
    786     rescaleFactor = bestEnergyEstimate / fHCalTrackEnergy;
    787 
    788     //rescale tracks
    789     fItHCalTowerTrackArray->Reset();
    790     while((track = static_cast<Candidate*>(fItHCalTowerTrackArray->Next())))
    791     { 
    792       mother = track;
    793       track = static_cast<Candidate*>(track->Clone());
    794       track->AddCandidate(mother);
    795 
    796       track->Momentum *= rescaleFactor;
    797 
    798       fEFlowTrackOutputArray->Add(track);
    799     }
    800   }
    801 
    802   */
     645
     646
    803647}
    804648
  • modules/DualReadoutCalorimeter.h

    ra5af1df rd612dec  
    6060  Double_t fECalTrackEnergy, fHCalTrackEnergy;
    6161  Double_t fTrackEnergy;
     62  Double_t fTowerRmax;
    6263
    6364  Double_t fTimingEnergyMin;
     
    7778  Double_t fHCalTrackSigma;
    7879  Double_t fTrackSigma;
     80
     81  Double_t fTowerTime;
     82  Double_t fTowerTimeWeight;
    7983
    8084  Bool_t fSmearTowerCenter;
  • modules/Efficiency.cc

    ra5af1df rd612dec  
    7878  fItInputArray = fInputArray->MakeIterator();
    7979
     80  // switch to compute efficiency based on momentum vector eta, phi
     81  fUseMomentumVector = GetBool("UseMomentumVector", false);
     82
    8083  // create output array
    8184
     
    9598{
    9699  Candidate *candidate;
    97   Double_t pt, eta, phi, e, d0, dz, ctgTheta;
     100  Double_t pt, eta, phi, e;
     101
    98102
    99103  fItInputArray->Reset();
     
    104108    eta = candidatePosition.Eta();
    105109    phi = candidatePosition.Phi();
     110
     111    if (fUseMomentumVector){
     112      eta = candidateMomentum.Eta();
     113      phi = candidateMomentum.Phi();
     114    }
     115
    106116    pt = candidateMomentum.Pt();
    107117    e = candidateMomentum.E();
    108     d0 = candidate->D0;
    109     dz = candidate->DZ;
    110     ctgTheta = candidate->CtgTheta;
    111118
    112119    // apply an efficency formula
    113     if(gRandom->Uniform() > fFormula->Eval(pt, eta, phi, e, d0, dz, ctgTheta)) continue;
     120    if(gRandom->Uniform() > fFormula->Eval(pt, eta, phi, e, candidate)) continue;
    114121
    115122    fOutputArray->Add(candidate);
  • modules/Efficiency.h

    ra5af1df rd612dec  
    5353  TObjArray *fOutputArray; //!
    5454
     55  Double_t fUseMomentumVector; //!
     56
    5557  ClassDef(Efficiency, 1)
    5658};
  • modules/EnergySmearing.cc

    ra5af1df rd612dec  
    9595{
    9696  Candidate *candidate, *mother;
    97   Double_t pt, energy, eta, phi;
     97  Double_t pt, energy, eta, phi, m;
    9898
    9999  fItInputArray->Reset();
     
    107107    phi = candidatePosition.Phi();
    108108    energy = candidateMomentum.E();
     109    m = candidateMomentum.M();
    109110
    110111    // apply smearing formula
     
    117118    eta = candidateMomentum.Eta();
    118119    phi = candidateMomentum.Phi();
    119     candidate->Momentum.SetPtEtaPhiE(energy / TMath::CosH(eta), eta, phi, energy);
     120    pt = (energy > m) ? TMath::Sqrt(energy*energy - m*m)/TMath::CosH(eta) : 0;
     121    candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, energy);
    120122    candidate->TrackResolution = fFormula->Eval(pt, eta, phi, energy) / candidateMomentum.E();
    121123    candidate->AddCandidate(mother);
  • modules/FastJetFinder.cc

    ra5af1df rd612dec  
    104104  fJetAlgorithm = GetInt("JetAlgorithm", 6);
    105105  fParameterR = GetDouble("ParameterR", 0.5);
     106  fParameterP = GetDouble("ParameterP", -1.0);
    106107
    107108  fConeRadius = GetDouble("ConeRadius", 0.5);
     
    247248    fDefinition = new JetDefinition(fValenciaPlugin);
    248249    break;
     250  case 10:
     251    fDefinition = new JetDefinition(ee_genkt_algorithm,fParameterR,fParameterP);
     252    break;
     253
    249254  }
    250255
     
    316321  Double_t deta, dphi, detaMax, dphiMax;
    317322  Double_t time, timeWeight;
     323  Double_t neutralEnergyFraction, chargedEnergyFraction;
     324
    318325  Int_t number, ncharged, nneutrals;
    319326  Int_t charge;
     
    418425    nneutrals = 0;
    419426
     427    neutralEnergyFraction =0.;
     428    chargedEnergyFraction =0.;
     429
    420430    inputList.clear();
    421431    inputList = sequence->constituents(*itOutputList);
     
    432442
    433443      if(constituent->Charge == 0)
     444      {
    434445        nneutrals++;
     446        neutralEnergyFraction += constituent->Momentum.E();
     447      }
    435448      else
     449      {
    436450        ncharged++;
    437 
     451        chargedEnergyFraction += constituent->Momentum.E();
     452      }
     453     
    438454      time += TMath::Sqrt(constituent->Momentum.E()) * (constituent->Position.T());
    439455      timeWeight += TMath::Sqrt(constituent->Momentum.E());
     
    455471    candidate->NCharged = ncharged;
    456472
     473    candidate->NeutralEnergyFraction = (momentum.E() > 0 ) ? neutralEnergyFraction/momentum.E() : 0.0;
     474    candidate->ChargedEnergyFraction = (momentum.E() > 0 ) ? chargedEnergyFraction/momentum.E() : 0.0;
     475
    457476    //for exclusive clustering, access y_n,n+1 as exclusive_ymerge (fNJets);
    458477    candidate->ExclYmerge23 = excl_ymerge23;
     
    470489      fastjet::Filter trimmer(fastjet::JetDefinition(fastjet::kt_algorithm, fRTrim), fastjet::SelectorPtFractionMin(fPtFracTrim));
    471490      fastjet::PseudoJet trimmed_jet = trimmer(*itOutputList);
    472 
    473       trimmed_jet = join(trimmed_jet.constituents());
    474 
     491     
    475492      candidate->TrimmedP4[0].SetPtEtaPhiM(trimmed_jet.pt(), trimmed_jet.eta(), trimmed_jet.phi(), trimmed_jet.m());
    476493
  • modules/FastJetFinder.h

    ra5af1df rd612dec  
    7272  Int_t fJetAlgorithm;
    7373  Double_t fParameterR;
     74  Double_t fParameterP;
    7475
    7576  Double_t fJetPTMin;
  • modules/IdentificationMap.cc

    ra5af1df rd612dec  
    170170      {
    171171        // change PID of particle
     172        candidate = static_cast<Candidate *>(candidate->Clone());
    172173        if(pdgCodeOut != 0) candidate->PID = charge * pdgCodeOut;
    173174        fOutputArray->Add(candidate);
  • modules/JetFakeParticle.cc

    ra5af1df rd612dec  
    146146  while((candidate = static_cast<Candidate *>(fItInputArray->Next())))
    147147  {
    148     const TLorentzVector &candidatePosition = candidate->Position;
    149148    const TLorentzVector &candidateMomentum = candidate->Momentum;
    150     eta = candidatePosition.Eta();
    151     phi = candidatePosition.Phi();
     149    eta = candidateMomentum.Eta();
     150    phi = candidateMomentum.Phi();
    152151    pt = candidateMomentum.Pt();
    153152    e = candidateMomentum.E();
  • modules/ModulesLinkDef.h

    ra5af1df rd612dec  
    3636#include "modules/MomentumSmearing.h"
    3737#include "modules/TrackSmearing.h"
     38#include "modules/TrackCovariance.h"
     39#include "modules/ClusterCounting.h"
    3840#include "modules/ImpactParameterSmearing.h"
    3941#include "modules/TimeSmearing.h"
     42#include "modules/TimeOfFlight.h"
    4043#include "modules/SimpleCalorimeter.h"
    4144#include "modules/DenseTrackFilter.h"
     
    7275#include "modules/VertexFinder.h"
    7376#include "modules/VertexFinderDA4D.h"
     77#include "modules/DecayFilter.h"
     78#include "modules/ParticleDensity.h"
     79#include "modules/TruthVertexFinder.h"
    7480#include "modules/ExampleModule.h"
    7581#include "modules/LLPFilter.h"
     
    9399#pragma link C++ class MomentumSmearing+;
    94100#pragma link C++ class TrackSmearing+;
     101#pragma link C++ class TrackCovariance+;
     102#pragma link C++ class ClusterCounting+;
    95103#pragma link C++ class ImpactParameterSmearing+;
    96104#pragma link C++ class TimeSmearing+;
     105#pragma link C++ class TimeOfFlight+;
    97106#pragma link C++ class SimpleCalorimeter+;
    98107#pragma link C++ class DenseTrackFilter+;
     
    129138#pragma link C++ class VertexFinder+;
    130139#pragma link C++ class VertexFinderDA4D+;
     140#pragma link C++ class DecayFilter+;
     141#pragma link C++ class ParticleDensity+;
     142#pragma link C++ class TruthVertexFinder+;
    131143#pragma link C++ class ExampleModule+;
    132144#pragma link C++ class LLPFilter+;
  • modules/MomentumSmearing.cc

    ra5af1df rd612dec  
    7878  fItInputArray = fInputArray->MakeIterator();
    7979
     80  // switch to compute momentum smearing based on momentum vector eta, phi
     81  fUseMomentumVector = GetBool("UseMomentumVector", false);
     82
    8083  // create output array
    8184
     
    9598{
    9699  Candidate *candidate, *mother;
    97   Double_t pt, eta, phi, e, res;
     100  Double_t pt, eta, phi, e, m, res;
    98101
    99102  fItInputArray->Reset();
     
    104107    eta = candidatePosition.Eta();
    105108    phi = candidatePosition.Phi();
     109
     110    if (fUseMomentumVector){
     111      eta = candidateMomentum.Eta();
     112      phi = candidateMomentum.Phi();
     113    }
     114
    106115    pt = candidateMomentum.Pt();
    107116    e = candidateMomentum.E();
    108     res = fFormula->Eval(pt, eta, phi, e);
     117    m = candidateMomentum.M();
     118    res = fFormula->Eval(pt, eta, phi, e, candidate);
    109119
    110120    // apply smearing formula
     
    121131    eta = candidateMomentum.Eta();
    122132    phi = candidateMomentum.Phi();
    123     candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt * TMath::CosH(eta));
     133    candidate->Momentum.SetPtEtaPhiM(pt, eta, phi, m);
    124134    //candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e);
    125135    candidate->TrackResolution = res;
  • modules/MomentumSmearing.h

    ra5af1df rd612dec  
    5555  TObjArray *fOutputArray; //!
    5656
     57  Double_t fUseMomentumVector; //!
     58
    5759  ClassDef(MomentumSmearing, 1)
    5860};
  • modules/ParticlePropagator.cc

    ra5af1df rd612dec  
    125125  TLorentzVector particlePosition, particleMomentum, beamSpotPosition;
    126126  Double_t px, py, pz, pt, pt2, e, q;
    127   Double_t x, y, z, t, r, phi;
    128   Double_t x_c, y_c, r_c, phi_c, phi_0;
    129   Double_t x_t, y_t, z_t, r_t;
    130   Double_t t1, t2, t3, t4, t5, t6;
    131   Double_t t_z, t_r, t_ra, t_rb;
    132   Double_t tmp, discr, discr2;
    133   Double_t delta, gammam, omega, asinrho;
    134   Double_t rcu, rc2, xd, yd, zd;
    135   Double_t l, d0, dz, p, ctgTheta, phip, etap, alpha;
     127  Double_t x, y, z, t, r;
     128  Double_t x_c, y_c, r_c, phi_0;
     129  Double_t x_t, y_t, z_t, r_t, phi_t;
     130  Double_t t_r, t_z;
     131  Double_t tmp;
     132  Double_t gammam, omega;
     133  Double_t xd, yd, zd;
     134  Double_t l, d0, dz, ctgTheta, alpha;
    136135  Double_t bsx, bsy, bsz;
     136  Double_t td, pio, phid, vz;
    137137
    138138  const Double_t c_light = 2.99792458E8;
    139139
    140140  if(!fBeamSpotInputArray || fBeamSpotInputArray->GetSize() == 0)
     141  {
    141142    beamSpotPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);
     143  }
    142144  else
    143145  {
     
    160162    particlePosition = particle->Position;
    161163    particleMomentum = particle->Momentum;
     164
    162165    x = particlePosition.X() * 1.0E-3;
    163166    y = particlePosition.Y() * 1.0E-3;
     
    206209      // solve pt2*t^2 + 2*(px*x + py*y)*t - (fRadius2 - x*x - y*y) = 0
    207210      tmp = px * y - py * x;
    208       discr2 = pt2 * fRadius2 - tmp * tmp;
    209 
    210       if(discr2 < 0.0)
    211       {
    212         // no solutions
    213         continue;
    214       }
    215 
    216       tmp = px * x + py * y;
    217       discr = TMath::Sqrt(discr2);
    218       t1 = (-tmp + discr) / pt2;
    219       t2 = (-tmp - discr) / pt2;
    220       t = (t1 < 0.0) ? t2 : t1;
    221 
    222       z_t = z + pz * t;
    223       if(TMath::Abs(z_t) > fHalfLength)
    224       {
    225         t3 = (+fHalfLength - z) / pz;
    226         t4 = (-fHalfLength - z) / pz;
    227         t = (t3 < 0.0) ? t4 : t3;
    228       }
     211      t_r = (TMath::Sqrt(pt2 * fRadius2 - tmp * tmp) - px * x - py * y) / pt2;
     212
     213      t_z = (TMath::Sign(fHalfLength, pz) - z) / pz;
     214
     215      t = TMath::Min(t_r, t_z);
    229216
    230217      x_t = x + px * t;
     
    245232
    246233      fOutputArray->Add(candidate);
     234
    247235      if(TMath::Abs(q) > 1.0E-9)
    248236      {
     
    267255    {
    268256
    269       // 1.  initial transverse momentum p_{T0}: Part->pt
    270       //     initial transverse momentum direction phi_0 = -atan(p_X0/p_Y0)
    271       //     relativistic gamma: gamma = E/mc^2; gammam = gamma * m
    272       //     gyration frequency omega = q/(gamma m) fBz
    273       //     helix radius r = p_{T0} / (omega gamma m)
     257      // 1. initial transverse momentum p_{T0}: Part->pt
     258      //    initial transverse momentum direction phi_0 = -atan(p_{X0} / p_{Y0})
     259      //    relativistic gamma: gamma = E / mc^2; gammam = gamma * m
     260      //    gyration frequency omega = q * Bz / (gammam)
     261      //    helix radius r = p_{T0} / (omega * gammam)
    274262
    275263      gammam = e * 1.0E9 / (c_light * c_light); // gammam in [eV/c^2]
    276       omega = q * fBz / (gammam); // omega is here in [89875518/s]
     264      omega = q * fBz / gammam; // omega is here in [89875518/s]
    277265      r = pt / (q * fBz) * 1.0E9 / c_light; // in [m]
    278266
     
    283271      y_c = y - r * TMath::Cos(phi_0);
    284272      r_c = TMath::Hypot(x_c, y_c);
    285       phi_c = TMath::ATan2(y_c, x_c);
    286       phi = phi_c;
    287       if(x_c < 0.0) phi += TMath::Pi();
    288 
    289       rcu = TMath::Abs(r);
    290       rc2 = r_c * r_c;
    291 
    292       // calculate coordinates of closest approach to track circle in transverse plane xd, yd, zd
    293       xd = x_c * x_c * x_c - x_c * rcu * r_c + x_c * y_c * y_c;
    294       xd = (rc2 > 0.0) ? xd / rc2 : -999;
    295       yd = y_c * (-rcu * r_c + rc2);
    296       yd = (rc2 > 0.0) ? yd / rc2 : -999;
    297       zd = z + (TMath::Sqrt(xd * xd + yd * yd) - TMath::Sqrt(x * x + y * y)) * pz / pt;
    298 
    299       // use perigee momentum rather than original particle
    300       // momentum, since the orignal particle momentum isn't known
    301 
    302       px = TMath::Sign(1.0, r) * pt * (-y_c / r_c);
    303       py = TMath::Sign(1.0, r) * pt * (x_c / r_c);
    304       etap = particleMomentum.Eta();
    305       phip = TMath::ATan2(py, px);
    306 
    307       particleMomentum.SetPtEtaPhiE(pt, etap, phip, particleMomentum.E());
     273
     274      // time of closest approach
     275      td = (phi_0 + TMath::ATan2(x_c, y_c)) / omega;
     276
     277      // remove all the modulo pi that might have come from the atan
     278      pio = TMath::Abs(TMath::Pi() / omega);
     279      while(TMath::Abs(td) > 0.5 * pio)
     280      {
     281        td -= TMath::Sign(1.0, td) * pio;
     282      }
     283
     284      vz = pz * c_light / e;
     285
     286      // calculate coordinates of closest approach to z axis
     287      phid = phi_0 - omega * td;
     288      xd = x_c - r * TMath::Sin(phid);
     289      yd = y_c + r * TMath::Cos(phid);
     290      zd = z + vz * td;
     291
     292      // momentum at closest approach
     293      px = pt * TMath::Cos(phid);
     294      py = pt * TMath::Sin(phid);
     295
     296      particleMomentum.SetPtEtaPhiE(pt, particleMomentum.Eta(), phid, particleMomentum.E());
    308297
    309298      // calculate additional track parameters (correct for beamspot position)
    310 
    311       d0 = ((x - bsx) * py - (y - bsy) * px) / pt;
    312       dz = z - ((x - bsx) * px + (y - bsy) * py) / pt * (pz / pt);
    313       p = particleMomentum.P();
     299      d0 = ((xd - bsx) * py - (yd - bsy) * px) / pt;
     300      dz = zd - bsz;
    314301      ctgTheta = 1.0 / TMath::Tan(particleMomentum.Theta());
    315302
     
    317304      //    t_r : time to exit from the sides
    318305      //    t_z : time to exit from the front or the back
    319       t_r = 0.0; // in [ns]
    320       int sign_pz = (pz > 0.0) ? 1 : -1;
    321       if(pz == 0.0)
    322         t_z = 1.0E99;
    323       else
    324         t_z = gammam / (pz * 1.0E9 / c_light) * (-z + fHalfLength * sign_pz);
     306      t_z = (vz == 0.0) ? 1.0E99 : (TMath::Sign(fHalfLength, pz) - z) / vz;
    325307
    326308      if(r_c + TMath::Abs(r) < fRadius)
     
    331313      else
    332314      {
    333         asinrho = TMath::ASin((fRadius * fRadius - r_c * r_c - r * r) / (2 * TMath::Abs(r) * r_c));
    334         delta = phi_0 - phi;
    335         if(delta < -TMath::Pi()) delta += 2 * TMath::Pi();
    336         if(delta > TMath::Pi()) delta -= 2 * TMath::Pi();
    337         t1 = (delta + asinrho) / omega;
    338         t2 = (delta + TMath::Pi() - asinrho) / omega;
    339         t3 = (delta + TMath::Pi() + asinrho) / omega;
    340         t4 = (delta - asinrho) / omega;
    341         t5 = (delta - TMath::Pi() - asinrho) / omega;
    342         t6 = (delta - TMath::Pi() + asinrho) / omega;
    343 
    344         if(t1 < 0.0) t1 = 1.0E99;
    345         if(t2 < 0.0) t2 = 1.0E99;
    346         if(t3 < 0.0) t3 = 1.0E99;
    347         if(t4 < 0.0) t4 = 1.0E99;
    348         if(t5 < 0.0) t5 = 1.0E99;
    349         if(t6 < 0.0) t6 = 1.0E99;
    350 
    351         t_ra = TMath::Min(t1, TMath::Min(t2, t3));
    352         t_rb = TMath::Min(t4, TMath::Min(t5, t6));
    353         t_r = TMath::Min(t_ra, t_rb);
     315        alpha = TMath::ACos((r * r + r_c * r_c - fRadius * fRadius) / (2 * TMath::Abs(r) * r_c));
     316        t_r = td + TMath::Abs(alpha / omega);
     317
    354318        t = TMath::Min(t_r, t_z);
    355319      }
    356320
    357321      // 4. position in terms of x(t), y(t), z(t)
    358       x_t = x_c + r * TMath::Sin(omega * t - phi_0);
    359       y_t = y_c + r * TMath::Cos(omega * t - phi_0);
    360       z_t = z + pz * 1.0E9 / c_light / gammam * t;
     322      phi_t = phi_0 - omega * t;
     323      x_t = x_c - r * TMath::Sin(phi_t);
     324      y_t = y_c + r * TMath::Cos(phi_t);
     325      z_t = z + vz * t;
    361326      r_t = TMath::Hypot(x_t, y_t);
    362327
    363       // compute path length for an helix
    364 
    365       alpha = pz * 1.0E9 / c_light / gammam;
    366       l = t * TMath::Sqrt(alpha * alpha + r * r * omega * omega);
     328      // lenght of the path from production to tracker
     329      l = t * TMath::Hypot(vz, r * omega);
    367330
    368331      if(r_t > 0.0)
    369332      {
    370 
    371333        // store these variables before cloning
    372334        if(particle == candidate)
     
    374336          particle->D0 = d0 * 1.0E3;
    375337          particle->DZ = dz * 1.0E3;
    376           particle->P = p;
     338          particle->P = particleMomentum.P();
    377339          particle->PT = pt;
    378340          particle->CtgTheta = ctgTheta;
    379           particle->Phi = phip;
     341          particle->Phi = particleMomentum.Phi();
    380342        }
    381343
  • modules/SimpleCalorimeter.cc

    ra5af1df rd612dec  
    208208  fItParticleInputArray->Reset();
    209209  number = -1;
     210  fTowerRmax=0.;
    210211  while((particle = static_cast<Candidate *>(fItParticleInputArray->Next())))
    211212  {
    212213    const TLorentzVector &particlePosition = particle->Position;
    213214    ++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();
    214219
    215220    pdgCode = TMath::Abs(particle->PID);
     
    394399    fTowerEnergy += energy;
    395400
    396     fTowerTime += energy * position.T();
    397     fTowerTimeWeight += energy;
     401    fTowerTime += energy * energy * position.T(); //sigma_t ~ 1/E
     402    fTowerTimeWeight += energy * energy;
    398403
    399404    fTower->AddCandidate(particle);
     405    fTower->Position = position;
     406
    400407  }
    401408
     
    409416{
    410417  Candidate *tower, *track, *mother;
    411   Double_t energy, neutralEnergy, pt, eta, phi;
     418  Double_t energy, neutralEnergy, pt, eta, phi, r;
    412419  Double_t sigma, neutralSigma;
    413420  Double_t time;
     
    443450  pt = energy / TMath::CosH(eta);
    444451
    445   fTower->Position.SetPtEtaPhiE(1.0, eta, phi, time);
     452  // endcap
     453  if (TMath::Abs(fTower->Position.Pt() - fTowerRmax) > 1.e-06 && TMath::Abs(eta) > 0.){
     454    r = fTower->Position.Z()/TMath::SinH(eta);
     455  }
     456  // barrel
     457  else {
     458    r = fTower->Position.Pt();
     459  }
     460
     461  fTower->Position.SetPtEtaPhiE(r, eta, phi, time);
    446462  fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy);
     463  fTower->L = fTower->Position.Vect().Mag();
    447464
    448465  fTower->Eem = (!fIsEcal) ? 0 : energy;
    449466  fTower->Ehad = (fIsEcal) ? 0 : energy;
     467  fTower->Etrk = fTrackEnergy;
    450468
    451469  fTower->Edges[0] = fTowerEdges[0];
     
    507525      track = static_cast<Candidate *>(track->Clone());
    508526      track->AddCandidate(mother);
    509 
    510       track->Momentum *= rescaleFactor;
    511 
     527      track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M());
    512528      fEFlowTrackOutputArray->Add(track);
    513529    }
  • modules/SimpleCalorimeter.h

    ra5af1df rd612dec  
    6262  Double_t fTrackTime;
    6363
     64  Double_t fTowerRmax;
     65
    6466  Double_t fTowerTimeWeight;
    6567  Double_t fTrackTimeWeight;
  • modules/TauTagging.cc

    ra5af1df rd612dec  
    8383    daughter1 = static_cast<Candidate *>(fParticleInputArray->At(i));
    8484    pdgCode = TMath::Abs(daughter1->PID);
    85     if(pdgCode == 11 || pdgCode == 13 || pdgCode == 15)
    86       return -1;
    87     else if(pdgCode == 24)
     85    //if(pdgCode == 11 || pdgCode == 13 || pdgCode == 15)
     86    //  return -1;
     87    if(pdgCode == 24)
    8888    {
    8989      if(daughter1->D1 < 0) return -1;
     
    9696    }
    9797  }
    98 
    9998  return 0;
    10099}
     
    190189void TauTagging::Process()
    191190{
    192   Candidate *jet, *tau, *daughter;
     191  Candidate *jet, *tau, *daughter, *part;
    193192  TLorentzVector tauMomentum;
    194193  Double_t pt, eta, phi, e, eff;
     
    204203  // loop over all input jets
    205204  fItJetInputArray->Reset();
     205
    206206  while((jet = static_cast<Candidate *>(fItJetInputArray->Next())))
    207207  {
     208
    208209    const TLorentzVector &jetMomentum = jet->Momentum;
    209210    pdgCode = 0;
     
    243244      }
    244245    }
     246   
     247    // fake electrons and muons
     248   
     249    if (pdgCode == 0)
     250    {
     251     
     252      Double_t drMin = fDeltaR;   
     253      fItPartonInputArray->Reset();
     254      while((part = static_cast<Candidate *>(fItPartonInputArray->Next())))
     255      {
     256        if(TMath::Abs(part->PID) == 11 || TMath::Abs(part->PID) == 13)
     257        {
     258            tauMomentum = part->Momentum;
     259            if (tauMomentum.Pt() < fClassifier->fPTMin) continue;
     260            if (TMath::Abs(tauMomentum.Eta()) > fClassifier->fEtaMax) continue;
     261
     262            Double_t dr = jetMomentum.DeltaR(tauMomentum);
     263            if( dr < drMin)
     264            {
     265               drMin = dr;
     266               pdgCode = TMath::Abs(part->PID);
     267               charge = part->Charge;
     268            } 
     269        }
     270      }
     271    }
     272
    245273    // find an efficency formula
    246274    itEfficiencyMap = fEfficiencyMap.find(pdgCode);
  • modules/TimeSmearing.cc

    ra5af1df rd612dec  
    1919/** \class TimeSmearing
    2020 *
    21  *  Performs transverse momentum resolution smearing.
     21 *  Performs time smearing.
    2222 *
    23  *  \author P. Demin - UCL, Louvain-la-Neuve
     23 *  \author M. Selvaggi - CERN
    2424 *
    2525 */
     
    4949
    5050using namespace std;
    51 
    5251//------------------------------------------------------------------------------
    5352
    5453TimeSmearing::TimeSmearing() :
    55   fItInputArray(0)
     54  fItInputArray(0), fResolutionFormula(0)
    5655{
     56        fResolutionFormula = new DelphesFormula;
    5757}
    5858
     
    6161TimeSmearing::~TimeSmearing()
    6262{
     63        if(fResolutionFormula) delete fResolutionFormula;
    6364}
    6465
     
    6970  // read resolution formula
    7071
    71   fTimeResolution = GetDouble("TimeResolution", 1.0E-10);
    72   // import input array
     72  // read time resolution formula in seconds
     73  fResolutionFormula->Compile(GetString("TimeResolution", "30e-12"));
    7374
     75  // import track input array
    7476  fInputArray = ImportArray(GetString("InputArray", "MuonMomentumSmearing/muons"));
    7577  fItInputArray = fInputArray->MakeIterator();
    7678
     79
    7780  // create output array
    78 
    79   fOutputArray = ExportArray(GetString("OutputArray", "muons"));
     81  fOutputArray = ExportArray(GetString("OutputArray", "tracks"));
    8082}
    8183
     
    9294{
    9395  Candidate *candidate, *mother;
    94   Double_t ti, tf_smeared, tf;
     96  Double_t tf_smeared, tf;
     97  Double_t eta, energy;
     98  Double_t timeResolution;
     99
    95100  const Double_t c_light = 2.99792458E8;
    96101
     
    98103  while((candidate = static_cast<Candidate *>(fItInputArray->Next())))
    99104  {
    100     const TLorentzVector &candidateInitialPosition = candidate->InitialPosition;
     105
    101106    const TLorentzVector &candidateFinalPosition = candidate->Position;
     107    const TLorentzVector &candidateMomentum = candidate->Momentum;
    102108
    103     ti = candidateInitialPosition.T() * 1.0E-3 / c_light;
    104109    tf = candidateFinalPosition.T() * 1.0E-3 / c_light;
    105110
     111    eta = candidateMomentum.Eta();
     112    energy = candidateMomentum.E();
     113
    106114    // apply smearing formula
    107     tf_smeared = gRandom->Gaus(tf, fTimeResolution);
    108     ti = ti + tf_smeared - tf;
    109     tf = tf_smeared;
     115    timeResolution = fResolutionFormula->Eval(0.0, eta, 0.0, energy);
     116    tf_smeared = gRandom->Gaus(tf, timeResolution);
    110117
    111118    mother = candidate;
    112119    candidate = static_cast<Candidate *>(candidate->Clone());
    113     candidate->InitialPosition.SetT(ti * 1.0E3 * c_light);
    114     candidate->Position.SetT(tf * 1.0E3 * c_light);
    115120
    116     candidate->ErrorT = fTimeResolution * 1.0E3 * c_light;
     121    candidate->Position.SetT(tf_smeared * 1.0E3 * c_light);
     122    candidate->ErrorT = timeResolution * 1.0E3 * c_light;
    117123
    118124    candidate->AddCandidate(mother);
    119 
    120125    fOutputArray->Add(candidate);
    121126  }
    122127}
    123 
    124 //------------------------------------------------------------------------------
  • modules/TimeSmearing.h

    ra5af1df rd612dec  
    2222/** \class TimeSmearing
    2323 *
    24  *  Performs transverse time smearing.
     24 *  Performs time smearing.
    2525 *
    26  *  \author Michele Selvaggi - UCL, Louvain-la-Neuve
     26 *  \author Michele Selvaggi - CERN
    2727 *
    2828 */
     
    3232class TIterator;
    3333class TObjArray;
     34class DelphesFormula;
    3435
    3536class TimeSmearing: public DelphesModule
     
    4445
    4546private:
    46   Double_t fTimeResolution;
     47
     48  DelphesFormula *fResolutionFormula;
     49  Int_t fVertexTimeMode;
    4750
    4851  TIterator *fItInputArray; //!
  • modules/TrackSmearing.cc

    ra5af1df rd612dec  
    158158  TLorentzVector beamSpotPosition;
    159159  Candidate *candidate, *mother;
    160   Double_t pt, eta, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi;
     160  Double_t pt, eta, e, m, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi;
    161161  Double_t x, y, z, t, px, py, pz, theta;
    162162  Double_t q, r;
     
    223223    pt = momentum.Pt();
    224224    eta = momentum.Eta();
     225    e = momentum.E();
     226    m = momentum.M();
    225227
    226228    d0 = trueD0 = candidate->D0;
     
    232234
    233235    if(fUseD0Formula)
    234       d0Error = fD0Formula->Eval(pt, eta);
     236      d0Error = fD0Formula->Eval(pt, eta, phi, e, candidate);
    235237    else
    236238    {
     
    247249
    248250    if(fUseDZFormula)
    249       dzError = fDZFormula->Eval(pt, eta);
     251      dzError = fDZFormula->Eval(pt, eta, phi, e, candidate);
    250252    else
    251253    {
     
    262264
    263265    if(fUsePFormula)
    264       pError = fPFormula->Eval(pt, eta) * p;
     266      pError = fPFormula->Eval(pt, eta, phi, e, candidate) * p;
    265267    else
    266268    {
     
    277279
    278280    if(fUseCtgThetaFormula)
    279       ctgThetaError = fCtgThetaFormula->Eval(pt, eta);
     281      ctgThetaError = fCtgThetaFormula->Eval(pt, eta, phi, e, candidate);
    280282    else
    281283    {
     
    292294
    293295    if(fUsePhiFormula)
    294       phiError = fPhiFormula->Eval(pt, eta);
     296      phiError = fPhiFormula->Eval(pt, eta, phi, e, candidate);
    295297    else
    296298    {
     
    331333    candidate->Momentum.SetPy(p * TMath::Sin(phi) * TMath::Sin(theta));
    332334    candidate->Momentum.SetPz(p * TMath::Cos(theta));
    333     candidate->Momentum.SetE(candidate->Momentum.Pt() * TMath::CosH(eta));
     335    candidate->Momentum.SetE(TMath::Sqrt(p*p + m*m));
    334336    candidate->PT = candidate->Momentum.Pt();
    335337
  • modules/TreeWriter.cc

    ra5af1df rd612dec  
    7272  fClassMap[Track::Class()] = &TreeWriter::ProcessTracks;
    7373  fClassMap[Tower::Class()] = &TreeWriter::ProcessTowers;
     74  fClassMap[ParticleFlowCandidate::Class()] = &TreeWriter::ProcessParticleFlowCandidates;
    7475  fClassMap[Photon::Class()] = &TreeWriter::ProcessPhotons;
    7576  fClassMap[Electron::Class()] = &TreeWriter::ProcessElectrons;
     
    123124    fBranchMap.insert(make_pair(branch, make_pair(itClassMap->second, array)));
    124125  }
     126
     127  param = GetParam("Info");
     128  TString infoName;
     129  Double_t infoValue;
     130
     131  size = param.GetSize();
     132  for(i = 0; i < size / 2; ++i)
     133  {
     134    infoName = param[i * 2].GetString();
     135    infoValue = param[i * 2 + 1].GetDouble();
     136
     137    AddInfo(infoName, infoValue);
     138  }
    125139}
    126140
     
    138152  it1.Reset();
    139153  array->Clear();
     154
    140155  while((candidate = static_cast<Candidate *>(it1.Next())))
    141156  {
     
    215230    entry->Pz = momentum.Pz();
    216231
    217     entry->D0 = candidate->D0;
    218     entry->DZ = candidate->DZ;
    219     entry->P = momentum.P();
    220     entry->PT = candidate->PT;
    221     entry->CtgTheta = candidate->CtgTheta;
    222     entry->Phi = candidate->Phi;
    223 
    224232    entry->Eta = eta;
    225233    entry->Phi = momentum.Phi();
     
    322330  Candidate *particle = 0;
    323331  Track *entry = 0;
    324   Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi;
     332  Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi, m;
    325333  const Double_t c_light = 2.99792458E8;
    326334
     
    356364
    357365    entry->D0 = candidate->D0;
    358     entry->ErrorD0 = candidate->ErrorD0;
    359366    entry->DZ = candidate->DZ;
    360     entry->ErrorDZ = candidate->ErrorDZ;
     367    entry->Nclusters = candidate->Nclusters;
     368    entry->dNdx = candidate->dNdx;
    361369
    362370    entry->ErrorP = candidate->ErrorP;
    363371    entry->ErrorPT = candidate->ErrorPT;
     372
     373    // diagonal covariance matrix terms
     374    entry->ErrorD0 = candidate->ErrorD0;
     375    entry->ErrorC = candidate->ErrorC;
     376    entry->ErrorPhi = candidate->ErrorPhi;
     377    entry->ErrorDZ = candidate->ErrorDZ;
    364378    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
    365     entry->ErrorPhi = candidate->ErrorPhi;
     379
     380    // add some offdiagonal covariance matrix elements
     381    entry->ErrorD0Phi          = candidate->TrackCovariance(0,1);
     382    entry->ErrorD0C            = candidate->TrackCovariance(0,2);
     383    entry->ErrorD0DZ           = candidate->TrackCovariance(0,3);
     384    entry->ErrorD0CtgTheta     = candidate->TrackCovariance(0,4);
     385    entry->ErrorPhiC           = candidate->TrackCovariance(1,2);
     386    entry->ErrorPhiDZ          = candidate->TrackCovariance(1,3);
     387    entry->ErrorPhiCtgTheta    = candidate->TrackCovariance(1,4);
     388    entry->ErrorCDZ            = candidate->TrackCovariance(2,3);
     389    entry->ErrorCCtgTheta      = candidate->TrackCovariance(2,4);
     390    entry->ErrorDZCtgTheta     = candidate->TrackCovariance(3,4);
    366391
    367392    entry->Xd = candidate->Xd;
     
    374399    p = momentum.P();
    375400    phi = momentum.Phi();
     401    m = momentum.M();
    376402    ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10;
    377403
     
    386412    entry->Phi = phi;
    387413    entry->CtgTheta = ctgTheta;
     414    entry->C = candidate->C;
     415    entry->Mass = m;
    388416
    389417    particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
    390     const TLorentzVector &initialPosition = particle->Position;
     418    //const TLorentzVector &initialPosition = particle->Position;
     419    const TLorentzVector &initialPosition = candidate->InitialPosition;
    391420
    392421    entry->X = initialPosition.X();
     
    394423    entry->Z = initialPosition.Z();
    395424    entry->T = initialPosition.T() * 1.0E-3 / c_light;
     425    entry->ErrorT =candidate-> ErrorT * 1.0E-3 / c_light;
    396426
    397427    entry->Particle = particle;
     
    435465    entry->Eem = candidate->Eem;
    436466    entry->Ehad = candidate->Ehad;
     467    entry->Etrk = candidate->Etrk;
    437468    entry->Edges[0] = candidate->Edges[0];
    438469    entry->Edges[1] = candidate->Edges[1];
     
    444475
    445476    FillParticles(candidate, &entry->Particles);
     477  }
     478}
     479
     480//------------------------------------------------------------------------------
     481
     482void TreeWriter::ProcessParticleFlowCandidates(ExRootTreeBranch *branch, TObjArray *array)
     483{
     484
     485  TIter iterator(array);
     486  Candidate *candidate = 0;
     487  Candidate *particle = 0;
     488  ParticleFlowCandidate *entry = 0;
     489  Double_t e, pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi, m;
     490  const Double_t c_light = 2.99792458E8;
     491
     492  // loop over all tracks
     493  iterator.Reset();
     494  while((candidate = static_cast<Candidate *>(iterator.Next())))
     495  {
     496    const TLorentzVector &position = candidate->Position;
     497
     498    cosTheta = TMath::Abs(position.CosTheta());
     499    signz = (position.Pz() >= 0.0) ? 1.0 : -1.0;
     500    eta = (cosTheta == 1.0 ? signz * 999.9 : position.Eta());
     501    rapidity = (cosTheta == 1.0 ? signz * 999.9 : position.Rapidity());
     502
     503    entry = static_cast<ParticleFlowCandidate *>(branch->NewEntry());
     504
     505    entry->SetBit(kIsReferenced);
     506    entry->SetUniqueID(candidate->GetUniqueID());
     507
     508    entry->PID = candidate->PID;
     509
     510    entry->Charge = candidate->Charge;
     511
     512    entry->EtaOuter = eta;
     513    entry->PhiOuter = position.Phi();
     514
     515    entry->XOuter = position.X();
     516    entry->YOuter = position.Y();
     517    entry->ZOuter = position.Z();
     518    entry->TOuter = position.T() * 1.0E-3 / c_light;
     519
     520    entry->L = candidate->L;
     521
     522    entry->D0 = candidate->D0;
     523    entry->DZ = candidate->DZ;
     524    entry->Nclusters = candidate->Nclusters;
     525    entry->dNdx = candidate->dNdx;
     526
     527    entry->ErrorP = candidate->ErrorP;
     528    entry->ErrorPT = candidate->ErrorPT;
     529    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
     530
     531
     532    // diagonal covariance matrix terms
     533
     534    entry->ErrorD0 = candidate->ErrorD0;
     535    entry->ErrorC = candidate->ErrorC;
     536    entry->ErrorPhi = candidate->ErrorPhi;
     537    entry->ErrorDZ = candidate->ErrorDZ;
     538    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
     539
     540    // add some offdiagonal covariance matrix elements
     541    entry->ErrorD0Phi          = candidate->TrackCovariance(0,1);
     542    entry->ErrorD0C            = candidate->TrackCovariance(0,2);
     543    entry->ErrorD0DZ           = candidate->TrackCovariance(0,3);
     544    entry->ErrorD0CtgTheta     = candidate->TrackCovariance(0,4);
     545    entry->ErrorPhiC           = candidate->TrackCovariance(1,2);
     546    entry->ErrorPhiDZ          = candidate->TrackCovariance(1,3);
     547    entry->ErrorPhiCtgTheta    = candidate->TrackCovariance(1,4);
     548    entry->ErrorCDZ            = candidate->TrackCovariance(2,3);
     549    entry->ErrorCCtgTheta      = candidate->TrackCovariance(2,4);
     550    entry->ErrorDZCtgTheta     = candidate->TrackCovariance(3,4);
     551
     552    entry->Xd = candidate->Xd;
     553    entry->Yd = candidate->Yd;
     554    entry->Zd = candidate->Zd;
     555
     556    const TLorentzVector &momentum = candidate->Momentum;
     557
     558    e = momentum.E();
     559    pt = momentum.Pt();
     560    p = momentum.P();
     561    phi = momentum.Phi();
     562    m = momentum.M();
     563    ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10;
     564
     565    entry->E = e;
     566    entry->P = p;
     567    entry->PT = pt;
     568    entry->Eta = eta;
     569    entry->Phi = phi;
     570    entry->CtgTheta = ctgTheta;
     571    entry->C = candidate->C;
     572    entry->Mass = m;
     573
     574    particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
     575    //const TLorentzVector &initialPosition = particle->Position;
     576    const TLorentzVector &initialPosition = candidate->InitialPosition;
     577
     578    entry->X = initialPosition.X();
     579    entry->Y = initialPosition.Y();
     580    entry->Z = initialPosition.Z();
     581    entry->T = initialPosition.T() * 1.0E-3 / c_light;
     582    entry->ErrorT = candidate-> ErrorT * 1.0E-3 / c_light;
     583
     584    entry->VertexIndex = candidate->ClusterIndex;
     585
     586    entry->Eem = candidate->Eem;
     587    entry->Ehad = candidate->Ehad;
     588    entry->Etrk = candidate->Etrk;
     589    entry->Edges[0] = candidate->Edges[0];
     590    entry->Edges[1] = candidate->Edges[1];
     591    entry->Edges[2] = candidate->Edges[2];
     592    entry->Edges[3] = candidate->Edges[3];
     593
     594    //entry->T = position.T() * 1.0E-3 / c_light;
     595    entry->NTimeHits = candidate->NTimeHits;
     596
     597    FillParticles(candidate, &entry->Particles);
     598
    446599  }
    447600}
     
    687840    entry->NCharged = candidate->NCharged;
    688841    entry->NNeutrals = candidate->NNeutrals;
     842
     843    entry->NeutralEnergyFraction = candidate->NeutralEnergyFraction;
     844    entry->ChargedEnergyFraction = candidate->ChargedEnergyFraction;
    689845    entry->Beta = candidate->Beta;
    690846    entry->BetaStar = candidate->BetaStar;
  • modules/TreeWriter.h

    ra5af1df rd612dec  
    5656  void ProcessTracks(ExRootTreeBranch *branch, TObjArray *array);
    5757  void ProcessTowers(ExRootTreeBranch *branch, TObjArray *array);
     58  void ProcessParticleFlowCandidates(ExRootTreeBranch *branch, TObjArray *array);
    5859  void ProcessPhotons(ExRootTreeBranch *branch, TObjArray *array);
    5960  void ProcessElectrons(ExRootTreeBranch *branch, TObjArray *array);
     
    7980#endif
    8081
    81   ClassDef(TreeWriter, 1)
     82  ClassDef(TreeWriter, 2)
    8283};
    8384
  • readers/DelphesCMSFWLite.cpp

    ra5af1df rd612dec  
    217217      // Prevent duplicated particle.
    218218      if(!isMiniAOD) stableParticleOutputArray->Add(candidate);
    219     }
    220     else if(pdgCode <= 5 || pdgCode == 21 || pdgCode == 15)
     219      if (pdgCode == 11 || pdgCode == 13) partonOutputArray->Add(candidate);
     220    }
     221    //else if(pdgCode <= 5 || pdgCode == 21 || pdgCode == 15)
     222    else if(pdgCode <= 5 || pdgCode == 21 || pdgCode == 11 || pdgCode == 13 || pdgCode == 15)
    221223    {
    222224      partonOutputArray->Add(candidate);
     
    309311  DelphesFactory *factory = 0;
    310312  TObjArray *allParticleOutputArray = 0, *stableParticleOutputArray = 0, *partonOutputArray = 0;
    311   Int_t i;
     313  Int_t i, maxEvents, skipEvents;
    312314  Long64_t eventCounter, numberOfEvents;
    313315  Bool_t firstEvent = kTRUE;
     
    351353    confReader = new ExRootConfReader;
    352354    confReader->ReadFile(argv[1]);
     355   
     356    maxEvents = confReader->GetInt("::MaxEvents", 0);
     357    skipEvents = confReader->GetInt("::SkipEvents", 0);
     358   
     359    if(maxEvents < 0)
     360    {
     361      throw runtime_error("MaxEvents must be zero or positive");
     362    }
     363   
     364    if(skipEvents < 0)
     365    {
     366      throw runtime_error("SkipEvents must be zero or positive");
     367    }
    353368
    354369    modularDelphes = new Delphes("Delphes");
     
    389404      treeWriter->Clear();
    390405
    391       for(event.toBegin(); !event.atEnd() && !interrupted; ++event)
     406      for(event.toBegin(); !event.atEnd() && !interrupted && (maxEvents <= 0 || eventCounter-skipEvents < maxEvents); ++event)
    392407      {
    393         ConvertInput(event, eventCounter, branchEvent, branchWeight, factory,
    394           allParticleOutputArray, stableParticleOutputArray, partonOutputArray, firstEvent);
    395         modularDelphes->ProcessTask();
    396 
    397         firstEvent = kFALSE;
    398 
    399         treeWriter->Fill();
    400 
    401         modularDelphes->Clear();
    402         treeWriter->Clear();
     408        if(eventCounter >= skipEvents){
     409          ConvertInput(event, eventCounter, branchEvent, branchWeight, factory,
     410            allParticleOutputArray, stableParticleOutputArray, partonOutputArray, firstEvent);
     411          modularDelphes->ProcessTask();
     412
     413          firstEvent = kFALSE;
     414
     415          treeWriter->Fill();
     416
     417          modularDelphes->Clear();
     418          treeWriter->Clear();
     419        }
    403420
    404421        progressBar.Update(eventCounter, eventCounter);
  • readers/DelphesPythia8.cpp

    ra5af1df rd612dec  
    296296
    297297    // jet matching
     298#if PYTHIA_VERSION_INTEGER < 8300
    298299    matching = combined->getHook(*pythia);
    299300    if(!matching)
     
    302303    }
    303304    pythia->setUserHooksPtr(matching);
     305#endif
    304306
    305307    if(pythia == NULL)
  • validation/DelphesValidation.cpp

    ra5af1df rd612dec  
    3232#include "TGraph.h"
    3333#include "TGraphErrors.h"
     34#include "TF1.h"
    3435#include "TH1.h"
    3536#include "TH2.h"
  • validation/validation.sh

    ra5af1df rd612dec  
    1 #!/bin/sh
     1#!/bin/bash
    22################################################################################
    33#
    4 # This code produces at set of validation plots for a given detector card.
     4# This code produces a set of validation plots for a given detector card.
    55#
    66# In order to run this you need to compile Delphes with Pythia8 first, see:
     
    1010# After you (re-)compiled Delphes with Pythia8 you are ready to go, execute from Delphes main dir:
    1111#
    12 # ./examples/validation.sh [detector_card] [number_of_events]
     12# ./validation/validation.sh [detector_card] [number_of_events]
    1313#
    1414#  e.g.
    1515#
    16 # ./examples/validation.sh cards/delphes_card_CMS.tcl 100000
     16# ./validation/validation.sh cards/delphes_card_CMS.tcl 100000
    1717#
    1818# Note that the more events you specify, the more accurate the controls plots will be ...
     
    3838outputrootdir=report_${cardbase%.*}/root
    3939cardlabel=${cardbase%.*}
    40 version=$(cat VERSION)
     40version=x.y.z
    4141outpdf=$mainoutputdir/${output%.*}.pdf
    4242cardsdir=validation/cards
Note: See TracChangeset for help on using the changeset viewer.