ATLAS Offline Software
DESDM_PHOJET.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 #!/usr/bin/env python
3 #====================================================================
4 # DESDM_PHOJET.py
5 # Component accumulator version
6 # IMPORTANT: this is NOT an AOD based derived data type but one built
7 # during reconstruction from HITS or RAW. It consequently has to be
8 # run from Reco_tf
9 #====================================================================
10 
11 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12 from AthenaConfiguration.ComponentFactory import CompFactory
13 from AthenaConfiguration.Enums import MetadataCategory
14 
15 
16 # Main algorithm config
17 def DESDM_PHOJETKernelCfg(configFlags, name='DESDM_PHOJETKernel', **kwargs):
18  """Configure the derivation framework driving algorithm (kernel) for PHOJET"""
19  acc = ComponentAccumulator()
20 
21  #====================================================================
22  # SKIMMING TOOLS
23  #====================================================================
24  skimmingTools = []
25  if not configFlags.Input.isMC:
26  pho_sel = 'count(Photons.pt > 280*GeV && Photons.Tight) >= 1'
27 
28  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import xAODStringSkimmingToolCfg
29  skimmingTool = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(configFlags,
30  name = "DESDM_PHOJET_SkimmingTool",
31  expression = pho_sel))
32  skimmingTools.append(skimmingTool)
33 
34  PHOJETKernel = CompFactory.DerivationFramework.DerivationKernel(name, SkimmingTools = skimmingTools)
35  acc.addEventAlgo( PHOJETKernel )
36 
37  return acc
38 
39 # Main config
40 def DESDM_PHOJETCfg(configFlags):
41  """Main config fragment for DESDM_PHOJET"""
42  acc = ComponentAccumulator()
43 
44  # Main algorithm (kernel)
45  acc.merge(DESDM_PHOJETKernelCfg(configFlags, name="DESDM_PHOJETKernel", StreamName = 'StreamDESDM_PHOJET'))
46 
47  # =============================
48  # Define contents of the format
49  # =============================
50  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
51  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
52 
53  items = ['xAOD::EventInfo#*', 'xAOD::EventAuxInfo#*',
54  # Standard CP objects
55  'xAOD::ElectronContainer#Electrons','xAOD::ElectronAuxContainer#ElectronsAux.',
56  'xAOD::MuonContainer#Muons','xAOD::MuonAuxContainer#MuonsAux.',
57  'xAOD::PhotonContainer#Photons','xAOD::PhotonAuxContainer#PhotonsAux.',
58  'xAOD::TauJetContainer#TauJets','xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters',
59  'xAOD::VertexContainer#PrimaryVertices','xAOD::VertexAuxContainer#PrimaryVerticesAux.-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV',
60  'xAOD::JetContainer#AntiKt4EMPFlowJets','xAOD::JetAuxContainer#AntiKt4EMPFlowJetsAux.-PseudoJet',
61  'xAOD::JetContainer#AntiKt4EMTopoJets','xAOD::JetAuxContainer#AntiKt4EMTopoJetsAux.-PseudoJet',
62  'xAOD::EventShape#Kt4EMPFlowEventShape','xAOD::EventShapeAuxInfo#Kt4EMPFlowEventShapeAux.',
63  'xAOD::EventShape#Kt4EMTopoOriginEventShape','xAOD::EventShapeAuxInfo#Kt4EMTopoOriginEventShapeAux.',
64  'xAOD::MissingETAssociationMap#METAssoc_AntiKt4EMPFlow', 'xAOD::MissingETAuxAssociationMap#METAssoc_AntiKt4EMPFlowAux.',
65  'xAOD::MissingETAssociationMap#METAssoc_AntiKt4EMTopo', 'xAOD::MissingETAuxAssociationMap#METAssoc_AntiKt4EMTopoAux.',
66  'xAOD::MissingETContainer#MET_Core_AntiKt4EMPFlow','xAOD::MissingETAuxContainer#MET_Core_AntiKt4EMPFlowAux.',
67  'xAOD::MissingETContainer#MET_Core_AntiKt4EMTopo','xAOD::MissingETAuxContainer#MET_Core_AntiKt4EMTopoAux.',
68  'xAOD::MissingETContainer#MET_Reference_AntiKt4EMPFlow','xAOD::MissingETAuxContainer#MET_Reference_AntiKt4EMPFlowAux.',
69  'xAOD::MissingETContainer#MET_Reference_AntiKt4EMTopo', 'xAOD::MissingETAuxContainer#MET_Reference_AntiKt4EMTopoAux.',
70  'xAOD::MissingETContainer#MET_Track','xAOD::MissingETAuxContainer#MET_TrackAux.',
71  #Low-level inputs:
72  'xAOD::TrackParticleContainer#GSFTrackParticles','xAOD::TrackParticleAuxContainer#GSFTrackParticlesAux.',
73  'xAOD::VertexContainer#GSFConversionVertices','xAOD::VertexAuxContainer#GSFConversionVerticesAux.-vxTrackAtVertex',
74  'xAOD::TrackParticleContainer#InDetTrackParticles','xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.',
75  'xAOD::CaloClusterContainer#egammaClusters','xAOD::CaloClusterAuxContainer#egammaClustersAux.',
76  'xAOD::CaloClusterContainer#ForwardElectronClusters','xAOD::CaloClusterAuxContainer#ForwardElectronClustersAux.',
77  'xAOD::CaloClusterContainer#TauPi0Clusters','xAOD::CaloClusterAuxContainer#TauPi0ClustersAux.',
78  'xAOD::CaloClusterContainer#CaloCalTopoClusters','xAOD::CaloClusterAuxContainer#CaloCalTopoClustersAux.',
79  'xAOD::MuonSegmentContainer#MuonSegments','xAOD::MuonSegmentAuxContainer#MuonSegmentsAux.',
80  'xAOD::FlowElementContainer#JetETMissChargedParticleFlowObjects','xAOD::FlowElementAuxContainer#JetETMissChargedParticleFlowObjectsAux.',
81  'xAOD::FlowElementContainer#JetETMissNeutralParticleFlowObjects','xAOD::FlowElementAuxContainer#JetETMissNeutralParticleFlowObjectsAux.',
82  'xAOD::TrackParticleClusterAssociationContainer#InDetTrackParticlesClusterAssociations','xAOD::TrackParticleClusterAssociationAuxContainer#InDetTrackParticlesClusterAssociationsAux.',
83  'CaloCellContainer#AllCalo',
84  'CaloClusterCellLinkContainer#CaloCalTopoClusters_links',
85  'CaloClusterCellLinkContainer#InDetTrackParticlesAssociatedClusters_links',
86  'CaloClusterCellLinkContainer#MuonClusterCollection_links',
87  'CaloClusterCellLinkContainer#egammaClusters_links',
88  #RoI Containers
89  'xAOD::EmTauRoIContainer#LVL1EmTauRoIs','xAOD::EmTauRoIAuxContainer#LVL1EmTauRoIsAux.',
90  'xAOD::EnergySumRoI#LVL1EnergySumRoI','xAOD::EnergySumRoIAuxInfo#LVL1EnergySumRoIAux.',
91  'xAOD::JetEtRoI#LVL1JetEtRoI','xAOD::JetEtRoIAuxInfo#LVL1JetEtRoIAux.',
92  'xAOD::JetRoIContainer#LVL1JetRoIs','xAOD::JetRoIAuxContainer#LVL1JetRoIsAux.',
93  'xAOD::MuonRoIContainer#LVL1MuonRoIs','xAOD::MuonRoIAuxContainer#LVL1MuonRoIsAux.',
94  #L1Calo containers
95  'xAOD::JEMTobRoIContainer#JEMTobRoIsRoIB','xAOD::JEMTobRoIAuxContainer#JEMTobRoIsRoIBAux.',
96  'xAOD::JEMTobRoIContainer#JEMTobRoIs','xAOD::JEMTobRoIAuxContainer#JEMTobRoIsAux.',
97  'xAOD::JEMEtSumsContainer#JEMEtSums','xAOD::JEMEtSumsAuxContainer#JEMEtSumsAux.',
98  'xAOD::CMXCPHitsContainer#CMXCPHits','xAOD::CMXCPHitsAuxContainer#CMXCPHitsAux.',
99  'xAOD::CMXCPTobContainer#CMXCPTobs','xAOD::CMXCPTobAuxContainer#CMXCPTobsAux.',
100  'xAOD::CMXEtSumsContainer#CMXEtSums','xAOD::CMXEtSumsAuxContainer#CMXEtSumsAux.',
101  'xAOD::CMXJetHitsContainer#CMXJetHits','xAOD::CMXJetHitsAuxContainer#CMXJetHitsAux.',
102  'xAOD::CMXJetTobContainer#CMXJetTobs','xAOD::CMXJetTobAuxContainer#CMXJetTobsAux.',
103  'xAOD::CMXRoIContainer#CMXRoIs','xAOD::CMXRoIAuxContainer#CMXRoIsAux.',
104  'xAOD::CPMTobRoIContainer#CPMTobRoIs','xAOD::CPMTobRoIAuxContainer#CPMTobRoIsAux.',
105  'xAOD::CPMTobRoIContainer#CPMTobRoIsRoIB','xAOD::CPMTobRoIAuxContainer#CPMTobRoIsRoIBAux.',
106  'xAOD::CPMTowerContainer#CPMTowers','xAOD::CPMTowerAuxContainer#CPMTowersAux.',
107  'xAOD::CPMTowerContainer#CPMTowersOverlap','xAOD::CPMTowerAuxContainer#CPMTowersOverlapAux.',
108  'xAOD::RODHeaderContainer#RODHeaders','xAOD::RODHeaderAuxContainer#RODHeadersAux.',
109  'xAOD::JetElementContainer#JetElements','xAOD::JetElementAuxContainer#JetElementsAux.',
110  'xAOD::JetElementContainer#JetElementsOverlap','xAOD::JetElementAuxContainer#JetElementsOverlapAux.',
111  'xAOD::TriggerTowerContainer#xAODTriggerTowers','xAOD::TriggerTowerAuxContainer#xAODTriggerTowersAux.',
112  'xAOD::L1TopoRawDataContainer#L1TopoRawData','xAOD::L1TopoRawDataAuxContainer#L1TopoRawDataAux.',
113  #Trigger navigation
114  'xAOD::TrigDecision#*','xAOD::TrigDecisionAuxInfo#*',
115  'xAOD::TrigConfKeys#*',
116  'xAOD::BunchConfKey#*'
117  'xAOD::TrigNavigation#*','xAOD::TrigNavigationAuxInfo#*',
118  'xAOD::TrigCompositeContainer#HLTNav*', 'xAOD::TrigCompositeAuxContainer#HLTNav*'
119  ]
120 
121  if configFlags.Input.isMC:
122  items += ['xAOD::TruthParticleContainer#*','xAOD::TruthParticleAuxContainer#TruthParticlesAux.-caloExtension',
123  'xAOD::TruthVertexContainer#*','xAOD::TruthVertexAuxContainer#*',
124  'xAOD::TruthEventContainer#*','xAOD::TruthEventAuxContainer#*']
125 
126  acc.merge( OutputStreamCfg( configFlags, 'DESDM_PHOJET', ItemList=items, AcceptAlgs=["DESDM_PHOJETKernel"]) )
127  acc.merge(
129  configFlags,
130  "DESDM_PHOJET",
131  AcceptAlgs=["DESDM_PHOJETKernel"],
132  createMetadata=[
133  MetadataCategory.ByteStreamMetaData,
134  MetadataCategory.LumiBlockMetaData,
135  MetadataCategory.TriggerMenuMetaData,
136  ],
137  )
138  )
139 
140  return acc
141 
142 
python.DESDM_PHOJET.DESDM_PHOJETCfg
def DESDM_PHOJETCfg(configFlags)
Definition: DESDM_PHOJET.py:40
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
python.DESDM_PHOJET.DESDM_PHOJETKernelCfg
def DESDM_PHOJETKernelCfg(configFlags, name='DESDM_PHOJETKernel', **kwargs)
Definition: DESDM_PHOJET.py:17
python.DerivationFrameworkToolsConfig.xAODStringSkimmingToolCfg
def xAODStringSkimmingToolCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:29
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216