4#ifndef TRIGOUTPUTHANDLING_HLTEDMCREATOR_H
5#define TRIGOUTPUTHANDLING_HLTEDMCREATOR_H 1
90 const std::string& name,
91 const IInterface* parent );
94 virtual StatusCode
createOutput(
const EventContext& context)
const override;
101 Gaudi::Property<std::vector<std::string>>
m_fixLinks{
this,
"FixLinks", {},
"Which keys of the TrigCompositeContainer WriteHandleKeyArray might need to have their (e.g. feature) element links re-mapped outside of views"};
105 Gaudi::Property<bool>
m_dumpSGBefore{
this,
"dumpSGBefore",
false,
"Dump SG content before the merging"};
106 Gaudi::Property<bool>
m_dumpSGAfter {
this,
"dumpSGAfter",
false,
"Dump SG content after the merging"};
107 Gaudi::Property<bool>
m_renounceOutputs {
this,
"RenounceOutputs",
false,
"Renounce outputs so that no algs can become dependent on this tool's output. Done in HLT jobs"};
109#define DEF_VIEWS(__TYPE) \
110 SG::ReadHandleKeyArray< ViewContainer > m_##__TYPE##Views{ this, #__TYPE"Views", {}, "Name views from where the "#__TYPE" will be read"}
114#define DEF_KEY(__TYPE) \
115 SG::WriteHandleKeyArray<__TYPE> m_##__TYPE{ this, #__TYPE, {}, "Required collections of "#__TYPE}; \
117 SG::ReadHandleKeyArray<__TYPE> m_##__TYPE##InViews{ this, #__TYPE"InViews", {}, "Names of "#__TYPE" in respective views"}
119#define DEF_XAOD_KEY(__TYPE) \
120 SG::WriteHandleKeyArray<xAOD::__TYPE> m_##__TYPE{ this, #__TYPE, {}, "Required collections of xAOD::"#__TYPE};\
122 SG::ReadHandleKeyArray<xAOD::__TYPE> m_##__TYPE##InViews{ this, #__TYPE"InViews", {}, "Names of xAOD::"#__TYPE" in respective views"}
177#define DEF_XAOD_KEY_SHALLOW(__TYPE) \
178 SG::ReadHandleKeyArray<xAOD::__TYPE> m_##__TYPE##ShallowCopy{ this, #__TYPE"ShallowCopy", {}, "Required collections with Aux of type ShallowAuxContainerxAOD::"#__TYPE}; \
179 SG::WriteHandleKeyArray<xAOD::__TYPE> m_##__TYPE##ShallowCopyOut{ this, #__TYPE"ShallowCopyOut", {}, "Output collections with Aux of type ShallowAuxContainerxAOD::"#__TYPE}
185#undef DEF_XAOD_KEY_SHALLOW
216 StatusCode
initAuxKey(
const std::vector<SG::VarHandleKey*>& keys );
230 StatusCode
fixLinks( EventContext
const& context )
const;
232 template<
typename T,
typename STORE,
typename G,
typename M >
234 G& generator, M merger )
const;
239 EventContext
const& context, T & output )
const;
243 EventContext
const& context, T & output )
const;
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
DataVector< SG::View > ViewContainer
View container for recording in StoreGate.
Storable container for CaloCluster.
Class to define the ElectronContainer.
DEF_XAOD_KEY(jFexSRJetRoIContainer)
DEF_XAOD_KEY(L2StandAloneMuonContainer)
HLTEDMCreator(const std::string &type, const std::string &name, const IInterface *parent)
StatusCode createIfMissing(const EventContext &context, const ConstHandlesGroup< T > &handles, G &generator, M merger) const
DEF_XAOD_KEY(TrigT2MbtsBitsContainer)
Gaudi::Property< bool > m_dumpSGAfter
DEF_XAOD_KEY(eFexTauRoIContainer)
Gaudi::Property< bool > m_renounceOutputs
DEF_XAOD_KEY(MuonContainer)
virtual ~HLTEDMCreator() override=default
DEF_XAOD_KEY(gFexJetRoIContainer)
DEF_XAOD_KEY(TrigCompositeContainer)
DEF_XAOD_KEY_SHALLOW(CaloClusterContainer)
DEF_XAOD_KEY(TrackParticleContainer)
DEF_XAOD_KEY(DiTauJetContainer)
DEF_XAOD_KEY(BTagVertexContainer)
DEF_XAOD_KEY(gFexGlobalRoIContainer)
DEF_XAOD_KEY(TrigRingerRingsContainer)
DEF_XAOD_KEY(TrigCaloClusterContainer)
DEF_XAOD_KEY_SHALLOW(JetContainer)
StatusCode initAuxKey(const std::vector< SG::VarHandleKey * > &keys)
Register AuxStore keys for the given keys.
virtual StatusCode initialize() override
DEF_XAOD_KEY(jFexFwdElRoIContainer)
DEF_XAOD_KEY(TrigMissingETContainer)
DEF_XAOD_KEY(MuonRoIContainer)
DEF_XAOD_KEY(TrigEMClusterContainer)
DEF_XAOD_KEY(jFexTauRoIContainer)
StatusCode viewsMerge(ViewContainer const &views, const SG::ReadHandleKey< T > &inViewKey, EventContext const &context, T &output) const
DEF_XAOD_KEY(PhotonContainer)
DEF_XAOD_KEY(VertexContainer)
DEF_XAOD_KEY(jFexMETRoIContainer)
DEF_XAOD_KEY(ElectronContainer)
DEF_XAOD_KEY(FlowElementContainer)
StatusCode initHandles(const HandlesGroup< T > &handles)
Init related handles.
SG::WriteDecorHandleKeyArray< xAOD::TrigCompositeContainer, std::vector< SG::sgkey_t > > m_remapLinkColKeys
DEF_XAOD_KEY(AFPTrackContainer)
DEF_XAOD_KEY(TrigElectronContainer)
SG::WriteDecorHandleKeyArray< xAOD::TrigCompositeContainer, std::vector< xAOD::TrigComposite::index_type > > m_remapLinkColIndices
DEF_XAOD_KEY(AFPSiHitsClusterContainer)
DEF_XAOD_KEY(eFexEMRoIContainer)
DEF_XAOD_KEY(AFPToFTrackContainer)
DEF_XAOD_KEY(AFPProtonContainer)
DEF_XAOD_KEY(CaloClusterContainer)
Gaudi::Property< bool > m_dumpSGBefore
DEF_XAOD_KEY(TauJetContainer)
DEF_XAOD_KEY(JetContainer)
Gaudi::Property< std::vector< std::string > > m_fixLinks
DEF_XAOD_KEY(jFexSumETRoIContainer)
DEF_XAOD_KEY(AFPVertexContainer)
DEF_XAOD_KEY(L2CombinedMuonContainer)
DEF_XAOD_KEY(jFexLRJetRoIContainer)
virtual StatusCode createOutput(const EventContext &context) const override
DEF_XAOD_KEY(BTaggingContainer)
StatusCode fixLinks(EventContext const &context) const
StatusCode noMerge(ViewContainer const &views, const SG::ReadHandleKey< T > &inViewKey, EventContext const &context, T &output) const
DEF_XAOD_KEY(TrigPhotonContainer)
DEF_KEY(TrigRoiDescriptorCollection)
DEF_XAOD_KEY(TrigRNNOutputContainer)
DEF_XAOD_KEY(TauTrackContainer)
DEF_XAOD_KEY(L2IsoMuonContainer)
DEF_XAOD_KEY(HIEventShapeContainer)
DEF_XAOD_KEY(TrigBphysContainer)
Class to define the PhotonContainer.
Property holding a SG store/key/clid from which a ReadHandle is made.
Container from TrigCaloCluster type objects.
Container from TrigComposite type objects.
Container from TrigEMCluster type objects.
File: TrigElectronContainer.h.
File: TrigPhotonContainer.h.
DecorHandleKeyArray< WriteDecorHandle< T, S >, WriteDecorHandleKey< T >, Gaudi::DataHandle::Writer > WriteDecorHandleKeyArray
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray
ConstHandlesGroup(const SG::WriteHandleKeyArray< T > &out_, const SG::ReadHandleKeyArray< T > &in_, const SG::ReadHandleKeyArray< ViewContainer > &views_)
const SG::WriteHandleKeyArray< T > & out
const SG::ReadHandleKeyArray< T > & in
const SG::ReadHandleKeyArray< ViewContainer > & views
SG::ReadHandleKeyArray< ViewContainer > & views
SG::WriteHandleKeyArray< T > & out
HandlesGroup(SG::WriteHandleKeyArray< T > &out_, SG::ReadHandleKeyArray< T > &in_, SG::ReadHandleKeyArray< ViewContainer > &views_)
SG::ReadHandleKeyArray< T > & in