Belle II Software  release-05-01-25
NodeFamilyDefiner.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jonas Wagner *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include <gtest/gtest.h>
12 
13 #include <tracking/trackFindingVXD/segmentNetwork/DirectedNode.h>
14 #include <tracking/trackFindingVXD/segmentNetwork/DirectedNodeNetwork.h>
15 
16 #include <tracking/trackFindingVXD/segmentNetwork/CACell.h>
17 
18 #include <tracking/trackFindingVXD/algorithms/NodeCompatibilityCheckerPathCollector.h>
19 #include <tracking/trackFindingVXD/algorithms/NodeFamilyDefiner.h>
20 
21 #include <array>
22 #include <iostream>
23 
24 
25 using namespace std;
26 using namespace Belle2;
27 
32 namespace NodeFamilyTests {
33 
35  TEST(NodeFamilyDefinerTest, TestNodeFamiliesUsingDirectedNodeNetworkInt)
36  {
37  // just some input for testing (same as in DirectedNodeNetwork-tests):
38  std::array<int, 5> intArray = { { 1, 5, 3, 4, 2} };
39  std::array<int, 5> intArray2 = { { 0, 3, 4, 6, 7} };
40  std::array<int, 5> intArray3 = { { 99, 101, 103, 104, 105} };
41  std::array<int, 3> intArray4 = { { 100, 101, 102} };
44  EXPECT_EQ(0, intNetwork.size());
45 
46  // filling network:
47  for (unsigned int index = 1 ; index < 5; index++) {
48  // correct order: outerEntry, innerEntry:
49  intNetwork.addNode(intArray.at(index - 1), intArray.at(index - 1));
50  intNetwork.addNode(intArray.at(index), intArray.at(index));
51 
52  intNetwork.linkNodes(intArray.at(index - 1), intArray.at(index));
53  }
54 
55  for (unsigned int index = 1 ; index < 5; index++) {
56  intNetwork.addNode(intArray2.at(index - 1), intArray2.at(index - 1));
57  intNetwork.addNode(intArray2.at(index), intArray2.at(index));
58 
59  intNetwork.linkNodes(intArray2.at(index - 1), intArray2.at(index));
60  }
61 
62  for (unsigned int index = 1 ; index < 5; index++) {
63  intNetwork.addNode(intArray3.at(index - 1), intArray3.at(index - 1));
64  intNetwork.addNode(intArray3.at(index), intArray3.at(index));
65 
66  intNetwork.linkNodes(intArray3.at(index - 1), intArray3.at(index));
67  }
68 
69  for (unsigned int index = 1 ; index < 3; index++) {
70  intNetwork.addNode(intArray4.at(index - 1), intArray4.at(index - 1));
71  intNetwork.addNode(intArray4.at(index), intArray4.at(index));
72 
73  intNetwork.linkNodes(intArray4.at(index - 1), intArray4.at(index));
74  }
75 
76  // filling network - end.
77  EXPECT_EQ(15, intNetwork.size());
78 
82  std::vector<DirectedNode<int, CACell>* >> familyDefiner;
83 
84  short nFamilies = familyDefiner.defineFamilies(intNetwork);
85 
86  EXPECT_EQ(2, nFamilies);
87  }
88 }
Belle2::NodeFamilyDefiner
This class assigns a common family identifier to all CACells in the network that are connected.
Definition: NodeFamilyDefiner.h:44
NodeFamilyTests
These tests cover the functionality of the classes: DirectedNode, DirectedNodeNetwork.
Definition: NodeFamilyDefiner.cc:32
Belle2::DirectedNodeNetwork::size
unsigned int size() const
Returns number of nodes to be found in the network.
Definition: DirectedNodeNetwork.h:225
Belle2::DirectedNodeNetwork
Network of directed nodes of the type EntryType.
Definition: DirectedNodeNetwork.h:38
Belle2::DirectedNodeNetwork::linkNodes
bool linkNodes(NodeID outerNodeID, NodeID innerNodeID)
takes two entry IDs and weaves them into the network
Definition: DirectedNodeNetwork.h:132
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TEST
TEST(TestgetDetectorRegion, TestgetDetectorRegion)
Test Constructors.
Definition: utilityFunctions.cc:18
Belle2::DirectedNode
The Node-Class.
Definition: DirectedNode.h:41
Belle2::DirectedNodeNetwork::addNode
bool addNode(NodeID nodeID, EntryType &newEntry)
************************* PUBLIC MEMBER FUNCTIONS *************************
Definition: DirectedNodeNetwork.h:72