| JANA2
    C++ framework for multi-threaded data processing | 
| Public Member Functions | |
| JGeometry * | GetJGeometry (unsigned int run_number) | 
|  Public Member Functions inherited from JService | |
| virtual | ~JService ()=default | 
| JServices may require other JServices, which may be loaded out of order from different plugins. | |
| void | DoInit (JServiceLocator *) | 
| virtual void | acquire_services (JServiceLocator *) | 
|  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. | |
| JApplication * | GetApplication () const | 
| JLogger & | GetLogger () | 
| void | Wire (JApplication *app) | 
| bool | IsEnabled () const | 
| void | SetEnabled (bool is_enabled) | 
| 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 | 
| virtual void | Summarize (JComponentSummary &) const | 
| CallbackStyle | GetCallbackStyle () const | 
| void | SetApplication (JApplication *app) | 
| void | SetLogger (JLogger logger) | 
| template<typename F > | |
| void | CallWithJExceptionWrapper (std::string func_name, F func) | 
| void | DoInit () | 
| virtual void | Init () | 
| void | RegisterParameter (ParameterBase *parameter) | 
| void | RegisterService (ServiceBase *service) | 
| const std::vector< ParameterBase * > | GetAllParameters () const | 
| Additional Inherited Members | |
|  Public Types inherited from jana::components::JComponent | |
| enum class | CallbackStyle { LegacyMode , ExpertMode } | 
|  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 | 
| std::atomic_bool | m_is_initialized {false} | 
| std::atomic_bool | m_is_finalized {false} | 
| std::mutex | m_mutex | 
| JApplication * | m_app = nullptr | 
| JLogger | m_logger | 
| bool | m_is_enabled = true | 
| JGeometry * JGeometryManager::GetJGeometry | ( | unsigned int | run_number | ) | 
Return a pointer a JGeometry object that is valid for the given run number.
This first searches through the list of existing JGeometry objects created by this JApplication object to see if it already has the right one. If so, a pointer to it is returned. If not, a new JGeometry object is created and added to the internal list. Note that since we need to make sure the list is not modified by one thread while being searched by another, a mutex is locked while searching the list. It is NOT efficient to get the JGeometry object pointer every event. Factories should get a copy in their brun() callback and keep a local copy of the pointer for use in the evnt() callback.