Belle II Software  release-08-01-10
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 
32 namespace Belle2 {
44  class TrackFinderVXDCellOMatModule final : public Module {
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 
117 
120 
124 
126 
128 
130 
132 
134  std::unique_ptr<SPTCSelectorXBestPerFamily> m_sptcSelector;
135 
138 
140  unsigned int m_eventCounter = 0;
141  };
143 }
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 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