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
149 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
152 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultConditionsTags
153 flags.Input.Files = defaultTestFiles.ESD_RUN3_MC
154 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
155 flags.Output.doWriteAOD=
True
156 flags.Output.AODFileName=
"output_AOD.root"
161 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
164 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
168 from eflowRec.PFRun3Remaps
import ListRemaps
170 list_remaps=
ListRemaps(cfg,
'AOD' if flags.Output.doWriteAOD
else [])
171 for mapping
in list_remaps:
176 if __name__==
"__main__":