Jpp 20.0.0-27-g39925593c-D
the software that should make you happy
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Attributes | List of all members
JSUPPORT::JSummaryFileRouter Class Reference

File router for fast addressing of summary data. More...

#include <JSummaryFileRouter.hh>

Inheritance diagram for JSUPPORT::JSummaryFileRouter:
JSUPPORT::JSummaryRouter JSUPPORT::JTreeScanner< JDAQSummaryslice, JDAQEvaluator > KM3NETDAQ::JDAQSummaryslice KM3NETDAQ::JDAQPreamble KM3NETDAQ::JDAQSummarysliceHeader std::vector< JDAQSummaryFrame > KM3NETDAQ::JDAQAbstractPreamble TObject KM3NETDAQ::JDAQHeader KM3NETDAQ::JDAQChronometer

Public Member Functions

 JSummaryFileRouter (const std::string &file_name)
 Constructor.
 
void update (const JDAQHeader &header)
 Update router.
 
void update (const JDAQSummaryslice *ps)
 Update router.
 
const int getAddress (const JDAQModuleIdentifier &module) const
 Get address of module.
 
bool hasSummaryFrame (const JDAQModuleIdentifier &module) const
 Has summary frame.
 
const JDAQSummaryFramegetSummaryFrame (const JDAQModuleIdentifier &module) const
 Get summary frame.
 
const JDAQSummaryFramegetSummaryFrame (const JDAQModuleIdentifier &module, const double rate_Hz) const
 Get summary frame.
 
double getRate (const JDAQPMTIdentifier &id) const
 Get rate.
 
double getRate (const JDAQPMTIdentifier &id, const double rate_Hz) const
 Get rate.
 
std::ostream & print (std::ostream &out, const bool lpr=false) const
 Print DAQ summary.
 
 ClassDef (JDAQSummaryslice, 6)
 
 ClassDef (JDAQPreamble, 1)
 
 ClassDef (JDAQSummarysliceHeader, 2)
 
 ClassDef (JDAQHeader, 2)
 
 ClassDef (JDAQChronometer, 3)
 
int getLength () const
 Get length.
 
int getDataType () const
 Get data type.
 
 ClassDefNV (JDAQAbstractPreamble, 1)
 
const JDAQSummarysliceHeadergetDAQSummarysliceHeader () const
 Get DAQ summary slice header.
 
const JDAQHeadergetDAQHeader () const
 Get DAQ header.
 
void setDAQHeader (const JDAQHeader &header)
 Set DAQ header.
 
const JDAQChronometergetDAQChronometer () const
 Get DAQ chronometer.
 
void setDAQChronometer (const JDAQChronometer &chronometer)
 Set DAQ chronometer.
 
int getDetectorID () const
 Get detector identifier.
 
int getRunNumber () const
 Get run number.
 
int getFrameIndex () const
 Get frame index.
 
JDAQUTCExtended getTimesliceStart () const
 Get start of timeslice.
 
void setRunNumber (const int run)
 Set run number.
 
void setFrameIndex (const int frame_index)
 Set frame index.
 
void setTimesliceStart (const JDAQUTCExtended &timeslice_start)
 Set timeslice start time.
 

Static Public Member Functions

static void actionAtFileOpen (int version)
 Action method at file open.
 
template<class T >
static JDAQPreamble getDAQPreamble (const T &object)
 Get DAQ preamble.
 

Protected Attributes

int length
 
int type
 
int detector_id
 
int run
 
int frame_index
 
JDAQUTCExtended timeslice_start
 

Private Attributes

JTOOLS::JRouter< introuter
 
JDAQSummaryFrame frame
 

Detailed Description

File router for fast addressing of summary data.

The member method update() should be used to update the internal router for a given event. The member method getRate(const JDAQPMTIdentifier&) const can subsequently be used to obtain the measured singles rate for a given PMT at the closest time of the event.

Definition at line 37 of file JSummaryFileRouter.hh.

Constructor & Destructor Documentation

◆ JSummaryFileRouter()

JSUPPORT::JSummaryFileRouter::JSummaryFileRouter ( const std::string & file_name)
inline

Constructor.

Parameters
file_namefile name

Definition at line 47 of file JSummaryFileRouter.hh.

47 :
50 {}
Template definition of a multi-dimensional oscillation probability interpolation table.
JSummaryRouter()
Default constructor.

Member Function Documentation

◆ update() [1/2]

void JSUPPORT::JSummaryFileRouter::update ( const JDAQHeader & header)
inline

Update router.

Parameters
headerheader

Definition at line 58 of file JSummaryFileRouter.hh.

