Jpp
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
KM3NETDAQ::JDAQTimeslice Class Reference

Data time slice. More...

#include <JDAQTimeslice.hh>

Inheritance diagram for KM3NETDAQ::JDAQTimeslice:
KM3NETDAQ::JDAQPreamble KM3NETDAQ::JDAQTimesliceHeader std::vector< JDAQSuperFrame > KM3NETDAQ::JDAQAbstractPreamble TObject KM3NETDAQ::JDAQHeader KM3NETDAQ::JDAQChronometer KM3NETDAQ::JDAQTimesliceL0 KM3NETDAQ::JDAQTimesliceL1 KM3NETDAQ::JDAQTimesliceL2 KM3NETDAQ::JDAQTimesliceSN KM3NETDAQ::JTimesliceL0 KM3NETDAQ::JEventTimeslice KM3NETDAQ::JRandomTimeslice

Public Member Functions

 JDAQTimeslice ()
 Default constructor. More...
 
 JDAQTimeslice (const JDAQChronometer &chronometer)
 Constructor. More...
 
 JDAQTimeslice (const JDAQEvent &event, const bool snapshot=true)
 Constructor. More...
 
 JDAQTimeslice (const JDAQEvent &event, const JDAQSummaryslice &summary, const bool snapshot=true)
 Constructor. More...
 
virtual ~JDAQTimeslice ()
 Virtual destructor. More...
 
void clear ()
 Clear data. More...
 
JDAQTimesliceoperator= (const JDAQTimeslice &timeslice)
 Assignment operator. More...
 
JDAQTimesliceadd (const JDAQTimeslice &timeslice)
 Add another timeslice. More...
 
std::ostream & print (std::ostream &out, const bool lpr=false) const
 Print DAQ Timeslice. More...
 
virtual int getSize () const
 Get size of object. More...
 
 ClassDef (JDAQTimeslice, 4)
 
 ClassDef (JDAQPreamble, 1)
 
int getLength () const
 Get length. More...
 
int getDataType () const
 Get data type. More...
 
 ClassDefNV (JDAQAbstractPreamble, 1)
 
const JDAQTimesliceHeadergetDAQTimesliceHeader () const
 Get DAQ time slice header. More...
 
 ClassDef (JDAQTimesliceHeader, 2)
 
 ClassDef (JDAQHeader, 2)
 
 ClassDef (JDAQChronometer, 3)
 
const JDAQHeadergetDAQHeader () const
 Get DAQ header. More...
 
void setDAQHeader (const JDAQHeader &header)
 Set DAQ header. More...
 
const JDAQChronometergetDAQChronometer () const
 Get DAQ chronometer. More...
 
void setDAQChronometer (const JDAQChronometer &chronometer)
 Set DAQ chronometer. More...
 
int getDetectorID () const
 Get detector identifier. More...
 
int getRunNumber () const
 Get run number. More...
 
int getFrameIndex () const
 Get frame index. More...
 
JDAQUTCExtended getTimesliceStart () const
 Get start of timeslice. More...
 
void setRunNumber (const int run)
 Set run number. More...
 
void setFrameIndex (const int frame_index)
 Set frame index. More...
 
void setTimesliceStart (const JDAQUTCExtended &timeslice_start)
 Set timeslice start time. More...
 

Static Public Member Functions

static int sizeOf ()
 Get size of object. More...
 
static int sizeOf ()
 Get size of object. More...
 

Protected Member Functions

void setLength ()
 Set length. More...
 

Protected Attributes

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

Friends

JReaderoperator>> (JReader &in, JDAQTimeslice &timeslice)
 Read DAQ timeslice from input. More...
 
JWriteroperator<< (JWriter &out, const JDAQTimeslice &timeslice)
 Write DAQ timeslice to output. More...
 

Detailed Description

Data time slice.

Definition at line 36 of file JDAQTimeslice.hh.

Constructor & Destructor Documentation

◆ JDAQTimeslice() [1/4]

KM3NETDAQ::JDAQTimeslice::JDAQTimeslice ( )
inline

Default constructor.

Definition at line 45 of file JDAQTimeslice.hh.

