Belle II Software  release-05-02-19
DirectedNodeNetworkContainer.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jakob Lettenbichler *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <deque>
13 
14 #include <framework/datastore/RelationsObject.h>
15 
16 #include <tracking/spacePointCreation/SpacePoint.h>
17 #include <tracking/trackFindingVXD/segmentNetwork/DirectedNodeNetwork.h>
18 #include <tracking/trackFindingVXD/environment/VXDTFFilters.h>
19 #include <tracking/trackFindingVXD/segmentNetwork/TrackNode.h>
20 #include <tracking/trackFindingVXD/segmentNetwork/Segment.h>
21 #include <tracking/trackFindingVXD/segmentNetwork/ActiveSector.h>
22 #include <tracking/trackFindingVXD/segmentNetwork/VoidMetaInfo.h>
23 #include <tracking/trackFindingVXD/segmentNetwork/CACell.h>
24 
25 
26 namespace Belle2 {
42  class DirectedNodeNetworkContainer : public RelationsObject {
43  public:
46 
47 
54  m_VIPSpacePoint(NULL) {}
55 
56 
59  {
61  if (m_VIPSpacePoint != NULL) { delete m_VIPSpacePoint; }
62  }
63 
64 
66 
70 
72  std::deque<Belle2::ActiveSector<StaticSectorType, Belle2::TrackNode>>& accessActiveSectors() { return m_activeSectors; }
73 
75  std::deque<Belle2::TrackNode>& accessTrackNodes() { return m_trackNodes; }
76 
78  DirectedNodeNetwork<Belle2::TrackNode, Belle2::VoidMetaInfo>& accessHitNetwork() { return m_HitNetwork; }
79 
81  DirectedNodeNetwork<Belle2::Segment<Belle2::TrackNode>, Belle2::CACell >& accessSegmentNetwork() { return m_SegmentNetwork; }
82 
84  std::deque<Belle2::Segment<Belle2::TrackNode>>& accessSegments() { return m_segments; }
85 
86 
88  int sizeActiveSectors() { return m_activeSectors.size(); }
90  int sizeTrackNodes() { return m_trackNodes.size(); }
92  int sizeSegments() { return m_segments.size(); }
93 
95  int get_trackNodesCollected() { return m_trackNodesCollected; }
110 
112  void set_trackNodesCollected(int in) { m_trackNodesCollected = in; }
116  void set_trackNodeConnections(int in) { m_trackNodeConnections = in; }
118  void set_segmentConnections(int in) { m_segmentConnections = in; }
126  void set_collectedPaths(int in) { m_collectedPaths = in; }
127 
132  void clear()
133  {
135  }
136 
138  void setVirtualInteractionPoint(B2Vector3D& pos, B2Vector3D& posError)
139  {
140  m_VIPSpacePoint = new SpacePoint(pos, posError, {0.5, 0.5}, {false, false}, VxdID(0), Belle2::VXD::SensorInfoBase::VXD);
142  }
143 
146 
147 
148  private:
152 
153  protected:
155  int m_trackNodesCollected = 0;
159  int m_trackNodeConnections = 0;
161  int m_segmentConnections = 0;
170 
174 
177 
180 
182  std::deque<TrackNode> m_trackNodes;
183 
186 
188  std::deque<Segment<TrackNode>> m_segments;
189 
192 
195  };
197 }
Belle2::DirectedNodeNetworkContainer::m_VirtualInteractionPoint
Belle2::TrackNode * m_VirtualInteractionPoint
Stores a SpacePoint representing the virtual interaction point if set, NULL if not.
Definition: DirectedNodeNetworkContainer.h:199
Belle2::DirectedNodeNetworkContainer::set_activeSectorConnections
void set_activeSectorConnections(int in)
Sets number of activeSectors connections made.
Definition: DirectedNodeNetworkContainer.h:122
Belle2::DirectedNodeNetworkContainer::getVirtualInteractionPoint
Belle2::TrackNode * getVirtualInteractionPoint()
Returns reference to the Virtual interactionPoint stored here.
Definition: DirectedNodeNetworkContainer.h:153
Belle2::DirectedNodeNetworkContainer::m_segments
std::deque< Segment< TrackNode > > m_segments
Stores the actual Segments, since the SegmentNetwork does only keep references.
Definition: DirectedNodeNetworkContainer.h:196
Belle2::DirectedNodeNetworkContainer::m_activeSectorConnections
ClassDef(DirectedNodeNetworkContainer, 10) protected int m_activeSectorConnections
Making the Class a ROOT class last member changed: added metaInfo for DirectedNodeNetwork.
Definition: DirectedNodeNetworkContainer.h:165
Belle2::DirectedNodeNetworkContainer::m_activeSectors
std::deque< ActiveSector< StaticSectorType, TrackNode > > m_activeSectors
Stores the actual ActiveSectors, since the ActiveSectorNetwork does only keep references.
Definition: DirectedNodeNetworkContainer.h:184
Belle2::DirectedNodeNetworkContainer::accessActiveSectors
std::deque< Belle2::ActiveSector< StaticSectorType, Belle2::TrackNode > > & accessActiveSectors()
Returns reference to the actual ActiveSectors stored in this container, intended for read and write a...
Definition: DirectedNodeNetworkContainer.h:80
Belle2::DirectedNodeNetworkContainer::m_SegmentNetwork
DirectedNodeNetwork< Segment< TrackNode >, Belle2::CACell > m_SegmentNetwork
Stores the full network of Segments, which were accepted by activated three-hit-filters of the assign...
Definition: DirectedNodeNetworkContainer.h:193
Belle2::DirectedNodeNetworkContainer::get_segmentConnections
int get_segmentConnections()
Returns number of segments connections made.
Definition: DirectedNodeNetworkContainer.h:109
Belle2::DirectedNodeNetworkContainer::sizeTrackNodes
int sizeTrackNodes()
Returns number of trackNodes found.
Definition: DirectedNodeNetworkContainer.h:98
Belle2::DirectedNodeNetworkContainer
The Container stores the output produced by the SegmentNetworkProducerModule.
Definition: DirectedNodeNetworkContainer.h:50
Belle2::DirectedNodeNetworkContainer::m_segmentConnections
int m_segmentConnections
Number of segments connections made.
Definition: DirectedNodeNetworkContainer.h:169
Belle2::TrackNode
Minimal class to store combination of sector and spacePoint, since SpacePoint can not carry sectorCon...
Definition: TrackNode.h:32
Belle2::ActiveSector
The ActiveSector Class.
Definition: ActiveSector.h:39
Belle2::DirectedNodeNetworkContainer::m_segmentAddedConnections
int m_segmentAddedConnections
Number of added segments connections made.
Definition: DirectedNodeNetworkContainer.h:175
Belle2::VXDTFFilters::staticSector_t
StaticSector< point_t, twoHitFilter_t, threeHitFilter_t, int > staticSector_t
typedef to make a static sector type more readable.
Definition: VXDTFFilters.h:129
Belle2::DirectedNodeNetworkContainer::sizeSegments
int sizeSegments()
Returns number of segments found.
Definition: DirectedNodeNetworkContainer.h:100
Belle2::DirectedNodeNetworkContainer::set_trackNodeAddedConnections
void set_trackNodeAddedConnections(int in)
Sets number of added trackNodes connections made.
Definition: DirectedNodeNetworkContainer.h:130
Belle2::DirectedNodeNetworkContainer::m_activeSectorAddedConnections
int m_activeSectorAddedConnections
Number of added activeSectors connections made.
Definition: DirectedNodeNetworkContainer.h:171
Belle2::DirectedNodeNetworkContainer::get_collectedPaths
int get_collectedPaths()
Returns number of paths found.
Definition: DirectedNodeNetworkContainer.h:117
Belle2::RelationsInterface::ClassDef
ClassDef(RelationsInterface, 0)
defines interface for accessing relations of objects in StoreArray.
Belle2::VXD::SensorInfoBase::VXD
@ VXD
Any type of VXD Sensor.
Definition: SensorInfoBase.h:47
Belle2::DirectedNodeNetworkContainer::accessActiveSectorNetwork
DirectedNodeNetwork< Belle2::ActiveSector< StaticSectorType, Belle2::TrackNode >, Belle2::VoidMetaInfo > & accessActiveSectorNetwork()
************************* PUBLIC MEMBER FUNCTIONS *************************
Definition: DirectedNodeNetworkContainer.h:77
Belle2::Segment
The Segment class This class represents segments of track candidates needed for TrackFinderVXD-Module...
Definition: Segment.h:35
Belle2::DirectedNodeNetwork
Network of directed nodes of the type EntryType.
Definition: DirectedNodeNetwork.h:38
Belle2::DirectedNodeNetworkContainer::accessSegments
std::deque< Belle2::Segment< Belle2::TrackNode > > & accessSegments()
Returns reference to the actual segments stored in this container, intended for read and write access...
Definition: DirectedNodeNetworkContainer.h:92
Belle2::DirectedNodeNetworkContainer::accessHitNetwork
DirectedNodeNetwork< Belle2::TrackNode, Belle2::VoidMetaInfo > & accessHitNetwork()
Returns reference to the HitNetwork stored in this container, intended for read and write access.
Definition: DirectedNodeNetworkContainer.h:86
Belle2::DirectedNodeNetworkContainer::sizeActiveSectors
int sizeActiveSectors()
Returns number of activeSectors found.
Definition: DirectedNodeNetworkContainer.h:96
Belle2::SpacePoint
SpacePoint typically is build from 1 PXDCluster or 1-2 SVDClusters.
Definition: SpacePoint.h:52
Belle2::DirectedNodeNetworkContainer::~DirectedNodeNetworkContainer
~DirectedNodeNetworkContainer()
Destructor.
Definition: DirectedNodeNetworkContainer.h:66
Belle2::B2Vector3< double >
Belle2::DirectedNodeNetworkContainer::setVirtualInteractionPoint
void setVirtualInteractionPoint(B2Vector3D &pos, B2Vector3D &posError)
Passes parameters for creating a virtual interaction point.
Definition: DirectedNodeNetworkContainer.h:146
Belle2::DirectedNodeNetworkContainer::StaticSectorType
VXDTFFilters< SpacePoint >::staticSector_t StaticSectorType
To improve readability of the code, here the definition of the static sector type.
Definition: DirectedNodeNetworkContainer.h:53
Belle2::DirectedNodeNetworkContainer::m_collectedPaths
int m_collectedPaths
Number of paths found.
Definition: DirectedNodeNetworkContainer.h:177
Belle2::VoidMetaInfo
The most CPU efficient MetaInfo for the DirectedNode-requirements (even if useless).
Definition: VoidMetaInfo.h:27
Belle2::DirectedNodeNetworkContainer::get_activeSectorConnections
int get_activeSectorConnections()
Returns number of activeSectors connections made.
Definition: DirectedNodeNetworkContainer.h:105
Belle2::DirectedNodeNetworkContainer::m_trackNodeConnections
int m_trackNodeConnections
Number of trackNodes connections made.
Definition: DirectedNodeNetworkContainer.h:167
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::DirectedNodeNetworkContainer::set_collectedPaths
void set_collectedPaths(int in)
Sets number of paths found.
Definition: DirectedNodeNetworkContainer.h:134
Belle2::DirectedNodeNetworkContainer::set_segmentConnections
void set_segmentConnections(int in)
Sets number of segments connections made.
Definition: DirectedNodeNetworkContainer.h:126
Belle2::DirectedNodeNetworkContainer::set_segmentAddedConnections
void set_segmentAddedConnections(int in)
Sets number of added segments connections made.
Definition: DirectedNodeNetworkContainer.h:132
Belle2::CACell
The CACell class This Class stores all relevant information one wants to have stored in a cell for a ...
Definition: CACell.h:30
Belle2::DirectedNodeNetworkContainer::set_trackNodesCollected
void set_trackNodesCollected(int in)
Sets number of trackNodes collected.
Definition: DirectedNodeNetworkContainer.h:120
Belle2::DirectedNodeNetworkContainer::accessSegmentNetwork
DirectedNodeNetwork< Belle2::Segment< Belle2::TrackNode >, Belle2::CACell > & accessSegmentNetwork()
Returns reference to the SegmentNetwork stored in this container, intended for read and write access.
Definition: DirectedNodeNetworkContainer.h:89
Belle2::DirectedNodeNetworkContainer::set_trackNodeConnections
void set_trackNodeConnections(int in)
Sets number of trackNodes connections made.
Definition: DirectedNodeNetworkContainer.h:124
Belle2::DirectedNodeNetworkContainer::m_trackNodeAddedConnections
int m_trackNodeAddedConnections
Number of added trackNodes connections made.
Definition: DirectedNodeNetworkContainer.h:173
Belle2::StaticSector
class to describe a static sector of the sector map.
Definition: StaticSector.h:39
Belle2::DirectedNodeNetworkContainer::m_ActiveSectorNetwork
DirectedNodeNetwork< ActiveSector< StaticSectorType, TrackNode >, Belle2::VoidMetaInfo > m_ActiveSectorNetwork
************************* DATA MEMBERS *************************
Definition: DirectedNodeNetworkContainer.h:181
Belle2::DirectedNodeNetworkContainer::m_VIPSpacePoint
SpacePoint * m_VIPSpacePoint
Stores the SpacePoint needed for the virtual IP.
Definition: DirectedNodeNetworkContainer.h:202
Belle2::DirectedNodeNetworkContainer::get_trackNodesCollected
int get_trackNodesCollected()
Returns number of trackNodes collected.
Definition: DirectedNodeNetworkContainer.h:103
Belle2::DirectedNodeNetworkContainer::get_segmentAddedConnections
int get_segmentAddedConnections()
Returns number of added segments connections made.
Definition: DirectedNodeNetworkContainer.h:115
Belle2::DirectedNodeNetworkContainer::get_trackNodeAddedConnections
int get_trackNodeAddedConnections()
Returns number of added trackNodes connections made.
Definition: DirectedNodeNetworkContainer.h:113
Belle2::DirectedNodeNetworkContainer::m_trackNodes
std::deque< TrackNode > m_trackNodes
Stores the actual trackNodes, since the SegmentNetwork does only keep references.
Definition: DirectedNodeNetworkContainer.h:190
Belle2::DirectedNodeNetworkContainer::get_activeSectorAddedConnections
int get_activeSectorAddedConnections()
Returns number of added activeSectors connections made.
Definition: DirectedNodeNetworkContainer.h:111
Belle2::RelationsObject
RelationsInterface< TObject > RelationsObject
Provides interface for getting/adding relations to objects in StoreArrays.
Definition: RelationsObject.h:443
Belle2::DirectedNodeNetworkContainer::clear
void clear()
Clear directed node network container Called to clear the directed node network container if the segm...
Definition: DirectedNodeNetworkContainer.h:140
Belle2::DirectedNodeNetworkContainer::set_activeSectorAddedConnections
void set_activeSectorAddedConnections(int in)
Sets number of added activeSectors connections made.
Definition: DirectedNodeNetworkContainer.h:128
Belle2::DirectedNodeNetworkContainer::get_trackNodeConnections
int get_trackNodeConnections()
Returns number of trackNodes connections made.
Definition: DirectedNodeNetworkContainer.h:107
Belle2::DirectedNodeNetworkContainer::m_HitNetwork
DirectedNodeNetwork< TrackNode, Belle2::VoidMetaInfo > m_HitNetwork
Stores the full network of TrackNode< SpaacePoint>, which were accepted by activated two-hit-filters ...
Definition: DirectedNodeNetworkContainer.h:187
Belle2::DirectedNodeNetworkContainer::accessTrackNodes
std::deque< Belle2::TrackNode > & accessTrackNodes()
Returns reference to the actual trackNodes stored in this container, intended for read and write acce...
Definition: DirectedNodeNetworkContainer.h:83
Belle2::DirectedNodeNetworkContainer::DirectedNodeNetworkContainer
DirectedNodeNetworkContainer()
Standard constructor.
Definition: DirectedNodeNetworkContainer.h:57