59 {
60 static Long64_t previous = -1;
61
62 const Long64_t index = this->find(header);
63
64 if (index != -1) {
65
66 if (index != previous) {
67
68 previous = index;
69
70 JSummaryRouter::update(this->getEntry(index));
71 }
72 }
73 }
void update(const JDAQSummaryslice *ps)
Update router.

◆ update() [2/2]

void JSUPPORT::JSummaryRouter::update ( const JDAQSummaryslice * ps)
inlineinherited

Update router.

Parameters
pspointer to new summary slice

Definition at line 53 of file JSupport/JSummaryRouter.hh.

54 {
55 if (ps != NULL) {
56
57 // reset internal router
58
59 for (JDAQSummaryslice::const_iterator i = this->begin(); i != this->end(); ++i) {
60 router.put(i->getModuleID(), router.getDefaultAddress());
61 }
62
63 static_cast<JDAQSummaryslice&>(*this) = *ps;
64
65 // set internal router
66
67 for (JDAQSummaryslice::const_iterator i = this->begin(); i != this->end(); ++i) {
68 router.put(i->getModuleID(), distance(this->cbegin(), i));
69 }
70 }
71 }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.

◆ getAddress()

const int JSUPPORT::JSummaryRouter::getAddress ( const JDAQModuleIdentifier & module) const
inlineinherited

Get address of module.

Parameters
modulemodule
Returns
address

Definition at line 80 of file JSupport/JSummaryRouter.hh.

81 {
82 return router.get(module.getModuleID());
83 }

◆ hasSummaryFrame()

bool JSUPPORT::JSummaryRouter::hasSummaryFrame ( const JDAQModuleIdentifier & module) const
inlineinherited

Has summary frame.

Parameters
modulemodule
Returns
true if module present; else false

Definition at line 92 of file JSupport/JSummaryRouter.hh.

93 {
94 return router.has(module.getModuleID());
95 }

◆ getSummaryFrame() [1/2]

const JDAQSummaryFrame & JSUPPORT::JSummaryRouter::getSummaryFrame ( const JDAQModuleIdentifier & module) const
inlineinherited

Get summary frame.

Parameters
modulemodule
Returns
summary frame

Definition at line 104 of file JSupport/JSummaryRouter.hh.

105 {
106 if (router.has(module.getModuleID()))
107 return (*this)[getAddress(module)];
108 else
109 THROW(JValueOutOfRange, "Module identifier " << module);
110 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Exception for accessing a value in a collection that is outside of its range.
const int getAddress(const JDAQModuleIdentifier &module) const
Get address of module.

◆ getSummaryFrame() [2/2]

const JDAQSummaryFrame & JSUPPORT::JSummaryRouter::getSummaryFrame ( const JDAQModuleIdentifier & module,
const double rate_Hz ) const
inlineinherited

Get summary frame.

Parameters
modulemodule
rate_Hzdefault rate [Hz]
Returns
summary frame

Definition at line 120 of file JSupport/JSummaryRouter.hh.

121 {
122 if (router.has(module.getModuleID())) {
123
124 return (*this)[getAddress(module)];
125
126 } else {
127
130
131 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
133 }
134
135 return frame;
136 }
137 }
static const JDAQFrameStatus & getInstance()
Get reference to unique instance of this class object.
void setDAQFrameStatus(const JDAQFrameStatus &status)
Set DAQ frame status.
void setModuleIdentifier(const JDAQModuleIdentifier &module)
Set Module identifier.
void setRate(const int tdc, const double rate_Hz)
Set count rate.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition JDAQ.hh:26

◆ getRate() [1/2]

double JSUPPORT::JSummaryRouter::getRate ( const JDAQPMTIdentifier & id) const
inlineinherited

Get rate.

Parameters
idPMT identifier
Returns
rate [Hz]

Definition at line 146 of file JSupport/JSummaryRouter.hh.

147 {
148 if (this->hasSummaryFrame(id.getModuleIdentifier()))
149 return this->getSummaryFrame(id.getModuleIdentifier()).getRate(id.getPMTAddress());
150 else
151 THROW(JValueOutOfRange, "Module identifier " << id.getModuleIdentifier());
152 }
bool hasSummaryFrame(const JDAQModuleIdentifier &module) const
Has summary frame.
const JDAQSummaryFrame & getSummaryFrame(const JDAQModuleIdentifier &module) const
Get summary frame.

◆ getRate() [2/2]

double JSUPPORT::JSummaryRouter::getRate ( const JDAQPMTIdentifier & id,
const double rate_Hz ) const
inlineinherited

Get rate.

Parameters
idPMT identifier
rate_Hzdefault rate [Hz]
Returns
rate [Hz]

Definition at line 162 of file JSupport/JSummaryRouter.hh.