45  :
46  JDAQPreamble(JDAQType<JDAQTimeslice>()),
49  {}

◆ JDAQTimeslice() [2/4]

KM3NETDAQ::JDAQTimeslice::JDAQTimeslice ( const JDAQChronometer chronometer)
inline

Constructor.

Parameters
chronometerDAQ chronometer

Definition at line 57 of file JDAQTimeslice.hh.

57  :
58  JDAQPreamble(JDAQType<JDAQTimeslice>()),
59  JDAQTimesliceHeader(chronometer),
61  {}

◆ JDAQTimeslice() [3/4]

KM3NETDAQ::JDAQTimeslice::JDAQTimeslice ( const JDAQEvent event,
const bool  snapshot = true 
)

Constructor.

Parameters
eventDAQ event
snapshotuse shapshot hits (else use triggered hits)

Definition at line 22 of file software/JDAQ/JDAQTimeslice.cc.

23  :
24  JDAQPreamble(JDAQType<JDAQTimeslice>()),
25  JDAQTimesliceHeader(event.getDAQChronometer()),
27  {
28  using namespace std;
29 
30  map<int, vector<JDAQHit> > buffer;
31 
32  if (snapshot) {
33 
34  for (vector<JDAQSnapshotHit>::const_iterator hit = event.begin<JDAQSnapshotHit> (); hit != event.end<JDAQSnapshotHit> (); ++hit) {
35  buffer[hit->getModuleID()].push_back(*hit);
36  }
37 
38  } else {
39 
40  for (vector<JDAQTriggeredHit>::const_iterator hit = event.begin<JDAQTriggeredHit>(); hit != event.end<JDAQTriggeredHit>(); ++hit) {
41  buffer[hit->getModuleID()].push_back(*hit);
42  }
43  }
44 
45 
46  for (map<int, vector<JDAQHit> >::iterator entry = buffer.begin(); entry != buffer.end(); ++entry) {
47 
48  sort(entry->second.begin(), entry->second.end());
49 
50  this->push_back(JDAQSuperFrame(JDAQSuperFrameHeader(getDAQChronometer(), entry->first)));
51 
52  this->rbegin()->add(entry->second.size(), entry->second.data());
53  }
54  }

◆ JDAQTimeslice() [4/4]

KM3NETDAQ::JDAQTimeslice::JDAQTimeslice ( const JDAQEvent event,
const JDAQSummaryslice summary,
const bool  snapshot = true 
)

Constructor.

Parameters
eventDAQ event
summarysummary
snapshotuse shapshot hits (else use triggered hits)

Definition at line 64 of file software/JDAQ/JDAQTimeslice.cc.

66  :
67  JDAQPreamble(JDAQType<JDAQTimeslice>()),
68  JDAQTimesliceHeader(event.getDAQChronometer()),
70  {
71  using namespace std;
72  using namespace JPP;
73 
74  map<int, vector<JDAQHit> > buffer;
75 
76  if (snapshot) {
77 
78  for (vector<JDAQSnapshotHit>::const_iterator hit = event.begin<JDAQSnapshotHit> (); hit != event.end<JDAQSnapshotHit> (); ++hit) {
79  buffer[hit->getModuleID()].push_back(*hit);
80  }
81 
82  } else {
83 
84  for (vector<JDAQTriggeredHit>::const_iterator hit = event.begin<JDAQTriggeredHit>(); hit != event.end<JDAQTriggeredHit>(); ++hit) {
85  buffer[hit->getModuleID()].push_back(*hit);
86  }
87  }
88 
90 
91  for (JDAQSummaryslice::const_iterator i = summary.begin(); i != summary.end(); ++i) {
92  sumo[i->getModuleID()] = i->getDAQFrameStatus();
93  }
94 
95  for (map<int, vector<JDAQHit> >::iterator entry = buffer.begin(); entry != buffer.end(); ++entry) {
96 
97  sort(entry->second.begin(), entry->second.end());
98 
99  JDAQFrameStatus status = JDAQFrameStatus::getInstance();
100 
101  map<int, JDAQFrameStatus>::const_iterator ps = sumo.find(entry->first);
102 
103  if (ps != sumo.end()) {
104  status = ps->second;
105  }
106 
107  this->push_back(JDAQSuperFrame(JDAQSuperFrameHeader(getDAQChronometer(), entry->first, status)));
108 
109  this->rbegin()->add(entry->second.size(), entry->second.data());
110  }
111  }

