Belle II Software  release-08-01-10
TreeSearcher< AState, AStateRejecter, AResult > Class Template Referenceabstract

Findlet for constructing result paths out of a list of states, which are connected with weighted relations. More...

#include <TreeSearcher.dcl.h>

Inheritance diagram for TreeSearcher< AState, AStateRejecter, AResult >:
Collaboration diagram for TreeSearcher< AState, AStateRejecter, AResult >:

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

 TreeSearcher ()
 Construct this findlet and add the subfindlet as listener.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters of the subfindlet.
 
void apply (const std::vector< AState > &seededStates, std::vector< AState > &hitStates, const std::vector< TrackFindingCDC::WeightedRelation< AState >> &relations, std::vector< AResult > &results) final
 Main function of this findlet: traverse a tree starting from a given seed states. More...
 
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 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< const AState, AState, const TrackFindingCDC::WeightedRelation< AState >, AResult >
 Parent class.
 

Private Member Functions

void traverseTree (std::vector< TrackFindingCDC::WithWeight< const AState * >> &path, const std::vector< TrackFindingCDC::WeightedRelation< AState >> &relations, std::vector< AResult > &results)
 Implementation of the traverseTree function.
 

Private Attributes

AStateRejecter m_stateRejecter
 State rejecter to decide which available continuations should be traversed next.
 
TrackFindingCDC::CellularAutomaton< AState > m_automaton
 Findlet for adding a recursion cell state to the states.
 
bool m_param_endEarly = true
 Parameter: Make it possible to have all subresults in the end results vector.
 
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

template<class AState, class AStateRejecter, class AResult>
class Belle2::TreeSearcher< AState, AStateRejecter, AResult >

Findlet for constructing result paths out of a list of states, which are connected with weighted relations.

At each step, the states are again tested using a state rejector, which also knows the current path of states.

This rejector is allowed to alter the states, so using a cellular automaton it is assured, that the states are traversed in the correct order without overriding each other. It is however crucial, that the relations do not create cycles in the graph!

Definition at line 37 of file TreeSearcher.dcl.h.


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