Belle II Software development
TrackLoader Class Referenceabstract

Findlet for loading the seeds from the data store. More...

#include <TrackLoader.h>

Inheritance diagram for TrackLoader:
Findlet< RecoTrack * > CompositeProcessingSignalListener ProcessingSignalListener

Public Types

using IOTypes = std::tuple< AIOTypes... >
 Types that should be served to apply on invocation.
 
using IOVectors = std::tuple< std::vector< AIOTypes >... >
 Vector types that should be served to apply on invocation.
 

Public Member Functions

 TrackLoader ()
 Add the subfindlets.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters of the sub findlets.
 
void initialize () override
 Create the store arrays.
 
void apply (std::vector< RecoTrack * > &seeds) override
 Load in the reco tracks and the hits.
 
virtual std::string getDescription ()
 Brief description of the purpose of the concrete findlet.
 
virtual void apply (ToVector< AIOTypes > &... ioVectors)=0
 Main function executing the algorithm.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
void beginEvent () override
 Receive and dispatch signal for the start of a new event.
 
void endRun () override
 Receive and dispatch signal for the end of the run.
 
void terminate () override
 Receive and dispatch Signal for termination of the event processing.
 

Protected Types

using ToVector = typename ToVectorImpl< T >::Type
 Short hand for ToRangeImpl.
 

Protected Member Functions

void addProcessingSignalListener (ProcessingSignalListener *psl)
 Register a processing signal listener to be notified.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 

Private Types

using Super = TrackFindingCDC::Findlet< RecoTrack * >
 Parent class.
 

Private Attributes

TrackFitterAndDeleter m_trackFitter
 Findlet for fitting the tracks.
 
std::string m_param_relationRecoTrackStoreArrayName = "RecoTracks"
 StoreArray name of the output Track Store Array.
 
std::string m_param_inputRecoTrackStoreArrayName = "RecoTracks"
 StoreArray name of the input Track Store Array.
 
double m_param_minimalPtRequirement = 0.0
 Minimal pt requirement.
 
std::string m_param_relationCheckForDirectionAsString = "invalid"
 Parameter for the distance given to the framework (can not handle EForwardBackward directly)
 
TrackFindingCDC::EForwardBackward m_param_relationCheckForDirection = TrackFindingCDC::EForwardBackward::c_Unknown
 Direction parameter converted from the string parameters.
 
StoreArray< RecoTrackm_inputRecoTracks
 Output Reco Tracks Store Array.
 
bool m_noCDChits = false
 Ignore tracks with CDC hits attached.
 
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
 References to subordinary signal processing listener contained in this findlet.
 
bool m_initialized = false
 Flag to keep track whether initialization happened before.
 
bool m_terminated = false
 Flag to keep track whether termination happened before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Detailed Description

Findlet for loading the seeds from the data store.

Also, the tracks are fitted and only the fittable tracks are passed on.

If a direction != "invalid" is given, the relations of the tracks to the given store array are checked. If there is a relation with the weight equal to the given direction (meaning there is already a partner for this direction), the track is not passed on.

Definition at line 36 of file TrackLoader.h.

Member Typedef Documentation

◆ IOTypes

using IOTypes = std::tuple<AIOTypes...>
inherited

Types that should be served to apply on invocation.

Definition at line 30 of file Findlet.h.

◆ IOVectors

using IOVectors = std::tuple< std::vector<AIOTypes>... >
inherited

Vector types that should be served to apply on invocation.

Definition at line 53 of file Findlet.h.

◆ Super

Parent class.

Definition at line 38 of file TrackLoader.h.

◆ ToVector

using ToVector = typename ToVectorImpl<T>::Type
protectedinherited

Short hand for ToRangeImpl.

Definition at line 49 of file Findlet.h.

Constructor & Destructor Documentation

◆ TrackLoader()

Add the subfindlets.

Definition at line 19 of file TrackLoader.cc.

19 : Super()
20{
22}
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
TrackFitterAndDeleter m_trackFitter
Findlet for fitting the tracks.
Definition: TrackLoader.h:56
TrackFindingCDC::Findlet< RecoTrack * > Super
Parent class.
Definition: TrackLoader.h:38

Member Function Documentation

◆ addProcessingSignalListener()

void addProcessingSignalListener ( ProcessingSignalListener psl)
protectedinherited

Register a processing signal listener to be notified.

Definition at line 55 of file CompositeProcessingSignalListener.cc.

56{
58}
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
References to subordinary signal processing listener contained in this findlet.

◆ apply()

void apply ( std::vector< RecoTrack * > &  seeds)
override

Load in the reco tracks and the hits.

Definition at line 68 of file TrackLoader.cc.

