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

Generates monopole-like axial tracks from hit using special leaf postprocessing. More...

#include <MonopoleAxialTrackFinderLegendre.h>

Inheritance diagram for MonopoleAxialTrackFinderLegendre:
Collaboration diagram for MonopoleAxialTrackFinderLegendre:

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

 MonopoleAxialTrackFinderLegendre ()
 Constructor.
 
std::string getDescription () final
 Short description of the findlet.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters to a module.
 
void apply (const std::vector< CDCWireHit > &wireHits, std::vector< CDCTrack > &tracks)
 Main method to apply the track finding.
 
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 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 = Findlet< const CDCWireHit, CDCTrack >
 Type of the base class.
 
using EPass = AxialTrackCreatorHitLegendre::EPass
 Class of Pass keys.
 

Private Attributes

AxialTrackCreatorHitLegendre m_straightMonopoleAxialTrackCreatorHitLegendre {EPass::Straight}
 Findlet for straight legendre pass.
 
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

Generates monopole-like axial tracks from hit using special leaf postprocessing.

Implements Legendre transformation of the drift time circles. This is a module, performing tracking in the CDC. It is based on the paper "Implementation of the Legendre Transform for track segment reconstruction in drift tube chambers" by T. Alexopoulus, et al. NIM A592 456-462 (2008).

NOTE currently performs legendre search for tracks of low curvature, with no postprocessing TODO:

  • search for strictly straight tracks (q=0.00) without quadtree
  • axial track postprocessing

Definition at line 42 of file MonopoleAxialTrackFinderLegendre.h.


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