Jpp  master_rocky-43-ge265d140c
the software that should make you happy
Public Member Functions | Static Public 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...
 
 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

template<class T >
static JDAQPreamble getDAQPreamble (const T &object)
 Get DAQ preamble. More...
 

Protected Attributes

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

Friends

size_t getSizeof (const JDAQTimeslice &)
 Get size of object. More...
 
JReaderoperator>> (JReader &, JDAQTimeslice &)
 Read DAQ time slice from input. More...
 
JWriteroperator<< (JWriter &, const JDAQTimeslice &)
 Write DAQ time slice to output. More...
 

Detailed Description

Data time slice.

Definition at line 30 of file JDAQTimeslice.hh.

Constructor & Destructor Documentation

◆ JDAQTimeslice() [1/4]

KM3NETDAQ::JDAQTimeslice::JDAQTimeslice ( )
inline

Default constructor.

Definition at line 44 of file JDAQTimeslice.hh.

44  :
48  {}
JDAQPreamble()
Default constructor.
Definition: JDAQPreamble.hh:51
JDAQTimesliceHeader()
Default constructor.
Auxiliary class for a DAQ type holder.

◆ JDAQTimeslice() [2/4]

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

Constructor.

Parameters
chronometerDAQ chronometer

Definition at line 56 of file JDAQTimeslice.hh.

56  :
58  JDAQTimesliceHeader(chronometer),
60  {}

◆ 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 externals/km3net-dataformat/src/JDAQTimeslice.cc.

23  :
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  }
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
const_iterator< T > end() const
Get end of data.
const_iterator< T > begin() const
Get begin of data.
Data frame of one optical module.
Definition: JSTDTypes.hh:14

◆ 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 externals/km3net-dataformat/src/JDAQTimeslice.cc.

66  :
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 
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  }
static const JDAQFrameStatus & getInstance()
Get reference to unique instance of this class object.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).

◆ ~JDAQTimeslice()

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

Virtual destructor.

Definition at line 88 of file JDAQTimeslice.hh.

89  {
90  clear();
91  }
void clear()
Clear data.

Member Function Documentation

◆ clear()

void KM3NETDAQ::JDAQTimeslice::clear ( )
inline

Clear data.

Definition at line 97 of file JDAQTimeslice.hh.

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

◆ operator=()

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

Assignment operator.

Parameters
timeslicetimeslice
Returns
this timeslice

Definition at line 113 of file JDAQTimeslice.hh.

114  {
115  clear();
116 
118 
119  for (const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
120  push_back(*i);
121  }
122 
123  return *this;
124  }
void setDAQChronometer(const JDAQChronometer &chronometer)
Set DAQ chronometer.

◆ add()

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

Add another timeslice.

Parameters
timeslicetimeslice
Returns
this timeslice

Definition at line 133 of file JDAQTimeslice.hh.

134  {
135  using namespace std;
136 
138 
139  for (const_iterator i = this->begin(); i != this->end(); ++i) {
140  buffer[i->getModuleIdentifier()] = distance(static_cast<const JDAQTimeslice&>(*this).begin(),i);
141  }
142 
143  for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
144 
145  map<JDAQModuleIdentifier, int>::const_iterator p = buffer.find(i->getModuleIdentifier());
146 
147  if (p != buffer.end()) {
148 
149  JDAQSuperFrame& frame = this->at(p->second);
150 
151  frame.add(*i);
152 
153  sort(frame.begin(), frame.end());
154 
155  } else {
156 
157  this->push_back(*i);
158  }
159  }
160 
161  return *this;
162  }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
const_iterator end() const
Definition: JDAQFrame.hh:166
const_iterator begin() const
Definition: JDAQFrame.hh:165
JDAQSuperFrame & add(const JDAQSuperFrame &super_frame)
Add data from same optical module.

◆ 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 172 of file JDAQTimeslice.hh.

