5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
7 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
8 from JetRecConfig.JetDefinition
import JetInputConstitSeq, JetInputConstit, xAODType, JetDefinition
9 from JetRecConfig.JetDefinition
import JetModifier, JetInputExternal
11 from JetRecConfig.StandardJetMods
import stdJetModifiers
12 from JetRecConfig
import JetRecConfig
13 from JetRecConfig.DependencyHelper
import solveDependencies
14 from HIGlobal.HIGlobalConfig
import HIEventShapeMakerCfg, HIEventShapeMapToolCfg
15 from AthenaCommon.Logging
import logging
16 __log = logging.getLogger(
'HIJetRecConfigCA')
20 """Function to equip HI cluster builder from towers and cells, adds to output AOD stream."""
24 kwargs.setdefault(
"CaloCellContainerKey",
"AllCalo")
25 kwargs.setdefault(
"OutputContainerKey", flags.HeavyIon.Jet.Internal.ClusterKey)
28 from CaloRec.CaloRecoConfig
import CaloRecoCfg
30 from CaloRec.CaloTowerMakerConfig
import CaloTowerMakerCfg
32 tower_key = towerMaker.TowerContainerName
34 HIClusterMaker = CompFactory.HIClusterMaker(
"HIClusterMaker",
35 InputTowerKey=tower_key,
39 output = [
"xAOD::CaloClusterContainer#"+kwargs[
"OutputContainerKey"],
40 "xAOD::CaloClusterAuxContainer#"+kwargs[
"OutputContainerKey"]+
"Aux."]
44 acc.addEventAlgo(HIClusterMaker, primary=
True)
49 kwargs.setdefault(
"objtype", xAODType.CaloCluster)
50 kwargs.setdefault(
"modifiers", [])
51 kwargs.setdefault(
"inputname", flags.HeavyIon.Jet.Internal.ClusterKey)
52 kwargs.setdefault(
"outputname", flags.HeavyIon.Jet.Internal.ClusterKey)
53 kwargs.setdefault(
"label",
"HI")
55 jetConstit = JetInputConstitSeq(name, **kwargs)
57 from JetRecConfig.StandardJetConstits
import stdConstitDic
58 stdConstitDic.setdefault(name, jetConstit)
64 """Returns jet definition for calo jets, with already resolved dependencies."""
66 ptmin_dict = {2:7000, 3:7000, 4:7000, 6:7000, 10:50000}
67 if jetradius
not in ptmin_dict
and "ptmin" not in kwargs:
68 __log.warning(
"jetradius "+
str(jetradius)+
" is not in the dictionary for ptmin; setting ptmin to 7000")
69 kwargs.setdefault(
"ptmin", ptmin_dict.get(jetradius, 7000))
70 kwargs.setdefault(
"radius",
float(jetradius)/10.)
72 kwargs.setdefault(
"algorithm",
"AntiKt")
73 kwargs.setdefault(
"prefix",
"")
74 kwargs.setdefault(
"suffix",
"")
80 kwargs.setdefault(
"objtype", xAODType.TrackParticle)
81 kwargs.setdefault(
"containername",
"JetSelectedTracks")
83 jetConstit = JetInputConstit(name, **kwargs)
88 """Returns jet definition for track jets, with already resolved dependencies."""
90 import JetRecTools.JetRecToolsConfig
as jrtcfg
91 JetInputExternal(
"JetSelectedTracks",
92 xAODType.TrackParticle,
94 prereqs=[
"InDetTrackParticles"],
95 algoBuilder=
lambda jdef, _: jrtcfg.getTrackSelAlg(jdef, trackSelOpt=
False))
96 kwargs.setdefault(
"ptmin", 5000)
99 return HICaloJetDef(flags, jetradius=jetradius, **kwargs)
103 """Creates a pseudo jet algorithm"""
106 kwargs.setdefault(
"name",
"pjcs"+flags.HeavyIon.Jet.Internal.ClusterKey)
107 kwargs.setdefault(
"InputContainer", flags.HeavyIon.Jet.Internal.ClusterKey)
108 kwargs.setdefault(
"OutputContainer",
"PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey)
109 kwargs.setdefault(
"Label",
"LCTopo")
110 kwargs.setdefault(
"SkipNegativeEnergy",
False)
111 kwargs.setdefault(
"TreatNegativeEnergyAsGhost",
True)
113 acc.addEventAlgo(CompFactory.PseudoJetAlgorithm(**kwargs))
118 """Creates a pseudo track jet algorithm."""
121 kwargs.setdefault(
"InputContainer",
"HIJetTracks")
122 kwargs.setdefault(
"OutputContainer",
"PseudoTracks")
123 kwargs.setdefault(
"Label",
"Tracks")
124 kwargs.setdefault(
"SkipNegativeEnergy",
True)
126 acc.addEventAlgo(CompFactory.PseudoJetAlgorithm(name, **kwargs))
131 """Creates a tool for clustering."""
134 if jetDef
is not None:
135 kwargs.setdefault(
"JetAlgorithm", jetDef.algorithm)
136 kwargs.setdefault(
"JetRadius", jetDef.radius)
137 kwargs.setdefault(
"PtMin", jetDef.ptmin)
138 kwargs.setdefault(
"GhostArea", 0.01)
139 kwargs.setdefault(
"InputPseudoJets",
"PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey+
"_GhostTracks")
141 acc.setPrivateTools(CompFactory.JetClusterer(name, **kwargs))
146 """Creates a jet reconstruction algorithm."""
149 if "Provider" not in kwargs:
151 kwargs.setdefault(
"Provider", jclust)
152 if "Modifiers" not in kwargs:
153 kwargs.setdefault(
"Modifiers", JetRecConfig.getJetModifierTools(jetDef))
154 if "OutputContainer" not in kwargs:
155 kwargs.setdefault(
"OutputContainer", jetDef.fullname())
156 kwargs.setdefault(
"name",
"JRA_build"+kwargs[
"OutputContainer"])
158 acc.addEventAlgo(CompFactory.JetRecAlg(**kwargs))
163 """Creates a tool to copy jets."""
166 kwargs.setdefault(
"InputJets",
"")
167 kwargs.setdefault(
"DecorDeps", [])
168 kwargs.setdefault(
"ShallowCopy",
False)
169 kwargs.setdefault(
"ShallowIO",
False)
171 acc.setPrivateTools(CompFactory.JetCopier(name, **kwargs))
176 """Creates an algorithm to copy jets."""
179 if "Provider" not in kwargs:
180 jcopy = acc.popToolsAndMerge(
HIJetCopierCfg(flags, InputJets=jetDef_in.fullname()))
181 kwargs.setdefault(
"Provider", jcopy)
188 """Updates the stdJetModifiers dictionary, based on the provided name.
189 Some of the modifiers expect certain kwargs.
190 Some of the modifiers ignore kwargs which makes the code simpler."""
192 if "Filter:" in name:
195 if "HIJetCalib:" in name:
197 if "HIJetCalib" not in stdJetModifiers:
200 if name
in stdJetModifiers:
204 if name ==
"HIJetAssoc":
205 stdJetModifiers.update(
206 HIJetAssoc=JetModifier(
"HIJetDRAssociationTool",
207 "HIJetDRAssociation",
208 ContainerKey=flags.HeavyIon.Jet.Internal.ClusterKey,
210 AssociationName=flags.HeavyIon.Jet.Internal.ClusterKey+
"_DR8Assoc"))
213 if name ==
"HIJetMaxOverMean":
214 if "jetDef" not in kwargs:
216 "HIJetMaxOverMean needs 'jetDef' in its kwargs; HIJetMaxOverMean is not added to stdJetModifiers")
218 stdJetModifiers.update(
219 HIJetMaxOverMean=JetModifier(
"HIJetMaxOverMeanTool",
221 JetContainer=kwargs[
"jetDef"].fullname()))
224 if name ==
"HIJetDiscrim":
225 stdJetModifiers.update(
226 HIJetDiscrim=JetModifier(
"HIJetDiscriminatorTool",
227 "HIJetDiscriminator",
229 MinimumETMaxCut=3000))
233 if "Modulator" not in kwargs
or "EventShapeMapTool" not in kwargs
or \
234 "Subtractor" not in kwargs
or "EventShapeKey" not in kwargs:
236 "subtr0 needs 'Modulator', 'EventShapeMapTool', 'Subtractor', and 'EventShapeKey' in its kwargs; subtr0 is not added to stdJetModifiers")
239 stdJetModifiers.update(
240 subtr0=JetModifier(
"HIJetConstituentSubtractionTool",
241 "HICS_HIEventShapeWeighted_iter0",
242 MomentName=
"JetSubtractedScaleMomentum",
244 ApplyOriginCorrection=
True,
248 if name ==
"HIJetCalib":
249 stdJetModifiers.update(
250 HIJetCalib=JetModifier(
"JetCalibrationTool",
251 "HICalibTool_{modspec}",
252 JetCollection=
lambda _, modspec:
"AntiKt{}HI".
format(modspec.split(
'___')[0])
if modspec.split(
'___')[0]
in flags.HeavyIon.Jet.CaliRValues
else "AntiKt4HI",
253 PrimaryVerticesContainerName=
"",
254 ConfigFile=
'JES_MC16_HI_Jan2021_5TeV.config',
255 CalibSequence=
lambda _, modspec: modspec.split(
'___')[1],
256 IsData=
lambda _, modspec: modspec.split(
'___')[2] ==
'True'))
260 if "Modulator" not in kwargs
or "EventShapeMapTool" not in kwargs
or \
261 "Subtractor" not in kwargs
or "EventShapeKey" not in kwargs:
263 "subtr1 needs 'Modulator', 'EventShapeMapTool', 'Subtractor', and 'EventShapeKey' in its kwargs; subtr1 is not added to stdJetModifiers")
266 stdJetModifiers.update(
267 subtr1=JetModifier(
"HIJetConstituentSubtractionTool",
268 "HICS_HIEventShapeWeighted_iter1",
269 MomentName=
"JetSubtractedScaleMomentum",
271 ApplyOriginCorrection=
True,
275 if name ==
"consmod":
276 if "ClusterKey" not in kwargs
or "Subtractor" not in kwargs:
278 "consmod needs 'ClusterKey' and 'Subtractor' in its kwargs; consmod is not added to stdJetModifiers")
281 stdJetModifiers.update(
283 "HIJetConstituentModifierTool",
284 "HIJetConstituentModifierTool_final",
285 ApplyOriginCorrection=
True,
289 __log.warning(
"updateStdJetModifier does not know modifier "+
290 name+
"; it is not added to stdJetModifiers")
295 """Clones jet definitions based on the template.
296 Updates stdJetModifiers if necessary.
297 Overwrites suffix and modifiers, and return jet definition with already resolved dependencies."""
299 jetDef_new = jetDef_in.clone()
301 if "suffix" in kwargs:
302 jetDef_new.suffix = kwargs[
"suffix"]
303 if "modifiers" in kwargs:
304 jetDef_new.modifiers = []
305 for modifier
in kwargs[
"modifiers"]:
307 jetDef_new.modifiers.append(modifier)
313 """Provides modulator tool without any modulations."""
315 acc.setPrivateTools(CompFactory.HIUEModulatorTool(
'NullUEModulator',
324 """Provides modulator tool."""
326 kwargs.setdefault(
"harmonics", flags.HeavyIon.Jet.HarmonicsForSubtraction)
327 if len(kwargs[
"harmonics"]) == 0:
330 kwargs.setdefault(
"name",
"Modulator_"+mod_key+
331 "".
join([
"_V"+
str(h)
for h
in kwargs[
"harmonics"]]))
332 if suffix
is not None:
333 kwargs[
"name"] +=
'_'+suffix
334 kwargs.setdefault(
"DoV2", 2
in kwargs[
"harmonics"])
335 kwargs.setdefault(
"DoV3", 3
in kwargs[
"harmonics"])
336 kwargs.setdefault(
"DoV4", 4
in kwargs[
"harmonics"])
337 del kwargs[
"harmonics"]
338 kwargs.setdefault(
"EventShapeKey", mod_key)
340 acc.setPrivateTools(CompFactory.HIUEModulatorTool(**kwargs))
342 if 'label' in kwargs:
343 label = kwargs[
'label']
345 if key
not in [
"name",
"DoV2",
"DoV3",
"DoV4",
"EventShapeKey"]:
348 stdJetModifiers[label] = JetModifier(
"HIUEModulatorTool", **kwargs)
354 """Provides tool for cluster subtraction."""
357 kwargs.setdefault(
"ConfigDir",
"HIJetCorrection/")
358 kwargs.setdefault(
"UseSamplings",
False)
359 if "InputFile" not in kwargs:
360 from HIJetRec.HIJetRecUtilsCA
import getHIClusterGeoWeightFile
363 acc.setPrivateTools(CompFactory.HIJetClusterSubtractorTool(name, **kwargs))
368 """Provides tool for cell subtraction."""
371 acc.setPrivateTools(CompFactory.HIJetCellSubtractorTool(name, **kwargs))
376 """Common function for clsuter and cell subtraction configuration."""
385 """Provides tool for event shape iteration.
386 Also saves some tool, so they can be used later."""
389 kwargs.setdefault(
"InputEventShapeKey",
"HIEventShape_Weighted")
390 kwargs.setdefault(
"CaloJetSeedContainerKey",
"")
392 out_shape_name = kwargs[
"InputEventShapeKey"]
393 if suffix
is not None:
394 out_shape_name +=
'_'+suffix
395 mod_shape_key = out_shape_name+
'_Modulate'
397 if 'Modulator' not in kwargs:
399 flags, mod_key=mod_shape_key, suffix=suffix))
400 kwargs.setdefault(
'Modulator', modulator)
401 if "Subtractor" not in kwargs:
403 kwargs.setdefault(
"Subtractor", sub_tool)
404 if "EventShapeMapTool" not in kwargs:
406 kwargs.setdefault(
"EventShapeMapTool", map_tool)
407 kwargs.setdefault(
"OutputEventShapeKey", out_shape_name)
408 kwargs.setdefault(
"AssociationKey", flags.HeavyIon.Jet.Internal.ClusterKey+
"_DR8Assoc")
409 kwargs.setdefault(
"ModulationScheme", 1)
410 kwargs.setdefault(
"RemodulateUE",
True)
411 kwargs.setdefault(
"ShallowCopy",
False)
412 kwargs.setdefault(
"ModulationEventShapeKey", mod_shape_key)
413 kwargs.setdefault(
"TrackJetSeedContainerKey",
"")
415 acc.setPrivateTools(CompFactory.HIEventShapeJetIteration(
416 "HIJetIteration_"+out_shape_name, **kwargs))
419 jm_dict = {
"Modulator": kwargs[
"Modulator"],
420 "EventShapeMapTool": kwargs[
"EventShapeMapTool"],
421 "Subtractor": kwargs[
"Subtractor"],
422 "EventShapeKey": kwargs[
"OutputEventShapeKey"]}
428 """Provides track selection algorithm for track jet reconstruction."""
431 if "TrackSelector" not in kwargs:
432 from InDetConfig.InDetTrackSelectionToolConfig
import HI_InDetTrackSelectionToolForHITrackJetsCfg
434 kwargs.setdefault(
"TrackSelector", tracksel)
435 kwargs.setdefault(
"InputContainer",
"InDetTrackParticles")
436 kwargs.setdefault(
"OutputContainer",
"HIJetTracks")
437 kwargs.setdefault(
"DecorDeps", [])
439 acc.addEventAlgo(CompFactory.JetTrackSelectionAlg(name, **kwargs))
444 """Provides tool for cluster moments."""
447 kwargs.setdefault(
"MinBadLArQuality", 4000)
448 kwargs.setdefault(
"MomentsNames", [
"CENTER_MAG",
469 acc.setPrivateTools(CompFactory.CaloClusterMomentsMaker(name, **kwargs))
474 """Provides tool for cell subtraction.
475 Re-uses tool for cluster subtraction."""
481 """Provides tool for cluster subtraction."""
484 kwargs.setdefault(
'EventShapeKey',
'EventShapeKey')
485 kwargs.setdefault(
'ClusterKey', flags.HeavyIon.Jet.Internal.ClusterKey)
486 kwargs.setdefault(
'OutClusterKey',
'ClusterKey_deep')
487 kwargs.setdefault(
'UpdateOnly',
False)
488 kwargs.setdefault(
'ApplyOriginCorrection',
True)
489 kwargs.setdefault(
'SetMoments',
False)
490 if 'Modulator' not in kwargs:
492 kwargs.setdefault(
'Modulator', modulator)
493 if "EventShapeMapTool" not in kwargs:
495 kwargs.setdefault(
"EventShapeMapTool", map_tool)
496 if "Subtractor" not in kwargs:
498 kwargs.setdefault(
"Subtractor", sub_tool)
499 if kwargs[
"SetMoments"]
and "ClusterCorrectionTools" not in kwargs:
500 clusterCorrectionTools = acc.popToolsAndMerge(
502 kwargs.setdefault(
"ClusterCorrectionTools", [clusterCorrectionTools])
504 acc.setPrivateTools(CompFactory.HIClusterSubtraction(name, **kwargs))
509 """Configures Heavy Ion Jet reconstruction."""
516 eventshapeKey =
"HIEventShapeWeighted"
518 name=
"HIEventShapeMaker_Weighted",
520 InputTowerKey=flags.HeavyIon.Jet.Internal.ClusterKey,
521 OutputContainerKey=eventshapeKey))
525 jetDef2 =
HICaloJetDef(flags, jetradius=2, suffix=
"_Unsubtracted")
529 jetRlist = flags.HeavyIon.Jet.RValues
530 for jetR
in jetRlist:
531 jetDef.append(
HICaloJetDef(flags, jetradius=jetR, suffix=
"_Unsubtracted"))
532 __log.info(
"HI Jet Collection for Reco: "+jetDef[-1].fullname())
538 pseudoTrkJetCont =
"HIJetTracks"
539 pseudoGhostTrks =
"PseudoJetGhostTracks"
543 flags, name=
"GhostTrackPseudoJets", InputContainer=pseudoTrkJetCont, OutputContainer=pseudoGhostTrks, Label=
"GhostTrack"))
547 pjContNames = [
"PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey,pseudoGhostTrks]
549 mergeAlg = CompFactory.PseudoJetMerger(
550 "PJmerge_HIGhostTrack",
551 InputPJContainers = pjContNames,
552 OutputContainer =
"PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey+
"_GhostTracks"
554 acc.addEventAlgo(mergeAlg)
564 modifiers=[
"HIJetAssoc",
"HIJetMaxOverMean",
"HIJetDiscrim",
"Filter:5000"])
570 InputEventShapeKey=eventshapeKey,
571 CaloJetSeedContainerKey=jetDef_seed0.fullname())
572 iter0 = acc.popToolsAndMerge(acc_iter0)
573 acc.addEventAlgo(CompFactory.JetAlgorithm(
"jetalgHI_iter0", Tools=[iter0]))
580 if not flags.Input.isMC:
581 calib_seq +=
"_Insitu"
586 modifiers=[
"HIJetAssoc",
"subtr0",
"HIJetCalib:{}___{}___{}".
format(2, calib_seq,
not flags.Input.isMC),
"Filter:{}".
format(flags.HeavyIon.Jet.SeedPtMin)])
590 if flags.HeavyIon.Jet.doTrackJetSeed:
591 pseudoTrks =
"PseudoTracks"
594 flags, InputContainer=pseudoTrkJetCont, OutputContainer=pseudoTrks))
598 modifiers=[
"HIJetAssoc",
"Filter:{}".
format(flags.HeavyIon.Jet.TrackJetPtMin),
"Sort"])
599 trkJetSeedCont = jetDef_trk.fullname()
603 InputPseudoJets=pseudoTrks))
604 acc.merge(
HIJetAlgCfg(flags, jetDef_trk, Provider=trkJetClust))
611 InputEventShapeKey=eventshapeKey,
612 CaloJetSeedContainerKey=jetDef_seed1.fullname(),
613 TrackJetSeedContainerKey=trkJetSeedCont)
614 iter1 = acc.popToolsAndMerge(acc_iter1)
615 acc.addEventAlgo(CompFactory.JetAlgorithm(
"jetalgHI_iter1", Tools=[iter1]))
619 suffix=
"iter_egamma",
621 InputEventShapeKey=flags.HeavyIon.Global.EventShape,
622 OutputEventShapeKey=flags.HeavyIon.Egamma.EventShape,
623 CaloJetSeedContainerKey=jetDef_seed1.fullname())
624 iter1_eg = acc.popToolsAndMerge(acc_iter1_eg)
625 acc.addEventAlgo(CompFactory.JetAlgorithm(
"jetalgHI_iter1_egamma", Tools=[iter1_eg]))
628 cluster_key_eGamma_deep = flags.HeavyIon.Jet.Internal.ClusterKey+
"_eGamma_deep"
629 subtrToCelltool = acc.popToolsAndMerge(
631 name=
"HIClusterSubtraction_egamma",
632 EventShapeKey=jm_dict1_eg[
"EventShapeKey"],
633 OutClusterKey=cluster_key_eGamma_deep,
634 Modulator=jm_dict1[
"Modulator"],
635 EventShapeMapTool=jm_dict1[
"EventShapeMapTool"],
637 ApplyOriginCorrection=
False)
639 acc.addEventAlgo(CompFactory.JetAlgorithm(
"jetalgHI_subtrToCellTool", Tools=[subtrToCelltool]))
645 subtrToClusterTool = acc.popToolsAndMerge(
647 name=
"HIClusterSubtraction_final",
648 EventShapeKey=jm_dict1[
"EventShapeKey"],
649 ClusterKey=cluster_key_eGamma_deep,
650 OutClusterKey=flags.HeavyIon.Jet.ClusterKey,
651 Modulator=jm_dict1[
"Modulator"],
652 EventShapeMapTool=jm_dict1[
"EventShapeMapTool"],
653 ApplyOriginCorrection=
False)
655 acc.addEventAlgo(CompFactory.JetAlgorithm(
656 "jetalgHI_subtrToClusterTool", Tools=[subtrToClusterTool]))
660 ClusterKey=flags.HeavyIon.Jet.ClusterKey,
661 Subtractor=jm_dict1[
"Subtractor"])
664 if flags.HeavyIon.Jet.WriteHIClusters:
665 output_hicluster = [
"xAOD::CaloClusterContainer#"+flags.HeavyIon.Jet.ClusterKey,
666 "xAOD::CaloClusterAuxContainer#"+flags.HeavyIon.Jet.ClusterKey+
"Aux."]
667 acc.merge(
addToESD(flags, output_hicluster))
668 acc.merge(
addToAOD(flags, output_hicluster))
671 extramods = [
"Sort",
"Width",
"CaloEnergies",
"LArHVCorr",
"CaloQuality",
"TrackMoments",
"JVF",
"JVT"]
676 modifiers=[
"subtr1",
"consmod",
"HIJetCalib:{}___{}___{}".
format(
str(
float(jd.radius)*10).
replace(
'.0',
''),calib_seq,
not flags.Input.isMC),
"Filter:{}".
format(flags.HeavyIon.Jet.RecoOutputPtMin)]+extramods)
679 output = [
"xAOD::JetContainer#"+jetDef_final.fullname(),
680 "xAOD::JetAuxContainer#"+jetDef_final.fullname()+
"Aux.-PseudoJet"]
685 if flags.HeavyIon.Jet.doTrackJetSeed:
686 output = [
"xAOD::JetContainer#"+jetDef_trk.fullname(),
687 "xAOD::JetAuxContainer#"+jetDef_trk.fullname()+
"Aux.-PseudoJet"]
694 if __name__ ==
"__main__":
695 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
696 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
698 flags.Input.Files = [defaultTestFiles.d +
"/RecJobTransformTests/data18_hi.00367384.physics_HardProbes.daq.RAW._lb0145._SFO-8._0001.data"]
699 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
700 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
701 flags.Exec.MaxEvents = 5
702 flags.Concurrency.NumThreads = 1
707 flags.Jet.strictMode =
False
710 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
712 from InDetConfig.TrackRecoConfig
import InDetTrackRecoCfg
717 from JetRecConfig.JetRecConfig
import JetRecCfg
718 from JetRecConfig.StandardSmallRJets
import AntiKt4EMTopo
719 EMjet = AntiKt4EMTopo.clone()
720 EMjet.ghostdefs = [
"Track"]
723 from HIGlobal.HIGlobalConfig
import HIGlobalRecCfg
728 acc.printConfig(withDetails=
True, summariseProps=
True)
732 sys.exit(acc.run().isFailure())