~mice-lcr/maus/end-of-emr-run

661.45.18 by Adam Dobbs
Added test for the infoBox plotter
1
/* This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus
2
 *
3
 * MAUS is free software: you can redistribute it and/or modify
4
 * it under the terms of the GNU General Public License as published by
5
 * the Free Software Foundation, either version 3 of the License, or
6
 * (at your option) any later version.
7
 *
8
 * MAUS is distributed in the hope that it will be useful,
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 * GNU General Public License for more details.
12
 *
13
 * You should have received a copy of the GNU General Public License
14
 * along with MAUS.  If not, see <http://www.gnu.org/licenses/>.
15
 *
16
 */
17
18
// ROOT headers
661.45.19 by Adam Dobbs
Updated tests, and removed geometry fix from Pattern Recognition
19
#include "TCanvas.h"
661.45.18 by Adam Dobbs
Added test for the infoBox plotter
20
21
// Google test headers
22
#include "gtest/gtest.h"
23
#include "gtest/gtest_prod.h"
24
25
// MAUS headers
26
#include "src/common_cpp/Recon/SciFi/TrackerDataPlotterInfoBox.hh"
27
28
namespace MAUS {
29
30
class TrackerDataPlotterInfoBoxTest : public ::testing::Test {
31
 protected:
32
  TrackerDataPlotterInfoBoxTest()  {}
33
  virtual ~TrackerDataPlotterInfoBoxTest() {}
34
  virtual void SetUp()    {}
35
  virtual void TearDown() {}
36
};
37
38
TEST_F(TrackerDataPlotterInfoBoxTest, TestConstructor) {
39
40
  // Test the default contructor
41
  TrackerDataPlotterInfoBox* infoBox = new TrackerDataPlotterInfoBox();
42
  EXPECT_FALSE(infoBox->_setup_true);
43
  EXPECT_EQ(0, infoBox->_tot_digits_t1);
44
  EXPECT_EQ(0, infoBox->_tot_clusters_t1);
45
  EXPECT_EQ(0, infoBox->_tot_spoints_t1);
46
  EXPECT_EQ(0, infoBox->_tot_5htracks_t1);
47
  EXPECT_EQ(0, infoBox->_tot_4htracks_t1);
48
  EXPECT_EQ(0, infoBox->_tot_3htracks_t1);
49
  EXPECT_EQ(0, infoBox->_tot_5stracks_t1);
50
  EXPECT_EQ(0, infoBox->_tot_4stracks_t1);
51
  EXPECT_EQ(0, infoBox->_tot_3stracks_t1);
52
  EXPECT_EQ(0, infoBox->_tot_digits_t2);
53
  EXPECT_EQ(0, infoBox->_tot_clusters_t2);
54
  EXPECT_EQ(0, infoBox->_tot_spoints_t2);
55
  EXPECT_EQ(0, infoBox->_tot_5htracks_t2);
56
  EXPECT_EQ(0, infoBox->_tot_4htracks_t2);
57
  EXPECT_EQ(0, infoBox->_tot_3htracks_t2);
58
  EXPECT_EQ(0, infoBox->_tot_5stracks_t2);
59
  EXPECT_EQ(0, infoBox->_tot_4stracks_t2);
60
  EXPECT_EQ(0, infoBox->_tot_3stracks_t2);
61
  EXPECT_EQ(275, infoBox->_canvas_width);
62
  EXPECT_EQ(600, infoBox->_canvas_height);
63
  EXPECT_EQ(0.585, infoBox->_line1_pos);
64
  EXPECT_EQ(0.93, infoBox->_line2_pos);
65
  delete infoBox;
66
67
  // Test the copy constructor
68
  int canvas_width = 1;
69
  int canvas_height = 2;
70
  double line1_pos = 0.1;
71
  double line2_pos = 0.2;
72
  infoBox = new TrackerDataPlotterInfoBox(canvas_width, canvas_height, line1_pos, line2_pos);
73
  EXPECT_FALSE(infoBox->_setup_true);
74
  EXPECT_EQ(0, infoBox->_tot_digits_t1);
75
  EXPECT_EQ(0, infoBox->_tot_clusters_t1);
76
  EXPECT_EQ(0, infoBox->_tot_spoints_t1);
77
  EXPECT_EQ(0, infoBox->_tot_5htracks_t1);
78
  EXPECT_EQ(0, infoBox->_tot_4htracks_t1);
79
  EXPECT_EQ(0, infoBox->_tot_3htracks_t1);
80
  EXPECT_EQ(0, infoBox->_tot_5stracks_t1);
81
  EXPECT_EQ(0, infoBox->_tot_4stracks_t1);
82
  EXPECT_EQ(0, infoBox->_tot_3stracks_t1);
83
  EXPECT_EQ(0, infoBox->_tot_digits_t2);
84
  EXPECT_EQ(0, infoBox->_tot_clusters_t2);
85
  EXPECT_EQ(0, infoBox->_tot_spoints_t2);
86
  EXPECT_EQ(0, infoBox->_tot_5htracks_t2);
87
  EXPECT_EQ(0, infoBox->_tot_4htracks_t2);
88
  EXPECT_EQ(0, infoBox->_tot_3htracks_t2);
89
  EXPECT_EQ(0, infoBox->_tot_5stracks_t2);
90
  EXPECT_EQ(0, infoBox->_tot_4stracks_t2);
91
  EXPECT_EQ(0, infoBox->_tot_3stracks_t2);
92
  EXPECT_EQ(canvas_width, infoBox->_canvas_width);
93
  EXPECT_EQ(canvas_height, infoBox->_canvas_height);
94
  EXPECT_EQ(line1_pos, infoBox->_line1_pos);
95
  EXPECT_EQ(line2_pos, infoBox->_line2_pos);
96
  delete infoBox;
97
}
98
99
TEST_F(TrackerDataPlotterInfoBoxTest, TestBrackets) {
100
  TrackerDataPlotterInfoBox* infoBox = new TrackerDataPlotterInfoBox();
101
102
  // Set up some mock data
103
  TrackerData t1;
104
  TrackerData t2;
105
  t1._num_digits = 1;
106
  t1._num_clusters = 1;
107
  t1._num_spoints = 1;
108
  t1._num_seeds = 1;
109
  t1._num_stracks_5pt = 1;
110
  t1._num_stracks_4pt = 1;
111
  t1._num_stracks_3pt = 1;
112
  t1._num_htracks_5pt = 1;
113
  t1._num_htracks_4pt = 1;
114
  t1._num_htracks_3pt = 1;
115
  t2._num_digits = 2;
116
  t2._num_clusters = 2;
117
  t2._num_spoints = 2;
118
  t2._num_seeds = 2;
119
  t2._num_stracks_5pt = 2;
120
  t2._num_stracks_4pt = 2;
121
  t2._num_stracks_3pt = 2;
122
  t2._num_htracks_5pt = 2;
123
  t2._num_htracks_4pt = 2;
124
  t2._num_htracks_3pt = 2;
125
126
  // Send data to infoBox twice to check accumulates, and check Canvases assigned properly
127
  TCanvas* c1 = new TCanvas();
128
  TCanvas* c2 = (*infoBox)(t1, t2, c1);
661.45.19 by Adam Dobbs
Updated tests, and removed geometry fix from Pattern Recognition
129
  EXPECT_TRUE(c1 == c2);
130
  TCanvas* c3 = (*infoBox)(t1, t2); // No canvas passed so should switch to internal canvas
131
  EXPECT_TRUE(c3 == infoBox->_Canvas);
132
  delete c1;
133
  c1 = NULL;
134
  c2 = NULL;
661.45.18 by Adam Dobbs
Added test for the infoBox plotter
135
136
  // Check infoBox internal state (not bothering to check internal state of root TPaveTexts etc)
137
  EXPECT_EQ(2, infoBox->_tot_digits_t1);
138
  EXPECT_EQ(2, infoBox->_tot_clusters_t1);
139
  EXPECT_EQ(2, infoBox->_tot_spoints_t1);
140
  EXPECT_EQ(2, infoBox->_tot_5stracks_t1);
141
  EXPECT_EQ(2, infoBox->_tot_4stracks_t1);
142
  EXPECT_EQ(2, infoBox->_tot_3stracks_t1);
143
  EXPECT_EQ(2, infoBox->_tot_5htracks_t1);
144
  EXPECT_EQ(2, infoBox->_tot_4htracks_t1);
145
  EXPECT_EQ(2, infoBox->_tot_3htracks_t1);
146
  EXPECT_EQ(4, infoBox->_tot_digits_t2);
147
  EXPECT_EQ(4, infoBox->_tot_clusters_t2);
148
  EXPECT_EQ(4, infoBox->_tot_spoints_t2);
149
  EXPECT_EQ(4, infoBox->_tot_5stracks_t2);
150
  EXPECT_EQ(4, infoBox->_tot_4stracks_t2);
151
  EXPECT_EQ(4, infoBox->_tot_3stracks_t2);
152
  EXPECT_EQ(4, infoBox->_tot_5htracks_t2);
153
  EXPECT_EQ(4, infoBox->_tot_4htracks_t2);
154
  EXPECT_EQ(4, infoBox->_tot_3htracks_t2);
661.45.19 by Adam Dobbs
Updated tests, and removed geometry fix from Pattern Recognition
155
  delete infoBox; // Deletes the current canvas too
661.45.18 by Adam Dobbs
Added test for the infoBox plotter
156
}
157
158
} // ~namespace MAUS