163 {
164 double R = 0.0;
165
166 if (this->hasSummaryFrame(id.getModuleIdentifier())) {
167 R = this->getSummaryFrame(id.getModuleIdentifier()).getRate(id.getPMTAddress());
168 }
169
170 if (R < rate_Hz) {
171 R = rate_Hz;
172 }
173
174 return R;
175 }

◆ print()

std::ostream & KM3NETDAQ::JDAQSummaryslice::print ( std::ostream & out,
const bool lpr = false ) const
inlineinherited

Print DAQ summary.

Parameters
outoutput stream
lprlong print
Returns
output stream

Definition at line 88 of file JDAQSummaryslice.hh.

89 {
90 using namespace std;
91
92 out << this->ClassName() << endl;
95
96 for (JDAQSummaryslice::const_iterator module = this->begin(); module != this->end(); ++module) {
97
98 out << ' ' << setw(10) << module->getModuleID();
99 out << ' ' << setw(8) << setfill('0') << hex << module->getStatus() << dec << setfill(' ');
100 out << '|' << setw(8) << setfill('0') << hex << module->getFIFOStatus() << dec << setfill(' ');
101 out << ' ' << setw(2) << module->getUDPNumberOfReceivedPackets();
102 out << ' ' << setw(2) << module->getUDPMaximalSequenceNumber();
103
104 if (lpr) {
105 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
106 out << ' ' << fixed << showpoint << setw(4) << setprecision(1) << module->getRate(pmt) * 1.0e-3;
107 }
108 }
109
110 out << endl;
111 }
112
113 return out;
114 }

◆ actionAtFileOpen()

static void KM3NETDAQ::JDAQSummaryslice::actionAtFileOpen ( int version)
inlinestaticinherited

Action method at file open.

Parameters
versionversion

Definition at line 122 of file JDAQSummaryslice.hh.

123 {
125 }
static int ROOT_IO_VERSION
Streamer version of JDAQSummaryslice as obtained from ROOT file.

◆ ClassDef() [1/5]

KM3NETDAQ::JDAQSummaryslice::ClassDef ( JDAQSummaryslice ,
6  )
inherited

◆ ClassDef() [2/5]

KM3NETDAQ::JDAQPreamble::ClassDef ( JDAQPreamble ,
1  )
inherited

◆ ClassDef() [3/5]

KM3NETDAQ::JDAQSummarysliceHeader::ClassDef ( JDAQSummarysliceHeader ,
2  )
inherited

◆ ClassDef() [4/5]

KM3NETDAQ::JDAQHeader::ClassDef ( JDAQHeader ,
2  )
inherited

◆ ClassDef() [5/5]

KM3NETDAQ::JDAQChronometer::ClassDef ( JDAQChronometer ,
3  )
inherited

◆ getDAQPreamble()

template<class T >
static JDAQPreamble KM3NETDAQ::JDAQPreamble::getDAQPreamble ( const T & object)
inlinestaticinherited

Get DAQ preamble.

This method should be used for binary I/O to get the actual data for the given object.
To this end, the following method should be overloaded for the corresponding data type.

   size_t  getSizeof(const T&);
Parameters
objectobject
Returns
preamble

Definition at line 76 of file JDAQPreamble.hh.

77 {
78 static JDAQPreamble preamble;
79
80 preamble.length = getSizeof(object);
82
83 return preamble;
84 }
friend size_t getSizeof()
Definition of method to get size of data type.

◆ getLength()

int KM3NETDAQ::JDAQAbstractPreamble::getLength ( ) const
inlineinherited

Get length.

Returns
number of bytes

Definition at line 49 of file JDAQAbstractPreamble.hh.

50 {
51 return length;
52 }

◆ getDataType()

int KM3NETDAQ::JDAQAbstractPreamble::getDataType ( ) const
inlineinherited

Get data type.

Returns
data type

Definition at line 60 of file JDAQAbstractPreamble.hh.

61 {
62 return type;
63 }

◆ ClassDefNV()

KM3NETDAQ::JDAQAbstractPreamble::ClassDefNV ( JDAQAbstractPreamble ,
1  )
inherited

◆ getDAQSummarysliceHeader()

const JDAQSummarysliceHeader & KM3NETDAQ::JDAQSummarysliceHeader::getDAQSummarysliceHeader ( ) const
inlineinherited

Get DAQ summary slice header.

Returns
DAQ summary slice header

Definition at line 44 of file JDAQSummarysliceHeader.hh.

45 {
46 return static_cast<const JDAQSummarysliceHeader&>(*this);
47 }

◆ getDAQHeader()

const JDAQHeader & KM3NETDAQ::JDAQHeader::getDAQHeader ( ) const
inlineinherited

Get DAQ header.

