Belle II Software  release-08-01-10
TrackFinderVXDBasicPathFinderModule.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/datastore/StoreArray.h>
12 #include <framework/datastore/StoreObjPtr.h>
13 #include <framework/core/Module.h>
14 
15 #include <mdst/dataobjects/EventLevelTrackingInfo.h>
16 
17 #include <tracking/trackFindingVXD/algorithms/CellularAutomaton.h>
18 #include <tracking/trackFindingVXD/algorithms/PathCollectorRecursive.h>
19 #include <tracking/trackFindingVXD/algorithms/NodeFamilyDefiner.h>
20 #include <tracking/trackFindingVXD/algorithms/SPTCSelectorXBestPerFamily.h>
21 
22 #include <tracking/trackFindingVXD/segmentNetwork/CACell.h>
23 #include <tracking/trackFindingVXD/segmentNetwork/DirectedNodeNetworkContainer.h>
24 
25 #include <tracking/trackFindingVXD/tcTools/SpacePointTrackCandCreator.h>
26 #include <tracking/spacePointCreation/SpacePointTrackCand.h>
27 
28 #include <tracking/trackFindingVXD/algorithms/CAValidator.h>
29 #include <tracking/trackFindingVXD/algorithms/NodeCompatibilityCheckerBase.h>
30 
31 
32 namespace Belle2 {
45  private:
51  using Path = std::vector<NodeType*>;
52 
53  public:
54 
57 
59  void initialize() override;
60 
62  void beginRun() override;
63 
65  void event() override;
66 
67 
68  protected:
69 
71 
73 
75  std::string m_PARAMNetworkName;
76 
79 
81  std::string m_PARAMsecMapName;
82 
84  std::vector<Path> m_collectedPaths;
85 
88 
91 
94 
97 
100 
102  unsigned short m_PARAMxBestPerFamily = 5;
103 
105  unsigned short m_PARAMmaxFamilies = 10000;
106 
108  unsigned int m_PARAMmaxPaths = 400000;
109 
111 
113 
116 
119 
123 
125 
127 
129 
131 
133  std::unique_ptr<SPTCSelectorXBestPerFamily> m_sptcSelector;
134 
137 
139  unsigned int m_eventCounter = 0;
140  };
142 }
The CACell class This Class stores all relevant information one wants to have stored in a cell for a ...
Definition: CACell.h:20
The CellularAutomaton class This class serves as a functor for the algorithm itself.
The Node-Class.
Definition: DirectedNode.h:31
Base class for Modules.
Definition: Module.h:72
This class assigns a common family identifier to all CACells in the network that are connected.
Path finder for generic ContainerType.
The TrackFinderVXDBasicPathFinder is a low momentum Si-only trackfinder.
SpacePointTrackCandCreator< StoreArray< Belle2::SpacePointTrackCand > > m_sptcCreator
Tool for creating SPTCs, which fills storeArray directly.
bool m_PARAMprintNetworks
If true for each event and each network created a file with a graph is created.
PathCollectorRecursive< NodeNetworkType, NodeType, Path, Belle2::NodeCompatibilityCheckerBase< NodeType > > m_pathCollector
Algorithm for finding paths of segments.
std::unique_ptr< SPTCSelectorXBestPerFamily > m_sptcSelector
Pointer to SPTC selector class which performes the x best candidate selection.
StoreObjPtr< EventLevelTrackingInfo > m_eventLevelTrackingInfo
Acccess to the EventLevelTrackingInfo object in the datastore.
std::vector< NodeType * > Path
Using Path for vector of pointers to NodeTypes.
std::string m_PARAMEventLevelTrackingInfoName
Name of the EventLevelTrackingInfo that should be used (different one for ROI-finding)
CellularAutomaton< NodeNetworkType, Belle2::CAValidator< Belle2::CACell > > m_cellularAutomaton
member variables
StoreArray< Belle2::SpacePointTrackCand > m_TCs
output containers
StoreObjPtr< Belle2::DirectedNodeNetworkContainer > m_network
input containers
unsigned short m_PARAMmaxFamilies
Maximal number of families in event; if exceeded, the execution of the trackfinder will be stopped.
NodeFamilyDefiner< NodeNetworkType, NodeType, Path > m_familyDefiner
Class to evaluate connected nodes, in this case for the directed node network, and assigns a family t...
std::string m_PARAMsecMapName
the name of the SectorMap used for this instance.
bool m_PARAMsetFamilies
If true additionally assign a common family identifier to all Tracks that are share a node.
std::vector< Path > m_collectedPaths
Path collection obtained from evaluation of the provided segment network.
bool m_PARAMstoreSubsets
Regulates if every subset of sufficient length of a path shall be collected as separate path or not.
unsigned int m_PARAMmaxPaths
Maximal number of paths per event; if exceeded, the execution of the trackfinder will be stopped.
std::string m_PARAMNetworkName
name for StoreObjPtr<DirectedNodeNetwork> which contains the networks needed
bool m_PARAMselectBestPerFamily
If true create track candidate only for the best candidate of a family.
bool m_PARAMstrictSeeding
Regulates if every node with enough nodes below it is used as a seed or only the outermost nodes.
unsigned short m_PARAMxBestPerFamily
Maximal number of best candidates to be created per family.
Abstract base class for different kinds of events.
small class to take simple vectors of SpacePoints and convert them to real SpacePointTrackCands