11#include <tracking/trackFindingVXD/variableExtractors/VariableExtractor.h>
12#include <tracking/dataobjects/RecoTrack.h>
13#include <tracking/spacePointCreation/SpacePointTrackCand.h>
15#include <genfit/MeasuredStateOnPlane.h>
16#include <Math/Vector3D.h>
17#include <TMatrixDSym.h>
57 m_variables.at(
"PXD_QI") = std::isnan(pxdQI) ? 0. : pxdQI;
64 m_variables.at(
"CDC_QI") = std::isnan(cdcQI) ? 0. : cdcQI;
108 const ROOT::Math::XYZVector* svdTrackVector,
109 const ROOT::Math::XYZVector* cdcTrackVector)
111 if (not(svdTrackVector and cdcTrackVector)) {
120 m_variables.at(prefix +
"_diff_Z") = fabs(cdcTrackVector->Z() - svdTrackVector->Z());
121 m_variables.at(prefix +
"_diff_Pt") = fabs(cdcTrackVector->Rho() - svdTrackVector->Rho());
122 m_variables.at(prefix +
"_diff_Theta") = fabs(cdcTrackVector->Theta() - svdTrackVector->Theta());
123 m_variables.at(prefix +
"_diff_Phi") = fabs(cdcTrackVector->Phi() - svdTrackVector->Phi());
124 m_variables.at(prefix +
"_diff_Mag") = fabs(cdcTrackVector->R() - svdTrackVector->R());
125 m_variables.at(prefix +
"_diff_Eta") = fabs(cdcTrackVector->Eta() - svdTrackVector->Eta());
137 genfit::MeasuredStateOnPlane svdTrackStateOnPlane;
138 genfit::MeasuredStateOnPlane cdcTrackStateOnPlane;
143 cdcTrackStateOnPlane.extrapolateToCylinder(
m_CDC_wall_radius, center, direction);
144 svdTrackStateOnPlane.extrapolateToPlane(cdcTrackStateOnPlane.getPlane());
145 }
catch (genfit::Exception
const& e) {
147 B2WARNING(
"SubRecoTrackExtractor: SVDRecoTrack and/or CDCRecoTrack extrapolation to the CDCwall failed!\n"
148 <<
"-->" << e.what());
156 const ROOT::Math::XYZVector svdTrackPositionOnPlaneAtCDCWall = ROOT::Math::XYZVector(svdTrackStateOnPlane.getPos());
157 const ROOT::Math::XYZVector svdTrackMomentumOnPlaneAtCDCWall = ROOT::Math::XYZVector(svdTrackStateOnPlane.getMom());
158 const ROOT::Math::XYZVector cdcTrackPositionOnPlaneAtCDCWall = ROOT::Math::XYZVector(cdcTrackStateOnPlane.getPos());
159 const ROOT::Math::XYZVector cdcTrackMomentumOnPlaneAtCDCWall = ROOT::Math::XYZVector(cdcTrackStateOnPlane.getMom());
164 const TMatrixDSym invCovariance = (svdTrackStateOnPlane.getCov() + cdcTrackStateOnPlane.getCov()).Invert();
165 TVectorD stateDifference = cdcTrackStateOnPlane.getState() - svdTrackStateOnPlane.getState();
166 stateDifference *= invCovariance;
167 const float chi2 = stateDifference * (cdcTrackStateOnPlane.getState() - svdTrackStateOnPlane.getState());
170 }
catch (genfit::Exception
const& e) {
172 B2WARNING(
"SubRecoTrackExtractor: Matrix is singular!\n"
173 <<
"-->" << e.what());
188 genfit::MeasuredStateOnPlane svdTrackStateOnPlane;
189 genfit::MeasuredStateOnPlane cdcTrackStateOnPlane;
194 cdcTrackStateOnPlane.extrapolateToLine(linePoint, lineDirection);
195 svdTrackStateOnPlane.extrapolateToLine(linePoint, lineDirection);
196 }
catch (genfit::Exception
const& e) {
198 B2WARNING(
"SubRecoTrackExtractor: SVDRecoTrack and/or CDCRecoTrack extrapolation to POCA failed!\n"
199 <<
"-->" << e.what());
206 const ROOT::Math::XYZVector svdTrackPositionOnPlaneAtPOCA = ROOT::Math::XYZVector(svdTrackStateOnPlane.getPos());
207 const ROOT::Math::XYZVector svdTrackMomentumOnPlaneAtPOCA = ROOT::Math::XYZVector(svdTrackStateOnPlane.getMom());
208 const ROOT::Math::XYZVector cdcTrackPositionOnPlaneAtPOCA = ROOT::Math::XYZVector(cdcTrackStateOnPlane.getPos());
209 const ROOT::Math::XYZVector cdcTrackMomentumOnPlaneAtPOCA = ROOT::Math::XYZVector(cdcTrackStateOnPlane.getMom());
A mixin class to attach a name to an object. Based on class with same name in CDC package.
This is the Reconstruction Event-Data Model Track.
bool wasFitSuccessful(const genfit::AbsTrackRep *representation=nullptr) const
Returns true if the last fit with the given representation was successful.
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlaneFromLastHit(const genfit::AbsTrackRep *representation=nullptr) const
Return genfit's MeasuredStateOnPlane for the last hit in a fit useful for extrapolation of measuremen...
float getQualityIndicator() const
Get the quality index attached to this RecoTrack given by one of the reconstruction algorithms....
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlaneFromFirstHit(const genfit::AbsTrackRep *representation=nullptr) const
Return genfit's MeasuredStateOnPlane for the first hit in a fit useful for extrapolation of measureme...
TO * getRelatedTo(const std::string &name="", const std::string &namedRelation="") const
Get the object to which this object has a relation.
Storage for (VXD) SpacePoint-based track candidates.
Abstract base class for different kinds of events.