11 #include <gtest/gtest.h>
13 #include <tracking/spacePointCreation/SpacePoint.h>
14 #include <tracking/spacePointCreation/SpacePointTrackCand.h>
15 #include <tracking/trackFindingVXD/filterMap/trackletVariables/ZiggZaggXY.h>
16 #include <tracking/trackFindingVXD/filterMap/trackletVariables/ZiggZaggXYWithSigma.h>
17 #include <tracking/trackFindingVXD/filterMap/trackletVariables/ZiggZaggRZ.h>
19 #include <tracking/trackFindingVXD/filterMap/filterFramework/Shortcuts.h>
21 #include <vxd/geometry/SensorInfoBase.h>
26 namespace VXDTFtrackletFilterTest {
39 VXD::SensorInfoBase sensorInfoBase(VXD::SensorInfoBase::PXD, aVxdID, 2.3, 4.2, 0.3, 2, 4, -1);
42 r1.SetAngles(45, 20, 30);
43 TGeoTranslation t1(globalX, globalY, globalZ);
44 TGeoCombiTrans c1(t1, r1);
45 TGeoHMatrix transform = c1;
46 sensorInfoBase.setTransformation(transform);
48 sensorInfoBase.setTransformation(transform,
true);
50 return sensorInfoBase;
56 SpacePoint provideSpacePointDummy(
double X,
double Y,
double Z)
61 PXDCluster aCluster =
PXDCluster(aVxdID, 0., 0., 0.1, 0.1, 0, 0, 1, 1, 1, 1, 1, 1);
77 template<
class Var,
typename ... otherTypes>
78 static void notify(
const Var& filterType,
79 typename Var::variableType fResult,
82 B2INFO(
"ResultsObserver: Filter " << filterType.name() <<
" got result of " << fResult);
90 TEST_F(TrackletFilterTest, SpacePointCreation)
92 SpacePoint testSP = provideSpacePointDummy(1.2, 2.3, 4.2);
100 TEST_F(TrackletFilterTest, SelectionVariableName)
102 auto ziggZaggXYChecker = ZiggZaggXY<SpacePoint, SpacePointTrackCand>();
103 EXPECT_EQ(
"ZiggZaggXY" , ziggZaggXYChecker.name());
105 auto ziggZaggXYWithSigmaChecker = ZiggZaggXYWithSigma<SpacePoint, SpacePointTrackCand>();
106 EXPECT_EQ(
"ZiggZaggXYWithSigma" , ziggZaggXYWithSigmaChecker.name());
108 auto ziggZaggRZChecker = ZiggZaggRZ<SpacePoint, SpacePointTrackCand>();
109 EXPECT_EQ(
"ZiggZaggRZ" , ziggZaggRZChecker.name());
114 TEST_F(TrackletFilterTest, TestZiggZagg)
117 SpacePoint outerSP = provideSpacePointDummy(1.1, 1., 1.);
118 SpacePoint outerCenterSP = provideSpacePointDummy(2., 2., 2.);
119 SpacePoint innerCenterSP = provideSpacePointDummy(3., 2.1, 3.);
120 SpacePoint innerSP = provideSpacePointDummy(4., 3., 3.);
121 SpacePoint innermostSP = provideSpacePointDummy(5., 3, 6.);
124 const std::vector<const Belle2::SpacePoint*> aSpacePointVec = { &outerSP, &outerCenterSP, &innerCenterSP, &innerSP };
127 ziggZaggXYChecker4VecSPs(
129 EXPECT_FALSE(ziggZaggXYChecker4VecSPs.accept(aSpacePointVec));
130 EXPECT_EQ(2, lastResult);
138 EXPECT_FALSE(ziggZaggXYChecker4SPTC.accept(aSpacePointTC));
139 EXPECT_EQ(2, lastResult);
141 ziggZaggXYWithSigmaChecker4SPTC(
143 EXPECT_FALSE(ziggZaggXYWithSigmaChecker4SPTC.accept(aSpacePointTC));
144 EXPECT_EQ(2, lastResult);
147 EXPECT_FALSE(ziggZaggRZChecker4SPTC.accept(aSpacePointTC));
148 EXPECT_EQ(2, lastResult);
152 const std::vector<const Belle2::SpacePoint*> aSpacePointVec2 = { &outerSP, &outerCenterSP, &innerCenterSP, &innerSP, &innerSP };
155 EXPECT_FALSE(ziggZaggXYChecker4SPTC.accept(aSpacePointTC2));
156 EXPECT_EQ(3, lastResult);
157 EXPECT_FALSE(ziggZaggXYWithSigmaChecker4SPTC.accept(aSpacePointTC2));
158 EXPECT_EQ(2, lastResult);
159 EXPECT_FALSE(ziggZaggRZChecker4SPTC.accept(aSpacePointTC2));
160 EXPECT_EQ(3, lastResult);
164 const std::vector<const Belle2::SpacePoint*> aSpacePointVec3 = { &outerSP, &outerCenterSP, &innerSP, &innermostSP };
167 EXPECT_TRUE(ziggZaggXYChecker4SPTC.accept(aSpacePointTC3));
168 EXPECT_EQ(1, lastResult);
169 EXPECT_TRUE(ziggZaggXYWithSigmaChecker4SPTC.accept(aSpacePointTC3));
170 EXPECT_EQ(1, lastResult);
171 EXPECT_FALSE(ziggZaggRZChecker4SPTC.accept(aSpacePointTC3));
172 EXPECT_EQ(2, lastResult);
176 SpacePoint testSP1 = provideSpacePointDummy(1.001, 1., 0.);
177 SpacePoint testSP2 = provideSpacePointDummy(2., 2.0002, 0.);
178 SpacePoint testSP3 = provideSpacePointDummy(3.0005, 3., 0.);
179 SpacePoint testSP4 = provideSpacePointDummy(4., 4.0003, 0.);
180 SpacePoint testSP5 = provideSpacePointDummy(5.001, 5., 0.);
181 const std::vector<const Belle2::SpacePoint*> aSpacePointVec4 = { &testSP1, &testSP2, &testSP3, &testSP4, &testSP5 };
184 EXPECT_FALSE(ziggZaggXYChecker4SPTC.accept(aSpacePointTC4));
185 EXPECT_EQ(2, lastResult);
186 EXPECT_TRUE(ziggZaggXYWithSigmaChecker4SPTC.accept(aSpacePointTC4));
187 EXPECT_EQ(0, lastResult);