Regression in particle flow based isolation between Phys/v26r4 and Phys/v26r3 (corresponding to DaVinci v45r3 and v45r4)
@sfarry @wbarter @lsestini @cvazquez @masmith @erodrigu @pkoppenb @mramospe
Between DaVinci v45r3
and v45r4
we see a regression in the following functor "SUMCONE(0.4**2 , PT , 'Phys/PFParticles')"
. (Verified invariance under v45r4
-> v45r{5,6}
). The following plot compares the candidate-by-candidate values between v45r3
and v45r4
.
Instructions to reproduce this study are copied below.
After some investigation we traced the issue to !630 (merged), specifically the change of two default values in https://gitlab.cern.ch/lhcb/Phys/-/blob/run2-patches/Phys/JetAccessories/python/JetAccessories/HltJetConf.py . The algorithm defaults are ETcut=some_negative_value
and withET=False
. With these two lines commented out the above plot becomes perfectly diagonal.
hcalClus = CellularAutomatonAlg(
'HcalClusterization') # name is enough to setup I/O
clusTool = hcalClus.addTool(CaloClusterizationTool)
clusTool.ETcut = 2500
clusTool.withET = True
Reproduce with
lb-run -c x86_64-centos7-gcc8-opt DaVinci/v45r3 gaudirun.py DV_test.py && mv DVntuple.root v45r3.root
lb-run -c x86_64-centos7-gcc9-opt DaVinci/v45r4 gaudirun.py DV_test.py && mv DVntuple.root v45r4.root
# then trivial plotting of one tree versus the other
#DV_test.py
from DecayTreeTuple.Configuration import *
from Configurables import DaVinci
DaVinci().TupleFile = 'DVntuple.root'
DaVinci().Simulation = False
DaVinci().DataType = '2016'
DaVinci().EvtMax = 1000
DaVinci().PrintFreq = 100
from GaudiConf import IOHelper
IOHelper().inputFiles(['root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision16/EW.DST/00103102/0003/00103102_00033752_1.ew.dst'])
dtt = DecayTreeTuple("reco")
dtt.ToolList = []
dtt.Inputs = ['/Event/EW/Phys/WMuLine/Particles']
dtt.Decay = 'mu+'
dtt.addBranches({"mu": "^mu+"})
atool = dtt.mu.addTupleTool("LoKi::Hybrid::TupleTool/LoKi_Reco")
atool.Variables = {"PF_ISOLATION" : "SUMCONE(0.4**2 , PT , 'Phys/PFParticles')"}
DaVinci().UserAlgorithms.append(dtt)