10 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory2D.h>
12 #include <tracking/trackFindingCDC/topology/WireLine.h>
14 #include <framework/logging/Logger.h>
16 #include <gtest/gtest.h>
19 using namespace TrackFindingCDC;
22 TEST(TrackFindingCDCTest, eventdata_trajectories_CDCTrajectory2D_constructorPosMomCharge)
24 Vector2D newMom2D(1.0, 2.0);
25 Vector2D newPos2D(1.0, 2.0);
27 ESign newChargeSign = ESign::c_Plus;
30 CDCTrajectory2D trajectory(newPos2D, newTime, newMom2D, newChargeSign, bZ);
32 Vector2D mom2D = trajectory.getMom2DAtSupport(bZ);
33 Vector2D pos2D = trajectory.getSupport();
34 ESign chargeSign = trajectory.getChargeSign();
36 EXPECT_NEAR(newMom2D.x(), mom2D.x(), 10e-7);
37 EXPECT_NEAR(newMom2D.y(), mom2D.y(), 10e-7);
39 EXPECT_NEAR(newPos2D.x(), pos2D.x(), 10e-7);
40 EXPECT_NEAR(newPos2D.y(), pos2D.y(), 10e-7);
42 EXPECT_NEAR(newChargeSign, chargeSign, 10e-7);
46 TEST(TrackFindingCDCTest, eventdata_trajectories_CDCTrajectory2D_reconstruct)
50 WireLine wireLine(forward, backward, 0);
52 double localPhi0 = M_PI / 3;
53 double localCurv = -2.0;
54 double localImpact = 0.0;
55 UncertainPerigeeCircle localPerigeeCircle(localCurv, localPhi0, localImpact);
58 Vector3D positionOnWire = wireLine.nominalPos3DAtZ(localOrigin.z());
59 EXPECT_NEAR(localOrigin.x(), positionOnWire.x(), 10e-7);
60 EXPECT_NEAR(localOrigin.y(), positionOnWire.y(), 10e-7);
61 EXPECT_NEAR(localOrigin.z(), positionOnWire.z(), 10e-7);
63 CDCTrajectory2D trajectory2D(localOrigin.xy(), localPerigeeCircle);
64 double arcLength2D = trajectory2D.setLocalOrigin(Vector2D(0.0, 0.0));
67 double distance = trajectory2D.getDist2D(localOrigin.xy());
68 EXPECT_NEAR(0, distance, 10e-7);
71 Vector2D extrapolation2D = trajectory2D.getPos2DAtArcLength2D(-arcLength2D);
72 EXPECT_NEAR(localOrigin.x(), extrapolation2D.x(), 10e-7);
73 EXPECT_NEAR(localOrigin.y(), extrapolation2D.y(), 10e-7);
75 Vector3D recoPos3D = trajectory2D.reconstruct3D(wireLine);
79 EXPECT_NEAR(localOrigin.x(), recoPos3D.x(), 10e-7);
80 EXPECT_NEAR(localOrigin.y(), recoPos3D.y(), 10e-7);
81 EXPECT_NEAR(localOrigin.z(), recoPos3D.z(), 10e-7);