#include <DaqCrate.h>
Inheritance diagram for DayaBay::DaqCrate:
Public Member Functions | |
| DaqCrate (const DybDaq::EventReadout *eventReadout) | |
| Standard constructor. | |
| DaqCrate (const DayaBay::Detector &detector, const unsigned int run, const unsigned int event) | |
| Monte Carlo constructor. | |
| DaqCrate (const DayaBay::DaqCrate &crate) | |
| Copy constructor. | |
| DaqCrate () | |
| Default Constructor. | |
| virtual | ~DaqCrate () |
| Destroys this instance of the class. | |
| virtual std::ostream & | fillStream (std::ostream &s) const |
| Fill the ASCII output stream. | |
| const DayaBay::DaqPmtCrate * | asPmtCrate () const |
| Returns this object as a DaqPmtCrate. | |
| const DayaBay::Detector & | detector () const |
| Returns the detector associated with this readout. | |
| unsigned int | eventNumber () const |
| Returns the event number assigned to this readout. | |
| const DybDaq::EventReadout & | eventReadout () const |
| Returns the wrapped EventReadout instance. | |
| unsigned int | localTriggerNumber () const |
| Returns the local trigger number of this readout. | |
| unsigned int | runNumber () const |
| Returns the run number in which this readout was taken. | |
| const TimeStamp & | triggerTime () const |
| Returns the timestamp of the first trigger frame in this readout. | |
| Trigger::TriggerType_t | triggerType () const |
| Returns the trigger type of this readout. | |
| bool | addLtb (const DaqLtb *ltb, const unsigned int slot) |
| Adds a new LTB to this readout at the specified lot. | |
Static Public Member Functions | |
| static void * | operator new (size_t size) |
| operator new | |
| static void * | operator new (size_t size, void *pObj) |
| placement operator new it is needed by libstdc++ 3.2.3 (e.g. | |
| static void | operator delete (void *p) |
| operator delete | |
| static void | operator delete (void *p, void *pObj) |
| placement operator delete not sure if really needed, but it does not harm | |
Protected Member Functions | |
| DaqCrate & | operator= (const DayaBay::DaqCrate &rhs) |
| Assignement operator. | |
| const DayaBay::DaqLtbFrame & | firstLtbFrame () const |
| Returns the first LTB frame in the LTB readout for this readout. | |
| const DayaBay::DaqLtb & | ltb () const |
| Returns the LTB for this readout. | |
| DybDaq::EventReadout & | eventReadout () |
| Returns the wrapped EventReadout instance. | |
Private Member Functions | |
| void | flushCache () |
| Deletes any objects cached by this instance. | |
Private Attributes | |
| DayaBay::Detector * | m_detector |
| The detector associated with this readout. | |
| DybDaq::EventReadout * | m_eventReadout |
| The wrapped EventReadout instance. | |
| const DayaBay::DaqLtb * | m_ltb |
| The local trigger board in this readout. | |
Definition at line 45 of file DaqCrate.h.
| DaqCrate::DaqCrate | ( | const DybDaq::EventReadout * | eventReadout | ) |
Standard constructor.
Definition at line 122 of file DaqCrate.cc.
00122 : 00123 m_detector(0), 00124 m_eventReadout(const_cast<EventReadout*>(eventReadout)), 00125 m_ltb(0) { 00126 }
| DaqCrate::DaqCrate | ( | const DayaBay::Detector & | detector, | |
| const unsigned int | run, | |||
| const unsigned int | event | |||
| ) |
Monte Carlo constructor.
Definition at line 105 of file DaqCrate.cc.
00107 : 00108 m_detector(0), 00109 m_eventReadout(new EventReadout(convertSite(detector.site()), 00110 convertDetectorId(detector.detectorId()), 00111 run, 00112 event, 00113 0, // Normal data type 00114 false, 00115 false, 00116 false, 00117 CbltTraits::defaultTraits(), 00118 EventTraits::defaultTraits())), 00119 m_ltb(0) { 00120 }
| DaqCrate::DaqCrate | ( | const DayaBay::DaqCrate & | crate | ) |
Copy constructor.
Definition at line 128 of file DaqCrate.cc.
00128 : 00129 m_detector(0), 00130 m_eventReadout(0), 00131 m_ltb(0) { 00132 const EventReadout& readout = crate.eventReadout(); 00133 // WARNING: NExt line will fail to work if EventReadout is not ByteBuffer based. 00134 m_eventReadout = new EventReadout(readout); 00135 }
| DayaBay::DaqCrate::DaqCrate | ( | ) | [inline] |
Default Constructor.
Definition at line 61 of file DaqCrate.h.
00061 : m_detector(0), 00062 m_eventReadout(0), 00063 m_ltb(0) {}
| DaqCrate::~DaqCrate | ( | ) | [virtual] |
Destroys this instance of the class.
Definition at line 137 of file DaqCrate.cc.
00137 { 00138 flushCache(); 00139 }
| std::ostream & DayaBay::DaqCrate::fillStream | ( | std::ostream & | s | ) | const [inline, virtual] |
Fill the ASCII output stream.
Reimplemented in DayaBay::DaqPmtCrate.
Definition at line 172 of file DaqCrate.h.
00173 { 00174 s << "{ " << "detector : " << m_detector << std::endl 00175 << "eventReadout : " << m_eventReadout << std::endl 00176 << "ltb : " << m_ltb << std::endl << " }"; 00177 return s; 00178 }
| const DaqPmtCrate * DaqCrate::asPmtCrate | ( | ) | const |
| const Detector & DaqCrate::detector | ( | ) | const |
Returns the detector associated with this readout.
Definition at line 195 of file DaqCrate.cc.
00195 { 00196 if (0 == m_detector) { 00197 const EventHeader& header = m_eventReadout->header(); 00198 Detector** detector = const_cast<Detector**>(&m_detector); 00199 *(detector) = new Detector(convertSite(header.site()), 00200 convertDetector(header.detector())); 00201 00202 } 00203 return *m_detector; 00204 }
| unsigned int DaqCrate::eventNumber | ( | ) | const |
Returns the event number assigned to this readout.
Definition at line 167 of file DaqCrate.cc.
00167 { 00168 return m_eventReadout->header().event(); 00169 }
| const DybDaq::EventReadout & DaqCrate::eventReadout | ( | ) | const |
Returns the wrapped EventReadout instance.
Definition at line 171 of file DaqCrate.cc.
00171 { 00172 return *m_eventReadout; 00173 }
| unsigned int DaqCrate::localTriggerNumber | ( | ) | const |
Returns the local trigger number of this readout.
Definition at line 175 of file DaqCrate.cc.
00175 { 00176 const DaqLtb& localTriggerBoard = ltb(); 00177 return localTriggerBoard.localTriggerNumber(); 00178 }
| unsigned int DaqCrate::runNumber | ( | ) | const |
Returns the run number in which this readout was taken.
Definition at line 180 of file DaqCrate.cc.
00180 { 00181 return m_eventReadout->header().run(); 00182 }
| const TimeStamp & DaqCrate::triggerTime | ( | ) | const |
Returns the timestamp of the first trigger frame in this readout.
Definition at line 184 of file DaqCrate.cc.
00184 { 00185 const DaqLtbFrame& frame = firstLtbFrame(); 00186 return frame.triggerTime(); 00187 }
| DayaBay::Trigger::TriggerType_t DaqCrate::triggerType | ( | ) | const |
Returns the trigger type of this readout.
Definition at line 189 of file DaqCrate.cc.
00189 { 00190 const DaqLtbFrame& frame = firstLtbFrame(); 00191 // TODO: Chek whether this should be the sum of all frames? 00192 return frame.triggerType(); 00193 }
| bool DaqCrate::addLtb | ( | const DaqLtb * | ltb, | |
| const unsigned int | slot | |||
| ) |
Adds a new LTB to this readout at the specified lot.
Definition at line 234 of file DaqCrate.cc.
00235 { 00236 if (0 != m_ltb) { 00237 return false; 00238 } 00239 m_ltb = ltb; 00240 eventReadout().addReadout(ltb->ltbReadout(), 00241 slot); 00242 return true; 00243 }
| static void* DayaBay::DaqCrate::operator new | ( | size_t | size | ) | [inline, static] |
operator new
Reimplemented in DayaBay::DaqPmtCrate.
Definition at line 102 of file DaqCrate.h.
00103 { 00104 return ( sizeof(DaqCrate) == size ? 00105 boost::singleton_pool<DaqCrate, sizeof(DaqCrate)>::malloc() : 00106 ::operator new(size) ); 00107 }
| static void* DayaBay::DaqCrate::operator new | ( | size_t | size, | |
| void * | pObj | |||
| ) | [inline, static] |
placement operator new it is needed by libstdc++ 3.2.3 (e.g.
in std::vector) it is not needed in libstdc++ >= 3.4
Reimplemented in DayaBay::DaqPmtCrate.
Definition at line 112 of file DaqCrate.h.
| static void DayaBay::DaqCrate::operator delete | ( | void * | p | ) | [inline, static] |
operator delete
Reimplemented in DayaBay::DaqPmtCrate.
Definition at line 118 of file DaqCrate.h.
00119 { 00120 boost::singleton_pool<DaqCrate, sizeof(DaqCrate)>::is_from(p) ? 00121 boost::singleton_pool<DaqCrate, sizeof(DaqCrate)>::free(p) : 00122 ::operator delete(p); 00123 }
| static void DayaBay::DaqCrate::operator delete | ( | void * | p, | |
| void * | pObj | |||
| ) | [inline, static] |
placement operator delete not sure if really needed, but it does not harm
Reimplemented in DayaBay::DaqPmtCrate.
Definition at line 127 of file DaqCrate.h.
00128 { 00129 ::operator delete (p, pObj); 00130 }
| DaqCrate & DaqCrate::operator= | ( | const DayaBay::DaqCrate & | rhs | ) | [protected] |
Assignement operator.
Definition at line 141 of file DaqCrate.cc.
00141 { 00142 if (this != &rhs) { 00143 flushCache(); 00144 m_detector = 0; 00145 m_eventReadout = new EventReadout(rhs.eventReadout()); 00146 m_ltb = 0; 00147 } 00148 return *this; 00149 }
| const DaqLtbFrame & DaqCrate::firstLtbFrame | ( | ) | const [protected] |
Returns the first LTB frame in the LTB readout for this readout.
Definition at line 206 of file DaqCrate.cc.
00206 { 00207 const DaqLtb& crateLtb = ltb(); 00208 return crateLtb.firstFrame(); 00209 }
| const DaqLtb & DaqCrate::ltb | ( | ) | const [protected] |
Returns the LTB for this readout.
Definition at line 211 of file DaqCrate.cc.
00211 { 00212 if ( 0 == m_ltb) { 00213 if (0 == m_eventReadout) { 00214 return *((DaqLtb*)0); 00215 } 00216 const EventReadout::RomFragmentPtrList& fragments = m_eventReadout->romFragments(); 00217 EventReadout::RomFragmentPtrList::const_iterator fragment = fragments.begin(); 00218 unsigned int ltbModuleType = m_eventReadout->header().eventTraits().moduleType(EventTraits::kLtbModule); 00219 while((ltbModuleType != ((*fragment)->header().moduleType())) 00220 && fragment != fragments.end()) { 00221 ++fragment; 00222 } 00223 if (fragment == fragments.end()) { 00224 return *((DaqLtb*)0); 00225 } 00226 const RomData& romData = (*fragment)->unwrappedData(); 00227 const DaqLtb** ltb = const_cast<const DaqLtb**>(&m_ltb); 00228 *(ltb) = new DaqLtb(dynamic_cast<const LtbReadout&>(romData), 00229 detector()); 00230 } 00231 return *m_ltb; 00232 }
| DybDaq::EventReadout & DaqCrate::eventReadout | ( | ) | [protected] |
Returns the wrapped EventReadout instance.
Definition at line 245 of file DaqCrate.cc.
00245 { 00246 return *m_eventReadout; 00247 }
| void DaqCrate::flushCache | ( | ) | [private] |
Deletes any objects cached by this instance.
Reimplemented in DayaBay::DaqPmtCrate.
Definition at line 151 of file DaqCrate.cc.
00151 { 00152 if (0 != m_ltb) { 00153 delete m_ltb; 00154 } 00155 if (0 != m_eventReadout) { 00156 delete m_eventReadout; 00157 } 00158 if (0 != m_detector) { 00159 delete m_detector; 00160 } 00161 }
DayaBay::Detector* DayaBay::DaqCrate::m_detector [private] |
const DayaBay::DaqLtb* DayaBay::DaqCrate::m_ltb [private] |
1.4.7