1#ifndef __JTRIGGER__JBUILDL2__
2#define __JTRIGGER__JBUILDL2__
44 template<
class JHit_t>
80 template<
class JOutput_t>
82 const std::vector <JHit_t>& inputL1,
87 for (
typename std::vector<JHit_t>::const_iterator p = inputL1.begin(); p != inputL1.end(); ++p) {
112 template<
class T,
class JOutput_t>
115 const std::vector <JHit_t>& inputL1,
120 for (
typename std::vector<JHit_t>::const_iterator p = inputL1.begin(); p != inputL1.end(); ++p) {
124 if (
isL2(clone,*p)) {
142 template<
class JOutput_t>
163 template<
class JOutput_t>
168 if (!input.
empty()) {
202 if (
getDot(i->getDirection(),
j->getDirection()) >=
ctMin) {
259 template<
class JOutput_t>
261 const std::vector <JHit>& inputL2,
266 for (
typename std::vector<JHit>::const_iterator p = inputL2.begin(); p != inputL2.end(); ++p) {
274 hit.push_back(
JHitL0(i->getPMTIdentifier(),
296 template<
class JOutput_t>
301 static_cast<const JBuildL2<JHit>&
>(*this)(inputL0, std::back_inserter(bufferL2));
303 (*this)(inputL0, bufferL2, out);
317 template<
class JOutput_t>
322 if (!input.
empty()) {
326 (*this)(bufferL0, out);
372 template<
class JOutput_t>
374 const std::vector <JHit>& inputL2,
379 for (
typename std::vector<JHit>::const_iterator p = inputL2.begin(); p != inputL2.end(); ++p) {
391 hit.
set(i->getJHit());
393 hit.
add(i->getJHit());
395 if (i->getT() < hit.
getT()) {
417 template<
class JOutput_t>
422 static_cast<const JBuildL2<JHit>&
>(*this)(inputL0, std::back_inserter(bufferL2));
424 (*this)(inputL0, bufferL2, out);
438 template<
class JOutput_t>
443 if (!input.
empty()) {
447 (*this)(bufferL0, out);
Basic data structure for L0 hit.
Basic data structure for L2 hit.
Basic data structure for R2 hit.
Data structure for optical module.
Basic data structure for time and time over threshold information of hit.
Data structure for a composite optical module.
void setPosition(const JVector3D &pos)
Set position.
const JPosition3D & getPosition() const
Get position.
std::vector< JHit > bufferL2
void operator()(const JSuperFrame2D< JHit > &inputL0, JOutput_t out) const
Build hits from calibrated data.
void operator()(const JDAQSuperFrame &input, const JModule &module, JOutput_t out) const
Build hits from DAQ data.
JBuildL2(const JL2Parameters ¶meters)
Constructor.
void operator()(const JSuperFrame2D< JHit > &inputL0, const std::vector< JHit > &inputL2, JOutput_t out) const
Build hits from calibrated data.
void operator()(const JSuperFrame2D< JHit > &inputL0, JOutput_t out) const
Build hits from calibrated data.
void operator()(const JDAQSuperFrame &input, const JModule &module, JOutput_t out) const
Build hits from DAQ data.
void operator()(const JSuperFrame2D< JHit > &inputL0, const std::vector< JHit > &inputL2, JOutput_t out) const
Build hits from calibrated data.
JBuildL2(const JL2Parameters ¶meters)
Constructor.
std::vector< JHit > bufferL2
void operator()(const JSuperFrame2D< JHit_t > &inputL0, const std::vector< JHit_t > &inputL1, JOutput_t out) const
Build hits from calibrated data.
JBuildL2(const JL2Parameters ¶meters)
Constructor.
void operator()(T __begin, T __end, const std::vector< JHit_t > &inputL1, JOutput_t out) const
Build hits from calibrated data.
std::vector< JHit_t > bufferL1
void operator()(const JDAQSuperFrame &input, const JModule &module, JOutput_t out) const
Build hits from DAQ data.
bool isL2(const JSuperFrameClone2D< JHit_t > &clone, const JHit_t &hit) const
Test if requirements for given hit are satisfied.
void operator()(const JSuperFrame2D< JHit_t > &inputL0, JOutput_t out) const
Build hits from calibrated data.
JContainer_t::const_iterator const_iterator
Data structure for L0 hit.
Data structure for L1 hit.
const JHitL1 & sort()
Sort L0 hits.
Reduced data structure for L1 hit.
void set(const JHit &hit, const double weight=1.0)
Set hit.
JHitR1 & add(const JHit &hit, const double weight=1.0)
Add hit.
int getN() const
Get count.
double getT() const
Get calibrated time of hit.
2-dimensional frame with time calibrated data from one optical module.
std::vector< value_type >::const_iterator const_iterator
void fast_forward(argument_type hit) const
Increment the internal iterators until the lower bounds corresponding to the time of the given hit.
int getModuleID() const
Get module identifier.
Data frame of one optical module.
double getDot(const JNeutrinoDirection &first, const JNeutrinoDirection &second)
Dot product.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary classes and methods for triggering.
double getTimeDifference(const JDAQChronometer &first, const JDAQChronometer &second)
Get time difference between two chronometers.
Auxiliary class to set-up Hit.
Auxiliary class to extend hit building functionality to all DAQ data types.
JSuperFrame2D< JHit_t > & demultiplex(const JDAQSuperFrame &input, const JModule &module) const
Demultiplex and pre-process DAQ super frame.
Data structure for L2 parameters.
double ctMin
minimal cosine space angle between PMT axes
double TMaxLocal_ns
maximal time difference [ns]
int numberOfHits
minimal number of hits