8def PFFullCfg(inputFlags,runTauReco=False,**kwargs):
10 result=ComponentAccumulator()
12 StoreGateSvc=CompFactory.StoreGateSvc
16 from SGComps.AddressRemappingConfig
import InputRenameCfg
17 result.merge(InputRenameCfg(
"xAOD::CaloClusterContainer",
"CaloCalTopoClusters",
""))
21 from TrkEventCnvTools.TrkEventCnvToolsConfig
import TrkEventCnvSuperToolCfg
22 result.merge(TrkEventCnvSuperToolCfg(inputFlags))
25 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
26 result.merge(AtlasFieldCacheCondAlgCfg(inputFlags))
29 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
30 result.merge(CaloTopoClusterCfg(inputFlags))
32 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
33 result.merge(CaloNoiseCondAlgCfg(inputFlags,
"totalNoise"))
34 result.merge(CaloNoiseCondAlgCfg(inputFlags,
"electronicNoise"))
37 from TrackToCalo.CaloExtensionBuilderAlgCfg
import CaloExtensionBuilderAlgCfg
44 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
47 toESDAndAOD = [
"xAOD::TrackParticleContainer#InDetTrackParticles",
"xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux."]
48 if inputFlags.PF.useElPhotLinks:
49 toESDAndAOD += [
"xAOD::ElectronContainer#Electrons",
"xAOD::ElectronAuxContainer#ElectronsAux."]
50 toESDAndAOD += [
"xAOD::PhotonContainer#Photons",
"xAOD::PhotonAuxContainer#PhotonsAux."]
51 if inputFlags.PF.useMuLinks:
52 toESDAndAOD += [
"xAOD::MuonContainer#Muons",
"xAOD::MuonAuxContainer#MuonsAux."]
56 toESDAndAOD += [
"xAOD::TauJetContainer#TauJets",
"xAOD::TauJetAuxContainer#TauJetsAux."]
58 result.merge(addToESD(inputFlags, toESDAndAOD))
59 result.merge(addToAOD(inputFlags, toESDAndAOD))
61 result.merge(
PFCfg(inputFlags))
68 result=ComponentAccumulator()
71 PFLeptonSelectorFactory=CompFactory.PFLeptonSelector
72 PFLeptonSelector = PFLeptonSelectorFactory(
"PFLeptonSelector")
73 PFLeptonSelector.selectElectrons=
False
74 PFLeptonSelector.selectMuons=
False
75 result.addEventAlgo(PFLeptonSelector)
77 from eflowRec.PFCfg
import PFTrackSelectorAlgCfg
80 if inputFlags.Input.Format
is Format.POOL
and "StreamRDO" not in inputFlags.Input.ProcessingTags:
82 result.merge(PFTrackSelectorAlgCfg(inputFlags,
"PFTrackSelector",useCaching))
84 from eflowRec.PFCfg
import getOfflinePFAlgorithm
85 result.merge(getOfflinePFAlgorithm(inputFlags))
87 from eflowRec.PFCfg
import getChargedFlowElementCreatorAlgorithm,getNeutralFlowElementCreatorAlgorithm,getLCNeutralFlowElementCreatorAlgorithm
88 result.addEventAlgo(getChargedFlowElementCreatorAlgorithm(inputFlags,
""))
89 result.addEventAlgo(getNeutralFlowElementCreatorAlgorithm(inputFlags,
""))
90 result.addEventAlgo(getLCNeutralFlowElementCreatorAlgorithm(inputFlags,
""))
93 if not inputFlags.PF.EOverPMode:
94 if inputFlags.PF.useElPhotLinks:
95 from eflowRec.PFCfg
import getEGamFlowElementAssocAlgorithm
96 result.addEventAlgo(getEGamFlowElementAssocAlgorithm(inputFlags))
98 if inputFlags.PF.useMuLinks
and inputFlags.Detector.GeometryMuon:
99 from eflowRec.PFCfg
import getMuonFlowElementAssocAlgorithm
100 result.addEventAlgo(getMuonFlowElementAssocAlgorithm(inputFlags))
102 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
104 if(inputFlags.PF.EOverPMode):
105 toESDAndAOD = [
"xAOD::FlowElementContainer#EOverPChargedParticleFlowObjects",
"xAOD::FlowElementAuxContainer#EOverPChargedParticleFlowObjectsAux."]
106 toESDAndAOD += [
"xAOD::FlowElementContainer#EOverPNeutralParticleFlowObjects",
"xAOD::FlowElementAuxContainer#EOverPNeutralParticleFlowObjectsAux."]
108 toESDAndAOD = [
"xAOD::FlowElementContainer#JetETMissChargedParticleFlowObjects",
"xAOD::FlowElementAuxContainer#JetETMissChargedParticleFlowObjectsAux."]
109 toESDAndAOD += [
"xAOD::FlowElementContainer#JetETMissNeutralParticleFlowObjects",
"xAOD::FlowElementAuxContainer#JetETMissNeutralParticleFlowObjectsAux.-FEShowerSubtractedClusterLink"]
110 toESDAndAOD += [
"xAOD::FlowElementContainer#JetETMissLCNeutralParticleFlowObjects",
"xAOD::ShallowAuxContainer#JetETMissLCNeutralParticleFlowObjectsAux."]
112 if inputFlags.PF.addCPData:
115 toESDAndAOD += [
"xAOD::CaloClusterContainer#PFCaloCluster",
"xAOD::CaloClusterAuxContainer#PFCaloClusterAux."]
118 PFClusterWidthDecorator = CompFactory.PFClusterWidthDecorator()
119 result.addEventAlgo(PFClusterWidthDecorator)
121 from TrigGepPerf.KeepCellsConfig
import KeepCellsCfg
122 result.merge(KeepCellsCfg(inputFlags))
123 toESDAndAOD += [
"CaloCellContainer#AllCalo"]
125 result.merge(addToESD(inputFlags, toESDAndAOD))
126 result.merge(addToAOD(inputFlags, toESDAndAOD))
130 if inputFlags.PF.doThinning:
131 from ThinningUtils.ThinNegativeEnergyNeutralPFOCfg
import ThinNegativeEnergyNeutralPFOCfg
132 result.merge(ThinNegativeEnergyNeutralPFOCfg(inputFlags))
147 result=ComponentAccumulator()
148 from eflowRec.PFCfg
import getPFOClusterMLCorrectionAlgorithmCfg, getNeutralPFOClusterMLCorrectionToolCfg
150 alg = getPFOClusterMLCorrectionAlgorithmCfg(inputFlags, inputNameBase =
"Global", outputNameBase =
"GlobalClusterMLCorrected")
151 correctionTool_cfg = getNeutralPFOClusterMLCorrectionToolCfg(
153 toolName =
"NeutralPFOClusterMLCorrectionTool",
154 clusterMLCorrectedEnergyDecorationKey =
"clusterE_ML"
156 alg.PFOContainerCorrectionTool = result.popToolsAndMerge(correctionTool_cfg)
158 result.addEventAlgo(alg)
165 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
166 flags = initConfigFlags()
168 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultConditionsTags
169 flags.Input.Files = defaultTestFiles.ESD_RUN3_MC
170 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
171 flags.Output.doWriteAOD=
True
172 flags.Output.AODFileName=
"output_AOD.root"
177 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
178 cfg=MainServicesCfg(flags)
180 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
181 cfg.merge(PoolReadCfg(flags))
184 from eflowRec.PFRun3Remaps
import ListRemaps
186 list_remaps=ListRemaps(cfg,
'AOD' if flags.Output.doWriteAOD
else [])
187 for mapping
in list_remaps: