Jpp
JSupernova.hh
Go to the documentation of this file.
1 #ifndef __JSUPERNOVA_JSUPERNOVA__
2 #define __JSUPERNOVA_JSUPERNOVA__
3 
4 #include <set>
5 
6 #include "JDAQ/JDAQEvent.hh"
8 #include "JDAQ/JDAQTimeslice.hh"
10 
13 
14 #include "JTools/JRange.hh"
15 
17 #include "JTrigger/JHitR0.hh"
18 #include "JTrigger/JMatchL0.hh"
21 
22 #include "TH1D.h"
23 
24 namespace JSUPERNOVA {
25 
26  using namespace std;
27  using namespace JPP;
28  using namespace KM3NETDAQ;
29 
31 
32  /**
33  * Auxiliary class to store reduced information of a coincidence on an optical module
34  */
36 
37  private:
38  double time;
40  int moduleID;
41 
42  public:
43  JCoincidenceSN(double t, int m, int dom)
44  : time(t), multiplicity(m), moduleID(dom)
45  { }
46 
47  int getMultiplicity() const {
48  return multiplicity;
49  }
50 
51  int getModule() const {
52  return moduleID;
53  }
54 
55  double getTime() const {
56  return time;
57  }
58 
59  bool operator<(const JCoincidenceSN& rhs) const {
60  return (time < rhs.time);
61  }
62 
63  };
64 
65  /**
66  * Auxiliary class to define a veto time window on a set of optical modules
67  */
68  class JVeto {
69 
70  private:
73 
74  public:
75 
76  /**
77  * Default constructor
78  * \param event DAQ event
79  * \param hitRouter hit router as source of hit time calibration
80  *
81  */
82  JVeto(const JDAQEvent& event, const JDAQHitRouter& hitRouter) {
83 
84  timeRange = JTimeRange::DEFAULT_RANGE;
85 
86  typedef JDAQTriggeredHit JHit_t;
87 
89  hit != event.end<JHit_t>();
90  ++hit) {
91 
92  moduleSet.insert(hit->getModuleID());
93 
94  timeRange.include(getTime(*hit, hitRouter.getPMT(*hit)));
95 
96  }
97  }
98 
99 
100  /**
101  * Get length of veto time range
102  */
103  double getLength() {
104  return timeRange.getLength();
105  }
106 
107  /**
108  * Determines if a coincidence is vetoed
109  * \param in coincidence under test
110  */
111  bool operator() (const JCoincidenceSN& in) const {
112  return timeRange(in.getTime()) &&
113  (moduleSet.find(in.getModule()) != moduleSet.end());
114  }
115 
116  };
117 
118 
119  /**
120  * Auxiliary class to build the supernova trigger dataset
121  */
122  class JDataSN
123  : public vector<JCoincidenceSN> {
124 
125  private:
126  int TMax_ns;
128 
129  public:
132 
133  /**
134  * Default constructor
135  * Configures the trigger with a time window and the pretrigger threshold.
136  */
137  JDataSN(double window, int threshold = 4)
138  : TMax_ns(window), multiplicityThreshold(threshold)
139  { };
140 
141  /**
142  * Builds coincidences from calibrated hit data and loads them in the internal vector.
143  * \param in hit data
144  * \param moduleID optical module ID for the hit data
145  */
146  void operator() (vector<JHitR0> in, int moduleID) {
147 
148  if (in.size() > 1) {
149 
150  for (vector<JHitR0>::const_iterator p = in.begin(); p != in.end(); ) {
151 
153 
154  while (++q != in.end() && q->getT() - p->getT() <= TMax_ns ) {}
155 
156  int M = distance(p, q);
157 
158  if (M >= multiplicityThreshold)
159  { this->push_back(JCoincidenceSN(p->getT(), M, moduleID)); }
160 
161  p = q;
162 
163  }
164  }
165  }
166 
167 
168  /**
169  * Builds coincidences from a timeslice and loads them into the internal vector.
170  * Double pulses are merged according to the coincidence time window.
171  *
172  * \param timeslice input timeslice
173  * \param moduleRouter detector module router
174  */
175  void operator() (const JDAQTimeslice* timeslice, const JModuleRouter& moduleRouter) {
176 
177  frameIndex = timeslice->getFrameIndex();
178  timeUTC = timeslice->getTimesliceStart();
179 
180  typedef JSuperFrame2D<JHitR0> JSuperFrame2D_t;
181 
182  typedef JSuperFrame1D<JHitR0> JSuperFrame1D_t;
183 
184  const JMatchL0<JHitR0> match(TMax_ns);
185 
186  for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
187 
188  int moduleID = frame->getModuleID();
189 
190  JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*frame, moduleRouter.getModule(moduleID));
191 
192  for (JSuperFrame2D_t::iterator i = buffer.begin(); i != buffer.end(); ++i) { i->join(match); }
193 
194  JSuperFrame1D_t& data = JSuperFrame1D_t::multiplex(buffer); data.pop_back();
195 
196  (*this)(data, moduleID);
197 
198  }
199 
200  sort(this->begin(), this->end());
201 
202  }
203 
204  };
205 
206 
207  /**
208  * Auxiliary class-operator to match a JVeto with a JCoincidenceSN object
209  * Provides an operator to test if a coincidence is vetoed
210  */
211 
212  class JMatchVeto {
213 
214  private:
216 
217  public:
218  /**
219  * Default constructor
220  * \param in coincidence to be matched against veto
221  */
222  JMatchVeto(const JCoincidenceSN& in) : dut(in) {}
223 
224  /**
225  * Operator
226  * \param in veto to be matched against inner coincidence
227  */
228  bool operator() (const JVeto& in) {
229  return in(dut);
230  }
231 
232  };
233 
234 
235  /**
236  * Auxiliary class to manage a set of vetoes
237  */
238  class JVetoSet : public vector<JVeto> {
239 
240  public:
241  /**
242  * Applies the veto set to a coincidence
243  * \param in coincidence to be tested
244  */
245  bool operator() (const JCoincidenceSN& in) {
246  return any_of(this->begin(), this->end(), JMatchVeto(in));
247  }
248 
249  };
250 
251 
252  /**
253  * Auxiliary class to manage a cluster of coincidences
254  */
255  class JClusterSN : public vector<JCoincidenceSN> {
256 
257  public:
258  /*
259  * Return the set of modules spanned over by the cluster
260  */
262 
263  JModuleSet out;
264 
265  for (JClusterSN::const_iterator p = this->begin(); p != this->end(); p++) {
266  out.insert(p->getModule());
267  }
268 
269  return out;
270  }
271 
272 
273 
274  /*
275  * Return the set of modules spanned over by the cluster
276  * \param multiplicityThreshold minimum multiplicity to count the coincidence
277  */
278  JModuleSet getModules(int multiplicityThreshold) const {
279 
280  JModuleSet out;
281 
282  for (JClusterSN::const_iterator p = this->begin(); p != this->end(); p++) {
283  if (p->getMultiplicity() >= multiplicityThreshold) {
284  out.insert(p->getModule());
285  }
286  }
287 
288  return out;
289  }
290 
291 
292  };
293 
294 
295  /**
296  * Interface for SN filter operator.
297  * This operator is meant to determine the SN trigger count.
298  */
299  class JSNFilter {
300  public:
301  virtual bool operator() (const JCoincidenceSN& in) = 0;
302  virtual bool operator() (const JClusterSN& in) = 0;
303  };
304 
305 
306  /**
307  * SN filter based on multiplicity selection
308  * optional suppression of multi-module coincidences
309  */
311 
312  private:
314  bool mode;
315 
316  public:
317  JSNFilterM(JRange<int> R, int m = 0) : A(R), mode(m) {}
318 
319  bool operator() (const JCoincidenceSN& in) {
320  return A(in.getMultiplicity());
321  }
322 
323  bool operator() (const JClusterSN& in) {
324  bool out = any_of(in.begin(), in.end(), *this);
325 
326  if (mode == 1) {
327  out = out && (in.getModules().size() == 1);
328  }
329 
330  return out;
331  }
332 
333  };
334 
335 
336  /**
337  * Select clusters without correlated coincidences
338  */
342 
343  public:
344  JSNFilterNM(const int n, const int m) :
345  numberOfModules(n), multiplicityThreshold(m)
346  {}
347 
348  bool operator() (const JCoincidenceSN& in) {
349  return true;
350  }
351 
352  bool operator() (const JClusterSN& in) {
353  JModuleSet modules = in.getModules(multiplicityThreshold);
354  return (modules.size() <= 1);
355  }
356 
357  };
358 
359 
360  /**
361  * SN filter based on veto window
362  */
364 
365  private:
368 
369  public:
370  JSNFilterMV(JRange<int>& R, JVetoSet& S) : A(R), V(S) {}
371 
372  bool operator() (const JCoincidenceSN& in) {
373  return A(in.getMultiplicity()) && !V(in);
374  }
375 
376  bool operator() (const JClusterSN& in) {
377  return any_of(in.begin(), in.end(), *this);
378  }
379 
380  };
381 
382 
383  /**
384  * Auxiliary class to apply the supernova trigger to SN data
385  */
386  class JTriggerSN : public vector<JClusterSN> {
387 
388  private:
389 
390  double TMaxCluster_ms = 1000.0;
391 
393 
394  public:
395 
398 
399  /**
400  * Default constructor
401  *
402  * \param tRange multiplicity range for selection of supernova coincidences
403  * \param TMax_ms time width for coincidence clustering (track / afterpulse)
404  */
405  JTriggerSN(JRange<int> tRange, double TMax_ms) :
406  TMaxCluster_ms(TMax_ms)
407  {};
408 
409  void setVeto(JVetoSet &vt) {
410  veto = vt;
411  }
412 
413 
414  /**
415  * Builds trigger
416  *
417  * \param in pretrigger SN data
418  */
419  void operator() (const JDataSN& in) {
420 
421  frameIndex = in.frameIndex;
422  timeUTC = in.timeUTC;
423 
424  for (vector<JCoincidenceSN>::const_iterator p = in.begin(); p != in.end(); ) {
425 
426  JClusterSN cluster;
427 
428  cluster.push_back(*p);
429 
431 
432  while(q != in.end() && (q->getTime() <= (p->getTime() + TMaxCluster_ms))) {
433  cluster.push_back(*q);
434  ++q;
435  }
436 
437  p = q;
438 
439  this->push_back(cluster);
440 
441  }
442  }
443 
444 
445  /**
446  * Benchmark different trigger steps
447  *
448  * 0: count every triggering cluster of coincidences
449  * 1: track veto based on time-correlated coincidences
450  * 2: track veto based on triggered events
451  * \return vector with count as a function of trigger step
452  */
454 
455  const int nBenchmarks = 3;
456 
457  vector<int> bench(nBenchmarks, 0);
458 
459  bench[0] = count_if(this->begin(), this->end(), JSNFilterM(A, 0));
460  bench[1] = count_if(this->begin(), this->end(), JSNFilterM(A, 1));
461  bench[2] = count_if(this->begin(), this->end(), JSNFilterMV(A, veto));
462 
463  return bench;
464 
465  }
466 
467 
468  /**
469  * Get triggered modules after track veto
470  *
471  * \return std::set containing triggered modules IDs
472  */
474 
475  JModuleSet triggeredModules;
476 
477  JSNFilterM F(A, 1);
478 
479  for (JTriggerSN::const_iterator p = this->begin(); p != this->end(); p++) {
480 
481  if ( F(*p) ) {
482  triggeredModules.insert((*p)[0].getModule());
483  }
484 
485  }
486 
487  return triggeredModules;
488 
489  }
490 
491 
492  /**
493  * Get modules according to a filter criterion
494  JModuleSet getModules(const JSNFilter& F) {
495  JModuleSet out;
496 
497  for (JTriggerSN::const_iterator p = this->begin(); p != this->end(); p++) {
498  if (F(*p)) {
499 
500  }
501  }
502 
503  }*/
504 
505 
506  /**
507  * Fills histogram with multiplicity counts
508  */
509  void fill(TH1D* out, const JSNFilter& F) {
510  for (JTriggerSN::const_iterator p = this->begin(); p != this->end(); p++) {
511 
512  JSNFilterNM F(2, 4);
513 
514 
515  for (JClusterSN::const_iterator q = p->begin(); q != p->end(); q++) {
516 
517  }
518  }
519  }
520 
521  /**
522  * > operator
523  * used by (reverse) std:priority_queue, in absence of this operator the container will behave unpredictably
524  */
525  bool operator>(const JTriggerSN& rhs) const {
526  return (frameIndex > rhs.frameIndex);
527  }
528 
529  /**
530  * < operator
531  */
532  bool operator<(const JTriggerSN& rhs) const {
533  return (frameIndex < rhs.frameIndex);
534  }
535 
536 
537  };
538 
539 
540  /**
541  * SN trigger summary information
542  *
543  */
544  class JSummarySN {
545  private:
546  int DETID;
548  int RUNNR;
549  int frame;
550  int trigger;
552 
553  public:
554  JSummarySN(int d, int am, int r, int f, JDAQUTCExtended tm, int tr)
555  : DETID(d), activeModules(am), RUNNR(r), frame(f), trigger(tr), time(tm)
556  { }
557 
558  friend inline std::ostream& operator<<(std::ostream& out, const JSummarySN& summary) {
559  out << summary.DETID << " ";
560  out << summary.activeModules << " ";
561  out << summary.RUNNR << " ";
562  out << summary.frame << " ";
563  out << summary.time << " ";
564  out << summary.trigger;
565 
566  return out;
567  }
568 
569  friend inline std::istream& operator>>(std::istream& in, JSummarySN& summary) {
570  in >> summary.DETID;
571  in >> summary.activeModules;
572  in >> summary.RUNNR;
573  in >> summary.frame;
574  in >> summary.time ;
575  in >> summary.trigger;
576 
577  return in;
578  }
579 
580  };
581 
582  /**
583  * SN trigger statistics, the information is stored in the form of a count as a function of the trigger level.
584  * the livetime needs to be set manually to compute the rates for the printing.
585  */
586 
587  class JTriggerSNStats : public vector<double> {
588 
589  private:
590  double livetime;
591 
592  public:
593  /**
594  * default constructor
595  *
596  * \param nModules number of modules of the detector
597  */
598  JTriggerSNStats(const int nModules) : vector<double>(nModules) {}
599 
600  void setLiveTime(const double lt) {
601  livetime = lt;
602  }
603 
604  /**
605  * put statistics into printable form
606  * outputs trigger level - rate - error
607  */
608  string toString() {
609 
610  ostringstream os;
611 
612  os << "=== SUPERNOVA TRIGGER STATISTICS ==" << endl;
613  os << "=> livetime [s] = " << livetime << endl;
614  os << "Level" << '\t' << "Rate (error)" << endl;
615 
616  if (livetime > 0) {
617  for (unsigned i = 0; i < this->size(); i++) {
618 
619  double count = (*this)[i];
620  double rate = count / livetime;
621  double error = 100 * (sqrt(count) / count);
622 
623  if (rate > 0) {
624  os << i << '\t';
625  os << scientific << setprecision(2) << rate << "Hz ";
626  os << fixed << setprecision(0) << "(" << setw(2) << error << "%)";
627  os << endl;
628  }
629  }
630  }
631 
632  return os.str();
633 
634  }
635 
636 
637  /**
638  * put statistics into printable form
639  * outputs trigger level - rate - error
640  */
641  string toSummaryFile() {
642 
643  ostringstream os;
644 
645  if (livetime > 0) {
646 
647  os << livetime << endl;
648 
649  for (unsigned i = 0; i < this->size(); i++) {
650 
651  double count = (*this)[i];
652  double rate = count / livetime;
653  double error = (sqrt(count) / count);
654 
655  if (rate > 0) {
656  os << i << ",";
657  os << scientific;
658  os << setprecision(2);
659  os << rate << ",";
660  os << error;
661  os << endl;
662  }
663  }
664  }
665 
666 
667  return os.str();
668 
669  }
670 
671  };
672 
673 }
674 
675 #endif
JSUPERNOVA::JSNFilterM
SN filter based on multiplicity selection optional suppression of multi-module coincidences.
Definition: JSupernova.hh:310
JSUPERNOVA::JMatchVeto::JMatchVeto
JMatchVeto(const JCoincidenceSN &in)
Default constructor.
Definition: JSupernova.hh:222
JSUPERNOVA::JVeto::JVeto
JVeto(const JDAQEvent &event, const JDAQHitRouter &hitRouter)
Default constructor.
Definition: JSupernova.hh:82
KM3NETDAQ::JDAQEvent
DAQ Event.
Definition: JDAQEvent.hh:34
JAANET::JHit_t
Auxiliary class to set-up Hit.
Definition: JHit_t.hh:25
JTOOLS::JRange::include
range_type include(argument_type x)
Include given value to range.
Definition: JRange.hh:388
JSUPERNOVA::JDataSN::frameIndex
int frameIndex
Definition: JSupernova.hh:130
JSUPERNOVA::JSNFilterMV
SN filter based on veto window.
Definition: JSupernova.hh:363
JSUPERNOVA::JTriggerSN
Auxiliary class to apply the supernova trigger to SN data.
Definition: JSupernova.hh:386
JSuperFrame2D.hh
JSUPERNOVA::JTriggerSNStats::setLiveTime
void setLiveTime(const double lt)
Definition: JSupernova.hh:600
JSUPERNOVA::JSNFilterMV::A
JRange< int > A
Definition: JSupernova.hh:366
KM3NETDAQ::JDAQEvent::begin
const_iterator< T > begin() const
Get begin of data.
JSUPERNOVA::JSNFilterNM
Select clusters without correlated coincidences.
Definition: JSupernova.hh:339
KM3NETDAQ::JDAQUTCExtended
Data structure for UTC time.
Definition: JDAQUTCExtended.hh:27
JEventToolkit.hh
JSUPERNOVA::JTriggerSNStats
SN trigger statistics, the information is stored in the form of a count as a function of the trigger ...
Definition: JSupernova.hh:587
JDAQHitRouter.hh
JDETECTOR::JModuleRouter::getModule
const JModule & getModule(const JObjectID &id) const
Get module parameters.
Definition: JModuleRouter.hh:89
JSUPERNOVA::JCoincidenceSN::operator<
bool operator<(const JCoincidenceSN &rhs) const
Definition: JSupernova.hh:59
JSUPERNOVA::JCoincidenceSN::multiplicity
int multiplicity
Definition: JSupernova.hh:39
JSUPERNOVA::JTriggerSNStats::toSummaryFile
string toSummaryFile()
put statistics into printable form outputs trigger level - rate - error
Definition: JSupernova.hh:641
getModule
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
Definition: JBeaconSimulator.cc:927
JSUPERNOVA::JSNFilterNM::JSNFilterNM
JSNFilterNM(const int n, const int m)
Definition: JSupernova.hh:344
KM3NETDAQ::JDAQChronometer::getTimesliceStart
JDAQUTCExtended getTimesliceStart() const
Get start of timeslice.
Definition: JDAQChronometer.hh:144
JTRIGGER::JSuperFrame1D
1-dimensional frame with time calibrated data from one optical module.
Definition: JSuperFrame1D.hh:35
JTOOLS::n
const int n
Definition: JPolint.hh:628
JSUPERNOVA::JCoincidenceSN
Auxiliary class to store reduced information of a coincidence on an optical module.
Definition: JSupernova.hh:35
JTOOLS::JRange::getLength
T getLength() const
Get length (difference between upper and lower limit).
Definition: JRange.hh:302
std::vector
Definition: JSTDTypes.hh:12
JSUPERNOVA::JVetoSet
Auxiliary class to manage a set of vetoes.
Definition: JSupernova.hh:238
KM3NETDAQ::JDAQChronometer::getFrameIndex
int getFrameIndex() const
Get frame index.
Definition: JDAQChronometer.hh:132
JTOOLS::JRange< double >
JSUPERNOVA::JSummarySN::operator>>
friend std::istream & operator>>(std::istream &in, JSummarySN &summary)
Definition: JSupernova.hh:569
JTOOLS::JRange< double >::DEFAULT_RANGE
static const JRange< double, std::less< double > > DEFAULT_RANGE
Default range.
Definition: JRange.hh:558
JSUPERNOVA::JSNFilterMV::V
JVetoSet V
Definition: JSupernova.hh:367
KM3NETDAQ::JDAQTimeslice
Data time slice.
Definition: JDAQTimeslice.hh:36
distance
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Definition: PhysicsEvent.hh:434
JSUPERNOVA::JSNFilterMV::JSNFilterMV
JSNFilterMV(JRange< int > &R, JVetoSet &S)
Definition: JSupernova.hh:370
JDAQTimeslice.hh
JSUPERNOVA::JTriggerSNStats::toString
string toString()
put statistics into printable form outputs trigger level - rate - error
Definition: JSupernova.hh:608
JSUPERNOVA::JDataSN::TMax_ns
int TMax_ns
Definition: JSupernova.hh:126
JSUPERNOVA::JSNFilterNM::multiplicityThreshold
int multiplicityThreshold
Definition: JSupernova.hh:341
JSUPERNOVA::JDataSN::JDataSN
JDataSN(double window, int threshold=4)
Default constructor Configures the trigger with a time window and the pretrigger threshold.
Definition: JSupernova.hh:137
JSUPERNOVA::JTriggerSN::timeUTC
JDAQUTCExtended timeUTC
Definition: JSupernova.hh:397
std::set< int >
JSUPERNOVA::JMatchVeto::dut
JCoincidenceSN dut
Definition: JSupernova.hh:215
KM3NETDAQ::JDAQEvent::end
const_iterator< T > end() const
Get end of data.
JSUPERNOVA::JVeto::getLength
double getLength()
Get length of veto time range.
Definition: JSupernova.hh:103
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
JSUPERNOVA::JTriggerSN::setVeto
void setVeto(JVetoSet &vt)
Definition: JSupernova.hh:409
KM3NETDAQ::JDAQTriggeredHit
DAQ triggered hit.
Definition: JDAQTriggeredHit.hh:25
JSUPERNOVA::JSNFilterNM::numberOfModules
int numberOfModules
Definition: JSupernova.hh:340
JRange.hh
JSUPERNOVA::JSummarySN::RUNNR
int RUNNR
Definition: JSupernova.hh:548
JSUPERNOVA::JCoincidenceSN::getModule
int getModule() const
Definition: JSupernova.hh:51
KM3NETDAQ::JDAQEvent::const_iterator
Template const_iterator.
Definition: JDAQEvent.hh:69
JSUPERNOVA::JTriggerSN::fill
void fill(TH1D *out, const JSNFilter &F)
Get modules according to a filter criterion JModuleSet getModules(const JSNFilter& F) { JModuleSet ou...
Definition: JSupernova.hh:509
JSUPERNOVA::JSummarySN::activeModules
int activeModules
Definition: JSupernova.hh:547
JSUPERNOVA::JSummarySN::JSummarySN
JSummarySN(int d, int am, int r, int f, JDAQUTCExtended tm, int tr)
Definition: JSupernova.hh:554
JSUPERNOVA::JTriggerSN::getModules
JModuleSet getModules(JRange< int > A=JRange< int >(6, 10))
Get triggered modules after track veto.
Definition: JSupernova.hh:473
JSUPERNOVA::JSummarySN::operator<<
friend std::ostream & operator<<(std::ostream &out, const JSummarySN &summary)
Definition: JSupernova.hh:558
JDETECTOR::JDAQHitRouter::getPMT
const JPMT & getPMT(const JDAQKeyHit &hit) const
Get PMT parameters.
Definition: JDAQHitRouter.hh:59
JMatchL0.hh
JSUPERNOVA::JTriggerSN::operator<
bool operator<(const JTriggerSN &rhs) const
< operator
Definition: JSupernova.hh:532
JSUPERNOVA::JTriggerSN::operator>
bool operator>(const JTriggerSN &rhs) const
operator used by (reverse) std:priority_queue, in absence of this operator the container will behave ...
Definition: JSupernova.hh:525
JSUPERNOVA::JDataSN::timeUTC
JDAQUTCExtended timeUTC
Definition: JSupernova.hh:131
JSUPERNOVA::JClusterSN::getModules
JModuleSet getModules() const
Definition: JSupernova.hh:261
JAANET::getTime
double getTime(const Hit &hit)
Get true time of hit.
Definition: JAAnetToolkit.hh:87
JModuleRouter.hh
JSUPERNOVA::JVeto::timeRange
JTimeRange timeRange
Definition: JSupernova.hh:71
JSUPERNOVA::JMatchVeto
Auxiliary class-operator to match a JVeto with a JCoincidenceSN object Provides an operator to test i...
Definition: JSupernova.hh:212
JSUPERNOVA::JSNFilterM::mode
bool mode
Definition: JSupernova.hh:314
JSUPERNOVA::JCoincidenceSN::moduleID
int moduleID
Definition: JSupernova.hh:40
JSUPERNOVA::JModuleSet
set< int > JModuleSet
Definition: JSupernova.hh:30
JSUPERNOVA::JTriggerSN::veto
JVetoSet veto
Definition: JSupernova.hh:392
JSUPERNOVA::JSNFilterM::A
JRange< int > A
Definition: JSupernova.hh:313
JDETECTOR::JModuleRouter
Router for direct addressing of module data in detector data structure.
Definition: JModuleRouter.hh:34
JSUPERNOVA::JClusterSN
Auxiliary class to manage a cluster of coincidences.
Definition: JSupernova.hh:255
JSUPERNOVA::JSNFilter
Interface for SN filter operator.
Definition: JSupernova.hh:299
JTRIGGER::JMatchL0
L0 match criterion.
Definition: JMatchL0.hh:27
JSUPERNOVA::JSummarySN
SN trigger summary information.
Definition: JSupernova.hh:544
JSUPERNOVA::JCoincidenceSN::getTime
double getTime() const
Definition: JSupernova.hh:55
JSuperFrame1D.hh
JSUPERNOVA::JSummarySN::frame
int frame
Definition: JSupernova.hh:549
std
Definition: jaanetDictionary.h:36
JSUPERNOVA::JTriggerSNStats::JTriggerSNStats
JTriggerSNStats(const int nModules)
default constructor
Definition: JSupernova.hh:598
JSUPERNOVA::JTriggerSN::JTriggerSN
JTriggerSN(JRange< int > tRange, double TMax_ms)
Default constructor.
Definition: JSupernova.hh:405
JSUPERNOVA::JVeto
Auxiliary class to define a veto time window on a set of optical modules.
Definition: JSupernova.hh:68
JSUPERNOVA::JCoincidenceSN::getMultiplicity
int getMultiplicity() const
Definition: JSupernova.hh:47
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
JSUPERNOVA::JTriggerSN::benchmark
vector< int > benchmark(JRange< int > A=JRange< int >(6, 10))
Benchmark different trigger steps.
Definition: JSupernova.hh:453
JDAQEvent.hh
JHitR0.hh
JAANET::livetime
Normalisation of MUPAGE events.
Definition: JHead.hh:594
JSUPERNOVA::JSummarySN::trigger
int trigger
Definition: JSupernova.hh:550
JSUPERNOVA::JSummarySN::time
JDAQUTCExtended time
Definition: JSupernova.hh:551
JTOOLS::r
data_type r[M+1]
Definition: JPolint.hh:709
JSUPERNOVA::JCoincidenceSN::JCoincidenceSN
JCoincidenceSN(double t, int m, int dom)
Definition: JSupernova.hh:43
JSUPERNOVA::JCoincidenceSN::time
double time
Definition: JSupernova.hh:38
JTRIGGER::JSuperFrame2D
2-dimensional frame with time calibrated data from one optical module.
Definition: JSuperFrame2D.hh:41
JSUPERNOVA::JTriggerSN::frameIndex
int frameIndex
Definition: JSupernova.hh:396
JSUPERNOVA::JSummarySN::DETID
int DETID
Definition: JSupernova.hh:546
JSUPERNOVA::JVeto::moduleSet
JModuleSet moduleSet
Definition: JSupernova.hh:72
JSUPERNOVA::JSNFilterM::JSNFilterM
JSNFilterM(JRange< int > R, int m=0)
Definition: JSupernova.hh:317
JSUPERNOVA::JTriggerSNStats::livetime
double livetime
Definition: JSupernova.hh:590
JDAQUTCExtended.hh
JSUPERNOVA::JDataSN
Auxiliary class to build the supernova trigger dataset.
Definition: JSupernova.hh:122
JDAQTriggeredHit.hh
JSUPERNOVA::JClusterSN::getModules
JModuleSet getModules(int multiplicityThreshold) const
Definition: JSupernova.hh:278
JSUPERNOVA
Definition: JSupernova.hh:24
JSUPERNOVA::JDataSN::multiplicityThreshold
int multiplicityThreshold
Definition: JSupernova.hh:127
JDETECTOR::JDAQHitRouter
Simple wrapper around JModuleRouter class for direct addressing of PMT data in detector data structur...
Definition: JDAQHitRouter.hh:24