00001
00002
00003
00004 #include "psddl_pds2psana/evr.ddl.h"
00005
00006 #include <cstddef>
00007
00008 #include <stdexcept>
00009
00010 namespace psddl_pds2psana {
00011 namespace EvrData {
00012 Psana::EvrData::PulseConfig pds_to_psana(Pds::EvrData::PulseConfig pds)
00013 {
00014 return Psana::EvrData::PulseConfig(pds.pulse(), pds.trigger(), pds.set(), pds.clear(), pds.polarity(), pds.map_set_enable(), pds.map_reset_enable(), pds.map_trigger_enable(), pds.prescale(), pds.delay(), pds.width());
00015 }
00016
00017 Psana::EvrData::PulseConfigV3 pds_to_psana(Pds::EvrData::PulseConfigV3 pds)
00018 {
00019 return Psana::EvrData::PulseConfigV3(pds.pulseId(), pds.polarity(), pds.prescale(), pds.delay(), pds.width());
00020 }
00021
00022 Psana::EvrData::EventCodeV3 pds_to_psana(Pds::EvrData::EventCodeV3 pds)
00023 {
00024 return Psana::EvrData::EventCodeV3(pds.code(), pds.isReadout(), pds.isTerminator(), pds.maskTrigger(), pds.maskSet(), pds.maskClear());
00025 }
00026
00027 Psana::EvrData::EventCodeV4 pds_to_psana(Pds::EvrData::EventCodeV4 pds)
00028 {
00029 return Psana::EvrData::EventCodeV4(pds.code(), pds.isReadout(), pds.isTerminator(), pds.reportDelay(), pds.reportWidth(), pds.maskTrigger(), pds.maskSet(), pds.maskClear());
00030 }
00031
00032 Psana::EvrData::EventCodeV5 pds_to_psana(Pds::EvrData::EventCodeV5 pds)
00033 {
00034 return Psana::EvrData::EventCodeV5(pds.code(), pds.isReadout(), pds.isCommand(), pds.isLatch(), pds.reportDelay(), pds.reportWidth(), pds.maskTrigger(), pds.maskSet(), pds.maskClear(), pds.desc());
00035 }
00036
00037 Psana::EvrData::EventCodeV6 pds_to_psana(Pds::EvrData::EventCodeV6 pds)
00038 {
00039 return Psana::EvrData::EventCodeV6(pds.code(), pds.isReadout(), pds.isCommand(), pds.isLatch(), pds.reportDelay(), pds.reportWidth(), pds.maskTrigger(), pds.maskSet(), pds.maskClear(), pds.desc(), pds.readoutGroup());
00040 }
00041
00042 Psana::EvrData::SrcEventCode pds_to_psana(Pds::EvrData::SrcEventCode pds)
00043 {
00044 return Psana::EvrData::SrcEventCode(pds.code(), pds.period(), pds.maskTriggerP(), pds.maskTriggerR(), pds.desc(), pds.readoutGroup());
00045 }
00046
00047 Psana::EvrData::OutputMap::Source pds_to_psana(Pds::EvrData::OutputMap::Source e)
00048 {
00049 return Psana::EvrData::OutputMap::Source(e);
00050 }
00051
00052 Psana::EvrData::OutputMap::Conn pds_to_psana(Pds::EvrData::OutputMap::Conn e)
00053 {
00054 return Psana::EvrData::OutputMap::Conn(e);
00055 }
00056
00057 Psana::EvrData::OutputMap pds_to_psana(Pds::EvrData::OutputMap pds)
00058 {
00059 return Psana::EvrData::OutputMap(pds_to_psana(pds.source()), pds.source_id(), pds_to_psana(pds.conn()), pds.conn_id());
00060 }
00061
00062 Psana::EvrData::OutputMapV2::Source pds_to_psana(Pds::EvrData::OutputMapV2::Source e)
00063 {
00064 return Psana::EvrData::OutputMapV2::Source(e);
00065 }
00066
00067 Psana::EvrData::OutputMapV2::Conn pds_to_psana(Pds::EvrData::OutputMapV2::Conn e)
00068 {
00069 return Psana::EvrData::OutputMapV2::Conn(e);
00070 }
00071
00072 Psana::EvrData::OutputMapV2 pds_to_psana(Pds::EvrData::OutputMapV2 pds)
00073 {
00074 return Psana::EvrData::OutputMapV2(pds_to_psana(pds.source()), pds.source_id(), pds_to_psana(pds.conn()), pds.conn_id(), pds.module());
00075 }
00076
00077 ConfigV1::ConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00078 : Psana::EvrData::ConfigV1()
00079 , m_xtcObj(xtcPtr)
00080 {
00081 {
00082 typedef ndarray<Psana::EvrData::PulseConfig, 1> NDArray;
00083 typedef ndarray<const Pds::EvrData::PulseConfig, 1> XtcNDArray;
00084 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00085 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00086 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00087 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00088 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00089 }
00090 }
00091 {
00092 typedef ndarray<Psana::EvrData::OutputMap, 1> NDArray;
00093 typedef ndarray<const Pds::EvrData::OutputMap, 1> XtcNDArray;
00094 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00095 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00096 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00097 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00098 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00099 }
00100 }
00101 }
00102 ConfigV1::~ConfigV1()
00103 {
00104 }
00105
00106
00107 uint32_t ConfigV1::npulses() const {
00108 return m_xtcObj->npulses();
00109 }
00110
00111
00112 uint32_t ConfigV1::noutputs() const {
00113 return m_xtcObj->noutputs();
00114 }
00115
00116 ndarray<const Psana::EvrData::PulseConfig, 1> ConfigV1::pulses() const { return _pulses_ndarray_storage_; }
00117 ndarray<const Psana::EvrData::OutputMap, 1> ConfigV1::output_maps() const { return _output_maps_ndarray_storage_; }
00118 Psana::EvrData::ConfigV2::RateCode pds_to_psana(Pds::EvrData::ConfigV2::RateCode e)
00119 {
00120 return Psana::EvrData::ConfigV2::RateCode(e);
00121 }
00122
00123 Psana::EvrData::ConfigV2::BeamCode pds_to_psana(Pds::EvrData::ConfigV2::BeamCode e)
00124 {
00125 return Psana::EvrData::ConfigV2::BeamCode(e);
00126 }
00127
00128 ConfigV2::ConfigV2(const boost::shared_ptr<const XtcType>& xtcPtr)
00129 : Psana::EvrData::ConfigV2()
00130 , m_xtcObj(xtcPtr)
00131 {
00132 {
00133 typedef ndarray<Psana::EvrData::PulseConfig, 1> NDArray;
00134 typedef ndarray<const Pds::EvrData::PulseConfig, 1> XtcNDArray;
00135 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00136 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00137 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00138 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00139 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00140 }
00141 }
00142 {
00143 typedef ndarray<Psana::EvrData::OutputMap, 1> NDArray;
00144 typedef ndarray<const Pds::EvrData::OutputMap, 1> XtcNDArray;
00145 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00146 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00147 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00148 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00149 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00150 }
00151 }
00152 }
00153 ConfigV2::~ConfigV2()
00154 {
00155 }
00156
00157
00158 uint32_t ConfigV2::opcode() const {
00159 return m_xtcObj->opcode();
00160 }
00161
00162
00163 uint32_t ConfigV2::npulses() const {
00164 return m_xtcObj->npulses();
00165 }
00166
00167
00168 uint32_t ConfigV2::noutputs() const {
00169 return m_xtcObj->noutputs();
00170 }
00171
00172 ndarray<const Psana::EvrData::PulseConfig, 1> ConfigV2::pulses() const { return _pulses_ndarray_storage_; }
00173 ndarray<const Psana::EvrData::OutputMap, 1> ConfigV2::output_maps() const { return _output_maps_ndarray_storage_; }
00174
00175 Psana::EvrData::ConfigV2::BeamCode ConfigV2::beam() const {
00176 return pds_to_psana(m_xtcObj->beam());
00177 }
00178
00179
00180 Psana::EvrData::ConfigV2::RateCode ConfigV2::rate() const {
00181 return pds_to_psana(m_xtcObj->rate());
00182 }
00183
00184 ConfigV3::ConfigV3(const boost::shared_ptr<const XtcType>& xtcPtr)
00185 : Psana::EvrData::ConfigV3()
00186 , m_xtcObj(xtcPtr)
00187 {
00188 {
00189 typedef ndarray<Psana::EvrData::EventCodeV3, 1> NDArray;
00190 typedef ndarray<const Pds::EvrData::EventCodeV3, 1> XtcNDArray;
00191 const XtcNDArray& xtc_ndarr = xtcPtr->eventcodes();
00192 _eventcodes_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00193 NDArray::iterator out = _eventcodes_ndarray_storage_.begin();
00194 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00195 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00196 }
00197 }
00198 {
00199 typedef ndarray<Psana::EvrData::PulseConfigV3, 1> NDArray;
00200 typedef ndarray<const Pds::EvrData::PulseConfigV3, 1> XtcNDArray;
00201 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00202 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00203 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00204 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00205 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00206 }
00207 }
00208 {
00209 typedef ndarray<Psana::EvrData::OutputMap, 1> NDArray;
00210 typedef ndarray<const Pds::EvrData::OutputMap, 1> XtcNDArray;
00211 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00212 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00213 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00214 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00215 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00216 }
00217 }
00218 }
00219 ConfigV3::~ConfigV3()
00220 {
00221 }
00222
00223
00224 uint32_t ConfigV3::neventcodes() const {
00225 return m_xtcObj->neventcodes();
00226 }
00227
00228
00229 uint32_t ConfigV3::npulses() const {
00230 return m_xtcObj->npulses();
00231 }
00232
00233
00234 uint32_t ConfigV3::noutputs() const {
00235 return m_xtcObj->noutputs();
00236 }
00237
00238 ndarray<const Psana::EvrData::EventCodeV3, 1> ConfigV3::eventcodes() const { return _eventcodes_ndarray_storage_; }
00239 ndarray<const Psana::EvrData::PulseConfigV3, 1> ConfigV3::pulses() const { return _pulses_ndarray_storage_; }
00240 ndarray<const Psana::EvrData::OutputMap, 1> ConfigV3::output_maps() const { return _output_maps_ndarray_storage_; }
00241 ConfigV4::ConfigV4(const boost::shared_ptr<const XtcType>& xtcPtr)
00242 : Psana::EvrData::ConfigV4()
00243 , m_xtcObj(xtcPtr)
00244 {
00245 {
00246 typedef ndarray<Psana::EvrData::EventCodeV4, 1> NDArray;
00247 typedef ndarray<const Pds::EvrData::EventCodeV4, 1> XtcNDArray;
00248 const XtcNDArray& xtc_ndarr = xtcPtr->eventcodes();
00249 _eventcodes_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00250 NDArray::iterator out = _eventcodes_ndarray_storage_.begin();
00251 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00252 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00253 }
00254 }
00255 {
00256 typedef ndarray<Psana::EvrData::PulseConfigV3, 1> NDArray;
00257 typedef ndarray<const Pds::EvrData::PulseConfigV3, 1> XtcNDArray;
00258 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00259 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00260 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00261 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00262 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00263 }
00264 }
00265 {
00266 typedef ndarray<Psana::EvrData::OutputMap, 1> NDArray;
00267 typedef ndarray<const Pds::EvrData::OutputMap, 1> XtcNDArray;
00268 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00269 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00270 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00271 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00272 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00273 }
00274 }
00275 }
00276 ConfigV4::~ConfigV4()
00277 {
00278 }
00279
00280
00281 uint32_t ConfigV4::neventcodes() const {
00282 return m_xtcObj->neventcodes();
00283 }
00284
00285
00286 uint32_t ConfigV4::npulses() const {
00287 return m_xtcObj->npulses();
00288 }
00289
00290
00291 uint32_t ConfigV4::noutputs() const {
00292 return m_xtcObj->noutputs();
00293 }
00294
00295 ndarray<const Psana::EvrData::EventCodeV4, 1> ConfigV4::eventcodes() const { return _eventcodes_ndarray_storage_; }
00296 ndarray<const Psana::EvrData::PulseConfigV3, 1> ConfigV4::pulses() const { return _pulses_ndarray_storage_; }
00297 ndarray<const Psana::EvrData::OutputMap, 1> ConfigV4::output_maps() const { return _output_maps_ndarray_storage_; }
00298 Psana::EvrData::SequencerEntry pds_to_psana(Pds::EvrData::SequencerEntry pds)
00299 {
00300 return Psana::EvrData::SequencerEntry(pds.eventcode(), pds.delay());
00301 }
00302
00303 Psana::EvrData::SequencerConfigV1::Source pds_to_psana(Pds::EvrData::SequencerConfigV1::Source e)
00304 {
00305 return Psana::EvrData::SequencerConfigV1::Source(e);
00306 }
00307
00308 SequencerConfigV1::SequencerConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00309 : Psana::EvrData::SequencerConfigV1()
00310 , m_xtcObj(xtcPtr)
00311 {
00312 {
00313 typedef ndarray<Psana::EvrData::SequencerEntry, 1> NDArray;
00314 typedef ndarray<const Pds::EvrData::SequencerEntry, 1> XtcNDArray;
00315 const XtcNDArray& xtc_ndarr = xtcPtr->entries();
00316 _entries_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00317 NDArray::iterator out = _entries_ndarray_storage_.begin();
00318 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00319 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00320 }
00321 }
00322 }
00323 SequencerConfigV1::~SequencerConfigV1()
00324 {
00325 }
00326
00327
00328 Psana::EvrData::SequencerConfigV1::Source SequencerConfigV1::sync_source() const {
00329 return pds_to_psana(m_xtcObj->sync_source());
00330 }
00331
00332
00333 Psana::EvrData::SequencerConfigV1::Source SequencerConfigV1::beam_source() const {
00334 return pds_to_psana(m_xtcObj->beam_source());
00335 }
00336
00337
00338 uint32_t SequencerConfigV1::length() const {
00339 return m_xtcObj->length();
00340 }
00341
00342
00343 uint32_t SequencerConfigV1::cycles() const {
00344 return m_xtcObj->cycles();
00345 }
00346
00347 ndarray<const Psana::EvrData::SequencerEntry, 1> SequencerConfigV1::entries() const { return _entries_ndarray_storage_; }
00348 ConfigV5::ConfigV5(const boost::shared_ptr<const XtcType>& xtcPtr)
00349 : Psana::EvrData::ConfigV5()
00350 , m_xtcObj(xtcPtr)
00351 , _seq_config(boost::shared_ptr<const Pds::EvrData::SequencerConfigV1>(xtcPtr, &xtcPtr->seq_config()))
00352 {
00353 {
00354 typedef ndarray<Psana::EvrData::EventCodeV5, 1> NDArray;
00355 typedef ndarray<const Pds::EvrData::EventCodeV5, 1> XtcNDArray;
00356 const XtcNDArray& xtc_ndarr = xtcPtr->eventcodes();
00357 _eventcodes_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00358 NDArray::iterator out = _eventcodes_ndarray_storage_.begin();
00359 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00360 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00361 }
00362 }
00363 {
00364 typedef ndarray<Psana::EvrData::PulseConfigV3, 1> NDArray;
00365 typedef ndarray<const Pds::EvrData::PulseConfigV3, 1> XtcNDArray;
00366 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00367 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00368 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00369 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00370 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00371 }
00372 }
00373 {
00374 typedef ndarray<Psana::EvrData::OutputMap, 1> NDArray;
00375 typedef ndarray<const Pds::EvrData::OutputMap, 1> XtcNDArray;
00376 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00377 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00378 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00379 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00380 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00381 }
00382 }
00383 }
00384 ConfigV5::~ConfigV5()
00385 {
00386 }
00387
00388
00389 uint32_t ConfigV5::neventcodes() const {
00390 return m_xtcObj->neventcodes();
00391 }
00392
00393
00394 uint32_t ConfigV5::npulses() const {
00395 return m_xtcObj->npulses();
00396 }
00397
00398
00399 uint32_t ConfigV5::noutputs() const {
00400 return m_xtcObj->noutputs();
00401 }
00402
00403 ndarray<const Psana::EvrData::EventCodeV5, 1> ConfigV5::eventcodes() const { return _eventcodes_ndarray_storage_; }
00404 ndarray<const Psana::EvrData::PulseConfigV3, 1> ConfigV5::pulses() const { return _pulses_ndarray_storage_; }
00405 ndarray<const Psana::EvrData::OutputMap, 1> ConfigV5::output_maps() const { return _output_maps_ndarray_storage_; }
00406 const Psana::EvrData::SequencerConfigV1& ConfigV5::seq_config() const { return _seq_config; }
00407 ConfigV6::ConfigV6(const boost::shared_ptr<const XtcType>& xtcPtr)
00408 : Psana::EvrData::ConfigV6()
00409 , m_xtcObj(xtcPtr)
00410 , _seq_config(boost::shared_ptr<const Pds::EvrData::SequencerConfigV1>(xtcPtr, &xtcPtr->seq_config()))
00411 {
00412 {
00413 typedef ndarray<Psana::EvrData::EventCodeV5, 1> NDArray;
00414 typedef ndarray<const Pds::EvrData::EventCodeV5, 1> XtcNDArray;
00415 const XtcNDArray& xtc_ndarr = xtcPtr->eventcodes();
00416 _eventcodes_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00417 NDArray::iterator out = _eventcodes_ndarray_storage_.begin();
00418 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00419 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00420 }
00421 }
00422 {
00423 typedef ndarray<Psana::EvrData::PulseConfigV3, 1> NDArray;
00424 typedef ndarray<const Pds::EvrData::PulseConfigV3, 1> XtcNDArray;
00425 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00426 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00427 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00428 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00429 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00430 }
00431 }
00432 {
00433 typedef ndarray<Psana::EvrData::OutputMapV2, 1> NDArray;
00434 typedef ndarray<const Pds::EvrData::OutputMapV2, 1> XtcNDArray;
00435 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00436 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00437 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00438 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00439 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00440 }
00441 }
00442 }
00443 ConfigV6::~ConfigV6()
00444 {
00445 }
00446
00447
00448 uint32_t ConfigV6::neventcodes() const {
00449 return m_xtcObj->neventcodes();
00450 }
00451
00452
00453 uint32_t ConfigV6::npulses() const {
00454 return m_xtcObj->npulses();
00455 }
00456
00457
00458 uint32_t ConfigV6::noutputs() const {
00459 return m_xtcObj->noutputs();
00460 }
00461
00462 ndarray<const Psana::EvrData::EventCodeV5, 1> ConfigV6::eventcodes() const { return _eventcodes_ndarray_storage_; }
00463 ndarray<const Psana::EvrData::PulseConfigV3, 1> ConfigV6::pulses() const { return _pulses_ndarray_storage_; }
00464 ndarray<const Psana::EvrData::OutputMapV2, 1> ConfigV6::output_maps() const { return _output_maps_ndarray_storage_; }
00465 const Psana::EvrData::SequencerConfigV1& ConfigV6::seq_config() const { return _seq_config; }
00466 ConfigV7::ConfigV7(const boost::shared_ptr<const XtcType>& xtcPtr)
00467 : Psana::EvrData::ConfigV7()
00468 , m_xtcObj(xtcPtr)
00469 , _seq_config(boost::shared_ptr<const Pds::EvrData::SequencerConfigV1>(xtcPtr, &xtcPtr->seq_config()))
00470 {
00471 {
00472 typedef ndarray<Psana::EvrData::EventCodeV6, 1> NDArray;
00473 typedef ndarray<const Pds::EvrData::EventCodeV6, 1> XtcNDArray;
00474 const XtcNDArray& xtc_ndarr = xtcPtr->eventcodes();
00475 _eventcodes_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00476 NDArray::iterator out = _eventcodes_ndarray_storage_.begin();
00477 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00478 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00479 }
00480 }
00481 {
00482 typedef ndarray<Psana::EvrData::PulseConfigV3, 1> NDArray;
00483 typedef ndarray<const Pds::EvrData::PulseConfigV3, 1> XtcNDArray;
00484 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00485 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00486 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00487 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00488 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00489 }
00490 }
00491 {
00492 typedef ndarray<Psana::EvrData::OutputMapV2, 1> NDArray;
00493 typedef ndarray<const Pds::EvrData::OutputMapV2, 1> XtcNDArray;
00494 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00495 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00496 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00497 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00498 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00499 }
00500 }
00501 }
00502 ConfigV7::~ConfigV7()
00503 {
00504 }
00505
00506
00507 uint32_t ConfigV7::neventcodes() const {
00508 return m_xtcObj->neventcodes();
00509 }
00510
00511
00512 uint32_t ConfigV7::npulses() const {
00513 return m_xtcObj->npulses();
00514 }
00515
00516
00517 uint32_t ConfigV7::noutputs() const {
00518 return m_xtcObj->noutputs();
00519 }
00520
00521 ndarray<const Psana::EvrData::EventCodeV6, 1> ConfigV7::eventcodes() const { return _eventcodes_ndarray_storage_; }
00522 ndarray<const Psana::EvrData::PulseConfigV3, 1> ConfigV7::pulses() const { return _pulses_ndarray_storage_; }
00523 ndarray<const Psana::EvrData::OutputMapV2, 1> ConfigV7::output_maps() const { return _output_maps_ndarray_storage_; }
00524 const Psana::EvrData::SequencerConfigV1& ConfigV7::seq_config() const { return _seq_config; }
00525 SrcConfigV1::SrcConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00526 : Psana::EvrData::SrcConfigV1()
00527 , m_xtcObj(xtcPtr)
00528 {
00529 {
00530 typedef ndarray<Psana::EvrData::SrcEventCode, 1> NDArray;
00531 typedef ndarray<const Pds::EvrData::SrcEventCode, 1> XtcNDArray;
00532 const XtcNDArray& xtc_ndarr = xtcPtr->eventcodes();
00533 _eventcodes_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00534 NDArray::iterator out = _eventcodes_ndarray_storage_.begin();
00535 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00536 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00537 }
00538 }
00539 {
00540 typedef ndarray<Psana::EvrData::PulseConfigV3, 1> NDArray;
00541 typedef ndarray<const Pds::EvrData::PulseConfigV3, 1> XtcNDArray;
00542 const XtcNDArray& xtc_ndarr = xtcPtr->pulses();
00543 _pulses_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00544 NDArray::iterator out = _pulses_ndarray_storage_.begin();
00545 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00546 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00547 }
00548 }
00549 {
00550 typedef ndarray<Psana::EvrData::OutputMapV2, 1> NDArray;
00551 typedef ndarray<const Pds::EvrData::OutputMapV2, 1> XtcNDArray;
00552 const XtcNDArray& xtc_ndarr = xtcPtr->output_maps();
00553 _output_maps_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00554 NDArray::iterator out = _output_maps_ndarray_storage_.begin();
00555 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00556 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00557 }
00558 }
00559 }
00560 SrcConfigV1::~SrcConfigV1()
00561 {
00562 }
00563
00564
00565 uint32_t SrcConfigV1::neventcodes() const {
00566 return m_xtcObj->neventcodes();
00567 }
00568
00569
00570 uint32_t SrcConfigV1::npulses() const {
00571 return m_xtcObj->npulses();
00572 }
00573
00574
00575 uint32_t SrcConfigV1::noutputs() const {
00576 return m_xtcObj->noutputs();
00577 }
00578
00579 ndarray<const Psana::EvrData::SrcEventCode, 1> SrcConfigV1::eventcodes() const { return _eventcodes_ndarray_storage_; }
00580 ndarray<const Psana::EvrData::PulseConfigV3, 1> SrcConfigV1::pulses() const { return _pulses_ndarray_storage_; }
00581 ndarray<const Psana::EvrData::OutputMapV2, 1> SrcConfigV1::output_maps() const { return _output_maps_ndarray_storage_; }
00582 Psana::EvrData::FIFOEvent pds_to_psana(Pds::EvrData::FIFOEvent pds)
00583 {
00584 return Psana::EvrData::FIFOEvent(pds.timestampHigh(), pds.timestampLow(), pds.eventCode());
00585 }
00586
00587 DataV3::DataV3(const boost::shared_ptr<const XtcType>& xtcPtr)
00588 : Psana::EvrData::DataV3()
00589 , m_xtcObj(xtcPtr)
00590 {
00591 {
00592 typedef ndarray<Psana::EvrData::FIFOEvent, 1> NDArray;
00593 typedef ndarray<const Pds::EvrData::FIFOEvent, 1> XtcNDArray;
00594 const XtcNDArray& xtc_ndarr = xtcPtr->fifoEvents();
00595 _fifoEvents_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00596 NDArray::iterator out = _fifoEvents_ndarray_storage_.begin();
00597 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00598 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00599 }
00600 }
00601 }
00602 DataV3::~DataV3()
00603 {
00604 }
00605
00606
00607 uint32_t DataV3::numFifoEvents() const {
00608 return m_xtcObj->numFifoEvents();
00609 }
00610
00611 ndarray<const Psana::EvrData::FIFOEvent, 1> DataV3::fifoEvents() const { return _fifoEvents_ndarray_storage_; }
00612 DataV4::DataV4(const boost::shared_ptr<const XtcType>& xtcPtr)
00613 : Psana::EvrData::DataV4()
00614 , m_xtcObj(xtcPtr)
00615 {
00616 {
00617 typedef ndarray<Psana::EvrData::FIFOEvent, 1> NDArray;
00618 typedef ndarray<const Pds::EvrData::FIFOEvent, 1> XtcNDArray;
00619 const XtcNDArray& xtc_ndarr = xtcPtr->fifoEvents();
00620 _fifoEvents_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00621 NDArray::iterator out = _fifoEvents_ndarray_storage_.begin();
00622 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00623 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00624 }
00625 }
00626 }
00627 DataV4::~DataV4()
00628 {
00629 }
00630
00631
00632 uint32_t DataV4::numFifoEvents() const {
00633 return m_xtcObj->numFifoEvents();
00634 }
00635
00636 ndarray<const Psana::EvrData::FIFOEvent, 1> DataV4::fifoEvents() const { return _fifoEvents_ndarray_storage_; }
00637
00638 uint8_t DataV4::present(uint8_t opcode) const {
00639 return m_xtcObj->present(opcode);
00640 }
00641
00642 Psana::EvrData::IOChannel pds_to_psana(Pds::EvrData::IOChannel pds)
00643 {
00644 return Psana::EvrData::IOChannel(pds.name(), pds.ninfo(), pds.infos().data());
00645 }
00646
00647 IOConfigV1::IOConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00648 : Psana::EvrData::IOConfigV1()
00649 , m_xtcObj(xtcPtr)
00650 {
00651 {
00652 typedef ndarray<Psana::EvrData::IOChannel, 1> NDArray;
00653 typedef ndarray<const Pds::EvrData::IOChannel, 1> XtcNDArray;
00654 const XtcNDArray& xtc_ndarr = xtcPtr->channels();
00655 _channels_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00656 NDArray::iterator out = _channels_ndarray_storage_.begin();
00657 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00658 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00659 }
00660 }
00661 }
00662 IOConfigV1::~IOConfigV1()
00663 {
00664 }
00665
00666
00667 uint16_t IOConfigV1::nchannels() const {
00668 return m_xtcObj->nchannels();
00669 }
00670
00671 ndarray<const Psana::EvrData::IOChannel, 1> IOConfigV1::channels() const { return _channels_ndarray_storage_; }
00672
00673 Psana::EvrData::OutputMap::Conn IOConfigV1::conn() const {
00674 return pds_to_psana(m_xtcObj->conn());
00675 }
00676
00677 Psana::EvrData::IOChannelV2 pds_to_psana(Pds::EvrData::IOChannelV2 pds)
00678 {
00679 return Psana::EvrData::IOChannelV2(pds_to_psana(pds.output()), pds.name(), pds.ninfo(), pds.infos().data());
00680 }
00681
00682 IOConfigV2::IOConfigV2(const boost::shared_ptr<const XtcType>& xtcPtr)
00683 : Psana::EvrData::IOConfigV2()
00684 , m_xtcObj(xtcPtr)
00685 {
00686 {
00687 typedef ndarray<Psana::EvrData::IOChannelV2, 1> NDArray;
00688 typedef ndarray<const Pds::EvrData::IOChannelV2, 1> XtcNDArray;
00689 const XtcNDArray& xtc_ndarr = xtcPtr->channels();
00690 _channels_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00691 NDArray::iterator out = _channels_ndarray_storage_.begin();
00692 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00693 *out = psddl_pds2psana::EvrData::pds_to_psana(*it);
00694 }
00695 }
00696 }
00697 IOConfigV2::~IOConfigV2()
00698 {
00699 }
00700
00701
00702 uint32_t IOConfigV2::nchannels() const {
00703 return m_xtcObj->nchannels();
00704 }
00705
00706 ndarray<const Psana::EvrData::IOChannelV2, 1> IOConfigV2::channels() const { return _channels_ndarray_storage_; }
00707 }
00708 }