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
48 toESDAndAOD = [
"xAOD::TrackParticleContainer#InDetTrackParticles",
"xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.-caloExtensionLink"]
49 if inputFlags.PF.useElPhotLinks:
50 toESDAndAOD += [
"xAOD::ElectronContainer#Electrons",
"xAOD::ElectronAuxContainer#ElectronsAux."]
51 toESDAndAOD += [
"xAOD::PhotonContainer#Photons",
"xAOD::PhotonAuxContainer#PhotonsAux."]
52 if inputFlags.PF.useMuLinks:
53 toESDAndAOD += [
"xAOD::MuonContainer#Muons",
"xAOD::MuonAuxContainer#MuonsAux."]
57 toESDAndAOD += [
"xAOD::TauJetContainer#TauJets",
"xAOD::TauJetAuxContainer#TauJetsAux."]
59 result.merge(addToESD(inputFlags, toESDAndAOD))
60 result.merge(addToAOD(inputFlags, toESDAndAOD))
62 result.merge(
PFCfg(inputFlags))
69 result=ComponentAccumulator()
72 PFLeptonSelectorFactory=CompFactory.PFLeptonSelector
73 PFLeptonSelector = PFLeptonSelectorFactory(
"PFLeptonSelector")
74 PFLeptonSelector.selectElectrons=
False
75 PFLeptonSelector.selectMuons=
False
76 result.addEventAlgo(PFLeptonSelector)
78 from eflowRec.PFCfg
import PFTrackSelectorAlgCfg
81 if inputFlags.Input.Format
is Format.POOL
and "StreamRDO" not in inputFlags.Input.ProcessingTags:
83 result.merge(PFTrackSelectorAlgCfg(inputFlags,
"PFTrackSelector",useCaching))
85 from eflowRec.PFCfg
import getOfflinePFAlgorithm
86 result.merge(getOfflinePFAlgorithm(inputFlags, **kwargs))
88 from eflowRec.PFCfg
import getChargedFlowElementCreatorAlgorithm,getNeutralFlowElementCreatorAlgorithm,getLCNeutralFlowElementCreatorAlgorithm
89 result.addEventAlgo(getChargedFlowElementCreatorAlgorithm(inputFlags,
""))
90 result.addEventAlgo(getNeutralFlowElementCreatorAlgorithm(inputFlags,
""))
91 result.addEventAlgo(getLCNeutralFlowElementCreatorAlgorithm(inputFlags,
""))
94 if not inputFlags.PF.EOverPMode:
95 if inputFlags.PF.useElPhotLinks:
96 from eflowRec.PFCfg
import getEGamFlowElementAssocAlgorithm
97 result.addEventAlgo(getEGamFlowElementAssocAlgorithm(inputFlags))
99 if inputFlags.PF.useMuLinks
and inputFlags.Detector.GeometryMuon:
100 from eflowRec.PFCfg
import getMuonFlowElementAssocAlgorithm
101 result.addEventAlgo(getMuonFlowElementAssocAlgorithm(inputFlags))
103 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
105 if(inputFlags.PF.EOverPMode):
106 toESDAndAOD = [
"xAOD::FlowElementContainer#EOverPChargedParticleFlowObjects",
"xAOD::FlowElementAuxContainer#EOverPChargedParticleFlowObjectsAux."]
107 toESDAndAOD += [
"xAOD::FlowElementContainer#EOverPNeutralParticleFlowObjects",
"xAOD::FlowElementAuxContainer#EOverPNeutralParticleFlowObjectsAux."]
109 toESDAndAOD = [
"xAOD::FlowElementContainer#JetETMissChargedParticleFlowObjects",
"xAOD::FlowElementAuxContainer#JetETMissChargedParticleFlowObjectsAux."]
110 toESDAndAOD += [
"xAOD::FlowElementContainer#JetETMissNeutralParticleFlowObjects",
"xAOD::FlowElementAuxContainer#JetETMissNeutralParticleFlowObjectsAux.-FEShowerSubtractedClusterLink"]
111 toESDAndAOD += [
"xAOD::FlowElementContainer#JetETMissLCNeutralParticleFlowObjects",
"xAOD::ShallowAuxContainer#JetETMissLCNeutralParticleFlowObjectsAux."]
113 if inputFlags.PF.addCPData:
116 toESDAndAOD += [
"xAOD::CaloClusterContainer#PFCaloCluster",
"xAOD::CaloClusterAuxContainer#PFCaloClusterAux."]
119 PFClusterWidthDecorator = CompFactory.PFClusterWidthDecorator()
120 result.addEventAlgo(PFClusterWidthDecorator)
122 from TrigGepPerf.KeepCellsConfig
import KeepCellsCfg
123 result.merge(KeepCellsCfg(inputFlags))
124 toESDAndAOD += [
"CaloCellContainer#AllCalo"]
126 result.merge(addToESD(inputFlags, toESDAndAOD))
127 result.merge(addToAOD(inputFlags, toESDAndAOD))
131 if inputFlags.PF.doThinning:
132 from ThinningUtils.ThinNegativeEnergyNeutralPFOCfg
import ThinNegativeEnergyNeutralPFOCfg
133 result.merge(ThinNegativeEnergyNeutralPFOCfg(inputFlags))
148 result=ComponentAccumulator()
149 from eflowRec.PFCfg
import getPFOClusterMLCorrectionAlgorithmCfg, getNeutralPFOClusterMLCorrectionToolCfg
151 alg = getPFOClusterMLCorrectionAlgorithmCfg(inputFlags, inputNameBase =
"Global", outputNameBase =
"GlobalClusterMLCorrected")
152 correctionTool_cfg = getNeutralPFOClusterMLCorrectionToolCfg(
154 toolName =
"NeutralPFOClusterMLCorrectionTool",
155 ClusterMLCorrectedEnergyDecorationKey =
"CaloCalTopoClusters.clusterE_ML",
156 MaxAllowedChargedCorrectionFraction = 0.001,
157 MinAllowedEMEnergyMeV = 300
159 alg.PFOContainerCorrectionTool = result.popToolsAndMerge(correctionTool_cfg)
161 result.addEventAlgo(alg)
168 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
169 flags = initConfigFlags()
171 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultConditionsTags
172 flags.Input.Files = defaultTestFiles.ESD_RUN3_MC
173 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
174 flags.Output.doWriteAOD=
True
175 flags.Output.AODFileName=
"output_AOD.root"
180 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
181 cfg=MainServicesCfg(flags)
183 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
184 cfg.merge(PoolReadCfg(flags))
187 from eflowRec.PFRun3Remaps
import ListRemaps
189 list_remaps=ListRemaps(cfg,
'AOD' if flags.Output.doWriteAOD
else [])
190 for mapping
in list_remaps: