1
#include "gtest/gtest.h"
3
#include "src/common/Interface/TofHit.hh"
7
bool TofHitEquality(TofHit th1, TofHit th2, double float_tolerance) {
9
equal &= th1.GetTrackID() == th2.GetTrackID();
10
equal &= th1.GetStripNo() == th2.GetStripNo();
11
equal &= th1.GetPlaneNo() == th2.GetPlaneNo();
12
equal &= th1.GetStationNo() == th2.GetStationNo();
13
equal &= th1.GetPID() == th2.GetPID();
15
equal &= th1.GetVolumeName() == th2.GetVolumeName();
17
equal &= fabs(th1.GetTime() - th2.GetTime()) < float_tolerance;
18
equal &= fabs(th1.GetEnergy() - th2.GetEnergy()) < float_tolerance;
19
equal &= fabs(th1.GetMass() - th2.GetMass()) < float_tolerance;
20
equal &= fabs(th1.GetEdep() - th2.GetEdep()) < float_tolerance;
21
equal &= fabs(th1.GetPathLength() - th2.GetPathLength()) < float_tolerance;
23
equal &= fabs( (th1.GetPosition() - th2.GetPosition()).mag() ) < float_tolerance;
24
equal &= fabs( (th1.GetMomentum() - th2.GetMomentum()).mag() ) < float_tolerance;
28
class TofHitTest : public ::testing::Test
35
th_all.SetStationNo(4);
37
th_all.SetPathLength(6.);
38
th_all.SetPosition(ThreeVector(7., 8., 9.));
39
th_all.SetMomentum(ThreeVector(10., 11., 12.));
40
th_all.SetVolumeName("Tofstrip4320");
42
th_all.SetEnergy(14.);
46
virtual ~TofHitTest () {}
48
virtual void SetUp () {}
49
virtual void TearDown() {}
58
// Test accessors by set and then get
59
TEST_F(TofHitTest, TrackIDAccessors) {
62
EXPECT_EQ(th.GetTrackID(), -1);
65
TEST_F(TofHitTest, StripNoAccessors) {
67
EXPECT_EQ(th.GetStripNo(), -2);
70
TEST_F(TofHitTest, PlaneNoAccessors) {
72
EXPECT_EQ(th.GetPlaneNo(),-3);
75
TEST_F(TofHitTest, StationNoAccessors) {
77
EXPECT_EQ(th.GetStationNo(), -4);
80
TEST_F(TofHitTest, EdepAccessors) {
82
EXPECT_EQ(th.GetEdep(), -5);
85
TEST_F(TofHitTest, PathLengthAccessors) {
86
th.SetPathLength(-6.);
87
EXPECT_EQ(th.GetPathLength(), -6.);
90
TEST_F(TofHitTest, PositionAccessors) {
91
th.SetPosition (ThreeVector(-7., -8., -9.));
92
EXPECT_EQ(th.GetPosition().x(),-7.);
93
EXPECT_EQ(th.GetPosition().y(),-8.);
94
EXPECT_EQ(th.GetPosition().z(),-9.);
97
TEST_F(TofHitTest, MomentumAccessors) {
98
th.SetMomentum (ThreeVector(-10., -11., -12.));
99
EXPECT_EQ(th.GetMomentum().x(),-10.);
100
EXPECT_EQ(th.GetMomentum().y(),-11.);
101
EXPECT_EQ(th.GetMomentum().z(),-12.);
104
TEST_F(TofHitTest, VolumeNameAccessors) {
105
th.SetVolumeName("Badname");
106
EXPECT_EQ( th.GetVolumeName(), "Badname");
109
TEST_F(TofHitTest, TimeAccessors) {
111
EXPECT_EQ( th.GetTime(), -13. );
114
TEST_F(TofHitTest, EnergyAccessors) {
116
EXPECT_EQ( th.GetEnergy(), -14. );
119
TEST_F(TofHitTest, PIDAccessors) {
121
EXPECT_EQ( th.GetPID(), -15 );
124
TEST_F(TofHitTest, MassAccessors) {
126
EXPECT_EQ( th.GetMass(), -16. );
129
TEST_F(TofHitTest, AddEdep) {
132
EXPECT_DOUBLE_EQ(th.GetEdep(), 3.);
135
TEST_F(TofHitTest, AddPathLength) {
136
th.SetPathLength(1.);
137
th.AddPathLength(2.);
138
EXPECT_DOUBLE_EQ(th.GetPathLength(), 3.);
141
//Hope no one ever wants to make a 0 > strip number > 10...
142
TEST_F(TofHitTest, DecodeVolumeName) { //GAK!
143
th.SetVolumeName("TOFstrip10123");
144
th.DecodeVolumeName();
145
EXPECT_EQ(th.GetStationNo(), 10);
146
EXPECT_EQ(th.GetPlaneNo(), 1);
147
EXPECT_EQ(th.GetStripNo(), 2);
150
TEST_F(TofHitTest, CopyConstructor) {
152
TofHit th_all_copy(th_all);
153
EXPECT_TRUE(TofHitEquality(th, th_copy, 1e-9));
154
EXPECT_TRUE(TofHitEquality(th_all, th_all_copy, 1e-9));
158
TEST_F(TofHitTest, EqualsAssignmentOperator) {
159
TofHit th_copy; //if I put all on one line, gcc implicitly calls copy constructor
162
th_all_copy = th_all;
163
EXPECT_TRUE(TofHitEquality(th, th_copy, 1e-9));
164
EXPECT_TRUE(TofHitEquality(th_all, th_all_copy, 1e-9));
167
TEST_F(TofHitTest, Destructor) {
168
TofHit* th_p = new TofHit();
169
TofHit* th_all_copy = new TofHit(th_all);
170
delete th_all_copy; //check memory is deallocated