Jpp
JDAQTestkit.hh
Go to the documentation of this file.
1 #ifndef __JDAQTESTKIT__
2 #define __JDAQTESTKIT__
3 
4 #include "TRandom3.h"
5 
11 #include "JDAQ/JDAQEventIO.hh"
13 #include "JDAQ/JDAQTimesliceIO.hh"
14 #include "JMath/JRandom.hh"
15 
16 /**
17  * \author mdejong
18  */
19 
20 namespace KM3NETDAQ {
21 
22  using JMATH::getRandom;
23 
24  /**
25  * Randomize chronometer.
26  *
27  * \param p pointer to valid object
28  */
29  inline void randomize(JDAQChronometer* p)
30  {
31  new (p) JDAQChronometer(getRandom<int>(1, 100000), //! detector
32  getRandom<int>(1, 99999999), //! run
33  getRandom<int>(1, 99999999)); //! frame index
34  };
35 
36 
37  /**
38  * Randomize hit.
39  *
40  * \param p pointer to valid object
41  */
42  inline void randomize(JDAQHit* p)
43  {
44  new (p) JDAQHit(getRandom<JDAQHit::JPMT_t>(0, NUMBER_OF_PMTS),
45  getRandom<JDAQHit::JTDC_t>(0, getRTS()),
46  getRandom<JDAQHit::JTOT_t>());
47  }
48 
49 
50  /**
51  * Randomize trigger mask.
52  *
53  * \param p pointer to valid object
54  */
55  inline void randomize(JDAQTriggerMask* p)
56  {
57  new (p) JDAQTriggerMask(getRandom<JTriggerMask_t>(1, 0xFFFFFFFF));
58  };
59 
60 
61  /**
62  * Randomize event.
63  *
64  * \param p pointer to valid object
65  */
66  inline void randomize(JDAQEvent* p)
67  {
68  p->clear();
69  p->setDAQChronometer(getRandom<JDAQChronometer>());
70  p->setDAQTriggerMask(getRandom<JDAQTriggerMask>());
71 
72  for (int i = getRandom<int>(1, 1000); i != 0; --i) {
73  p->push_back(JDAQKeyHit(getRandom<int>(0, 100000),
74  getRandom<JDAQHit>()));
75  }
76 
77  for (int i = getRandom<int>(1, 10); i != 0; --i) {
78  p->push_back(JDAQTriggeredHit(getRandom<int>(0, 100000),
79  getRandom<JDAQHit>(),
80  p->getDAQTriggerMask()));
81  }
82  }
83 
84 
85  /**
86  * Randomize summary slice.
87  *
88  * \param p pointer to valid object
89  */
90  inline void randomize(JDAQSummaryslice* p)
91  {
92  p->clear();
93  p->setDAQChronometer(getRandom<JDAQChronometer>());
94 
95  JDAQSummaryFrame buffer(getRandom<int>(0, 100000));
96 
97  for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
98  buffer.setRate(i, getRandom<double>(0, 1.0e6));
99  }
100 
101  p->push_back(buffer);
102  }
103 
104 
105  /**
106  * Randomize timeslice.
107  *
108  * \param p pointer to valid object
109  */
110  inline void randomize(JDAQSuperFrame* p)
111  {
112  p->clear();
113 
114  p->setDAQSuperFrameHeader(JDAQSuperFrameHeader(getRandom<JDAQChronometer>(), getRandom<int>(0, 100000)));
115 
116  for (int i = getRandom<int>(0, 10000); i != 0; --i) {
117  p->add(getRandom<JDAQHit>());
118  }
119  }
120 
121 
122  /**
123  * Randomize timeslice.
124  *
125  * \param p pointer to valid object
126  */
127  inline void randomize(JDAQTimeslice* p)
128  {
129  p->clear();
130  p->setDAQChronometer(getRandom<JDAQChronometer>());
131 
132  JDAQSuperFrame buffer(JDAQSuperFrameHeader(p->getDAQChronometer(), getRandom<int>(0, 100000)));
133 
134  for (int i = getRandom<int>(0, 10000); i != 0; --i) {
135  buffer.add(getRandom<JDAQHit>());
136  }
137 
138  p->push_back(buffer);
139  }
140 }
141 
142 #endif
KM3NETDAQ::JDAQChronometer::setDAQChronometer
void setDAQChronometer(const JDAQChronometer &chronometer)
Set DAQ chronometer.
Definition: JDAQChronometer.hh:99
JDAQ.hh
KM3NETDAQ::JDAQEvent
DAQ Event.
Definition: JDAQEvent.hh:30
KM3NETDAQ::getRTS
double getRTS()
Get TDC dynamic range.
Definition: JDAQClock.hh:173
KM3NETDAQ::NUMBER_OF_PMTS
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
KM3NETDAQ::JDAQTimeslice
Data time slice.
Definition: JDAQTimeslice.hh:30
JDAQClock.hh
KM3NETDAQ::JDAQEvent::push_back
void push_back(const JDAQKeyHit &hit)
Add hit.
Definition: JDAQEvent.hh:205
JDAQChronometer.hh
KM3NETDAQ::JDAQTriggeredHit
DAQ triggered hit.
Definition: JDAQTriggeredHit.hh:20
JDAQEventIO.hh
KM3NETDAQ::JDAQSummaryFrame
Data storage class for rate measurements of all PMTs in one module.
Definition: JDAQSummaryFrame.hh:320
JDAQTimesliceIO.hh
KM3NETDAQ::JDAQTimeslice::clear
void clear()
Clear data.
Definition: JDAQTimeslice.hh:97
KM3NETDAQ::JDAQFrame::clear
void clear()
Clear data.
Definition: JDAQFrame.hh:125
KM3NETDAQ::JDAQTriggerMask::setDAQTriggerMask
void setDAQTriggerMask(const JDAQTriggerMask &mask)
Set trigger mask.
Definition: JDAQTriggerMask.hh:117
KM3NETDAQ::JDAQEvent::clear
void clear()
Clear event.
Definition: JDAQEvent.hh:193
KM3NETDAQ::JDAQSummaryslice
Data summary slice.
Definition: JDAQSummaryslice.hh:25
KM3NETDAQ::JDAQKeyHit
DAQ key hit.
Definition: JDAQKeyHit.hh:19
KM3NETDAQ::JDAQSuperFrameHeader
DAQ super frame header.
Definition: JDAQSuperFrameHeader.hh:19
JDAQTriggerMask.hh
KM3NETDAQ::JDAQTriggerMask
Auxiliary class for trigger mask.
Definition: JDAQTriggerMask.hh:48
KM3NETDAQ::JDAQSuperFrame::add
JDAQSuperFrame & add(const JDAQSuperFrame &super_frame)
Add data from same optical module.
Definition: JDAQSuperFrame.hh:78
KM3NETDAQ::JDAQChronometer::getDAQChronometer
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
Definition: JDAQChronometer.hh:88
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
KM3NETDAQ::JDAQSuperFrame
Data frame of one optical module.
Definition: JDAQSuperFrame.hh:22
JDAQSummarysliceIO.hh
KM3NETDAQ::JDAQHit
Hit data structure.
Definition: JDAQHit.hh:34
JDAQHit.hh
JRandom.hh
KM3NETDAQ::JDAQSummaryFrame::setRate
void setRate(const int tdc, const double rate_Hz)
Set count rate.
Definition: JDAQSummaryFrame.hh:481
KM3NETDAQ::randomize
void randomize(JDAQChronometer *p)
Randomize chronometer.
Definition: JDAQTestkit.hh:29
KM3NETDAQ::JDAQChronometer
DAQ chronometer.
Definition: JDAQChronometer.hh:21
KM3NETDAQ::JDAQTriggerMask::getDAQTriggerMask
const JDAQTriggerMask & getDAQTriggerMask() const
Get DAQ trigger mask.
Definition: JDAQTriggerMask.hh:95
KM3NETDAQ::JDAQSuperFrameHeader::setDAQSuperFrameHeader
void setDAQSuperFrameHeader(const JDAQSuperFrameHeader &header)
Set DAQ super frame header.
Definition: JDAQSuperFrameHeader.hh:86
JMATH::getRandom
T getRandom()
Get random value.
Definition: JRandom.hh:113