Belle II Software development
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
32namespace Belle2 {
42 private:
48 using Path = std::vector<NodeType*>;
49
50 public:
51
54
56 void initialize() override;
57
59 void beginRun() override;
60
62 void event() override;
63
64
65 protected:
66
68
70
72 std::string m_PARAMNetworkName;
73
76
78 std::string m_PARAMsecMapName;
79
81 std::vector<Path> m_collectedPaths;
82
85
88
91
94
97
99 unsigned short m_PARAMxBestPerFamily = 5;
100
102 unsigned short m_PARAMmaxFamilies = 10000;
103
105 unsigned int m_PARAMmaxPaths = 400000;
106
108
110
113
116
120
122
124
126
128
130 std::unique_ptr<SPTCSelectorXBestPerFamily> m_sptcSelector;
131
134
136 unsigned int m_eventCounter = 0;
137 };
139}
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.
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Type-safe access to single objects in the data store.
Definition: StoreObjPtr.h:96
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 performs the x best candidate selection.
StoreObjPtr< EventLevelTrackingInfo > m_eventLevelTrackingInfo
Access 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