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",
""))
20 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
24 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
27 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
32 from TrackToCalo.CaloExtensionBuilderAlgCfg
import CaloExtensionBuilderAlgCfg
39 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
42 toESDAndAOD = [
"xAOD::TrackParticleContainer#InDetTrackParticles",
"xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux."]
43 toESDAndAOD += [
"xAOD::ElectronContainer#Electrons",
"xAOD::ElectronAuxContainer#ElectronsAux."]
44 toESDAndAOD += [
"xAOD::PhotonContainer#Photons",
"xAOD::PhotonAuxContainer#PhotonsAux."]
45 toESDAndAOD += [
"xAOD::MuonContainer#Muons",
"xAOD::MuonAuxContainer#MuonsAux."]
49 toESDAndAOD += [
"xAOD::TauJetContainer#TauJets",
"xAOD::TauJetAuxContainer#TauJetsAux."]
51 result.merge(
addToESD(inputFlags, toESDAndAOD))
52 result.merge(
addToAOD(inputFlags, toESDAndAOD))
54 result.merge(
PFCfg(inputFlags))
64 PFLeptonSelectorFactory=CompFactory.PFLeptonSelector
65 PFLeptonSelector = PFLeptonSelectorFactory(
"PFLeptonSelector")
66 PFLeptonSelector.selectElectrons=
False
67 PFLeptonSelector.selectMuons=
False
68 result.addEventAlgo(PFLeptonSelector)
70 from eflowRec.PFCfg
import PFTrackSelectorAlgCfg
73 if inputFlags.Input.Format
is Format.POOL
and "StreamRDO" not in inputFlags.Input.ProcessingTags:
77 from eflowRec.PFCfg
import getOfflinePFAlgorithm
80 from eflowRec.PFCfg
import getChargedFlowElementCreatorAlgorithm,getNeutralFlowElementCreatorAlgorithm,getLCNeutralFlowElementCreatorAlgorithm
86 if not inputFlags.PF.EOverPMode:
87 if inputFlags.PF.useElPhotLinks:
88 from eflowRec.PFCfg
import getEGamFlowElementAssocAlgorithm
91 if inputFlags.PF.useMuLinks
and inputFlags.Detector.GeometryMuon:
92 from eflowRec.PFCfg
import getMuonFlowElementAssocAlgorithm
95 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
97 if(inputFlags.PF.EOverPMode):
98 toESDAndAOD = [
"xAOD::FlowElementContainer#EOverPChargedParticleFlowObjects",
"xAOD::FlowElementAuxContainer#EOverPChargedParticleFlowObjectsAux."]
99 toESDAndAOD += [
"xAOD::FlowElementContainer#EOverPNeutralParticleFlowObjects",
"xAOD::FlowElementAuxContainer#EOverPNeutralParticleFlowObjectsAux."]
101 toESDAndAOD = [
"xAOD::FlowElementContainer#JetETMissChargedParticleFlowObjects",
"xAOD::FlowElementAuxContainer#JetETMissChargedParticleFlowObjectsAux."]
102 toESDAndAOD += [
"xAOD::FlowElementContainer#JetETMissNeutralParticleFlowObjects",
"xAOD::FlowElementAuxContainer#JetETMissNeutralParticleFlowObjectsAux.-FEShowerSubtractedClusterLink"]
103 toESDAndAOD += [
"xAOD::FlowElementContainer#JetETMissLCNeutralParticleFlowObjects",
"xAOD::ShallowAuxContainer#JetETMissLCNeutralParticleFlowObjectsAux."]
105 if inputFlags.PF.addCPData:
108 toESDAndAOD += [
"xAOD::CaloClusterContainer#PFCaloCluster",
"xAOD::CaloClusterAuxContainer#PFCaloClusterAux."]
111 PFClusterWidthDecorator = CompFactory.PFClusterWidthDecorator()
112 result.addEventAlgo(PFClusterWidthDecorator)
114 result.merge(
addToESD(inputFlags, toESDAndAOD))
115 result.merge(
addToAOD(inputFlags, toESDAndAOD))
120 if "StreamESD" not in inputFlags.Input.ProcessingTags:
121 from ThinningUtils.ThinNegativeEnergyNeutralPFOCfg
import ThinNegativeEnergyNeutralPFOCfg
124 if inputFlags.PF.addCPData:
125 result.addEventAlgo(CompFactory.PFlowCellCPDataDecoratorAlgorithm())
134 from eflowRec.PFCfg
import getTauFlowElementAssocAlgorithm
138 if __name__==
"__main__":
140 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
142 cfgFlags.Concurrency.NumThreads=8
143 cfgFlags.Input.isMC=
True
144 cfgFlags.Input.Files = [
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecExRecoTest/mc21_13p6TeV/ESDFiles/mc21_13p6TeV.421450.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep_fct.recon.ESD.e8445_e8447_s3822_r13565/ESD.28877240._000046.pool.root.1"]
146 cfgFlags.IOVDb.GlobalTag =
"OFLCOND-MC21-SDR-RUN3-10"
147 cfgFlags.Output.AODFileName=
"output_AOD.root"
148 cfgFlags.Output.doWriteAOD=
True
149 cfgFlags.fillFromArgs()
152 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
155 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
159 from eflowRec.PFRun3Remaps
import ListRemaps
162 for mapping
in list_remaps: