9#include <tracking/modules/vxdtfQualityEstimator/VXDQualityEstimatorMVAModule.h>
10#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorTripletFit.h>
11#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorCircleFit.h>
12#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorRiemannHelixFit.h>
13#include <framework/geometry/BFieldManager.h>
23 setDescription(
"The quality estimator module for SpacePointTrackCandidates.");
28 "Identifier which estimation method to use. Valid identifiers are: [tripletFit, circleFit, helixFit]",
31 addParam(
"SpacePointTrackCandsStoreArrayName",
33 "Name of StoreArray containing the SpacePointTrackCandidates to be estimated.",
39 "Identifier of weightfile in Database or local root/xml file.",
44 "Whether to use timing information available in the weight file",
49 "How to compile information from clusters ['Average']",
70 m_estimator = std::make_unique<QualityEstimatorTripletFit>();
72 m_estimator = std::make_unique<QualityEstimatorCircleFit>();
74 m_estimator = std::make_unique<QualityEstimatorRiemannHelixFit>();
95 std::vector<SpacePoint const*>
const sortedHits = spacePointTrackCand.getSortedHits();
106 spacePointTrackCand.setQualityIndicator(qi);
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Storage for (VXD) SpacePoint-based track candidates.
@ c_isActive
bit 11: SPTC is active (i.e.
bool isRequired(const std::string &name="")
Ensure this array/object has been registered previously.
static const double T
[tesla]
std::string m_SpacePointTrackCandsStoreArrayName
Name of the expected StoreArray containing SpacePointTrackCands.
void initialize() override
Initializes the Module.
void event() override
Applies the selected quality estimation method for a given set of TCs.
std::string m_EstimationMethod
Identifier which estimation method to use.
float m_nSpacePoints
number of SpacePoints in SPTC as additional info for MVA, type is float to be consistent with m_varia...
std::unique_ptr< QEResultsExtractor > m_qeResultsExtractor
pointer to object that extracts the results from the estimation method (including QI,...
std::unique_ptr< MVAExpert > m_mvaExpert
pointer to the object to interact with the MVA package
bool m_UseTimingInfo
whether to use timing information available in the weight file
std::string m_weightFileIdentifier
identifier of weightfile in Database or local root/xml file
VXDQualityEstimatorMVAModule()
Constructor of the module.
void beginRun() override
Launches mvaExpert and sets the magnetic field strength.
std::unique_ptr< ClusterInfoExtractor > m_clusterInfoExtractor
pointer to object that extracts info from the clusters of a SPTC
std::vector< Named< float * > > m_variableSet
set of named variables to be used in MVA
std::unique_ptr< QualityEstimatorBase > m_estimator
pointer to the selected QualityEstimator
StoreArray< SpacePointTrackCand > m_spacePointTrackCands
the storeArray for SpacePointTrackCands as member, is faster than recreating link for each event
std::string m_ClusterInformation
how to compile information from clusters ['Average']
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
static void getField(const double *pos, double *field)
return the magnetic field at a given position.
Abstract base class for different kinds of events.