JANA2
C++ framework for multi-threaded data processing
JFactoryPodioT< T > Class Template Reference
Inheritance diagram for JFactoryPodioT< T >:
[legend]
Collaboration diagram for JFactoryPodioT< T >:
[legend]

Public Types

using CollectionT = typename T::collection_type
 
- Public Types inherited from JFactoryT< T >
using IteratorType = typename std::vector< T * >::const_iterator
 
using PairType = std::pair< IteratorType, IteratorType >
 
- Public Types inherited from JFactory
enum class  Status {
  Uninitialized ,
  Unprocessed ,
  Processed ,
  Inserted ,
  Finished
}
 
enum class  CreationStatus {
  NotCreatedYet ,
  Created ,
  Inserted ,
  InsertedViaGetObjects ,
  NeverCreated
}
 
enum  JFactory_Flags_t {
  JFACTORY_NULL = 0x00 ,
  PERSISTENT = 0x01 ,
  WRITE_TO_OUTPUT = 0x02 ,
  NOT_OBJECT_OWNER = 0x04 ,
  REGENERATE = 0x08
}
 
- Public Types inherited from jana::components::JComponent
enum class  Status {
  Uninitialized ,
  Initialized ,
  Opened ,
  Closed ,
  Finalized
}
 
enum class  CallbackStyle {
  LegacyMode ,
  ExpertMode ,
  DeclarativeMode
}
 

Public Member Functions

void Init () override
 
void BeginRun (const std::shared_ptr< const JEvent > &) override
 
void ChangeRun (const std::shared_ptr< const JEvent > &) override
 
void Process (const std::shared_ptr< const JEvent > &) override
 
void EndRun () override
 
void Finish () override
 
void Create (const std::shared_ptr< const JEvent > &event) final
 Create() calls JFactory::Init,BeginRun,Process in an invariant-preserving way without knowing the exact type of object contained. More...
 
std::type_index GetObjectType () const final
 
std::size_t GetNumObjects () const final
 
void ClearData () final
 
void SetCollection (CollectionT &&collection)
 
void SetCollection (std::unique_ptr< CollectionT > collection)
 
void Set (const std::vector< T * > &aData) final
 
void Set (std::vector< T * > &&aData) final
 
void Insert (T *aDatum) final
 
- Public Member Functions inherited from JFactoryT< T >
 JFactoryT (std::string tag="")
 
PairType CreateAndGetData (const std::shared_ptr< const JEvent > &event)
 CreateAndGetData handles all the preconditions and postconditions involved in calling the user-defined Open(), ChangeRun(), and Process() methods. More...
 
const std::vector< T * > & GetData ()
 
void Set (const std::vector< JObject * > &aData) override
 Please use the typed setters instead whenever possible.
 
void Insert (JObject *aDatum) override
 Please use the typed setters instead whenever possible.
 
template<typename S >
void EnableGetAs ()
 EnableGetAs generates a vtable entry so that users may extract the contents of this JFactoryT from the type-erased JFactory. More...
 
template<typename S >
void EnableGetAs (std::true_type)
 
template<typename S >
void EnableGetAs (std::false_type)
 
- Public Member Functions inherited from JFactory
 JFactory (std::string aName, std::string aTag="")
 
std::string GetName () const __attribute__((deprecated))
 
std::string GetTag () const
 
std::string GetObjectName () const
 
std::string GetFactoryName () const
 
Status GetStatus () const
 
CreationStatus GetCreationStatus () const
 
JCallGraphRecorder::JDataOrigin GetInsertOrigin () const
 If objects were placed here by JEvent::Insert() this records whether that call was made from a source or factory.
 
uint32_t GetPreviousRunNumber (void) const
 
void SetName (std::string objectName) __attribute__((deprecated))
 
void SetTag (std::string tag)
 
void SetObjectName (std::string objectName)
 
void SetFactoryName (std::string factoryName)
 
void SetStatus (Status status)
 
void SetCreationStatus (CreationStatus status)
 
void SetInsertOrigin (JCallGraphRecorder::JDataOrigin origin)
 Called automatically by JEvent::Insert() to records whether that call was made by a source or factory.
 
void SetPreviousRunNumber (uint32_t aRunNumber)
 
uint32_t GetFactoryFlags () const
 Get all flags in the form of a single word.
 
void SetFactoryFlag (JFactory_Flags_t f)
 Set a flag (or flags)
 
void ClearFactoryFlag (JFactory_Flags_t f)
 Clear a flag (or flags)
 
