2 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory
import CompFactory
4 from AthenaConfiguration.Enums
import Format
8 def PFFullCfg(inputFlags,runTauReco=False,**kwargs):
12 StoreGateSvc=CompFactory.StoreGateSvc
16 from SGComps.AddressRemappingConfig
import InputRenameCfg
17 result.merge(
InputRenameCfg(
"xAOD::CaloClusterContainer",
"CaloCalTopoClusters",
""))
21 from TrkEventCnvTools.TrkEventCnvToolsConfig
import TrkEventCnvSuperToolCfg
25 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
29 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
32 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
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))
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:
84 from eflowRec.PFCfg
import getOfflinePFAlgorithm
87 from eflowRec.PFCfg
import getChargedFlowElementCreatorAlgorithm,getNeutralFlowElementCreatorAlgorithm,getLCNeutralFlowElementCreatorAlgorithm
93 if not inputFlags.PF.EOverPMode:
94 if inputFlags.PF.useElPhotLinks:
95 from eflowRec.PFCfg
import getEGamFlowElementAssocAlgorithm
98 if inputFlags.PF.useMuLinks
and inputFlags.Detector.GeometryMuon:
99 from eflowRec.PFCfg
import getMuonFlowElementAssocAlgorithm
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
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
141 from eflowRec.PFCfg
import getTauFlowElementAssocAlgorithm
148 from eflowRec.PFCfg
import getPFOClusterMLCorrectionAlgorithmCfg, 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
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
180 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
184 from eflowRec.PFRun3Remaps
import ListRemaps
186 list_remaps=
ListRemaps(cfg,
'AOD' if flags.Output.doWriteAOD
else [])
187 for mapping
in list_remaps:
192 if __name__==
"__main__":