 |
Belle II Software
release-05-02-19
|
12 #include <tracking/trackFindingCDC/utilities/CompositeProcessingSignalListener.h>
23 class ModuleParamList;
25 namespace TrackFindingCDC {
27 template<
class ... AIOTypes>
28 class Findlet :
public CompositeProcessingSignalListener {
32 using IOTypes = std::tuple<AIOTypes...>;
39 using Type = std::vector<typename std::remove_reference<T>::type>;
44 struct ToVectorImpl<const T> {
46 using Type =
const std::vector<typename std::remove_reference<T>::type>;
55 using IOVectors = std::tuple< std::vector<AIOTypes>... >;
64 return "(no description)";
72 const std::string& prefix __attribute__((unused)))
77 virtual void apply(ToVector<AIOTypes>& ... ioVectors) = 0;
typename ToVectorImpl< T >::Type ToVector
Short hand for ToRangeImpl.
virtual ~Findlet()=default
Make destructor of interface virtual.
virtual void apply(ToVector< AIOTypes > &... ioVectors)=0
Main function executing the algorithm.
Abstract base class for different kinds of events.
virtual void exposeParameters(ModuleParamList *moduleParamList __attribute__((unused)), const std::string &prefix __attribute__((unused)))
Forward prefixed parameters of this findlet to the module parameter list.
std::tuple< AIOTypes... > IOTypes
Types that should be served to apply on invokation.
std::tuple< std::vector< AIOTypes >... > IOVectors
Vector types that should be served to apply on invokation.
Forward a range of mutable objects.
std::vector< typename std::remove_reference< T >::type > Type
A mutable range of Ts.
The Module parameter list class.
virtual std::string getDescription()
Brief description of the purpose of the concret findlet.