1 #ifndef __JTRIGGER__JBUILDL2__
2 #define __JTRIGGER__JBUILDL2__
29 namespace JPP {
using namespace JTRIGGER; }
46 template<
class JElement_t>
95 template<
template<
class,
class>
class JContainer_t,
class JAllocator_t,
class JOutput_t>
97 const JContainer_t <JElement_t, JAllocator_t>& input,
102 for (
typename JContainer_t<JElement_t, JAllocator_t>::const_iterator __p = input.begin(); __p != input.end(); ++__p) {
104 clone.fast_forward(*__p);
124 template<
class JOutput_t>
132 build(input, back_inserter(buffer));
134 (*this)(input, buffer, out);
148 template<
class JOutput_t>
153 if (!input.
empty()) {
166 bool isL2(
const JElement_t& hit)
const
170 if (this->getTimeDifference(hit,*(i->get())) <=
TMaxLocal_ns) {
176 if (this->getTimeDifference(hit,*(j->get())) <=
TMaxLocal_ns) {
226 const double Tmax_ns,
227 const double ctMin) :
254 template<
class JElement_t,
template<
class,
class>
class JContainer_t,
class JAllocator_t,
class JOutput_t>
256 const JContainer_t <JElement_t, JAllocator_t>& input,
266 build(super_frame, input, back_inserter(buffer));
268 JSuperFrameClone2D_t
clone(super_frame);
274 for (
typename JSuperFrameClone2D_t::const_iterator i = clone.begin(); i != clone.end(); ++i) {
276 for (
typename JSuperFrameClone2D_t::value_type::const_iterator __q = i->fast_forward(*__p); JSuperFrameClone2D_t::getTimeDifference(*__p,*__q) <=
TMaxLocal_ns; ++__q) {
278 hit.push_back(
JHitL0(i->getPMTIdentifier(),
280 JSuperFrameClone2D_t::getJHit(*__q)));
300 template<
class JElement_t,
class JOutput_t>
308 build(input, back_inserter(buffer));
310 (*this)(input, buffer, out);
324 template<
class JOutput_t>
329 if (!input.
empty()) {
365 const double Tmax_ns,
366 const double ctMin) :
393 template<
class JElement_t,
template<
class,
class>
class JContainer_t,
class JAllocator_t,
class JOutput_t>
395 const JContainer_t <JElement_t, JAllocator_t>& input,
403 build(super_frame, input, back_inserter(buffer));
419 hit.set(i->getJHit());
421 hit.add(i->getJHit());
441 template<
class JElement_t,
class JOutput_t>
449 build(input, back_inserter(buffer));
451 (*this)(input, buffer, out);
465 template<
class JOutput_t>
470 if (!input.
empty()) {
int getModuleID() const
Get module identifier.
std::vector< value_type >::const_iterator const_iterator
JBuildL2(const int numberOfHits, const double Tmax_ns, const double ctMin)
Constructor.
Data structure for L1 hit.
Data structure for a composite optical module.
static JSuperFrame2D< JElement_t > demultiplex
Demultiplexer.
void operator()(const JSuperFrame2D< JElement_t > &input, JOutput_t out) const
Build hits from calibrated data.
JBuildL2(const JL2Parameters ¶meters)
Constructor.
double ctMin
minimal cosine space angle between PMT axes
void operator()(const JSuperFrame2D< JElement_t > &super_frame, const JContainer_t< JElement_t, JAllocator_t > &input, JOutput_t out) const
Build hits from calibrated data.
void operator()(const JSuperFrame2D< JElement_t > &input, JOutput_t out) const
Build hits from calibrated data.
Basic data structure for R2 hit.
void operator()(const JSuperFrame2D< JElement_t > &super_frame, const JContainer_t< JElement_t, JAllocator_t > &input, JOutput_t out) const
Build hits from calibrated data.
int numberOfHits
minimal number of hits
void operator()(const JDAQSuperFrame &input, const JModule &module, JOutput_t out) const
Build hits from DAQ data.
Basic data structure for L0 hit.
Basic data structure for time and time over threshold information of hit.
JBuildL2(const int numberOfHits, const double Tmax_ns, const double ctMin)
Constructor.
void operator()(const JSuperFrame2D< JElement_t > &super_frame, const JContainer_t< JElement_t, JAllocator_t > &input, JOutput_t out) const
Build hits from calibrated data.
JBuildL2(const JL2Parameters ¶meters)
Constructor.
Basic data structure for L2 hit.
double getDot(const JFirst_t &first, const JSecond_t &second)
Get dot product of objects.
const JPosition3D & getPosition() const
Get position.
JSuperFrameClone2D< JElement_t > clone
Data structure for L2 parameters.
void operator()(const JDAQSuperFrame &input, const JModule &module, JOutput_t out) const
Build hits from DAQ data.
JBuildL2(const int numberOfHits, const double Tmax_ns, const double ctMin)
Constructor.
JBuildL2(const JL2Parameters ¶meters)
Constructor.
void operator()(const JDAQSuperFrame &input, const JModule &module, JOutput_t out) const
Build hits from DAQ data.
bool isL2(const JElement_t &hit) const
Test if requirements for given hit are satisfied.
Data structure for L0 hit.
double TMaxLocal_ns
maximal time difference [ns]
void fast_forward(argument_type hit) const
Increment the internal iterators until the lower bounds corresponding to the time of the given hit...
const JHitL1 & sort()
Sort L0 hits.
Reduced data structure for L1 hit.
2-dimensional frame with time calibrated data from one optical module.
void operator()(const JSuperFrame2D< JElement_t > &input, JOutput_t out) const
Build hits from calibrated data.
Auxiliary class to extend hit building functionality to all DAQ data types.
Data frame of one optical module.
Data structure for a composite optical module.