Belle II Software development
AdditionalMeasurementCreatorFactory Class Reference

Add measurement creators that do not rely on a specific hit type, but rather add measurements without corresponding hit. More...

#include <AdditionalMeasurementCreatorFactory.h>

Inheritance diagram for AdditionalMeasurementCreatorFactory:
MeasurementCreatorFactory< BaseMeasurementCreator >

Public Types

typedef BaseMeasurementCreator CreatorType
 Typedef for convenience.
 

Public Member Functions

 AdditionalMeasurementCreatorFactory ()
 Initialize.
 
BaseMeasurementCreatorcreateMeasurementCreatorFromName (const std::string &) const override
 No creator is implemented in the moment.
 
void initialize ()
 Use the parameters given to the module and create the measurement creators from them.
 
const std::vector< std::shared_ptr< BaseMeasurementCreator > > & getCreators () const
 Return the creators to the module.
 
std::map< std::string, std::map< std::string, std::string > > & getParameters ()
 Return a reference to the parameters you can use in the module.
 
void setParameters (const std::map< std::string, std::map< std::string, std::string > > &creatorsWithParametersDictionary)
 Set the parameters.
 

Private Attributes

std::vector< std::shared_ptr< BaseMeasurementCreator > > m_measurementCreators
 A vector with the measurement creators.
 
std::map< std::string, std::map< std::string, std::string > > m_creatorsWithParametersDictionary
 The map of dictionaries of the parameters.
 

Detailed Description

Add measurement creators that do not rely on a specific hit type, but rather add measurements without corresponding hit.

Definition at line 19 of file AdditionalMeasurementCreatorFactory.h.

Member Typedef Documentation

◆ CreatorType

Typedef for convenience.

Definition at line 35 of file MeasurementCreatorFactory.h.

Constructor & Destructor Documentation

◆ AdditionalMeasurementCreatorFactory()

Initialize.

Definition at line 24 of file AdditionalMeasurementCreatorFactory.h.

24 : MeasurementCreatorFactory<BaseMeasurementCreator>()
25 {}

Member Function Documentation

◆ createMeasurementCreatorFromName()

BaseMeasurementCreator * createMeasurementCreatorFromName ( const std::string &  ) const
inlineoverridevirtual

No creator is implemented in the moment.

Reimplemented from MeasurementCreatorFactory< BaseMeasurementCreator >.

Definition at line 28 of file AdditionalMeasurementCreatorFactory.h.

29 {
30 return nullptr;
31 }

◆ getCreators()

const std::vector< std::shared_ptr< BaseMeasurementCreator > > & getCreators ( ) const
inlineinherited

Return the creators to the module.

Definition at line 67 of file MeasurementCreatorFactory.h.

68 {
70 }
std::vector< std::shared_ptr< BaseMeasurementCreator > > m_measurementCreators
A vector with the measurement creators.

◆ getParameters()

std::map< std::string, std::map< std::string, std::string > > & getParameters ( )
inlineinherited

Return a reference to the parameters you can use in the module.

Definition at line 73 of file MeasurementCreatorFactory.h.

74 {
76 }
std::map< std::string, std::map< std::string, std::string > > m_creatorsWithParametersDictionary
The map of dictionaries of the parameters.

◆ initialize()

void initialize ( )
inlineinherited

Use the parameters given to the module and create the measurement creators from them.

Definition at line 38 of file MeasurementCreatorFactory.h.

39 {
40 for (const auto& creatorWithParameterDictionary : m_creatorsWithParametersDictionary) {
41 const std::string& creatorName = creatorWithParameterDictionary.first;
42 const std::map<std::string, std::string>& parameterDictionary = creatorWithParameterDictionary.second;
43
44 B2DEBUG(100, "Creating measurement creator with name " << creatorName);
45
46 BaseMeasurementCreatorType* creatorPointer = createMeasurementCreatorFromName(creatorName);
47 if (creatorPointer == nullptr) {
48 B2FATAL("Can not create a measurement creator with the name " << creatorName << ". Creator not known to the factory.");
49 }
50 m_measurementCreators.push_back(std::move(std::shared_ptr<BaseMeasurementCreatorType>(creatorPointer)));
51
52 for (const auto& parameterWithValue : parameterDictionary) {
53 const std::string& parameterName = parameterWithValue.first;
54 const std::string& parameterValue = parameterWithValue.second;
55 creatorPointer->setParameter(parameterName, parameterValue);
56 }
57 }
58 }
virtual BaseMeasurementCreator * createMeasurementCreatorFromName(const std::string &) const
Overload this method to create the measurement creators by their name.

◆ setParameters()

void setParameters ( const std::map< std::string, std::map< std::string, std::string > > &  creatorsWithParametersDictionary)
inlineinherited

Set the parameters.

Definition at line 79 of file MeasurementCreatorFactory.h.

80 {
81 m_creatorsWithParametersDictionary = std::move(creatorsWithParametersDictionary);
82 }

Member Data Documentation

◆ m_creatorsWithParametersDictionary

std::map<std::string, std::map<std::string, std::string> > m_creatorsWithParametersDictionary
privateinherited

The map of dictionaries of the parameters.

Fill it with the module parameters.

Definition at line 89 of file MeasurementCreatorFactory.h.

◆ m_measurementCreators

std::vector<std::shared_ptr<BaseMeasurementCreator > > m_measurementCreators
privateinherited

A vector with the measurement creators.

Is filled in initialize.

Definition at line 86 of file MeasurementCreatorFactory.h.


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