9#include <tracking/modules/vxdtfQualityEstimator/QualityEstimatorVXDModule.h>
11#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorTripletFit.h>
12#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorMC.h>
13#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorCircleFit.h>
14#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorRiemannHelixFit.h>
15#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorRandom.h>
17#include <framework/geometry/BFieldManager.h>
27 setDescription(
"The quality estimator module for SpacePointTrackCandidates.");
31 "Identifier which estimation method to use. Valid identifiers are: [mcInfo, circleFit, tripletFit, helixFit, random]",
32 std::string(
"tripletFit"));
35 "Name of StoreArray containing the SpacePointTrackCandidates to be estimated.", std::string(
""));
38 "Only required for MCInfo method. Name of StoreArray containing MCRecoTracks.", std::string(
"MCRecoTracks"));
41 "Only required for MCInfo method. If false combining several MCTracks is allowed.",
bool(
true));
55 m_estimator = std::make_unique<QualityEstimatorTripletFit>();
57 m_estimator = std::make_unique<QualityEstimatorCircleFit>();
59 m_estimator = std::make_unique<QualityEstimatorRiemannHelixFit>();
61 m_estimator = std::make_unique<QualityEstimatorRandom>();
84 double qi =
m_estimator->estimateQuality(aTC.getSortedHits());
86 aTC.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...
Class implementing the algorithm used for the MC based quality estimation.
void forceUpdateClusterNames()
Setter to force the class to update its cluster names.
QualityEstimatorVXDModule()
Constructor of the module.
std::string m_SpacePointTrackCandsStoreArrayName
sets the name of the expected StoreArray containing SpacePointTrackCands
bool m_MCStrictQualityEstimator
Only required for MCInfo method.
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.
void beginRun() override
Called when entering a new run.
std::string m_MCRecoTracksStoreArrayName
sets the name of the expected StoreArray containing MCRecoTracks.
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
Storage for (VXD) SpacePoint-based track candidates.
bool isRequired(const std::string &name="")
Ensure this array/object has been registered previously.
Accessor to arrays stored in the data store.
static const double T
[tesla]
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.