◆ ~JDAQTimeslice()

virtual KM3NETDAQ::JDAQTimeslice::~JDAQTimeslice ( )
inlinevirtual

Virtual destructor.

Definition at line 89 of file JDAQTimeslice.hh.

90  {
91  clear();
92  }

Member Function Documentation

◆ clear()

void KM3NETDAQ::JDAQTimeslice::clear ( )
inline

Clear data.

Definition at line 98 of file JDAQTimeslice.hh.

99  {
100  for (iterator i = this->begin(); i != this->end(); ++i) {
101  i->clear();
102  }
103 
105  }

◆ operator=()

JDAQTimeslice& KM3NETDAQ::JDAQTimeslice::operator= ( const JDAQTimeslice timeslice)
inline

Assignment operator.

Parameters
timeslicetimeslice
Returns
this timeslice

Definition at line 114 of file JDAQTimeslice.hh.

115  {
116  clear();
117 
118  setDAQChronometer(timeslice.getDAQChronometer());
119 
120  for (const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
121  push_back(*i);
122  }
123 
124  return *this;
125  }

◆ add()

JDAQTimeslice& KM3NETDAQ::JDAQTimeslice::add ( const JDAQTimeslice timeslice)
inline

Add another timeslice.

Parameters
timeslicetimeslice
Returns
this timeslice

Definition at line 134 of file JDAQTimeslice.hh.

135  {
136  using namespace std;
137 
139 
140  for (const_iterator i = this->begin(); i != this->end(); ++i) {
141  buffer[i->getModuleIdentifier()] = distance(static_cast<const JDAQTimeslice&>(*this).begin(),i);
142  }
143 
144  for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
145 
146  map<JDAQModuleIdentifier, int>::const_iterator p = buffer.find(i->getModuleIdentifier());
147 
148  if (p != buffer.end()) {
149 
150  JDAQSuperFrame& frame = this->at(p->second);
151 
152  frame.add(*i);
153 
154  sort(frame.begin(), frame.end());
155 
156  } else {
157 
158  this->push_back(*i);
159  }
160  }
161 
162  return *this;
163  }

◆ print()

std::ostream& KM3NETDAQ::JDAQTimeslice::print ( std::ostream &  out,
const bool  lpr = false 
) const
inline

Print DAQ Timeslice.

Parameters
outoutput stream
lprlong print
Returns
output stream

Definition at line 209 of file JDAQTimeslice.hh.

210  {
211  using namespace std;
212 
213  out << this->ClassName() << endl;
214  out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
215  out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
216 
217  for (JDAQTimeslice::const_iterator frame = this->begin(); frame != this->end(); ++frame) {
218 
219  out << ' ' << setw(10) << frame->getModuleID();
220  out << ' ' << setw(6) << frame->getLength();
221  out << ' ' << setw(6) << frame->getDataType();
222  out << ' ' << setw(6) << frame->getTimesliceStart();
223  out << ' ' << setw(8) << setfill('0') << hex << frame->getStatus() << dec << setfill(' ');
224  out << '|' << setw(8) << setfill('0') << hex << frame->getFIFOStatus() << dec << setfill(' ');
225  out << ' ' << setw(6) << frame->size();
226 
227  if (!lpr) {
228 
229  if (!frame->empty()) {
230 
231  out << ' ' << setw(10) << frame-> begin()->getT();
232  out << " ... ";
233  out << ' ' << setw(10) << frame->rbegin()->getT();
234  }
235 
236  out << endl;
237 
238  } else {
239 
240  out << endl;
241 
242  int n = 1;
243 
244  for (JDAQFrame::const_iterator hit = frame->begin(); hit != frame->end(); ++hit, ++n) {
245  out << setw(2) << (int) hit->getPMT() << ' ' << setw(8) << hit->getT() << (n%10 == 0 ? '\n' : ' ');
246  }
247 
248  out << endl;
249  }
250  }
251 
252  return out;
253  }

