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);
137 JFrameIndexRange frame_index = getFrameIndexRange<JDAQSummaryslice>(inputFile);
139 const Long64_t nx = frame_index.
second - frame_index.first + 1;
140 const Double_t xmin = (Double_t) frame_index.first - 0.5;
141 const Double_t xmax = (Double_t) frame_index.second + 0.5;
147 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
151 for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
157 errors[error->type] += 1;
159 H1[error->type]->Fill((Double_t) frame->getFrameIndex());
166 if (error->pos >= 0) {
168 const int pmt = (*frame)[error->pos].getPMT();
171 << setw(10) << frame->getModuleID() <<
'.' << setw(2) << setfill(
'0') << pmt << setfill(
' ') <<
' '
172 << setw(8) << frame->getFrameIndex() <<
' '
173 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
174 << setw(2) << error->type <<
' ';
177 cout << setw(1) << frame->testHighRateVeto(pmt)
178 << setw(1) << frame->testFIFOStatus (pmt) <<
' ';
181 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
182 << setw(4) << frame->getUDPMaximalSequenceNumber();
186 print(cout, error->type);
188 cout << endl << endl;
190 deque<JDAQHit> buffer;
192 for (
int i = error->pos - 1,
n = 0; i >= 0 &&
n <=
N; --i) {
193 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
194 buffer.push_front((*frame)[i]);
199 for (deque<JDAQHit>::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
200 print(cout, *i); cout << endl;
203 print(cout, (*frame)[error->pos]);
205 cout <<
" <<< " << endl;
207 for (
int i = error->pos + 1,
n = 0; i < frame->size() &&
n <=
N; ++i) {
208 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
209 print(cout, (*frame)[i]); cout << endl;
217 << setw(10) << frame->getModuleID() <<
' ' << setw(2) <<
' ' <<
' '
218 << setw(8) << frame->getFrameIndex() <<
' '
219 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
220 << setw(2) << error->type <<
' ';
222 cout << setw(1) <<
' '
223 << setw(1) <<
' ' <<
' ';
225 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
226 << setw(4) << frame->getUDPMaximalSequenceNumber();
230 print(cout, error->type);
232 cout << endl << endl;
242 print(cout, i->first);
244 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.
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
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 source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
const result_type & get(const JDAQSuperFrame &frame) const
Check sum.