Returns
DAQ header

Definition at line 49 of file JDAQHeader.hh.

50 {
51 return static_cast<const JDAQHeader&>(*this);
52 }

◆ setDAQHeader()

void KM3NETDAQ::JDAQHeader::setDAQHeader ( const JDAQHeader & header)
inlineinherited

Set DAQ header.

Parameters
headerDAQ header

Definition at line 60 of file JDAQHeader.hh.

61 {
62 static_cast<JDAQHeader&>(*this) = header;
63 }

◆ getDAQChronometer()

const JDAQChronometer & KM3NETDAQ::JDAQChronometer::getDAQChronometer ( ) const
inlineinherited

Get DAQ chronometer.

Returns
DAQ chronometer

Definition at line 88 of file JDAQChronometer.hh.

89 {
90 return static_cast<const JDAQChronometer&>(*this);
91 }

◆ setDAQChronometer()

void KM3NETDAQ::JDAQChronometer::setDAQChronometer ( const JDAQChronometer & chronometer)
inlineinherited

Set DAQ chronometer.

Parameters
chronometerDAQ chronometer

Definition at line 99 of file JDAQChronometer.hh.

100 {
101 static_cast<JDAQChronometer&>(*this) = chronometer;
102 }

◆ getDetectorID()

int KM3NETDAQ::JDAQChronometer::getDetectorID ( ) const
inlineinherited

Get detector identifier.

Returns
detector identifier

Definition at line 110 of file JDAQChronometer.hh.

111 {
112 return detector_id;
113 }

◆ getRunNumber()

int KM3NETDAQ::JDAQChronometer::getRunNumber ( ) const
inlineinherited

Get run number.

Returns
run number

Definition at line 121 of file JDAQChronometer.hh.

122 {
123 return run;
124 }

◆ getFrameIndex()

int KM3NETDAQ::JDAQChronometer::getFrameIndex ( ) const
inlineinherited

Get frame index.

Returns
frame index

Definition at line 132 of file JDAQChronometer.hh.

133 {
134 return frame_index;
135 }

◆ getTimesliceStart()

JDAQUTCExtended KM3NETDAQ::JDAQChronometer::getTimesliceStart ( ) const
inlineinherited

Get start of timeslice.

Returns
timeslice start

Definition at line 144 of file JDAQChronometer.hh.

145 {
146 return timeslice_start;
147 }

◆ setRunNumber()

void KM3NETDAQ::JDAQChronometer::setRunNumber ( const int run)
inlineinherited

Set run number.

Parameters
runrun number

Definition at line 155 of file JDAQChronometer.hh.

156 {
157 this->run = run;
158 }

◆ setFrameIndex()

void KM3NETDAQ::JDAQChronometer::setFrameIndex ( const int frame_index)
inlineinherited

Set frame index.

Parameters
frame_indexframe index

Definition at line 166 of file JDAQChronometer.hh.

167 {
168 this->frame_index = frame_index;
169 }

◆ setTimesliceStart()

void KM3NETDAQ::JDAQChronometer::setTimesliceStart ( const JDAQUTCExtended & timeslice_start)
inlineinherited

Set timeslice start time.

Parameters
timeslice_starttimeslice start time

Definition at line 177 of file JDAQChronometer.hh.

178 {
179 this->timeslice_start = timeslice_start;
180 }

Member Data Documentation

◆ router

JTOOLS::JRouter<int> JSUPPORT::JSummaryRouter::router
privateinherited

Definition at line 178 of file JSupport/JSummaryRouter.hh.

◆ frame

JDAQSummaryFrame JSUPPORT::JSummaryRouter::frame
mutableprivateinherited

Definition at line 179 of file JSupport/JSummaryRouter.hh.

◆ length

int KM3NETDAQ::JDAQAbstractPreamble::length
protectedinherited

Definition at line 69 of file JDAQAbstractPreamble.hh.

◆ type

int KM3NETDAQ::JDAQAbstractPreamble::type
protectedinherited

Definition at line 70 of file JDAQAbstractPreamble.hh.

◆ detector_id

int KM3NETDAQ::JDAQChronometer::detector_id
protectedinherited

Definition at line 187 of file JDAQChronometer.hh.

◆ run

int KM3NETDAQ::JDAQChronometer::run
protectedinherited

Definition at line 188 of file JDAQChronometer.hh.

◆ frame_index

int KM3NETDAQ::JDAQChronometer::frame_index
protectedinherited

Definition at line 189 of file JDAQChronometer.hh.

◆ timeslice_start

JDAQUTCExtended KM3NETDAQ::JDAQChronometer::timeslice_start
protectedinherited

Definition at line 190 of file JDAQChronometer.hh.


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