bool TestFactoryFlag (JFactory_Flags_t f) const
 Test if a flag (or set of flags) is set.
 
void SetPersistentFlag (bool persistent)
 
void SetNotOwnerFlag (bool not_owner)
 
void SetRegenerateFlag (bool regenerate)
 
void SetWriteToOutputFlag (bool write_to_output)
 
bool GetWriteToOutputFlag ()
 
JCallGraphRecorder::JDataSource GetDataSource () const
 Get data source value depending on how objects came to be here. (Used mainly by JEvent::Get() )
 
template<typename S >
std::vector< S * > GetAs ()
 Access the encapsulated data, performing an upcast if necessary. More...
 
void DoInit ()
 
void DoFinish ()
 
void Summarize (JComponentSummary &summary) const override
 
- Public Member Functions inherited from jana::components::JComponent
void SetLevel (JEventLevel level)
 
void SetCallbackStyle (CallbackStyle style)
 
void SetPrefix (std::string prefix)
 
void SetTypeName (std::string type_name)
 For convenience, we provide a NAME_OF_THIS macro so that the user doesn't have to store the type name as a string, because that could get out of sync if automatic refactoring tools are used.
 
JApplicationGetApplication () const
 
JLoggerGetLogger ()
 
std::string GetPrefix () const
 
JEventLevel GetLevel () const
 
std::string GetLoggerName () const
 
std::string GetPluginName () const
 
void SetLoggerName (std::string logger_name)
 
void SetPluginName (std::string plugin_name)
 
std::string GetTypeName () const
 
CallbackStyle GetCallbackStyle () const
 
Status GetStatus () const
 
void SetApplication (JApplication *app)
 
void SetLogger (JLogger logger)
 
template<typename F >
void CallWithJExceptionWrapper (std::string func_name, F func)
 
void RegisterParameter (ParameterBase *parameter)
 
void RegisterService (ServiceBase *service)
 
void ConfigureAllParameters (std::map< std::string, std::string > fields)
 
- Public Member Functions inherited from JFactoryPodio
void SetSubsetCollection (bool isSubsetCollection=true)
 

Friends

class JEvent
 

Additional Inherited Members

- Protected Attributes inherited from JFactoryT< T >
std::vector< T * > mData
 
- Protected Attributes inherited from JFactory
std::string mObjectName
 
std::string mTag
 
uint32_t mFlags = WRITE_TO_OUTPUT
 
int32_t mPreviousRunNumber = -1
 
std::unordered_map< std::type_index, std::unique_ptr< JAny > > mUpcastVTable
 
Status mStatus = Status::Uninitialized
 
JCallGraphRecorder::JDataOrigin m_insert_origin = JCallGraphRecorder::ORIGIN_NOT_AVAILABLE
 
CreationStatus mCreationStatus = CreationStatus::NotCreatedYet
 
- Protected Attributes inherited from jana::components::JComponent
std::vector< ParameterBase * > m_parameters
 
std::vector< ServiceBase * > m_services
 
JEventLevel m_level = JEventLevel::PhysicsEvent
 
CallbackStyle m_callback_style = CallbackStyle::LegacyMode
 
std::string m_prefix
 
std::string m_plugin_name
 
std::string m_logger_name
 
std::string m_type_name
 
Status m_status = Status::Uninitialized
 
std::mutex m_mutex
 
JApplicationm_app = nullptr
 
JLogger m_logger
 
- Protected Attributes inherited from JFactoryPodio
const podio::CollectionBase * mCollection = nullptr
 
bool mIsSubsetCollection = false
 
podio::Frame * mFrame = nullptr
 

Member Function Documentation

◆ Create()

template<typename T >
void JFactoryPodioT< T >::Create ( const std::shared_ptr< const JEvent > &  event)
finalvirtual

Create() calls JFactory::Init,BeginRun,Process in an invariant-preserving way without knowing the exact type of object contained.

In order to access these objects when all you have is a JFactory*, use JFactory::GetAs().

Reimplemented from JFactory.

References JFactory::Create().

◆ SetCollection() [1/2]

template<typename T >
void JFactoryPodioT< T >::SetCollection ( CollectionT &&  collection)

Provide a PODIO collection. Note that PODIO assumes ownership of this collection, and the collection pointer should be assumed to be invalid after this call

◆ SetCollection() [2/2]

template<typename T >
void JFactoryPodioT< T >::SetCollection ( std::unique_ptr< CollectionT >  collection)

Provide a PODIO collection. Note that PODIO assumes ownership of this collection, and the collection pointer should be assumed to be invalid after this call


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