ATLAS Offline Software
Public Member Functions | List of all members
IJetProvider Class Referenceabstract

#include <IJetProvider.h>

Inheritance diagram for IJetProvider:
Collaboration diagram for IJetProvider:

Public Member Functions

virtual ~IJetProvider ()
 Destructor. More...
 
virtual std::pair< std::unique_ptr< xAOD::JetContainer >, std::unique_ptr< SG::IAuxStore > > getJets () const =0
 Method to build the collection and return it to the caller. More...
 
virtual StatusCode getAndRecordJets (SG::WriteHandle< xAOD::JetContainer > &jetHandle) const =0
 Method to allow the client to pass in a WriteHandle for the container and aux container to be recorded, while the client remains free to modify the output but does not need to know the type of the aux container. More...
 
virtual StatusCode initWithOutput (const SG::WriteHandleKey< xAOD::JetContainer > &)
 Method to allow the client to pass in a WriteHandle during initialisation, in case this is needed for anything... More...
 
virtual void print () const =0
 Print the state of the tool. More...
 

Detailed Description

Definition at line 27 of file IJetProvider.h.

Constructor & Destructor Documentation

◆ ~IJetProvider()

virtual IJetProvider::~IJetProvider ( )
inlinevirtual

Destructor.

Definition at line 33 of file IJetProvider.h.

33 { };

Member Function Documentation

◆ getAndRecordJets()

virtual StatusCode IJetProvider::getAndRecordJets ( SG::WriteHandle< xAOD::JetContainer > &  jetHandle) const
pure virtual

Method to allow the client to pass in a WriteHandle for the container and aux container to be recorded, while the client remains free to modify the output but does not need to know the type of the aux container.

Every class derived from IJetProvider needs to implement the record, providing the explicit type – we should give StoreGate maximal information rather than recording AuxContainerBase

The recommended solution is for the concrete tool to inherit from the templated JetProvider class provided below.

Implemented in JetCopier, JetProvider< CONCRETEAUX >, and JetProvider< xAOD::JetAuxContainer >.

◆ getJets()

virtual std::pair<std::unique_ptr<xAOD::JetContainer>,std::unique_ptr<SG::IAuxStore> > IJetProvider::getJets ( ) const
pure virtual

Method to build the collection and return it to the caller.

Unique_ptrs are used to avoid potential memory leaks. The aux container is returned as an IAuxStore pointer to support operations such as shallow copy.

Implemented in JetGrooming::JetGroomer, JetClusterer, JetClustererByVertex, and JetCopier.

◆ initWithOutput()

virtual StatusCode IJetProvider::initWithOutput ( const SG::WriteHandleKey< xAOD::JetContainer > &  )
inlinevirtual

Method to allow the client to pass in a WriteHandle during initialisation, in case this is needed for anything...

The main (only?) use case is for copying jets, and propagating any decorations already on the original to the copy in StoreGate

Quietly return success in the general case – the JetRecAlg will always call this, so as to remain agnostic as to the concrete type.

Reimplemented in JetCopier.

Definition at line 65 of file IJetProvider.h.

65 {return StatusCode::SUCCESS;};

◆ print()

virtual void asg::IAsgTool::print ( ) const
pure virtualinherited

The documentation for this class was generated from the following file: