Belle II Software  release-08-01-10
CKFToSVDFindlet Class Referenceabstract

Combinatorial Kalman Filter to extrapolate CDC Reco Tracks into the VXD (SVD) and collect space points. More...

#include <CKFToSVDFindlet.h>

Inheritance diagram for CKFToSVDFindlet:
Collaboration diagram for CKFToSVDFindlet:

Public Types

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

Public Member Functions

 CKFToSVDFindlet ()
 Constructor, for setting module description and parameters.
 
 ~CKFToSVDFindlet () override
 Default desctructor.
 
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.
 
void beginEvent () override
 Clear the object pools.
 
virtual std::string getDescription ()
 Brief description of the purpose of the concret findlet.
 
virtual void apply (ToVector< AIOTypes > &... ioVectors)=0
 Main function executing the algorithm.
 
void initialize () override
 Receive and dispatch signal before the start of the event processing.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
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<>
 Parent class.
 

Private Attributes

unsigned int m_param_minimalHitRequirement = 1
 Minimal hit requirement for the results (counted in number of space points)
 
TrackLoader m_dataHandler
 Findlet for retrieving the cdc tracks and writing the result out.
 
SpacePointLoader m_hitsLoader
 Findlet for loading the space points.
 
StateCreatorWithReversal< CKFToSVDStatem_stateCreatorFromTracks
 Findlet for creating states out of tracks.
 
StateCreator< const SpacePoint, CKFToSVDStatem_stateCreatorFromHits
 Findlet for creating states out of hits.
 
CKFRelationCreator< CKFToSVDState, ChooseableSVDRelationFilterm_relationCreator
 Findlet for creating relations between states.
 
TreeSearcher< CKFToSVDState, SVDStateRejecter, CKFToSVDResultm_treeSearchFindlet
 Findlet doing the main work: the tree finding.
 
OverlapResolver< ChooseableSVDResultFilterm_overlapResolver
 Findlet for resolving overlaps.
 
SpacePointTagger< CKFToSVDResult, SVDClusterm_spacePointTagger
 Findlet for tagging the used space points.
 
ResultStorer< CKFToSVDResultm_resultStorer
 Findlet for storing the results.
 
std::vector< RecoTrack * > m_cdcRecoTrackVector
 Pointers to the CDC Reco tracks as a vector.
 
std::vector< const SpacePoint * > m_spacePointVector
 Pointers to the (const) SpacePoints as a vector.
 
std::vector< CKFToSVDStatem_seedStates
 States for the tracks.
 
std::vector< CKFToSVDStatem_states
 States for the hits.
 
std::vector< TrackFindingCDC::WeightedRelation< CKFToSVDState > > m_relations
 Relations between states.
 
std::vector< CKFToSVDResultm_results
 Vector for storing the results.
 
std::vector< CKFToSVDResultm_filteredResults
 Vector for storing the filtered results.
 
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 happend before.
 
bool m_terminated = false
 Flag to keep track whether termination happend before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Detailed Description

Combinatorial Kalman Filter to extrapolate CDC Reco Tracks into the VXD (SVD) and collect space points.

The implementation is split up in four parts and factored out into three sub findlets.

  • Fetch the SpacePoints and the reco tracks from the data store (CDCTrackSpacePointStoreArrayHandler)
  • Construct all possible candidates starting from a RecoTrack and going through the layers of the VXD collecting space points (this is handles by the TreeSearchFindlet, which works on States. The selection of space points is handled by the CDCToSpacePointHitSelector)
  • Find a non-overlapping set of results (only one candidate per space point and seed) (OverlapResolverFindlet, quality is determined by a filter)
  • Write the results out to the data store (again the CDCTrackSpacePointStoreArrayHandler)

If you want to reimplement this algorithm for a different purpose, you probably only have to implement a new state class and a new hit selector (and maybe the store array handling). The rest should be taken care by the framework.

Definition at line 56 of file CKFToSVDFindlet.h.


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