69{
70 seeds.reserve(seeds.size() + m_inputRecoTracks.getEntries());
71
72 for (auto& item : m_inputRecoTracks) {
73
74 if (m_noCDChits) {
75 if (item.hasCDCHits()) continue;
76 }
77
78 if (m_param_relationCheckForDirection != TrackFindingCDC::EForwardBackward::c_Invalid) {
79 const auto& relatedTracksWithWeight = item.template getRelationsWith<RecoTrack>(m_param_relationRecoTrackStoreArrayName);
80 bool hasAlreadyRelation = false;
81 for (unsigned int index = 0; index < relatedTracksWithWeight.size(); ++index) {
82 const RecoTrack* relatedTrack = relatedTracksWithWeight[index];
83 const float weight = relatedTracksWithWeight.weight(index);
84 if (relatedTrack and weight == static_cast<float>(m_param_relationCheckForDirection)) {
85 hasAlreadyRelation = true;
86 break;
87 }
88 }
89
90 if (not hasAlreadyRelation) {
91 seeds.push_back(&item);
92 } else {
93 B2DEBUG(29, "Do not use this track, because it has already a valid relation");
94 }
95 } else {
96 seeds.push_back(&item);
97 }
98 }
99
100 const auto hasLowPt = [this](const auto & track) {
101 return track->getMomentumSeed().Rho() < m_param_minimalPtRequirement;
102 };
103 TrackFindingCDC::erase_remove_if(seeds, hasLowPt);
104
105 m_trackFitter.apply(seeds);
106}
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:79
int getEntries() const
Get the number of objects in the array.
Definition: StoreArray.h:216
void apply(std::vector< RecoTrack * > &recoTracks) override
Fit the tracks and remove unfittable ones.
StoreArray< RecoTrack > m_inputRecoTracks
Output Reco Tracks Store Array.
Definition: TrackLoader.h:73
bool m_noCDChits
Ignore tracks with CDC hits attached.
Definition: TrackLoader.h:75
TrackFindingCDC::EForwardBackward m_param_relationCheckForDirection
Direction parameter converted from the string parameters.
Definition: TrackLoader.h:68
double m_param_minimalPtRequirement
Minimal pt requirement.
Definition: TrackLoader.h:64
std::string m_param_relationRecoTrackStoreArrayName
StoreArray name of the output Track Store Array.
Definition: TrackLoader.h:60

◆ beginEvent()

void beginEvent ( )
overridevirtualinherited

Receive and dispatch signal for the start of a new event.

Reimplemented from ProcessingSignalListener.

Reimplemented in SpacePointTagger< Belle2::CKFToPXDResult, Belle2::PXDCluster >, SpacePointTagger< Belle2::CKFToSVDResult, Belle2::SVDCluster >, BaseEventTimeExtractor< RecoTrack * >, BaseEventTimeExtractor< TrackFindingCDC::CDCWireHit & >, SharingHitsMatcher< Belle2::TrackFindingCDC::CDCTrack, Belle2::TrackFindingCDC::CDCSegment2D >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCFacet >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCWireHit, true >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCSegment2D >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCTrack >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCSegmentPair >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCSegmentTriple >, RecoTrackStorer, ROIFinder, and SVDHoughTracking.

Definition at line 31 of file CompositeProcessingSignalListener.cc.

32{
35 psl->beginEvent();
36 }
37}
Interface for an algorithm part that needs to receive the module processing signals.
virtual void beginEvent()
Receive signal for the start of a new event.

◆ beginRun()

void beginRun ( )
overridevirtualinherited

Receive and dispatch signal for the beginning of a new run.

Reimplemented from ProcessingSignalListener.

Reimplemented in LayerRelationFilter< AFilter >, FourHitFilter, QualityIndicatorFilter, ThreeHitFilter, TwoHitVirtualIPFilter, TwoHitVirtualIPQIFilter, RecoTrackStorer, ROIFinder, SpacePointLoaderAndPreparer, and TrackCandidateResultRefiner.

Definition at line 23 of file CompositeProcessingSignalListener.cc.

24{
27 psl->beginRun();
28 }
29}
virtual void beginRun()
Receive signal for the beginning of a new run.

◆ endRun()

void endRun ( )
overridevirtualinherited

Receive and dispatch signal for the end of the run.

Reimplemented from ProcessingSignalListener.

Definition at line 39 of file CompositeProcessingSignalListener.cc.

40{
42 psl->endRun();
43 }
45}
virtual void endRun()
Receive signal for the end of the run.

◆ exposeParameters()

void exposeParameters ( ModuleParamList moduleParamList,
const std::string &  prefix 
)
overridevirtual

Expose the parameters of the sub findlets.

Reimplemented from Findlet< RecoTrack * >.

Definition at line 24 of file TrackLoader.cc.

25{
26 m_trackFitter.exposeParameters(moduleParamList, prefix);
27
28 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "inputRecoTrackStoreArrayName"),
30 "StoreArray name of the input Track Store Array.");
31
32 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "relatedRecoTrackStoreArrayName"),
34 "Check for relations to this store array name and only use the unrelated ones or "
35 "relations with different direction",
37
38 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "minimalPtRequirement"),
40 "Minimal Pt requirement for the input tracks",
42
43 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "relationCheckForDirection"),
45 "Check for this direction when checking for related tracks.");
46
47 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "ignoreTracksWithCDChits"),
48 m_noCDChits, "Do not consider tracks containing CDC hits.", false);
49
50}
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Forward prefixed parameters of this findlet to the module parameter list.
Definition: Findlet.h:69
std::string m_param_relationCheckForDirectionAsString
Parameter for the distance given to the framework (can not handle EForwardBackward directly)
Definition: TrackLoader.h:66
std::string m_param_inputRecoTrackStoreArrayName
StoreArray name of the input Track Store Array.
Definition: TrackLoader.h:62
void addParameter(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.

◆ getDescription()

virtual std::string getDescription ( )
inlinevirtualinherited

Brief description of the purpose of the concrete findlet.

Definition at line 60 of file Findlet.h.

61 {
62 return "(no description)";
63 }

◆ getNProcessingSignalListener()

int getNProcessingSignalListener ( )
protectedinherited

Get the number of currently registered listeners.

Definition at line 60 of file CompositeProcessingSignalListener.cc.

61{
63}

◆ initialize()

void initialize ( )
overridevirtual

Create the store arrays.

Reimplemented from ProcessingSignalListener.

Definition at line 52 of file TrackLoader.cc.

53{
55
57
59
60 if (m_param_relationCheckForDirection != TrackFindingCDC::EForwardBackward::c_Invalid) {
61 StoreArray<RecoTrack> relatedRecoTracks;
62 if (not relatedRecoTracks.isOptional(m_param_relationRecoTrackStoreArrayName)) {
63 m_param_relationCheckForDirection = TrackFindingCDC::EForwardBackward::c_Invalid;
64 }
65 }
66}
bool isRequired(const std::string &name="")
Ensure this array/object has been registered previously.
bool isOptional(const std::string &name="")
Tell the DataStore about an optional input.
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
void initialize() override
Receive and dispatch signal before the start of the event processing.
TrackFindingCDC::EForwardBackward fromString(const std::string &directionString)
Helper function to turn a direction string into a valid forward backward information.

◆ terminate()

void terminate ( )
overridevirtualinherited

Receive and dispatch Signal for termination of the event processing.

Reimplemented from ProcessingSignalListener.

Reimplemented in StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre >, and StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre >.

Definition at line 47 of file CompositeProcessingSignalListener.cc.

48{
50 psl->terminate();
51 }
53}
virtual void terminate()
Receive Signal for termination of the event processing.

Member Data Documentation

◆ m_initialized

bool m_initialized = false
privateinherited

Flag to keep track whether initialization happened before.

Definition at line 52 of file ProcessingSignalListener.h.

◆ m_initializedAs

std::string m_initializedAs
privateinherited

Name of the type during initialisation.

Definition at line 58 of file ProcessingSignalListener.h.

◆ m_inputRecoTracks

StoreArray<RecoTrack> m_inputRecoTracks
private

Output Reco Tracks Store Array.

Definition at line 73 of file TrackLoader.h.

◆ m_noCDChits

bool m_noCDChits = false
private

Ignore tracks with CDC hits attached.

Definition at line 75 of file TrackLoader.h.

◆ m_param_inputRecoTrackStoreArrayName

std::string m_param_inputRecoTrackStoreArrayName = "RecoTracks"
private

StoreArray name of the input Track Store Array.

Definition at line 62 of file TrackLoader.h.

◆ m_param_minimalPtRequirement

double m_param_minimalPtRequirement = 0.0
private

Minimal pt requirement.

Definition at line 64 of file TrackLoader.h.

◆ m_param_relationCheckForDirection

TrackFindingCDC::EForwardBackward m_param_relationCheckForDirection = TrackFindingCDC::EForwardBackward::c_Unknown
private

Direction parameter converted from the string parameters.

Definition at line 68 of file TrackLoader.h.

◆ m_param_relationCheckForDirectionAsString

std::string m_param_relationCheckForDirectionAsString = "invalid"
private

Parameter for the distance given to the framework (can not handle EForwardBackward directly)

Definition at line 66 of file TrackLoader.h.

◆ m_param_relationRecoTrackStoreArrayName

std::string m_param_relationRecoTrackStoreArrayName = "RecoTracks"
private

StoreArray name of the output Track Store Array.

Definition at line 60 of file TrackLoader.h.

◆ m_subordinaryProcessingSignalListeners

std::vector<ProcessingSignalListener*> m_subordinaryProcessingSignalListeners
privateinherited

References to subordinary signal processing listener contained in this findlet.

Definition at line 52 of file CompositeProcessingSignalListener.h.

◆ m_terminated

bool m_terminated = false
privateinherited

Flag to keep track whether termination happened before.

Definition at line 55 of file ProcessingSignalListener.h.

◆ m_trackFitter

TrackFitterAndDeleter m_trackFitter
private

Findlet for fitting the tracks.

Definition at line 56 of file TrackLoader.h.


The documentation for this class was generated from the following files: