41 int main(
int argc, 
char **argv)
 
   47   JLimit_t&       numberOfEvents = inputFile.getLimit();
 
   58     JParser<> zap(
"Program to monitor AHRS data.");
 
   60     zap[
'f'] = 
make_field(inputFile,    
"output of JConvertDB -q ahrs");
 
   61     zap[
'n'] = 
make_field(numberOfEvents)              = JLimit::max();
 
   64     zap[
'c'] = 
make_field(ahrsFile,     
"output of JAHRSCalibration");
 
   65     zap[
'p'] = 
make_field(precision,    
"precision")   = 1.0e-6;
 
   72   catch(
const exception &error) {
 
   73     FATAL(error.what() << endl);
 
   95   TH1D  h0(
"h0", NULL, 100, 0.0, 5.0);
 
   96   TH1D  h1(
"h1", NULL, 100, 0.0, 5.0);
 
   97   TH2D  h2(
"h2", NULL, 100, 0.0, 5.0, 100, 0.0, 5.0);
 
   98   TH1D  hn(
"hn", NULL, 100, 0.0, 1.0e4);
 
  100   TH2D* ha = 
new TH2D(
"ha", NULL, 
 
  101                       string.size(), -0.5, 
string.size() - 0.5,
 
  104   for (Int_t i = 1; i <= ha->GetXaxis()->GetNbins(); ++i) {
 
  105     ha->GetXaxis()->SetBinLabel(i, 
MAKE_CSTRING(
string.at(i-1)));
 
  107   for (Int_t i = 1; i <= ha->GetYaxis()->GetNbins(); ++i) {
 
  111   TH2D* hb = (TH2D*) ha->Clone(
"hb");
 
  112   TH2D* hc = (TH2D*) ha->Clone(
"hc");
 
  113   TH2D* hd = (TH2D*) ha->Clone(
"hd");
 
  119   for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  120     if (module->getFloor() != 0) {
 
  121       data[module->getID()] = 0;
 
  131     const JAHRS* parameters = inputFile.
next();
 
  162           buffer[parameters->
DOMID].push_back(*parameters);
 
  165                 << setw(16)   << parameters->
UNIXTIME << 
' ' 
  166                 << setw(4)    << parameters->
DUID     << 
' ' 
  167                 << setw(2)    << parameters->
FLOORID  << 
' ' 
  186     if (i->second.size() >= 2u) {
 
  188       sort(i->second.begin(), i->second.end(), 
make_comparator(&JAHRS::UNIXTIME));
 
  192         if ((fabs(p->AHRS_A0 - q->AHRS_A0) > precision ||
 
  193              fabs(p->AHRS_A1 - q->AHRS_A1) > precision ||
 
  194              fabs(p->AHRS_A2 - q->AHRS_A2) > precision)
 
  196             (fabs(p->AHRS_H0 - q->AHRS_H0) > precision ||
 
  197              fabs(p->AHRS_H1 - q->AHRS_H1) > precision ||
 
  198              fabs(p->AHRS_H2 - q->AHRS_H2) > precision)) {
 
  206   for (map_type::const_iterator i = 
data.begin(); i != 
data.end(); ++i) {
 
  217     for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  219       map_type::const_iterator p = 
data.find(module->getID());
 
  221       if (p != 
data.end()) {
 
  222         cout << 
getLabel(module->getLocation()) << 
' ' << setw(8) << module->getID() << 
' ' << setw(6) << p->second << endl;
 
  231     out << h0  << h1  << h2 << hn;
 
  232     out << *ha << *hb << *hc << *hd;
 
  240   for (map_type::const_iterator i = 
data.begin(); i != 
data.end(); ++i) {
 
ROOT TTree parameter settings.
 
Data structure for detector geometry and calibration.
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
#define QAQC(A)
QA/QC output macro.
 
int qaqc
QA/QC file descriptor.
 
Direct access to module in detector data structure.
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
I/O formatting auxiliaries.
 
#define MAKE_CSTRING(A)
Make C-string.
 
Direct access to string in detector data structure.
 
Logical location of module.
 
int getFloor() const
Get floor number.
 
int getString() const
Get string number.
 
Router for direct addressing of module data in detector data structure.
 
const JModule & getModule(const JObjectID &id) const
Get module parameters.
 
bool hasModule(const JObjectID &id) const
Has module.
 
Utility class to parse command line options.
 
General purpose class for object reading from a list of file names.
 
virtual bool hasNext() override
Check availability of next element.
 
counter_type getCounter() const
Get counter.
 
virtual const pointer_type & next() override
Get next element.
 
std::string getLabel(const JLocation &location)
Get module label for monitoring and other applications.
 
floor_range getRangeOfFloors(const JDetector &detector)
Get range of floors.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
 
int getIndex()
Get index for user I/O manipulation.
 
static const double H
Planck constant [eV s].
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
bool is_valid(const json &js)
Check validity of JSon data.
 
std::map< int, range_type > map_type
 
int main(int argc, char **argv)
 
Auxiliary data structure for floating point format specification.
 
Auxiliary class to map module identifier to AHRS calibration.
 
Auxiliary data structure to check validity of AHRS data.
 
long long int UNIXTIME
[ms]
 
Router for mapping of string identifier to index.
 
Auxiliary class for defining the range of iterations of objects.