Belle II Software  release-05-01-25
TrackFinderVXDCellOMatModule.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, Jonas Wagner, Felix Metzner *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <framework/datastore/StoreArray.h>
14 #include <framework/datastore/StoreObjPtr.h>
15 #include <framework/core/Module.h>
16 
17 #include <mdst/dataobjects/EventLevelTrackingInfo.h>
18 
19 #include <tracking/trackFindingVXD/algorithms/CellularAutomaton.h>
20 #include <tracking/trackFindingVXD/algorithms/PathCollectorRecursive.h>
21 #include <tracking/trackFindingVXD/algorithms/NodeFamilyDefiner.h>
22 #include <tracking/trackFindingVXD/algorithms/SPTCSelectorXBestPerFamily.h>
23 
24 #include <tracking/trackFindingVXD/segmentNetwork/CACell.h>
25 #include <tracking/trackFindingVXD/segmentNetwork/DirectedNodeNetworkContainer.h>
26 
27 #include <tracking/trackFindingVXD/tcTools/SpacePointTrackCandCreator.h>
28 #include <tracking/spacePointCreation/SpacePointTrackCand.h>
29 
30 #include <tracking/trackFindingVXD/algorithms/CAValidator.h>
31 #include <tracking/trackFindingVXD/algorithms/NodeCompatibilityCheckerPathCollector.h>
32 
33 
34 namespace Belle2 {
46  class TrackFinderVXDCellOMatModule final : public Module {
47  private:
53  using Path = std::vector<NodeType*>;
54 
55  public:
56 
59 
61  void initialize() override;
62 
64  void beginRun() override;
65 
67  void event() override;
68 
69 
70  protected:
71 
73 
75 
77  std::string m_PARAMNetworkName;
78 
81 
83  std::string m_PARAMsecMapName;
84 
86  std::vector<Path> m_collectedPaths;
87 
90 
93 
96 
98  bool m_PARAMsetFamilies;
99 
102 
104  unsigned short m_PARAMxBestPerFamily = 5;
105 
107  unsigned short m_PARAMmaxFamilies = 10000;
108 
110  unsigned int m_PARAMmaxPaths = 400000;
111 
113 
115 
119 
122 
126 
128 
130 
132 
134 
136  std::unique_ptr<SPTCSelectorXBestPerFamily> m_sptcSelector;
137 
140 
142  unsigned int m_eventCounter = 0;
143  };
145 }
Belle2::TrackFinderVXDCellOMatModule::m_eventCounter
unsigned int m_eventCounter
Event number counter.
Definition: TrackFinderVXDCellOMatModule.h:150
Belle2::TrackFinderVXDCellOMatModule::m_PARAMsetFamilies
bool m_PARAMsetFamilies
If true additionally assign a common family identifier to all Tracks that are share a node.
Definition: TrackFinderVXDCellOMatModule.h:106
Belle2::TrackFinderVXDCellOMatModule::event
void event() override
event
Definition: TrackFinderVXDCellOMatModule.cc:113
Belle2::TrackFinderVXDCellOMatModule::m_sptcSelector
std::unique_ptr< SPTCSelectorXBestPerFamily > m_sptcSelector
Pointer to SPTC selector class which performes the x best candidate selection.
Definition: TrackFinderVXDCellOMatModule.h:144
Belle2::TrackFinderVXDCellOMatModule::m_TCs
StoreArray< Belle2::SpacePointTrackCand > m_TCs
output containers
Definition: TrackFinderVXDCellOMatModule.h:141
Belle2::TrackFinderVXDCellOMatModule::m_familyDefiner
NodeFamilyDefiner< NodeNetworkType, NodeType, Path > m_familyDefiner
Class to evaluate connected nodes, in this case for the directed node network, and assigns a family t...
Definition: TrackFinderVXDCellOMatModule.h:133
Belle2::TrackFinderVXDCellOMatModule::m_PARAMselectBestPerFamily
bool m_PARAMselectBestPerFamily
If true create track candidate only for the best candidate of a family.
Definition: TrackFinderVXDCellOMatModule.h:109
Belle2::TrackFinderVXDCellOMatModule::m_pathCollector
PathCollectorRecursive< NodeNetworkType, NodeType, Path, Belle2::NodeCompatibilityCheckerPathCollector< NodeType > > m_pathCollector
Algorithm for finding paths of segments.
Definition: TrackFinderVXDCellOMatModule.h:126
Belle2::TrackFinderVXDCellOMatModule::m_PARAMxBestPerFamily
unsigned short m_PARAMxBestPerFamily
Maximal number of best candidates to be created per family.
Definition: TrackFinderVXDCellOMatModule.h:112
Belle2::TrackFinderVXDCellOMatModule::beginRun
void beginRun() override
beginRun
Definition: TrackFinderVXDCellOMatModule.cc:103
Belle2::NodeFamilyDefiner
This class assigns a common family identifier to all CACells in the network that are connected.
Definition: NodeFamilyDefiner.h:44
Belle2::TrackFinderVXDCellOMatModule::m_PARAMsecMapName
std::string m_PARAMsecMapName
the name of the SectorMap used for this instance.
Definition: TrackFinderVXDCellOMatModule.h:91
Belle2::CellularAutomaton
The CellularAutomaton class This class serves as a functor for the algorithm itself.
Definition: CellularAutomaton.h:31
Belle2::DirectedNodeNetwork
Network of directed nodes of the type EntryType.
Definition: DirectedNodeNetwork.h:38
Belle2::PathCollectorRecursive
Path finder for generic ContainerType.
Definition: PathCollectorRecursive.h:54
Belle2::TrackFinderVXDCellOMatModule::m_network
StoreObjPtr< Belle2::DirectedNodeNetworkContainer > m_network
input containers
Definition: TrackFinderVXDCellOMatModule.h:137
Belle2::TrackFinderVXDCellOMatModule::m_PARAMmaxPaths
unsigned int m_PARAMmaxPaths
Maximal number of paths per event; if exceeded, the execution of the trackfinder will be stopped.
Definition: TrackFinderVXDCellOMatModule.h:118
Belle2::TrackFinderVXDCellOMatModule::m_eventLevelTrackingInfo
StoreObjPtr< EventLevelTrackingInfo > m_eventLevelTrackingInfo
Acccess to the EventLevelTrackingInfo object in the datastore.
Definition: TrackFinderVXDCellOMatModule.h:147
Belle2::TrackFinderVXDCellOMatModule::m_PARAMEventLevelTrackingInfoName
std::string m_PARAMEventLevelTrackingInfoName
Name of the EventLevelTrackingInfo that should be used (different one for ROI-finding)
Definition: TrackFinderVXDCellOMatModule.h:88
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::StoreObjPtr< Belle2::DirectedNodeNetworkContainer >
Belle2::TrackFinderVXDCellOMatModule::NodeType
Belle2::DirectedNode< Belle2::Segment< Belle2::TrackNode >, Belle2::CACell > NodeType
Using NodeType for DirectedNode with Segments and CACells.
Definition: TrackFinderVXDCellOMatModule.h:57
Belle2::TrackFinderVXDCellOMatModule::TrackFinderVXDCellOMatModule
TrackFinderVXDCellOMatModule()
Constructor.
Definition: TrackFinderVXDCellOMatModule.cc:25
Belle2::TrackFinderVXDCellOMatModule::m_PARAMNetworkName
std::string m_PARAMNetworkName
name for StoreObjPtr< DirectedNodeNetwork> which contains the networks needed
Definition: TrackFinderVXDCellOMatModule.h:85
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::TrackFinderVXDCellOMatModule::m_PARAMstoreSubsets
bool m_PARAMstoreSubsets
Regulates if every subset of sufficient length of a path shall be collected as separate path or not.
Definition: TrackFinderVXDCellOMatModule.h:103
Belle2::TrackFinderVXDCellOMatModule::initialize
void initialize() override
initialize
Definition: TrackFinderVXDCellOMatModule.cc:90
Belle2::TrackFinderVXDCellOMatModule::m_collectedPaths
std::vector< Path > m_collectedPaths
Path collection obtained from evaluation of the provided segment network.
Definition: TrackFinderVXDCellOMatModule.h:94
Belle2::NodeCompatibilityCheckerPathCollector
simple NodeCompatibilityChecker, which checks for compatible Neighboring states of passed nodes (does...
Definition: NodeCompatibilityCheckerPathCollector.h:29
Belle2::TrackFinderVXDCellOMatModule::Path
std::vector< NodeType * > Path
Using Path for vector of pointers to NodeTypes.
Definition: TrackFinderVXDCellOMatModule.h:61
Belle2::TrackFinderVXDCellOMatModule::m_PARAMprintNetworks
bool m_PARAMprintNetworks
If true for each event and each network created a file with a graph is created.
Definition: TrackFinderVXDCellOMatModule.h:97
Belle2::TrackFinderVXDCellOMatModule::m_PARAMSpacePointTrackCandArrayName
std::string m_PARAMSpacePointTrackCandArrayName
module parameters
Definition: TrackFinderVXDCellOMatModule.h:82
Belle2::TrackFinderVXDCellOMatModule::m_PARAMstrictSeeding
bool m_PARAMstrictSeeding
Regulates if every node with enough notes below it is used as a seed or only the outermost nodes.
Definition: TrackFinderVXDCellOMatModule.h:100
Belle2::StoreArray< Belle2::SpacePointTrackCand >
Belle2::DirectedNode
The Node-Class.
Definition: DirectedNode.h:41
Belle2::TrackFinderVXDCellOMatModule::m_cellularAutomaton
CellularAutomaton< NodeNetworkType, Belle2::CAValidator< Belle2::CACell > > m_cellularAutomaton
member variables
Definition: TrackFinderVXDCellOMatModule.h:122
Belle2::TrackFinderVXDCellOMatModule::NodeNetworkType
Belle2::DirectedNodeNetwork< Belle2::Segment< Belle2::TrackNode >, Belle2::CACell > NodeNetworkType
Using NodeNetworkType for DirectedNodeNetwork with Segments and CACells.
Definition: TrackFinderVXDCellOMatModule.h:59
Belle2::TrackFinderVXDCellOMatModule::m_sptcCreator
SpacePointTrackCandCreator< StoreArray< Belle2::SpacePointTrackCand > > m_sptcCreator
Tool for creating SPTCs, which fills storeArray directly.
Definition: TrackFinderVXDCellOMatModule.h:129
Belle2::SpacePointTrackCandCreator
small class to take simple vectors of SpacePoints and convert them to real SpacePointTrackCands
Definition: SpacePointTrackCandCreator.h:31
Belle2::TrackFinderVXDCellOMatModule::m_PARAMmaxFamilies
unsigned short m_PARAMmaxFamilies
Maximal number of families in event; if exceeded, the execution of the trackfinder will be stopped.
Definition: TrackFinderVXDCellOMatModule.h:115