Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
JTRIGGER::JTimesliceL1< JDAQTimeslice_t > Class Template Reference

Auxiliary class to build JDAQTimeslice for L1 timeslice. More...

#include <JTimesliceL1.hh>

Inheritance diagram for JTRIGGER::JTimesliceL1< JDAQTimeslice_t >:

Public Member Functions

 JTimesliceL1 ()
 Default constructor. More...
 
template<class JHit_t >
 JTimesliceL1 (const JTimeslice< JHit_t > &timeslice, const JTimesliceRouter &timesliceRouter, const JModuleRouter &moduleRouter, const double TMaxLocal_ns)
 Constructor. More...
 

Detailed Description

template<class JDAQTimeslice_t>
class JTRIGGER::JTimesliceL1< JDAQTimeslice_t >

Auxiliary class to build JDAQTimeslice for L1 timeslice.

Definition at line 36 of file JTimesliceL1.hh.

Constructor & Destructor Documentation

template<class JDAQTimeslice_t>
JTRIGGER::JTimesliceL1< JDAQTimeslice_t >::JTimesliceL1 ( )
inline

Default constructor.

Definition at line 45 of file JTimesliceL1.hh.

45  :
46  JDAQTimeslice_t()
47  {}
template<class JDAQTimeslice_t>
template<class JHit_t >
JTRIGGER::JTimesliceL1< JDAQTimeslice_t >::JTimesliceL1 ( const JTimeslice< JHit_t > &  timeslice,
const JTimesliceRouter timesliceRouter,
const JModuleRouter moduleRouter,
const double  TMaxLocal_ns 
)
inline

Constructor.

Parameters
timeslicetriggered timeslice (e.g. L1)
timesliceRoutertimeslice router
moduleRoutermodule router
TMaxLocal_nsMaximal time for L1 [ns]

Definition at line 59 of file JTimesliceL1.hh.

62  :
63  JDAQTimeslice_t()
64  {
65  using namespace std;
66 
67  this->setDAQChronometer(timeslice.getDAQChronometer());
68 
69  vector<JDAQHit> buffer;
70 
71  for (typename JTimeslice<JHit_t>::const_iterator frame = timeslice.begin(); frame != timeslice.end(); ++frame) {
72 
73  const JModule& module = moduleRouter.getModule(frame->getModuleID());
74  const JTimeRange timeOffset = getTimeRange(JTimeRange(0,0), module);
75 
76  buffer.clear();
77 
78  for (typename JFrame<JHit_t>::const_iterator p = frame->begin(); p != frame->end(); ) {
79 
80  double Tmin = frame->getT(*p);
81  double Tmax = Tmin + TMaxLocal_ns;
82 
83  while (++p != frame->end() && frame->getT(*p) <= Tmax) {
84  Tmax = frame->getT(*p) + TMaxLocal_ns;
85  }
86 
87  const JDAQFrameSubset& subset = timesliceRouter.getFrameSubset(frame->getModuleID(), JTimeRange(Tmin, Tmax).add(timeOffset));
88 
89  for (JDAQFrameSubset::const_iterator i = subset.begin(); i != subset.end(); ++i) {
90 
91  const JCalibration& calibration = module.getPMT(i->getPMT()).getCalibration();
92  const double t1 = getTime(*i, calibration);
93 
94  if (t1 >= Tmin && t1 <= Tmax) {
95  buffer.push_back(*i);
96  }
97  }
98  }
99 
100  this->push_back(JDAQSuperFrame(timesliceRouter.getSuperFrame(frame->getModuleID()).getDAQSuperFrameHeader()));
101 
102  this->rbegin()->add(buffer.size(), buffer.data());
103  }
104  }
std::vector< value_type >::const_iterator const_iterator
Definition: JTimeslice.hh:34
const JDAQSuperFrame & getSuperFrame(const JDAQModuleIdentifier &module) const
Get super frame.
JTimeRange getTimeRange(const JEvent &event)
Get time range (i.e.
JRange< double > JTimeRange
Type definition for time range.
Hit data structure.
Definition: JDAQHit.hh:36
JDAQFrameSubset getFrameSubset(const JDAQModuleIdentifier &module, const JTimeRange &timeRange) const
Get subset of frame given module identifier and range of hit times.
range_type & add(argument_type x)
Add offset.
Definition: JRange.hh:385
Data frame for calibrated hits of one PMT.
Definition: JFrame.hh:31
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
double getTime(const JDAQHit &hit, const JCalibration &cal)
Get calibrated time of DAQ hit.
Definition: JHitToolkit.hh:34

The documentation for this class was generated from the following file: