12 #include <tracking/trackFitting/measurementCreator/creators/BaseMeasurementCreatorFromCoordinateMeasurement.h>
13 #include <tracking/vxdMomentumEstimation/VXDMomentumEstimation.h>
14 #include <tracking/trackFitting/measurementCreator/measurements/PlanarVXDMomentumMeasurement.h>
15 #include <genfit/PlanarMeasurement.h>
28 template <
class HitType, Const::EDetector detector>
29 class VXDMomentumEstimationMeasurementCreator :
public BaseMeasurementCreatorFromCoordinateMeasurement<HitType, detector> {
39 void setParameter(
const std::string& parameterName,
const std::string& parameterValue)
override
41 if (parameterName ==
"minimumMomentum") {
43 }
else if (parameterName ==
"aE") {
45 }
else if (parameterName ==
"bE") {
47 }
else if (parameterName ==
"cE") {
49 }
else if (parameterName ==
"dE") {
51 }
else if (parameterName ==
"aM") {
53 }
else if (parameterName ==
"bM") {
55 }
else if (parameterName ==
"cM") {
57 }
else if (parameterName ==
"dM") {
59 }
else if (parameterName ==
"useMCInformation") {
61 }
else if (parameterName ==
"useThickness") {
63 }
else if (parameterName ==
"sigma") {
64 m_sigma = std::stod(parameterValue);
65 }
else if (parameterName ==
"useTrackingSeeds") {
68 B2FATAL(
"A parameter with the name " << parameterName <<
" and the value " << parameterValue <<
" could not be set.");
77 const RecoTrack& recoTrack,
const RecoHitInformation&,
81 if (planarMeasurement ==
nullptr) {
82 B2FATAL(
"Can only add VXD hits which are based on PlanarMeasurements with momentum estimation!");
87 const TVector3& momentum = recoTrack.getMomentumSeed();
94 PlanarVXDMomentumMeasurement<HitType>* momentumMeasurement =
new PlanarVXDMomentumMeasurement<HitType>(*planarMeasurement, hit,
98 momentumMeasurement->setSigma(
m_sigma);
102 return {momentumMeasurement};
107 typename VXDMomentumEstimation<HitType>::FitParameters
m_fitParameters;