◆ getSize()

virtual int KM3NETDAQ::JDAQTimeslice::getSize ( ) const
inlinevirtual

Get size of object.

Returns
number of bytes

Reimplemented from KM3NETDAQ::JDAQPreamble.

Definition at line 260 of file JDAQTimeslice.hh.

261  {
262  int len = 0;
263 
264  len += JDAQPreamble ::sizeOf();
266 
267  len += sizeof(int);
268 
269  for (const_iterator frame = begin(); frame != end(); ++frame) {
270  len += frame->getSize();
271  }
272 
273  return len;
274  }

◆ ClassDef() [1/5]

KM3NETDAQ::JDAQTimeslice::ClassDef ( JDAQTimeslice  ,
 
)

◆ sizeOf() [1/2]

static int KM3NETDAQ::JDAQPreamble::sizeOf ( )
inlinestaticinherited

Get size of object.

Returns
number of bytes

Definition at line 110 of file JDAQPreamble.hh.

111  {
113  }

◆ ClassDef() [2/5]

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

◆ setLength()

void KM3NETDAQ::JDAQPreamble::setLength ( )
inlineprotectedinherited

Set length.

Definition at line 134 of file JDAQPreamble.hh.

135  {
136  length = getSize();
137  }

◆ getLength()

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

Get length.

Returns
number of bytes

Definition at line 48 of file JDAQAbstractPreamble.hh.

49  {
50  return length;
51  }

◆ getDataType()

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

Get data type.

Returns
data type

Definition at line 59 of file JDAQAbstractPreamble.hh.

60  {
61  return type;
62  }

◆ ClassDefNV()

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

◆ getDAQTimesliceHeader()

const JDAQTimesliceHeader& KM3NETDAQ::JDAQTimesliceHeader::getDAQTimesliceHeader ( ) const
inlineinherited

Get DAQ time slice header.

Returns
DAQ time slice header

Definition at line 49 of file JDAQTimesliceHeader.hh.

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

◆ ClassDef() [3/5]

KM3NETDAQ::JDAQTimesliceHeader::ClassDef ( JDAQTimesliceHeader  ,
 
)
inherited

◆ ClassDef() [4/5]

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

◆ ClassDef() [5/5]

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

◆ getDAQHeader()

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

Get DAQ header.

Returns
DAQ header

Definition at line 51 of file JDAQHeader.hh.

52  {
53  return static_cast<const JDAQHeader&>(*this);
54  }

◆ setDAQHeader()

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

Set DAQ header.

Parameters
headerDAQ header

Definition at line 62 of file JDAQHeader.hh.

63  {
64  static_cast<JDAQHeader&>(*this) = header;
65  }

◆ sizeOf() [2/2]

static int KM3NETDAQ::JDAQHeader::sizeOf ( )
inlinestaticinherited

Get size of object.

Returns
number of bytes

Definition at line 103 of file JDAQHeader.hh.

104  {
105  return (JDAQChronometer::sizeOf());
106  }

◆ 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  {
180  }

Friends And Related Function Documentation

◆ operator>>

JReader& operator>> ( JReader in,
JDAQTimeslice timeslice 
)
friend

Read DAQ timeslice from input.

Parameters
inJReader
timesliceJDAQTimeslice
Returns
JReader

Definition at line 173 of file JDAQTimeslice.hh.

174  {
175  timeslice.clear();
176 
177  in >> static_cast<JDAQPreamble&> (timeslice);
178  in >> static_cast<JDAQTimesliceHeader&> (timeslice);
179  in >> static_cast<std::vector<JDAQSuperFrame>&>(timeslice);
180 
181  return in;
182  }

◆ operator<<

JWriter& operator<< ( JWriter out,
const JDAQTimeslice timeslice 
)
friend

Write DAQ timeslice to output.

Parameters
outJWriter
timesliceJDAQTimeslice
Returns
JWriter

Definition at line 192 of file JDAQTimeslice.hh.

