Jpp
Functions
JDAQSummaryslice.cc File Reference
#include <string>
#include <iostream>
#include <iomanip>
#include <limits>
#include "TROOT.h"
#include "TFile.h"
#include "TH1D.h"
#include "TProfile.h"
#include "JDAQ/JDAQSummarysliceIO.hh"
#include "JSupport/JMultipleFileScanner.hh"
#include "JSupport/JSupport.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Example program to histogram KM3NETDAQ::JDAQSummaryslice.

Author
mdejong

Definition in file JDAQSummaryslice.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 27 of file JDAQSummaryslice.cc.

28 {
29  using namespace std;
30  using namespace JPP;
31  using namespace KM3NETDAQ;
32 
34  JLimit_t& numberOfEvents = inputFile.getLimit();
35  string outputFile;
36  int debug;
37 
38  try {
39 
40  JParser<> zap("Example program to histogram summary data.");
41 
42  zap['f'] = make_field(inputFile);
43  zap['o'] = make_field(outputFile) = "summaryslice.root";
44  zap['n'] = make_field(numberOfEvents) = JLimit::max();
45  zap['d'] = make_field(debug) = 2;
46 
47  zap(argc, argv);
48  }
49  catch(const exception& error) {
50  FATAL(error.what() << endl);
51  }
52 
53 
54  const double factor = 1.0e-3; // [kHz]
55 
56  cout.tie(&cerr);
57 
58  TFile out(outputFile.c_str(), "recreate");
59 
60  TH1D h0("h0", NULL, JDAQRate::getN(), JDAQRate::getData(factor));
61  TH1D h1("h1", NULL, 32,-0.5, 32.5);
62 
63  while (inputFile.hasNext()) {
64 
65  STATUS("event: " << setw(10) << inputFile.getCounter() << '\r'); DEBUG(endl);
66 
67  JDAQSummaryslice* summaryslice = inputFile.next();
68 
69  DEBUG("Summary: "
70  << setw(8) << inputFile.getCounter() << ' '
71  << setw(8) << summaryslice->getRunNumber() << ' '
72  << setw(8) << summaryslice->getFrameIndex() << ' '
73  << setw(6) << summaryslice->size() << endl);
74 
75  for (JDAQSummaryslice::const_iterator frame = summaryslice->begin(); frame != summaryslice->end(); ++frame) {
76 
77  for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
78  h0.Fill(frame->getRate(pmt, factor), frame->getWeight(pmt, factor));
79  h1.Fill((Double_t) pmt, frame->testHighRateVeto(pmt));
80  }
81 
82  if (frame->testWhiteRabbitStatus()) {
83  h1.Fill((Double_t) 32);
84  }
85  }
86  }
87  STATUS(endl);
88 
89  out.Write();
90  out.Close();
91 }
JSUPPORT::JLimit
Auxiliary class for defining the range of iterations of objects.
Definition: JLimit.hh:41
KM3NETDAQ::JDAQChronometer::getFrameIndex
int getFrameIndex() const
Get frame index.
Definition: JDAQChronometer.hh:132
KM3NETDAQ::NUMBER_OF_PMTS
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
JPARSER::JParser
Utility class to parse command line options.
Definition: JParser.hh:1493
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
JSUPPORT::JMultipleFileScanner::getCounter
counter_type getCounter() const
Get counter.
Definition: JMultipleFileScanner.hh:323
debug
int debug
debug level
Definition: JSirene.cc:59
JSUPPORT::JMultipleFileScanner::next
virtual const pointer_type & next()
Get next element.
Definition: JMultipleFileScanner.hh:398
KM3NETDAQ::JDAQSummaryslice
Data summary slice.
Definition: JDAQSummaryslice.hh:25
STATUS
#define STATUS(A)
Definition: JMessage.hh:63
JSUPPORT::JMultipleFileScanner::hasNext
virtual bool hasNext()
Check availability of next element.
Definition: JMultipleFileScanner.hh:350
KM3NETDAQ::JDAQChronometer::getRunNumber
int getRunNumber() const
Get run number.
Definition: JDAQChronometer.hh:121
make_field
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1954
JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >
DEBUG
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
std
Definition: jaanetDictionary.h:36
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
FATAL
#define FATAL(A)
Definition: JMessage.hh:67
outputFile
string outputFile
Definition: JDAQTimesliceSelector.cc:37