173  {
174  using namespace std;
175 
176  out << this->ClassName() << endl;
177  out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
178  out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
179 
180  for (JDAQTimeslice::const_iterator frame = this->begin(); frame != this->end(); ++frame) {
181 
182  out << ' ' << setw(10) << frame->getModuleID();
183  out << ' ' << setw(6) << frame->getLength();
184  out << ' ' << setw(6) << frame->getDataType();
185  out << ' ' << setw(6) << frame->getTimesliceStart();
186  out << ' ' << setw(8) << setfill('0') << hex << frame->getStatus() << dec << setfill(' ');
187  out << '|' << setw(8) << setfill('0') << hex << frame->getFIFOStatus() << dec << setfill(' ');
188  out << ' ' << setw(2) << frame->getUDPNumberOfReceivedPackets();
189  out << '/' << setw(2) << frame->getUDPMaximalSequenceNumber();
190  out << ' ' << setw(6) << frame->size();
191 
192  if (!lpr) {
193 
194  if (!frame->empty()) {
195 
196  out << ' ' << setw(10) << frame-> begin()->getT();
197  out << " ... ";
198  out << ' ' << setw(10) << frame->rbegin()->getT();
199  }
200 
201  out << endl;
202 
203  } else {
204 
205  out << endl;
206 
207  int n = 1;
208 
209  for (JDAQFrame::const_iterator hit = frame->begin(); hit != frame->end(); ++hit, ++n) {
210  out << setw(2) << (int) hit->getPMT() << ' '
211  << setw(8) << (int) hit->getT() << ' '
212  << setw(3) << (int) hit->getToT() << (n%10 == 0 ? '\n' : ' ');
213  }
214 
215  out << endl;
216  }
217  }
218 
219  return out;
220  }
Hit data structure.
Definition: JDAQHit.hh:35
const int n
Definition: JPolint.hh:786

◆ ClassDef() [1/5]

KM3NETDAQ::JDAQTimeslice::ClassDef ( JDAQTimeslice  ,
 
)

◆ 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);
81  preamble.type = KM3NETDAQ::getDataType<T>();
82 
83  return preamble;
84  }
friend size_t getSizeof()
Definition of method to get size of data type.

◆ ClassDef() [2/5]

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

◆ 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  ,
 
)
inherited

◆ getDAQTimesliceHeader()

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

Get DAQ time slice header.

Returns
DAQ time slice header

Definition at line 43 of file JDAQTimesliceHeader.hh.

44  {
45  return static_cast<const JDAQTimesliceHeader&>(*this);
46  }

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

Friends And Related Function Documentation

◆ getSizeof

size_t getSizeof ( const JDAQTimeslice object)
friend

Get size of object.

Parameters
objectDAQ event
Returns
number of bytes

Definition at line 25 of file JDAQTimesliceIO.hh.

26  {
27  int len = 0;
28 
29  len += getSizeof<JDAQPreamble>();
30  len += sizeof(Version_t);
32 
33  len += sizeof(int);
34 
35  for (JDAQTimeslice::const_iterator frame = object.begin(); frame != object.end(); ++frame) {
36  len += getSizeof(*frame);
37  }
38 
39  return len;
40  }
size_t getSizeof< JDAQTimesliceHeader >()
Get size of type.
size_t getSizeof< JDAQPreamble >()
Get size of type.

◆ operator>>

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

Read DAQ time slice from input.

Parameters
inreader
objectDAQ time slice
Returns
reader

Definition at line 50 of file JDAQTimesliceIO.hh.

51  {
52  Version_t version;
53 
54  object.clear();
55 
56  in >> static_cast<JDAQPreamble&> (object);
57  in >> version;
58  in >> static_cast<JDAQTimesliceHeader&> (object);
59  in >> static_cast<std::vector<JDAQSuperFrame>&>(object);
60 
61  return in;
62  }

◆ operator<<

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

Write DAQ time slice to output.

Parameters
outwriter
objectDAQ time slice
Returns
writer

Definition at line 72 of file JDAQTimesliceIO.hh.

73  {
74  out << JDAQPreamble::getDAQPreamble(object);
75  out << JDAQTimeslice::Class_Version();
76  out << static_cast<const JDAQTimesliceHeader&> (object);
77  out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
78 
79  return out;
80  }
static JDAQPreamble getDAQPreamble(const T &object)
Get DAQ preamble.
Definition: JDAQPreamble.hh:76

Member Data Documentation

◆ 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 files: