![]() |
Belle II Software
release-08-02-04
|
Selector to remove all relations in the list, which share the same collection item - except one in case the useOnlySingleBestCandidate is set to false (then, only the one with the heightest weight is used). More...
#include <SingleMatchSelector.h>


Public Types | |
| using | WeightedRelationItem = WeightedRelation< ACollectorItem, const ACollectionItem > |
| Shortcut class name for a weighted relation between a collector item and a collection item. | |
| using | Super = Findlet< WeightedRelation< ACollectorItem, const ACollectionItem > > |
| The parent class. | |
| 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 | |
| void | exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override |
| Expose the useOnlySingleBestCandidate parameter to the module. | |
| void | apply (std::vector< WeightedRelationItem > &weightedRelations) override |
| Main function of this class doing the relation selection. | |
| void | setUseOnlySingleBestCandidate (bool useOnlySingleBestCandidate) |
| Set the UseOnlySingleBestCandidate parameter (mostly for tests). | |
| 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 Attributes | |
| bool | m_param_useOnlySingleBestCandidate = true |
| Whether to output only those relations, where the relation from collectio to collector items is injective or to output always the best relation for a given collection item. | |
| 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. | |
Selector to remove all relations in the list, which share the same collection item - except one in case the useOnlySingleBestCandidate is set to false (then, only the one with the heightest weight is used).
This means the function will output a list of weighted relations, where the relations from collection to collector items are injective (but not in the other way round: a collector can have multiple matched collection items, but one collection item only one matched collector item).
Most likely, the full stack is used as follows:
Please note that the CollectionItems are therefore const whereas the CollectorItems are not. All the passed WeightedRelations lists must be sorted.
Definition at line 44 of file SingleMatchSelector.h.