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.
 
void initialize ()
 Use the parameters given to the module and create the measurement creators from them.
 
virtual BaseMeasurementCreatorcreateMeasurementCreatorFromName (const std::string &) const
 Overload this method to create the measurement creators by their name.
 
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()

virtual BaseMeasurementCreator * createMeasurementCreatorFromName ( const std::string & ) const
inlinevirtualinherited

Overload this method to create the measurement creators by their name.

Definition at line 61 of file MeasurementCreatorFactory.h.

62 {
63 return nullptr;
64 }

◆ 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 {
69 return m_measurementCreators;
70 }

◆ 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 {
75 return m_creatorsWithParametersDictionary;
76 }

◆ 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 }

◆ 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: