Belle II Software development
CKFToSVDFindlet.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#pragma once
9
10#include <tracking/trackFindingCDC/findlets/base/Findlet.h>
11#include <tracking/ckf/svd/entities/CKFToSVDResult.h>
12#include <tracking/ckf/svd/entities/CKFToSVDState.h>
13#include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
14
15#include <tracking/ckf/general/findlets/SpacePointTagger.dcl.h>
16#include <tracking/ckf/general/findlets/TrackLoader.h>
17#include <tracking/ckf/general/findlets/StateCreator.dcl.h>
18#include <tracking/ckf/general/findlets/StateCreatorWithReversal.dcl.h>
19#include <tracking/ckf/general/findlets/CKFRelationCreator.dcl.h>
20#include <tracking/ckf/general/findlets/TreeSearcher.dcl.h>
21#include <tracking/ckf/general/findlets/OverlapResolver.dcl.h>
22#include <tracking/ckf/general/findlets/ResultStorer.dcl.h>
23#include <tracking/ckf/svd/findlets/SVDStateRejecter.h>
24#include <tracking/ckf/svd/findlets/SpacePointLoader.h>
25
26#include <tracking/ckf/svd/filters/relations/ChooseableSVDRelationFilter.h>
27#include <tracking/ckf/svd/filters/results/ChooseableSVDResultFilter.h>
28
29namespace Belle2 {
34 class RecoTrack;
35 class SpacePoint;
36 class SVDCluster;
37
38 class ModuleParamList;
39
59
60 public:
63
65 ~CKFToSVDFindlet() override;
66
68 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) override;
69
71 void apply() override;
72
74 void beginEvent() override;
75
76 private:
77 // Parameters
80
81 // Findlets
100
101 // Object pools
103 std::vector<RecoTrack*> m_cdcRecoTrackVector;
105 std::vector<const SpacePoint*> m_spacePointVector;
107 std::vector<CKFToSVDState> m_seedStates;
109 std::vector<CKFToSVDState> m_states;
111 std::vector<TrackFindingCDC::WeightedRelation<CKFToSVDState>> m_relations;
113 std::vector<CKFToSVDResult> m_results;
115 std::vector<CKFToSVDResult> m_filteredResults;
116 };
118}
Findlet for applying filters for creating hit-hit and hit-seed relations.
Combinatorial Kalman Filter to extrapolate CDC Reco Tracks into the VXD (SVD) and collect space point...
std::vector< CKFToSVDResult > m_filteredResults
Vector for storing the filtered results.
unsigned int m_param_minimalHitRequirement
Minimal hit requirement for the results (counted in number of space points)
ResultStorer< CKFToSVDResult > m_resultStorer
Findlet for storing the results.
SpacePointTagger< CKFToSVDResult, SVDCluster > m_spacePointTagger
Findlet for tagging the used space points.
std::vector< CKFToSVDState > m_states
States for the hits.
TrackLoader m_dataHandler
Findlet for retrieving the cdc tracks and writing the result out.
std::vector< const SpacePoint * > m_spacePointVector
Pointers to the (const) SpacePoints as a vector.
TreeSearcher< CKFToSVDState, SVDStateRejecter, CKFToSVDResult > m_treeSearchFindlet
Findlet doing the main work: the tree finding.
StateCreatorWithReversal< CKFToSVDState > m_stateCreatorFromTracks
Findlet for creating states out of tracks.
~CKFToSVDFindlet() override
Default desctructor.
SpacePointLoader m_hitsLoader
Findlet for loading the space points.
std::vector< RecoTrack * > m_cdcRecoTrackVector
Pointers to the CDC Reco tracks as a vector.
OverlapResolver< ChooseableSVDResultFilter > m_overlapResolver
Findlet for resolving overlaps.
std::vector< CKFToSVDResult > m_results
Vector for storing the results.
CKFRelationCreator< CKFToSVDState, ChooseableSVDRelationFilter > m_relationCreator
Findlet for creating relations between states.
void beginEvent() override
Clear the object pools.
std::vector< CKFToSVDState > m_seedStates
States for the tracks.
CKFToSVDFindlet()
Constructor, for setting module description and parameters.
StateCreator< const SpacePoint, CKFToSVDState > m_stateCreatorFromHits
Findlet for creating states out of hits.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply() override
Do the track/hit finding/merging.
std::vector< TrackFindingCDC::WeightedRelation< CKFToSVDState > > m_relations
Relations between states.
The Module parameter list class.
Simple findlet for searching the best candidate for a given seed aplying the given filter.
This findlet does also handle the storing of the results.
Load the space points from the store array to the given vector.
Findlet for tagging all space points in the results vector as used.
An adaption of the normal state creator introducing another parameter to reverse the seed.
Create new states and add them to a vector from a given object vector.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Findlet for loading the seeds from the data store.
Definition: TrackLoader.h:36
Findlet for constructing result paths out of a list of states, which are connected with weighted rela...
Abstract base class for different kinds of events.