CbmRoot
Loading...
Searching...
No Matches
_GTestCbmEvent.cxx
Go to the documentation of this file.
1/* Copyright (C) 2016-2024 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Florian Uhlig [committer] */
4
5#include "CbmDefs.h"
6#include "CbmEvent.h"
7#include "CbmMatch.h"
8#include "CbmVertex.h"
9#include "compareVertex.h"
10
11#include <TMatrixTSym.h>
12
13#include <vector>
14
15#include <gtest/gtest-spi.h>
16#include <gtest/gtest.h>
17
18
20
21 std::vector<uint32_t> mctrack{11, 23};
22 std::vector<uint32_t> stspoint{1};
23 std::vector<uint32_t> stsdigi{2};
24 std::vector<uint32_t> stscluster{4};
25 std::vector<uint32_t> stshit{5};
26 std::vector<uint32_t> ststrack{13, 12, 11};
27
28 std::vector<float> covMatrix = {0., 1., 2., 1., 3., 4., 2., 4., 5.};
29
31 {
32 TMatrixFSym Cov(3);
33 Cov(0, 0) = covMatrix[0]; // 0 1 2
34 Cov(0, 1) = covMatrix[1]; // 1 3 4
35 Cov(0, 2) = covMatrix[2]; // 2 4 5
36 Cov(1, 0) = covMatrix[3];
37 Cov(1, 1) = covMatrix[4];
38 Cov(1, 2) = covMatrix[5];
39 Cov(2, 0) = covMatrix[6];
40 Cov(2, 1) = covMatrix[7];
41 Cov(2, 2) = covMatrix[8];
42 CbmVertex testVertex{"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, Cov};
43 return testVertex;
44 }
45};
46
47void compareEventDataMembers(CbmEvent& test, int32_t evnumber, double starttime, double endtime, double tzero,
48 int32_t numobjects, CbmMatch* match, CbmVertex* vertex)
49{
50 int32_t retValInt{-111};
51 double retValDouble{-111.};
52
53 retValInt = test.GetNumber();
54 EXPECT_EQ(evnumber, retValInt);
55
56 retValDouble = test.GetStartTime();
57 EXPECT_EQ(starttime, retValDouble);
58
59 retValDouble = test.GetEndTime();
60 EXPECT_EQ(endtime, retValDouble);
61
62 retValDouble = test.GetTzero();
63 EXPECT_EQ(tzero, retValDouble);
64
65 retValInt = test.GetNofData();
66 EXPECT_EQ(numobjects, retValInt);
67
68 EXPECT_EQ(match, test.GetMatch());
69
70 if (!vertex) {
71 double val[6] = {0., 0., 0., 0., 0., 0.};
72 compareVertexDataMembers(*(test.GetVertex()), 0., 0., 0., 0., 0, 0, val);
73 }
74 else {
75 double val[6] = {vertex->GetCovariance(0, 0), vertex->GetCovariance(0, 1), vertex->GetCovariance(0, 2),
76 vertex->GetCovariance(1, 1), vertex->GetCovariance(1, 2), vertex->GetCovariance(2, 2)};
77 compareVertexDataMembers(*(test.GetVertex()), vertex->GetX(), vertex->GetY(), vertex->GetZ(), vertex->GetChi2(),
78 vertex->GetNDF(), vertex->GetNTracks(), val);
79 }
80}
81
82void compareEventMap(CbmEvent& test, int32_t numobjects, int32_t numobjectstype, ECbmDataType type,
83 std::vector<uint32_t> indices)
84{
85 int32_t retValInt{-111};
86 uint32_t retValUInt{111};
87
88 retValInt = test.GetNofData();
89 EXPECT_EQ(numobjects, retValInt);
90
91 retValInt = test.GetNofData(type);
92 EXPECT_EQ(numobjectstype, retValInt);
93
94 if (numobjectstype > 0) {
95 for (int32_t i = 0; i < numobjectstype; ++i) {
96 retValUInt = test.GetIndex(type, i);
97 EXPECT_EQ(indices[i], retValUInt);
98 }
99 }
100}
101
103{
104
105 CbmEvent test{-111, 1., 2.};
106
107 for (auto const& data : defEvent.mctrack)
109 for (auto const& data : defEvent.stspoint)
110 test.AddData(ECbmDataType::kStsPoint, data);
111 for (auto const& data : defEvent.stsdigi)
112 test.AddData(ECbmDataType::kStsDigi, data);
113 for (auto const& data : defEvent.stscluster)
114 test.AddData(ECbmDataType::kStsCluster, data);
115 for (auto const& data : defEvent.stshit)
116 test.AddData(ECbmDataType::kStsHit, data);
117 for (auto const& data : defEvent.ststrack)
118 test.AddData(ECbmDataType::kStsTrack, data);
119
120 return test;
121}
122
123TEST(_GTestCbmEvent, CheckDefaultConstructor)
124{
125 CbmEvent test;
126 compareEventDataMembers(test, -1, 0., 0., -999999., 0, nullptr, nullptr);
127}
128
129TEST(_GTestCbmEvent, CheckStandardConstructor)
130{
131 CbmEvent test{-111};
132 {
133 SCOPED_TRACE("CheckStandardConstructor");
134 compareEventDataMembers(test, -111, 0., 0., -999999., 0, nullptr, nullptr);
135 }
136}
137
138TEST(_GTestCbmEvent, CheckAssignmentConstructor)
139{
140
141 defaultCbmEvent defEvent;
142
143 CbmEvent test = ConstructTestObject(defEvent);
144
145 CbmEvent test_assign = test;
146
147 // The original object should not change
148 compareEventDataMembers(test, -111, 1., 2., -999999., 9, nullptr, nullptr);
149 compareEventMap(test, 9, 2, ECbmDataType::kMCTrack, defEvent.mctrack);
150 compareEventMap(test, 9, 1, ECbmDataType::kStsPoint, defEvent.stspoint);
151 compareEventMap(test, 9, 1, ECbmDataType::kStsDigi, defEvent.stsdigi);
153 compareEventMap(test, 9, 1, ECbmDataType::kStsHit, defEvent.stshit);
154 compareEventMap(test, 9, 3, ECbmDataType::kStsTrack, defEvent.ststrack);
155
156 // the assigned constructed object should be identical
157 compareEventDataMembers(test_assign, -111, 1., 2., -999999., 9, nullptr, nullptr);
158 compareEventMap(test_assign, 9, 2, ECbmDataType::kMCTrack, defEvent.mctrack);
159 compareEventMap(test_assign, 9, 1, ECbmDataType::kStsPoint, defEvent.stspoint);
160 compareEventMap(test_assign, 9, 1, ECbmDataType::kStsDigi, defEvent.stsdigi);
161 compareEventMap(test_assign, 9, 1, ECbmDataType::kStsCluster, defEvent.stscluster);
162 compareEventMap(test_assign, 9, 1, ECbmDataType::kStsHit, defEvent.stshit);
163 compareEventMap(test_assign, 9, 3, ECbmDataType::kStsTrack, defEvent.ststrack);
164}
165
166TEST(_GTestCbmEvent, CheckCopyConstructor)
167{
168
169 defaultCbmEvent defEvent;
170
171 CbmEvent test = ConstructTestObject(defEvent);
172
173 CbmEvent test_copy(test);
174
175 // The original object should not change
176 compareEventDataMembers(test, -111, 1., 2., -999999., 9, nullptr, nullptr);
177 compareEventMap(test, 9, 2, ECbmDataType::kMCTrack, defEvent.mctrack);
178 compareEventMap(test, 9, 1, ECbmDataType::kStsPoint, defEvent.stspoint);
179 compareEventMap(test, 9, 1, ECbmDataType::kStsDigi, defEvent.stsdigi);
181 compareEventMap(test, 9, 1, ECbmDataType::kStsHit, defEvent.stshit);
182 compareEventMap(test, 9, 3, ECbmDataType::kStsTrack, defEvent.ststrack);
183
184 // the assigned constructed object should be identical
185 compareEventDataMembers(test_copy, -111, 1., 2., -999999., 9, nullptr, nullptr);
186 compareEventMap(test_copy, 9, 2, ECbmDataType::kMCTrack, defEvent.mctrack);
187 compareEventMap(test_copy, 9, 1, ECbmDataType::kStsPoint, defEvent.stspoint);
188 compareEventMap(test_copy, 9, 1, ECbmDataType::kStsDigi, defEvent.stsdigi);
189 compareEventMap(test_copy, 9, 1, ECbmDataType::kStsCluster, defEvent.stscluster);
190 compareEventMap(test_copy, 9, 1, ECbmDataType::kStsHit, defEvent.stshit);
191 compareEventMap(test_copy, 9, 3, ECbmDataType::kStsTrack, defEvent.ststrack);
192}
193
194TEST(_GTestCbmEvent, CheckMoveConstructor)
195{
196 defaultCbmEvent defEvent;
197
198 CbmEvent test = ConstructTestObject(defEvent);
199
200 CbmEvent test_move = std::move(test);
201
202 // The original object should be the default constructed
203 // POd data is not moved but copied such that some data members are still
204 // present
205 compareEventDataMembers(test, -111, 1., 2., -999999., 0, nullptr, nullptr);
206
207 // the moved object should be identical to the initial one
208 compareEventDataMembers(test_move, -111, 1., 2., -999999., 9, nullptr, nullptr);
209 compareEventMap(test_move, 9, 2, ECbmDataType::kMCTrack, defEvent.mctrack);
210 compareEventMap(test_move, 9, 1, ECbmDataType::kStsPoint, defEvent.stspoint);
211 compareEventMap(test_move, 9, 1, ECbmDataType::kStsDigi, defEvent.stsdigi);
212 compareEventMap(test_move, 9, 1, ECbmDataType::kStsCluster, defEvent.stscluster);
213 compareEventMap(test_move, 9, 1, ECbmDataType::kStsHit, defEvent.stshit);
214 compareEventMap(test_move, 9, 3, ECbmDataType::kStsTrack, defEvent.ststrack);
215}
216
217
218TEST(_GTestCbmEvent, TestSwap)
219{
220
221
222 CbmEvent test1{-111};
223 {
224 SCOPED_TRACE("TestSwap: Check first object before swap");
225 compareEventDataMembers(test1, -111, 0., 0., -999999., 0, nullptr, nullptr);
226 }
227
228 std::vector<uint32_t> mctrack;
229 mctrack.push_back(11);
230
231 CbmEvent test2{-333, 1., 2.};
233 {
234 SCOPED_TRACE("TestSwap: Check second object before swap");
235 compareEventDataMembers(test2, -333, 1., 2., -999999., 1, nullptr, nullptr);
236 compareEventMap(test2, 1, 1, ECbmDataType::kMCTrack, mctrack);
237 }
238
239 test1.Swap(test2);
240
241 {
242 SCOPED_TRACE("TestSwap: Check first object after swap");
243 compareEventDataMembers(test1, -333, 1., 2., -999999., 1, nullptr, nullptr);
244 compareEventMap(test1, 1, 1, ECbmDataType::kMCTrack, mctrack);
245 }
246
247 {
248 SCOPED_TRACE("TestSwap: Check second object after swap");
249 compareEventDataMembers(test2, -111, 0., 0., -999999., 0, nullptr, nullptr);
250 }
251}
252
253TEST(_GTestCbmEvent, CheckSettersAndGetters)
254{
255 CbmEvent test{-111, 1., 2.};
256 {
257 SCOPED_TRACE("CheckSettersAndGetters: Initial Test");
258 compareEventDataMembers(test, -111, 1., 2., -999999., 0, nullptr, nullptr);
259 }
260
261 test.SetStartTime(-23.);
262 {
263 SCOPED_TRACE("CheckSettersAndGetters: SetStartTime");
264 compareEventDataMembers(test, -111, -23., 2., -999999., 0, nullptr, nullptr);
265 }
266
267 test.SetEndTime(-45.);
268 {
269 SCOPED_TRACE("CheckSettersAndGetters: SetEndTime");
270 compareEventDataMembers(test, -111, -23., -45., -999999., 0, nullptr, nullptr);
271 }
272
273 test.SetTzero(-345.);
274 {
275 SCOPED_TRACE("CheckSettersAndGetters: SetTzero");
276 compareEventDataMembers(test, -111, -23., -45., -345., 0, nullptr, nullptr);
277 }
278
279 CbmMatch* testMatch = new CbmMatch();
280 test.SetMatch(testMatch);
281 {
282 SCOPED_TRACE("CheckSettersAndGetters: SetMatch");
283 compareEventDataMembers(test, -111, -23., -45., -345., 0, testMatch, nullptr);
284 }
285}
286
287TEST(_GTestCbmEvent, CheckAddData)
288{
289 CbmEvent test{-111, 1., 2.};
290 {
291 SCOPED_TRACE("CheckAddData: Initial Test");
292 compareEventDataMembers(test, -111, 1., 2., -999999., 0, nullptr, nullptr);
293 }
294
295 std::vector<uint32_t> mctrack;
296 std::vector<uint32_t> stspoint;
297 std::vector<uint32_t> stsdigi;
298 std::vector<uint32_t> stscluster;
299 std::vector<uint32_t> stshit;
300 std::vector<uint32_t> ststrack;
301
302
303 mctrack.push_back(11);
304 test.AddData(ECbmDataType::kMCTrack, 11);
305 {
306 SCOPED_TRACE("CheckAddData: Add first MCTrack");
307 compareEventDataMembers(test, -111, 1., 2., -999999., 1, nullptr, nullptr);
308 compareEventMap(test, 1, 1, ECbmDataType::kMCTrack, mctrack);
309 compareEventMap(test, 1, 0, ECbmDataType::kStsPoint, stspoint);
310 compareEventMap(test, 1, 0, ECbmDataType::kStsDigi, stsdigi);
311 compareEventMap(test, 1, 0, ECbmDataType::kStsCluster, stscluster);
312 compareEventMap(test, 1, 0, ECbmDataType::kStsHit, stshit);
313 compareEventMap(test, 1, 0, ECbmDataType::kStsTrack, ststrack);
314 }
315
316 mctrack.push_back(23);
317 test.AddData(ECbmDataType::kMCTrack, 23);
318 {
319 SCOPED_TRACE("CheckAddData: Add second MCTrack");
320 compareEventDataMembers(test, -111, 1., 2., -999999., 2, nullptr, nullptr);
321 compareEventMap(test, 2, 2, ECbmDataType::kMCTrack, mctrack);
322 compareEventMap(test, 2, 0, ECbmDataType::kStsPoint, stspoint);
323 compareEventMap(test, 2, 0, ECbmDataType::kStsDigi, stsdigi);
324 compareEventMap(test, 2, 0, ECbmDataType::kStsCluster, stscluster);
325 compareEventMap(test, 2, 0, ECbmDataType::kStsHit, stshit);
326 compareEventMap(test, 2, 0, ECbmDataType::kStsTrack, ststrack);
327 }
328
329 // Test special case where index for existing data type isn't present
330 uint32_t retValUInt = test.GetIndex(ECbmDataType::kMCTrack, 25);
331 EXPECT_EQ(-2, retValUInt);
332
333 // Test special case where data type isn't existing
334 retValUInt = test.GetIndex(ECbmDataType::kTrdHit, 25);
335 EXPECT_EQ(-1, retValUInt);
336
337 stspoint.push_back(1);
338 test.AddData(ECbmDataType::kStsPoint, 1);
339 {
340 SCOPED_TRACE("CheckAddData: Add StsPoint");
341 compareEventDataMembers(test, -111, 1., 2., -999999., 3, nullptr, nullptr);
342 compareEventMap(test, 3, 2, ECbmDataType::kMCTrack, mctrack);
343 compareEventMap(test, 3, 1, ECbmDataType::kStsPoint, stspoint);
344 compareEventMap(test, 3, 0, ECbmDataType::kStsDigi, stsdigi);
345 compareEventMap(test, 3, 0, ECbmDataType::kStsCluster, stscluster);
346 compareEventMap(test, 3, 0, ECbmDataType::kStsHit, stshit);
347 compareEventMap(test, 3, 0, ECbmDataType::kStsTrack, ststrack);
348 }
349
350 stsdigi.push_back(2);
351 test.AddData(ECbmDataType::kStsDigi, 2);
352 {
353 SCOPED_TRACE("CheckAddData: Add StsDigi");
354 compareEventDataMembers(test, -111, 1., 2., -999999., 4, nullptr, nullptr);
355 compareEventMap(test, 4, 2, ECbmDataType::kMCTrack, mctrack);
356 compareEventMap(test, 4, 1, ECbmDataType::kStsPoint, stspoint);
357 compareEventMap(test, 4, 1, ECbmDataType::kStsDigi, stsdigi);
358 compareEventMap(test, 4, 0, ECbmDataType::kStsCluster, stscluster);
359 compareEventMap(test, 4, 0, ECbmDataType::kStsHit, stshit);
360 compareEventMap(test, 4, 0, ECbmDataType::kStsTrack, ststrack);
361 }
362
363 stscluster.push_back(3);
364 test.AddData(ECbmDataType::kStsCluster, 3);
365 {
366 SCOPED_TRACE("CheckAddData: Add StsCluster");
367 compareEventDataMembers(test, -111, 1., 2., -999999., 5, nullptr, nullptr);
368 compareEventMap(test, 5, 2, ECbmDataType::kMCTrack, mctrack);
369 compareEventMap(test, 5, 1, ECbmDataType::kStsPoint, stspoint);
370 compareEventMap(test, 5, 1, ECbmDataType::kStsDigi, stsdigi);
371 compareEventMap(test, 5, 1, ECbmDataType::kStsCluster, stscluster);
372 compareEventMap(test, 5, 0, ECbmDataType::kStsHit, stshit);
373 compareEventMap(test, 5, 0, ECbmDataType::kStsTrack, ststrack);
374 }
375
376 stshit.push_back(4);
377 test.AddData(ECbmDataType::kStsHit, 4);
378 {
379 SCOPED_TRACE("CheckAddData: Add StsHit");
380 compareEventDataMembers(test, -111, 1., 2., -999999., 6, nullptr, nullptr);
381 compareEventMap(test, 6, 2, ECbmDataType::kMCTrack, mctrack);
382 compareEventMap(test, 6, 1, ECbmDataType::kStsPoint, stspoint);
383 compareEventMap(test, 6, 1, ECbmDataType::kStsDigi, stsdigi);
384 compareEventMap(test, 6, 1, ECbmDataType::kStsCluster, stscluster);
385 compareEventMap(test, 6, 1, ECbmDataType::kStsHit, stshit);
386 compareEventMap(test, 6, 0, ECbmDataType::kStsTrack, ststrack);
387 }
388
389 ststrack.push_back(5);
390 test.AddData(ECbmDataType::kStsTrack, 5);
391 {
392 SCOPED_TRACE("CheckAddData: Add StsTrack");
393 compareEventDataMembers(test, -111, 1., 2., -999999., 7, nullptr, nullptr);
394 compareEventMap(test, 7, 2, ECbmDataType::kMCTrack, mctrack);
395 compareEventMap(test, 7, 1, ECbmDataType::kStsPoint, stspoint);
396 compareEventMap(test, 7, 1, ECbmDataType::kStsDigi, stsdigi);
397 compareEventMap(test, 7, 1, ECbmDataType::kStsCluster, stscluster);
398 compareEventMap(test, 7, 1, ECbmDataType::kStsHit, stshit);
399 compareEventMap(test, 7, 1, ECbmDataType::kStsTrack, ststrack);
400 }
401
402 ststrack.push_back(6);
403 test.AddStsTrack(6);
404 {
405 SCOPED_TRACE("CheckAddData: Add StsTrack via AddStsTrack");
406 compareEventDataMembers(test, -111, 1., 2., -999999., 8, nullptr, nullptr);
407 compareEventMap(test, 8, 2, ECbmDataType::kMCTrack, mctrack);
408 compareEventMap(test, 8, 1, ECbmDataType::kStsPoint, stspoint);
409 compareEventMap(test, 8, 1, ECbmDataType::kStsDigi, stsdigi);
410 compareEventMap(test, 8, 1, ECbmDataType::kStsCluster, stscluster);
411 compareEventMap(test, 8, 1, ECbmDataType::kStsHit, stshit);
412 compareEventMap(test, 8, 2, ECbmDataType::kStsTrack, ststrack);
413 }
414
415 retValUInt = test.GetStsTrackIndex(0);
416 EXPECT_EQ(5, retValUInt);
417
418 retValUInt = test.GetStsTrackIndex(1);
419 EXPECT_EQ(6, retValUInt);
420
421 retValUInt = test.GetStsTrackIndex(2);
422 EXPECT_EQ(-2, retValUInt);
423
424 retValUInt = test.GetNofStsTracks();
425 EXPECT_EQ(2, retValUInt);
426
427 ststrack.clear();
428 ststrack.push_back(13);
429 ststrack.push_back(12);
430 ststrack.push_back(11);
431
432 test.SetStsTracks(ststrack);
433 retValUInt = test.GetNofStsTracks();
434 EXPECT_EQ(3, retValUInt);
435 {
436 SCOPED_TRACE("CheckAddData: Add StsTracks via StsStsTrack");
437 compareEventDataMembers(test, -111, 1., 2., -999999., 9, nullptr, nullptr);
438 compareEventMap(test, 9, 2, ECbmDataType::kMCTrack, mctrack);
439 compareEventMap(test, 9, 1, ECbmDataType::kStsPoint, stspoint);
440 compareEventMap(test, 9, 1, ECbmDataType::kStsDigi, stsdigi);
441 compareEventMap(test, 9, 1, ECbmDataType::kStsCluster, stscluster);
442 compareEventMap(test, 9, 1, ECbmDataType::kStsHit, stshit);
443 compareEventMap(test, 9, 3, ECbmDataType::kStsTrack, ststrack);
444 }
445}
446
447TEST(_GTestCbmEvent, SortIndices)
448{
449
450 defaultCbmEvent defEvent;
451
452 CbmEvent test = ConstructTestObject(defEvent);
453
454 {
455 SCOPED_TRACE("CheckAddData: Check indices after sorting");
456 compareEventDataMembers(test, -111, 1., 2., -999999., 9, nullptr, nullptr);
457 compareEventMap(test, 9, 2, ECbmDataType::kMCTrack, defEvent.mctrack);
458 compareEventMap(test, 9, 1, ECbmDataType::kStsPoint, defEvent.stspoint);
459 compareEventMap(test, 9, 1, ECbmDataType::kStsDigi, defEvent.stsdigi);
461 compareEventMap(test, 9, 1, ECbmDataType::kStsHit, defEvent.stshit);
462 compareEventMap(test, 9, 3, ECbmDataType::kStsTrack, defEvent.ststrack);
463 }
464
465 std::vector<uint32_t> ststrack_sorted = {11, 12, 13};
466 test.SortIndices();
467
468 {
469 SCOPED_TRACE("CheckAddData: Check indices after sorting");
470 compareEventDataMembers(test, -111, 1., 2., -999999., 9, nullptr, nullptr);
471 compareEventMap(test, 9, 2, ECbmDataType::kMCTrack, defEvent.mctrack);
472 compareEventMap(test, 9, 1, ECbmDataType::kStsPoint, defEvent.stspoint);
473 compareEventMap(test, 9, 1, ECbmDataType::kStsDigi, defEvent.stsdigi);
475 compareEventMap(test, 9, 1, ECbmDataType::kStsHit, defEvent.stshit);
476 compareEventMap(test, 9, 3, ECbmDataType::kStsTrack, ststrack_sorted);
477 }
478}
479
480TEST(_GTestCbmEvent, CheckClearData)
481{
482
483 defaultCbmEvent defEvent;
484
485 CbmEvent test = ConstructTestObject(defEvent);
486
488 compareEventDataMembers(test, -111, 1., 2., -999999., 6, nullptr, nullptr);
489}
490
491TEST(_GTestCbmEvent, CheckClear)
492{
493
494 defaultCbmEvent defEvent;
495
496 CbmEvent test = ConstructTestObject(defEvent);
497
498 test.Clear("");
499 compareEventDataMembers(test, -111, 1., 2., -999999., 0, nullptr, nullptr);
500}
501
502
503TEST(_GTestCbmEvent, CheckPrintFunction)
504{
505
506 defaultCbmEvent defEvent;
507
508 CbmEvent test = ConstructTestObject(defEvent);
509
510 EXPECT_STREQ("Event -111 at t = 1 ns. Registered data types: 6, data "
511 "objects: 9, without matches\n -- Data type 0, number "
512 "of data 2\n -- Data type 200, number of data 1\n "
513 " -- Data type 201, number of data 1\n -- Data type "
514 "202, number of data 1\n -- Data type 203, number of "
515 "data 1\n -- Data type 204, number of data 3\n",
516 test.ToString().c_str());
517}
518
519
520TEST(_GTestCbmEvent, CheckSetVertex)
521{
522
523 TMatrixFSym Cov(3);
524 Cov(0, 0) = 0.; // 0 1 2
525 Cov(0, 1) = 1.; // 1 3 4
526 Cov(0, 2) = 2.; // 2 4 5
527 Cov(1, 0) = 1.;
528 Cov(1, 1) = 3.;
529 Cov(1, 2) = 4.;
530 Cov(2, 0) = 2.;
531 Cov(2, 1) = 4.;
532 Cov(2, 2) = 5.;
533 CbmVertex testVertex{"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, Cov};
534
535 CbmEvent test;
536 test.SetVertex(1., 2., 3., 4., 5, 6, Cov);
537 {
538 SCOPED_TRACE("CheckSetVertex");
539 compareEventDataMembers(test, -1, 0., 0., -999999., 0, nullptr, &testVertex);
540 }
541}
ECbmDataType
Definition CbmDefs.h:90
CbmEvent ConstructTestObject(defaultCbmEvent &defEvent)
TEST(_GTestCbmEvent, CheckDefaultConstructor)
void compareEventMap(CbmEvent &test, int32_t numobjects, int32_t numobjectstype, ECbmDataType type, std::vector< uint32_t > indices)
void compareEventDataMembers(CbmEvent &test, int32_t evnumber, double starttime, double endtime, double tzero, int32_t numobjects, CbmMatch *match, CbmVertex *vertex)
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
size_t GetNofData() const
Definition CbmEvent.cxx:58
CbmVertex * GetVertex()
Definition CbmEvent.h:210
void SetVertex(double x, double y, double z, double chi2, int32_t ndf, int32_t nTracks, const TMatrixFSym &covMat)
Definition CbmEvent.cxx:81
int32_t GetNumber() const
Definition CbmEvent.h:121
double GetStartTime() const
Definition CbmEvent.h:140
uint32_t GetIndex(ECbmDataType type, uint32_t iData) const
Definition CbmEvent.cxx:42
void Clear(Option_t *)
Definition CbmEvent.h:67
double GetEndTime() const
Definition CbmEvent.h:134
void SetStartTime(double startTime)
Definition CbmEvent.h:169
CbmMatch * GetMatch() const
Definition CbmEvent.h:98
void ClearData(ECbmDataType type)
Definition CbmEvent.cxx:37
void AddData(ECbmDataType type, uint32_t index)
Definition CbmEvent.cxx:33
double GetTzero() const
Definition CbmEvent.h:146
void SortIndices()
Definition CbmEvent.cxx:114
std::string ToString() const
Definition CbmEvent.cxx:101
double GetZ() const
Definition CbmVertex.h:69
double GetChi2() const
Definition CbmVertex.h:70
double GetCovariance(int32_t i, int32_t j) const
int32_t GetNDF() const
Definition CbmVertex.h:71
int32_t GetNTracks() const
Definition CbmVertex.h:72
double GetY() const
Definition CbmVertex.h:68
double GetX() const
Definition CbmVertex.h:67
void compareVertexDataMembers(CbmVertex &test, double x, double y, double z, double chi2, int32_t ndf, int32_t ntracks, double *cov)
std::vector< uint32_t > stsdigi
std::vector< uint32_t > ststrack
std::vector< uint32_t > mctrack
std::vector< uint32_t > stshit
CbmVertex GetDefaultVertex()
std::vector< uint32_t > stscluster
std::vector< uint32_t > stspoint
std::vector< float > covMatrix