Belle II Software  release-05-02-19
TrackFinderVXDBasicPathFinderModule.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/NodeCompatibilityCheckerBase.h>
32 
33 
34 namespace Belle2 {
46  class TrackFinderVXDBasicPathFinderModule 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 
118 
121 
125 
127 
129 
131 
133 
135  std::unique_ptr<SPTCSelectorXBestPerFamily> m_sptcSelector;
136 
139 
141  unsigned int m_eventCounter = 0;
142  };
144 }
Belle2::TrackFinderVXDBasicPathFinderModule::m_sptcSelector
std::unique_ptr< SPTCSelectorXBestPerFamily > m_sptcSelector
Pointer to SPTC selector class which performes the x best candidate selection.
Definition: TrackFinderVXDBasicPathFinderModule.h:143
Belle2::TrackFinderVXDBasicPathFinderModule::m_collectedPaths
std::vector< Path > m_collectedPaths
Path collection obtained from evaluation of the provided segment network.
Definition: TrackFinderVXDBasicPathFinderModule.h:94
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMSpacePointTrackCandArrayName
std::string m_PARAMSpacePointTrackCandArrayName
module parameters
Definition: TrackFinderVXDBasicPathFinderModule.h:82
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMmaxFamilies
unsigned short m_PARAMmaxFamilies
Maximal number of families in event; if exceeded, the execution of the trackfinder will be stopped.
Definition: TrackFinderVXDBasicPathFinderModule.h:115
Belle2::NodeFamilyDefiner
This class assigns a common family identifier to all CACells in the network that are connected.
Definition: NodeFamilyDefiner.h:44
Belle2::TrackFinderVXDBasicPathFinderModule::TrackFinderVXDBasicPathFinderModule
TrackFinderVXDBasicPathFinderModule()
Constructor.
Definition: TrackFinderVXDBasicPathFinderModule.cc:26
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMstoreSubsets
bool m_PARAMstoreSubsets
Regulates if every subset of sufficient length of a path shall be collected as separate path or not.
Definition: TrackFinderVXDBasicPathFinderModule.h:103
Belle2::TrackFinderVXDBasicPathFinderModule::event
void event() override
event
Definition: TrackFinderVXDBasicPathFinderModule.cc:114
Belle2::TrackFinderVXDBasicPathFinderModule::m_eventLevelTrackingInfo
StoreObjPtr< EventLevelTrackingInfo > m_eventLevelTrackingInfo
Acccess to the EventLevelTrackingInfo object in the datastore.
Definition: TrackFinderVXDBasicPathFinderModule.h:146
Belle2::CellularAutomaton
The CellularAutomaton class This class serves as a functor for the algorithm itself.
Definition: CellularAutomaton.h:31
Belle2::TrackFinderVXDBasicPathFinderModule::m_eventCounter
unsigned int m_eventCounter
Event number counter.
Definition: TrackFinderVXDBasicPathFinderModule.h:149
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::TrackFinderVXDBasicPathFinderModule::m_PARAMsecMapName
std::string m_PARAMsecMapName
the name of the SectorMap used for this instance.
Definition: TrackFinderVXDBasicPathFinderModule.h:91
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMprintNetworks
bool m_PARAMprintNetworks
If true for each event and each network created a file with a graph is created.
Definition: TrackFinderVXDBasicPathFinderModule.h:97
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMstrictSeeding
bool m_PARAMstrictSeeding
Regulates if every node with enough nodes below it is used as a seed or only the outermost nodes.
Definition: TrackFinderVXDBasicPathFinderModule.h:100
Belle2::TrackFinderVXDBasicPathFinderModule::m_cellularAutomaton
CellularAutomaton< NodeNetworkType, Belle2::CAValidator< Belle2::CACell > > m_cellularAutomaton
member variables
Definition: TrackFinderVXDBasicPathFinderModule.h:122
Belle2::TrackFinderVXDBasicPathFinderModule::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: TrackFinderVXDBasicPathFinderModule.h:132
Belle2::TrackFinderVXDBasicPathFinderModule::NodeType
Belle2::DirectedNode< Belle2::Segment< Belle2::TrackNode >, Belle2::CACell > NodeType
Using NodeType for DirectedNode with Segments and CACells.
Definition: TrackFinderVXDBasicPathFinderModule.h:57
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::StoreObjPtr< Belle2::DirectedNodeNetworkContainer >
Belle2::TrackFinderVXDBasicPathFinderModule::m_pathCollector
PathCollectorRecursive< NodeNetworkType, NodeType, Path, Belle2::NodeCompatibilityCheckerBase< NodeType > > m_pathCollector
Algorithm for finding paths of segments.
Definition: TrackFinderVXDBasicPathFinderModule.h:125
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMxBestPerFamily
unsigned short m_PARAMxBestPerFamily
Maximal number of best candidates to be created per family.
Definition: TrackFinderVXDBasicPathFinderModule.h:112
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::TrackFinderVXDBasicPathFinderModule::m_PARAMselectBestPerFamily
bool m_PARAMselectBestPerFamily
If true create track candidate only for the best candidate of a family.
Definition: TrackFinderVXDBasicPathFinderModule.h:109
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMNetworkName
std::string m_PARAMNetworkName
name for StoreObjPtr<DirectedNodeNetwork> which contains the networks needed
Definition: TrackFinderVXDBasicPathFinderModule.h:85
Belle2::TrackFinderVXDBasicPathFinderModule::m_sptcCreator
SpacePointTrackCandCreator< StoreArray< Belle2::SpacePointTrackCand > > m_sptcCreator
Tool for creating SPTCs, which fills storeArray directly.
Definition: TrackFinderVXDBasicPathFinderModule.h:128
Belle2::TrackFinderVXDBasicPathFinderModule::beginRun
void beginRun() override
beginRun
Definition: TrackFinderVXDBasicPathFinderModule.cc:104
Belle2::TrackFinderVXDBasicPathFinderModule::m_TCs
StoreArray< Belle2::SpacePointTrackCand > m_TCs
output containers
Definition: TrackFinderVXDBasicPathFinderModule.h:140
Belle2::TrackFinderVXDBasicPathFinderModule::initialize
void initialize() override
initialize
Definition: TrackFinderVXDBasicPathFinderModule.cc:91
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMEventLevelTrackingInfoName
std::string m_PARAMEventLevelTrackingInfoName
Name of the EventLevelTrackingInfo that should be used (different one for ROI-finding)
Definition: TrackFinderVXDBasicPathFinderModule.h:88
Belle2::StoreArray< Belle2::SpacePointTrackCand >
Belle2::DirectedNode
The Node-Class.
Definition: DirectedNode.h:41
Belle2::TrackFinderVXDBasicPathFinderModule::Path
std::vector< NodeType * > Path
Using Path for vector of pointers to NodeTypes.
Definition: TrackFinderVXDBasicPathFinderModule.h:61
Belle2::TrackFinderVXDBasicPathFinderModule::m_network
StoreObjPtr< Belle2::DirectedNodeNetworkContainer > m_network
input containers
Definition: TrackFinderVXDBasicPathFinderModule.h:136
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMsetFamilies
bool m_PARAMsetFamilies
If true additionally assign a common family identifier to all Tracks that are share a node.
Definition: TrackFinderVXDBasicPathFinderModule.h:106
Belle2::TrackFinderVXDBasicPathFinderModule::NodeNetworkType
Belle2::DirectedNodeNetwork< Belle2::Segment< Belle2::TrackNode >, Belle2::CACell > NodeNetworkType
Using NodeNetworkType for DirectedNodeNetwork with Segments and CACells.
Definition: TrackFinderVXDBasicPathFinderModule.h:59
Belle2::SpacePointTrackCandCreator
small class to take simple vectors of SpacePoints and convert them to real SpacePointTrackCands
Definition: SpacePointTrackCandCreator.h:31
Belle2::TrackFinderVXDBasicPathFinderModule::m_PARAMmaxPaths
unsigned int m_PARAMmaxPaths
Maximal number of paths per event; if exceeded, the execution of the trackfinder will be stopped.
Definition: TrackFinderVXDBasicPathFinderModule.h:118