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
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
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 a composite optical module.