193  {
194  out << static_cast<const JDAQPreamble&> (timeslice);
195  out << static_cast<const JDAQTimesliceHeader&> (timeslice);
196  out << static_cast<const std::vector<JDAQSuperFrame>&>(timeslice);
197 
198  return out;
199  }

Member Data Documentation

◆ length

int KM3NETDAQ::JDAQAbstractPreamble::length
protectedinherited

Definition at line 79 of file JDAQAbstractPreamble.hh.

◆ type

int KM3NETDAQ::JDAQAbstractPreamble::type
protectedinherited

Definition at line 80 of file JDAQAbstractPreamble.hh.

◆ detector_id

int KM3NETDAQ::JDAQChronometer::detector_id
protectedinherited

Definition at line 237 of file JDAQChronometer.hh.

◆ run

int KM3NETDAQ::JDAQChronometer::run
protectedinherited

Definition at line 238 of file JDAQChronometer.hh.

◆ frame_index

int KM3NETDAQ::JDAQChronometer::frame_index
protectedinherited

Definition at line 239 of file JDAQChronometer.hh.

◆ timeslice_start

JDAQUTCExtended KM3NETDAQ::JDAQChronometer::timeslice_start
protectedinherited

Definition at line 240 of file JDAQChronometer.hh.


The documentation for this class was generated from the following files:
KM3NETDAQ::JDAQChronometer::setDAQChronometer
void setDAQChronometer(const JDAQChronometer &chronometer)
Set DAQ chronometer.
Definition: JDAQChronometer.hh:99
KM3NETDAQ::JDAQSnapshotHit
JDAQKeyHit JDAQSnapshotHit
Definition: JDAQEvent.hh:28
std::iterator
Definition: JSTDTypes.hh:18
KM3NETDAQ::JDAQAbstractPreamble::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQAbstractPreamble.hh:70
KM3NETDAQ::JDAQChronometer::timeslice_start
JDAQUTCExtended timeslice_start
Definition: JDAQChronometer.hh:240
KM3NETDAQ::JDAQPreamble::JDAQPreamble
JDAQPreamble()
Default constructor.
Definition: JDAQPreamble.hh:60
KM3NETDAQ::JDAQTimesliceHeader::JDAQTimesliceHeader
JDAQTimesliceHeader()
Default constructor.
Definition: JDAQTimesliceHeader.hh:29
KM3NETDAQ::JDAQAbstractPreamble::length
int length
Definition: JDAQAbstractPreamble.hh:79
JTOOLS::n
const int n
Definition: JPolint.hh:628
std::vector< JDAQSuperFrame >
distance
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Definition: PhysicsEvent.hh:434
KM3NETDAQ::JDAQPreamble::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQPreamble.hh:110
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
KM3NETDAQ::JDAQTimeslice::clear
void clear()
Clear data.
Definition: JDAQTimeslice.hh:98
KM3NETDAQ::JDAQPreamble::getSize
virtual int getSize() const
Get size of object.
Definition: JDAQPreamble.hh:121
KM3NETDAQ::JDAQChronometer::frame_index
int frame_index
Definition: JDAQChronometer.hh:239
std::map
Definition: JSTDTypes.hh:16
KM3NETDAQ::JDAQFrameStatus::getInstance
static const JDAQFrameStatus & getInstance()
Get reference to unique instance of this class object.
Definition: JDAQFrameStatus.hh:66
KM3NETDAQ::JDAQHeader::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQHeader.hh:103
KM3NETDAQ::JDAQChronometer::getDAQChronometer
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
Definition: JDAQChronometer.hh:88
std
Definition: jaanetDictionary.h:36
KM3NETDAQ::JDAQChronometer::run
int run
Definition: JDAQChronometer.hh:238
KM3NETDAQ::JDAQAbstractPreamble::type
int type
Definition: JDAQAbstractPreamble.hh:80
KM3NETDAQ::JDAQFrame::const_iterator
const typedef JDAQHit * const_iterator
Definition: JDAQFrame.hh:74
KM3NETDAQ::JDAQChronometer::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQChronometer.hh:224
KM3NETDAQ::JDAQChronometer::detector_id
int detector_id
Definition: JDAQChronometer.hh:237