Belle II Software development
EKLMMeasurementCreatorFactory Class Reference

Add all measurement creators related to EKLM hits. More...

#include <EKLMMeasurementCreatorFactory.h>

Inheritance diagram for EKLMMeasurementCreatorFactory:
MeasurementCreatorFactory< EKLMBaseMeasurementCreator >

Public Types

typedef EKLMBaseMeasurementCreator CreatorType
 Typedef for convenience.
 

Public Member Functions

 EKLMMeasurementCreatorFactory (const genfit::MeasurementFactory< genfit::AbsMeasurement > &measurementFactory)
 Initialize with a measurement factory.
 
EKLMBaseMeasurementCreatorcreateMeasurementCreatorFromName (const std::string &creatorName) const override
 Only a simple reco hit 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< EKLMBaseMeasurementCreator > > & 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

const genfit::MeasurementFactory< genfit::AbsMeasurement > & m_measurementFactory
 A reference to the prefilled measurement factory.
 
std::vector< std::shared_ptr< EKLMBaseMeasurementCreator > > 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 all measurement creators related to EKLM hits.

Definition at line 19 of file EKLMMeasurementCreatorFactory.h.

Member Typedef Documentation

◆ CreatorType

Typedef for convenience.

Definition at line 35 of file MeasurementCreatorFactory.h.

Constructor & Destructor Documentation

◆ EKLMMeasurementCreatorFactory()

EKLMMeasurementCreatorFactory ( const genfit::MeasurementFactory< genfit::AbsMeasurement > &  measurementFactory)
inlineexplicit

Initialize with a measurement factory.

Definition at line 24 of file EKLMMeasurementCreatorFactory.h.

24 :
25 MeasurementCreatorFactory<EKLMBaseMeasurementCreator>(),
26 m_measurementFactory(measurementFactory) {}
const genfit::MeasurementFactory< genfit::AbsMeasurement > & m_measurementFactory
A reference to the prefilled measurement factory.

Member Function Documentation

◆ createMeasurementCreatorFromName()

EKLMBaseMeasurementCreator * createMeasurementCreatorFromName ( const std::string &  creatorName) const
inlineoverridevirtual

Only a simple reco hit creator is implemented in the moment.

Reimplemented from MeasurementCreatorFactory< EKLMBaseMeasurementCreator >.

Definition at line 29 of file EKLMMeasurementCreatorFactory.h.

31 {
32 if (creatorName == "RecoHitCreator") {
34 }
35
36 return nullptr;
37 }
CoordinateMeasurementCreator< RecoHitInformation::UsedEKLMHit, Const::EKLM > EKLMCoordinateMeasurementCreator
Hit to reco hit measurement creator for the EKLM.

◆ getCreators()

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

Return the creators to the module.

Definition at line 67 of file MeasurementCreatorFactory.h.

68 {
70 }
std::vector< std::shared_ptr< EKLMBaseMeasurementCreator > > 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 EKLMBaseMeasurementCreator * 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<EKLMBaseMeasurementCreator > > m_measurementCreators
privateinherited

A vector with the measurement creators.

Is filled in initialize.

Definition at line 86 of file MeasurementCreatorFactory.h.

◆ m_measurementFactory

const genfit::MeasurementFactory<genfit::AbsMeasurement>& m_measurementFactory
private

A reference to the prefilled measurement factory.

Definition at line 40 of file EKLMMeasurementCreatorFactory.h.


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