57 const std::vector<std::pair<double, double>>& vTracks,
58 std::vector<std::pair<VxdID, long>>& uExtrapolations, std::vector<std::pair<VxdID, long>>& vExtrapolations)
62 for (
auto& uTrack : uTracks) {
63 const double trackPhi = uTrack.first;
64 const double trackRadius = uTrack.second;
70 for (
auto& vTrack : vTracks) {
71 const double& trackLambda = -vTrack.first;
79 for (
auto& uExtrapolatedHit : uExtrapolations) {
80 const VxdID& uHitSensorID = uExtrapolatedHit.first;
82 for (
auto& vExtrapolatedHit : vExtrapolations) {
83 const VxdID& vHitSensorID = vExtrapolatedHit.first;
85 if (uHitSensorID != vHitSensorID) {
90 double uCoordinateInCM = uExtrapolatedHit.second *
Unit::nm;
91 double vCoordinateInCM = vExtrapolatedHit.second *
Unit::nm;
102 B2DEBUG(29,
"uExtrapolations.size: " << uExtrapolations.size() <<
" vExtrapolations.size: " << vExtrapolations.size());
106 std::vector<std::pair<VxdID, long>>& uExtrapolations)
109 for (uint ladder = 1; ladder <=
laddersPerLayer[layer - 1]; ladder++) {
110 double sensorPhi = M_PI / (
laddersPerLayer[layer - 1] / 2) * (ladder - 1);
111 if (sensorPhi > M_PI) {
112 sensorPhi -= 2. * M_PI;
115 double angleDiff = trackPhi - sensorPhi;
116 if (angleDiff > M_PI) {
117 angleDiff -= 2. * M_PI;
119 if (angleDiff < -M_PI) {
120 angleDiff += 2. * M_PI;
131 long localUPosition = y -
shiftY;
135 uExtrapolations.emplace_back(sensorID, localUPosition);
138 sensorID =
VxdID(layer, ladder, 2);
139 uExtrapolations.emplace_back(sensorID, localUPosition);
145 std::vector<std::pair<VxdID, long>>& vExtrapolations)
147 for (uint sensor = 1; sensor <= 2; sensor++) {
148 const long& sensorPerpRadius =
layerRadius[layer - 1];
152 const long globalz = sensorPerpRadius * tanLambda;
154 const long localVPosition = globalz - shiftZ;
155 if (localVPosition >= -lengthOfSensor / 2. && localVPosition <= lengthOfSensor / 2.) {
157 for (uint ladder = 1; ladder <=
laddersPerLayer[layer - 1]; ladder++) {
158 VxdID sensorID =
VxdID(layer, ladder, sensor);
159 vExtrapolations.emplace_back(sensorID, localVPosition);