Belle II Software  release-05-01-25
root.test.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost <oliver.frost@desy.de> *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 /*
12 This file contains test to check the behaviour of ROOT.
13 Its purpose is mainly to asure the programmer that his assumptions about run time behaviour are correct.
14 */
15 
16 #include <TMatrixD.h>
17 #include <TMatrixDSym.h>
18 
19 #include <gtest/gtest.h>
20 
21 TEST(TrackFindingCDCTest, root_TMatrixD)
22 {
23  TMatrixD jacobian(2, 2);
24  jacobian(0, 0) = 0;
25  jacobian(0, 1) = 1;
26 
27  jacobian(1, 0) = -1;
28  jacobian(1, 1) = 0;
29 
30 
31  TMatrixD covariance(2, 2);
32  covariance(0, 0) = 1;
33  covariance(0, 1) = 1;
34 
35  covariance(1, 0) = 1;
36  covariance(1, 1) = 0;
37 
38  //result = J * V * J^T
39  TMatrixD left(2, 2);
40  left.Mult(jacobian, covariance);
41 
42  TMatrixD result(2, 2);
43  result.MultT(left, jacobian);
44 
45  EXPECT_EQ(0, result(0, 0));
46  EXPECT_EQ(-1, result(0, 1));
47  EXPECT_EQ(-1, result(1, 0));
48  EXPECT_EQ(1, result(1, 1));
49 }
50 
51 
52 TEST(TrackFindingCDCTest, root_TMatrixDSym_Similarity_differing_rows_columns)
53 {
54  // Test if the number of rows gets augmented correctly,
55  // when transformed with a on square jacobian matrix.
56 
57  TMatrixDSym cov2(2);
58  cov2.Zero();
59 
60  cov2(0, 0) = 1;
61  cov2(1, 1) = 1;
62 
63  EXPECT_EQ(2, cov2.GetNrows());
64  EXPECT_EQ(2, cov2.GetNcols());
65 
66 
67  TMatrixD jacobianInflate(3, 2);
68  jacobianInflate.Zero();
69 
70  jacobianInflate(0, 0) = 1;
71  jacobianInflate(1, 1) = 1;
72  jacobianInflate(2, 0) = 1;
73  jacobianInflate(2, 1) = 1;
74 
75 
76  cov2.Similarity(jacobianInflate);
77 
78  EXPECT_EQ(3, cov2.GetNrows());
79  EXPECT_EQ(3, cov2.GetNcols());
80 
81  EXPECT_EQ(1, cov2(0, 0));
82  EXPECT_EQ(0, cov2(0, 1));
83  EXPECT_EQ(1, cov2(0, 2));
84 
85  EXPECT_EQ(0, cov2(1, 0));
86  EXPECT_EQ(1, cov2(1, 1));
87  EXPECT_EQ(1, cov2(1, 2));
88 
89  EXPECT_EQ(1, cov2(2, 0));
90  EXPECT_EQ(1, cov2(2, 1));
91  EXPECT_EQ(2, cov2(2, 2));
92 
93 }
94 
95 
96 // // Transform
97 // TMatrixDSym cov6(6);
98 // if (true){
99 // TMatrixD jacobianInflateT(5, 6);
100 // jacobianInflateT.Transpose(jacobianInflate);
101 // TMatrixD cov6workaroud = jacobianInflate * cov5 * jacobianInflateT;
102 
103 // for (unsigned int i = 0; i < 6; ++i) {
104 // for (unsigned int j = 0; j < 6; ++j) {
105 // cov6(i, j) = cov6workaroud(i, j);
106 // }
107 // }
108 // } else {
109 // cov6 = cov5; //copy
110 // cov6.Similarity(jacobianInflate);
111 // gfTrackCand.setCovSeed(cov6);
112 // }
Belle2::TEST
TEST(TestgetDetectorRegion, TestgetDetectorRegion)
Test Constructors.
Definition: utilityFunctions.cc:18