Jpp 19.3.0-rc.5
the software that should make you happy
Loading...
Searching...
No Matches
KM3NETDAQ::JDataWriter::JRunDB Struct Reference

Map run number to trigger parameters. More...

Inheritance diagram for KM3NETDAQ::JDataWriter::JRunDB:
std::map< int, JValue_t >

Public Member Functions

void reset (const int run)
 Remove all entries before given run.
 
bool is_written (const int run) const
 Check if trigger parameters have been written for given run.
 
void read (const char *const data, const size_t size)
 Read trigger parameters.
 
void write (const int run, TFile *file)
 Write trigger parameters for given run if not yet done.
 

Detailed Description

Map run number to trigger parameters.

Definition at line 444 of file JDataWriter.cc.

Member Function Documentation

◆ reset()

void KM3NETDAQ::JDataWriter::JRunDB::reset ( const int run)
inline

Remove all entries before given run.

Parameters
runrun number

Definition at line 452 of file JDataWriter.cc.

453 {
454 while (!this->empty() && this->begin()->first < run) {
455 this->erase(this->begin());
456 }
457 }
void run()
Run as run control client following command messages via JNET::JControlHost.

◆ is_written()

bool KM3NETDAQ::JDataWriter::JRunDB::is_written ( const int run) const
inline

Check if trigger parameters have been written for given run.

Parameters
runrun number
Returns
true if written; else false.

Definition at line 465 of file JDataWriter.cc.

466 {
467 const_iterator p = this->find(run);
468
469 return p != this->end() && p->second.is_written;
470 }

◆ read()

void KM3NETDAQ::JDataWriter::JRunDB::read ( const char *const data,
const size_t size )
inline

Read trigger parameters.

Parameters
datadata
sizesize

Definition at line 478 of file JDataWriter.cc.

479 {
480 using namespace std;
481 using namespace JPP;
482
483
484 const string buffer(data, size);
485
486 istringstream in(buffer);
487
488 int run = -1;
489 JTriggerParameters parameters;
490
491 in >> run;
492
493 if (!in) {
494 THROW(JIOException, "Error reading run number for trigger parameters " << run << endl << in.rdbuf());
495 }
496
497 in >> parameters;
498
499 in.clear(std::ios::eofbit);
500
501 if (!in) {
502 THROW(JIOException, "Error reading trigger parameters " << in.rdbuf());
503 }
504
505 JValue_t& value = (*this)[run];
506
507 if (value.count == 0) {
508 value.parameters = parameters;
509 }
510
511 value.count += 1;
512
513 if (!parameters.equals(value.parameters)) {
514 THROW(JException, "Inconsistent trigger parameters " << endl << value.parameters << " != " << endl << parameters);
515 }
516 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
General exception.
Definition JException.hh:24
Exception for I/O.
std::vector< char > buffer
internal buffer for incoming data
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).

◆ write()

void KM3NETDAQ::JDataWriter::JRunDB::write ( const int run,
TFile * file )
inline

Write trigger parameters for given run if not yet done.

Parameters
runrun number
filepointer to ROOT file

Definition at line 524 of file JDataWriter.cc.

525 {
526 if (file != NULL) {
527
528 iterator p = this->find(run);
529
530 if (p != this->end() && p->second.count != 0 && !p->second.is_written) {
531
532 file->WriteTObject(&p->second.parameters);
533
534 p->second.is_written = true;
535 }
536 }
537 }

The documentation for this struct was generated from the following file: