1 #ifndef __JCLUSTERBUILDER__
2 #define __JCLUSTERBUILDER__
23 namespace JPP {
using namespace JMONITOR; }
27 using namespace JTRIGGER ;
73 static_cast<JModule>(*this) = module ;
84 multiplicity = max( (
unsigned int)0,multiplicity) ;
85 multiplicity = min(max_multiplicity,multiplicity) ;
86 return end_iterators[multiplicity+1] ;
92 multiplicity = max( (
unsigned int)0,multiplicity) ;
93 multiplicity = min(max_multiplicity,multiplicity) ;
94 return end_iterators[multiplicity] ;
99 return end_iterators[max_multiplicity+1] ;
104 return end_m(multiplicity) ;
109 return distance( begin_m(multiplicity), end_m(multiplicity) ) ;
114 return distance( begin_inclusive_m(multiplicity), end_inclusive_m(multiplicity) ) ;
125 for(
unsigned int m=max_multiplicity; m>0; --m ) {
146 const unsigned int m ;
A JHitL1 with a multiplicity.
functor that compares the multiplicity of a JCluster to some fixed given multiplicity.
unsigned int getMultiplicity() const
Returns the multiplicity evaluated at the last call to setMultiplicity.
JClusterBuilder(const JDAQSuperFrame &frame, const JModule &module, const double window, const bool combine)
constructor
Data structure for L1 hit.
Data structure for a composite optical module.
MinimalMultiplicityFunctor(const unsigned int _m)
unsigned int getInclusiveNclusters(const unsigned int multiplicity) const
return the number of clusters with at least the given multiplicity
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
void reset(const JDAQSuperFrame &frame, const JModule &module)
This is a way to re-use the allocated memory.
vector< JCluster >::const_iterator end_m(unsigned int multiplicity) const
returns end iterator for clusters with exactly the given multiplicity
void setEndIterators()
Use std::partition to sort the clusters in order of decreasing multiplicity.
Basic data structure for L0 hit.
vector< vector< JCluster >::iterator > end_iterators
iterators pointing to the first element whose multiplicity is lower than the index ...
JClusterBuilder(const double window, const bool combine)
default constructor
bool operator()(const JCluster &cluster) const
vector< JCluster >::const_iterator end_inclusive_m(unsigned int multiplicity) const
returns end iterator for clusters with at least the given multiplicity
const unsigned int max_multiplicity
the highest allowed value for the multiplicity
unsigned int getNclusters(const unsigned int multiplicity) const
return the number of clusters with exactly the given multiplicity
vector< JCluster >::const_iterator begin_inclusive_m(unsigned int multiplicity) const
returns begin iterator for clusters with at least the given multiplicity
Auxiliary data structure for L1 build parameters.
Local coincidence cluster builder.
Data frame of one optical module.
vector< JCluster >::const_iterator begin_m(unsigned int multiplicity) const
returns begin iterator for clusters with exactly the given multiplicity
Basic data structure for L1 hit.
Data structure for optical module.