Belle II Software development
TrackFinderVXDCellOMatModule.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/NodeCompatibilityCheckerPathCollector.h>
30
31
32namespace Belle2 {
41 class TrackFinderVXDCellOMatModule final : public Module {
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
114
117
121
123
125
127
129
131 std::unique_ptr<SPTCSelectorXBestPerFamily> m_sptcSelector;
132
135
137 unsigned int m_eventCounter = 0;
138 };
140}
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 TrackFinderVXDCellOMatModule 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.
unsigned int m_eventCounter
Event number counter.
Belle2::DirectedNodeNetwork< Belle2::Segment< Belle2::TrackNode >, Belle2::CACell > NodeNetworkType
Using NodeNetworkType for DirectedNodeNetwork with Segments and CACells.
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.
Belle2::DirectedNode< Belle2::Segment< Belle2::TrackNode >, Belle2::CACell > NodeType
Using NodeType for DirectedNode with Segments and CACells.
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.
std::string m_PARAMSpacePointTrackCandArrayName
module parameters
bool m_PARAMstrictSeeding
Regulates if every node with enough notes below it is used as a seed or only the outermost nodes.
PathCollectorRecursive< NodeNetworkType, NodeType, Path, Belle2::NodeCompatibilityCheckerPathCollector< NodeType > > m_pathCollector
Algorithm for finding paths of segments.
unsigned short m_PARAMxBestPerFamily
Maximal number of best candidates to be created per family.
Abstract base class for different kinds of events.
simple NodeCompatibilityChecker, which checks for compatible Neighboring states of passed nodes (does...
small class to take simple vectors of SpacePoints and convert them to real SpacePointTrackCands