41 << setw(3) << (int) hit.
getPMT() <<
' '
42 << setw(8) << hex << hit.
getT() <<
' '
43 << setw(10) << dec << hit.
getT() <<
' '
44 << setw(3) << (int) hit.
getToT();
53 void print(std::ostream& out,
const int type)
60 case JChecksum::TIME_t:
64 case JChecksum::ETDC_t:
68 case JChecksum::EPMT_t:
72 case JChecksum::EUDP_t:
76 case JChecksum::SIZE_t:
94 int main(
int argc,
char **argv)
98 using namespace KM3NETDAQ;
110 JParser<> zap(
"Example program to histogram timeslice data.");
113 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
114 zap[
'C'] =
make_field(selector) = getROOTClassSelection<JDAQTimesliceTypes_t>();
116 zap[
'N'] =
make_field(
N,
"number of rows to print") = 10;
117 zap[
'R'] =
make_field(rate_Hz,
"high-rate veto [Hz]") = 0.0;
122 catch(
const exception& error) {
123 FATAL(error.what() << endl);
136 JFrameIndexRange frame_index = getFrameIndexRange<JDAQSummaryslice>(inputFile);
138 const Long64_t nx = frame_index.
second - frame_index.first + 1;
139 const Double_t
xmin = (Double_t) frame_index.first - 0.5;
140 const Double_t
xmax = (Double_t) frame_index.second + 0.5;
146 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
150 for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
156 errors[error->type] += 1;
158 H1[error->type]->Fill((Double_t) frame->getFrameIndex());
165 if (error->pos >= 0) {
167 const int pmt = (*frame)[error->pos].getPMT();
170 << setw(10) << frame->getModuleID() <<
'.' << setw(2) << setfill(
'0') << pmt << setfill(
' ') <<
' '
171 << setw(8) << frame->getFrameIndex() <<
' '
172 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
173 << setw(2) << error->type <<
' ';
176 cout << setw(1) << frame->testHighRateVeto(pmt)
177 << setw(1) << frame->testFIFOStatus (pmt) <<
' ';
180 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
181 << setw(4) << frame->getUDPMaximalSequenceNumber();
185 print(cout, error->type);
187 cout << endl << endl;
189 deque<JDAQHit> buffer;
191 for (
int i = error->pos - 1,
n = 0; i >= 0 &&
n <=
N; --i) {
192 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
193 buffer.push_front((*frame)[i]);
198 for (deque<JDAQHit>::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
199 print(cout, *i); cout << endl;
202 print(cout, (*frame)[error->pos]);
204 cout <<
" <<< " << endl;
206 for (
int i = error->pos + 1,
n = 0; i < frame->size() &&
n <=
N; ++i) {
207 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
208 print(cout, (*frame)[i]); cout << endl;
216 << setw(10) << frame->getModuleID() <<
' ' << setw(2) <<
' ' <<
' '
217 << setw(8) << frame->getFrameIndex() <<
' '
218 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
219 << setw(2) << error->type <<
' ';
221 cout << setw(1) <<
' '
222 << setw(1) <<
' ' <<
' ';
224 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
225 << setw(4) << frame->getUDPMaximalSequenceNumber();
229 print(cout, error->type);
231 cout << endl << endl;
241 print(cout, i->first);
243 cout <<
' ' << setw(8) << i->second << endl;
Utility class to parse command line options.
int main(int argc, char *argv[])
ROOT TTree parameter settings of various packages.
Auxiliary class to select ROOT class based on class name.
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
Long64_t counter_type
Type definition for counter.
result_type::const_iterator const_iterator
Dynamic ROOT object management.
Auxiliary class for multiplexing object iterators.
JTDC_t getT() const
Get time.
JPMT_t getPMT() const
Get PMT.
static const JChecksum checksum
Function object to perform check-sum of raw data.
static int MAXIMAL_FRAME_SIZE
Maximal frame size.
JTOT_t getToT() const
Get time-over-threshold.
Scanning of objects from a single file according a format that follows from the extension of each fil...
Auxiliary class for defining the range of iterations of objects.
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
double getFrameTime()
Get frame time duration.
void Write(TDirectory &out, const bool wm=false)
Write objects to file.
virtual const pointer_type & next() override
Get next element.
virtual bool hasNext() override
Check availability of next element.
General purpose messaging.
Utility class to parse command line options.
Object reading from a list of files.
const JLimit & getLimit() const
Get limit.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
#define DEBUG(A)
Message macros.
const result_type & get(const JDAQSuperFrame &frame) const
Check sum.