1 #include <tracking/trackFindingCDC/collectors/adders/StereoHitTrackAdder.h>
2 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
3 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory2D.h>
4 #include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHit.h>
5 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
6 #include <tracking/trackFindingCDC/geometry/Vector3D.h>
8 #include <tracking/trackFindingCDC/ca/AutomatonCell.h>
11 using namespace TrackFindingCDC;
15 const CDCTrajectory2D& trajectory2D = track.getStartTrajectory3D().getTrajectory2D();
17 const bool isCurler = trajectory2D.
isCurler();
19 Vector3D recoPos3D = hit.reconstruct3D(trajectory2D);
21 if (isCurler and arcLength2D < 0) {
22 arcLength2D += 2 * TMath::Pi() * radius;
25 B2ASSERT(
"A stereo hit should not be added twice!", not hit.getWireHit().getAutomatonCell().hasTakenFlag());
26 track.emplace_back(hit, recoPos3D, arcLength2D);
27 hit.getWireHit().getAutomatonCell().setTakenFlag();