Specifying list of tools for algorithm
For the CaloFutureMergedPi0
algorithm, a list of tools is required (see MR !282 (merged) in particular https://gitlab.cern.ch/lhcb/Moore/blob/d8d8be7f367c3ffe6244a2f6e8ee7964c16e5e24/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py#L120), like this:
ergedPi0 = CaloFutureMergedPi0(InputData=ecalClusters, EtCut=1500.0,
PhotonTools = [ CaloFutureECorrection(), CaloFutureSCorrection(), CaloFutureLCorrection() ])
Currently it fails:
<pre>Traceback (most recent call last):
File "/home/lzenaiev/stack/Gaudi/InstallArea/x86_64-centos7-gcc8-opt/scripts/gaudirun.py", line 527, in <module>
exec (o, g, l)
File "<string>", line 1, in <module>
File "/home/lzenaiev/stack/Gaudi/InstallArea/x86_64-centos7-gcc8-opt/python/GaudiKernel/ProcessJobOptions.py", line 492, in importOptions
_import_function_mapping[ext](optsfile)
File "/home/lzenaiev/stack/Gaudi/InstallArea/x86_64-centos7-gcc8-opt/python/GaudiKernel/ProcessJobOptions.py", line 460, in _import_python
exec (code, {})
File "/home/lzenaiev/stack/Moore/Hlt/RecoConf/options/hlt2_reco_tracking_calo_baseline.py", line 16, in <module>
top_cf_node = standalone_hlt2_reco()
File "/home/lzenaiev/stack/Moore/Hlt/RecoConf/python/RecoConf/standalone.py", line 121, in standalone_hlt2_reco
calo = make_calo(best_tracks["v1"])
File "/home/lzenaiev/stack/Moore/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py", line 193, in make_calo
mergePi0Out = make_merged_pi0(ecalClusters)
File "/home/lzenaiev/stack/Moore/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py", line 120, in make_merged_pi0
PhotonTools = [ CaloFutureECorrection(), CaloFutureSCorrection(), CaloFutureLCorrection() ])
File "/home/lzenaiev/stack/Moore/PyConf/python/PyConf/tonic.py", line 301, in _configurable_wrapper
return wrapped(**kwargs)
File "/home/lzenaiev/stack/Moore/PyConf/python/PyConf/components.py", line 748, in wrapped
**props)
File "/home/lzenaiev/stack/Moore/PyConf/python/PyConf/components.py", line 407, in __new__
_tools, forced_locations)
File "/home/lzenaiev/stack/Moore/PyConf/python/PyConf/components.py", line 478, in _calc_id
props_hash = _hash_dict(props)
File "/home/lzenaiev/stack/Moore/PyConf/python/PyConf/components.py", line 82, in _hash_dict
return hash(json.dumps(d, default=_json_dump, sort_keys=True))
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_96b/Python/2.7.16/x86_64-centos7-gcc8-opt/lib/python2.7/json/__init__.py", line 251, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_96b/Python/2.7.16/x86_64-centos7-gcc8-opt/lib/python2.7/json/encoder.py", line 209, in encode
chunks = list(chunks)
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_96b/Python/2.7.16/x86_64-centos7-gcc8-opt/lib/python2.7/json/encoder.py", line 434, in _iterencode
for chunk in _iterencode_dict(o, _current_indent_level):
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_96b/Python/2.7.16/x86_64-centos7-gcc8-opt/lib/python2.7/json/encoder.py", line 408, in _iterencode_dict
for chunk in chunks:
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_96b/Python/2.7.16/x86_64-centos7-gcc8-opt/lib/python2.7/json/encoder.py", line 332, in _iterencode_list
for chunk in chunks:
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_96b/Python/2.7.16/x86_64-centos7-gcc8-opt/lib/python2.7/json/encoder.py", line 442, in _iterencode
o = _default(o)
File "/home/lzenaiev/stack/Moore/PyConf/python/PyConf/components.py", line 73, in _json_dump
raise TypeError(repr(obj) + " is not json serializable")
TypeError: Tool(CaloFutureECorrection) is not json serializable
</pre>