11 #include <pxd/utilities/PXDUtilities.h>
12 #include <framework/logging/Logger.h>
21 std::shared_ptr<TrackState> getTrackStateOnModule(
22 const VXD::SensorInfoBase& pxdSensorInfo,
23 RecoTrack& recoTrack,
double lambda)
26 auto centerP = pxdSensorInfo.pointToGlobal(TVector3(0, 0, 0),
true);
27 auto normalV = pxdSensorInfo.vectorToGlobal(TVector3(0, 0, 1),
true);
32 auto statePtr = std::make_shared<TrackState>();
36 lambda = statePtr->extrapolateToPlane(sensorPlaneSptr);
38 B2DEBUG(20,
"extrapolation to plane failed! Lambda = " << lambda);
39 return std::shared_ptr<TrackState>(
nullptr);
41 auto intersec = pxdSensorInfo.pointToLocal(statePtr->getPos(),
true);
44 double tolerance = 0.0;
45 bool inside = pxdSensorInfo.inside(intersec.X(), intersec.Y(), tolerance, tolerance);
46 if (!inside)
return std::shared_ptr<TrackState>(
nullptr);