Skip to content
Snippets Groups Projects
Commit 188bb23b authored by Eric Torrence's avatar Eric Torrence
Browse files

Add P->T conversion

parent 801c1e30
No related branches found
No related tags found
1 merge request!3Waveform
Pipeline #1930368 failed
...@@ -17,6 +17,7 @@ class ScintWaveform_p0 { ...@@ -17,6 +17,7 @@ class ScintWaveform_p0 {
friend class ScintWaveformCnv_p0; friend class ScintWaveformCnv_p0;
private: private:
unsigned int m_ID;
unsigned int m_channel; unsigned int m_channel;
std::vector<unsigned int> m_adc_counts; std::vector<unsigned int> m_adc_counts;
......
...@@ -7,8 +7,11 @@ ...@@ -7,8 +7,11 @@
void void
ScintWaveformCnv_p0::persToTrans(const ScintWaveform_p0* persObj, ScintWaveform* transObj, MsgStream& log) { ScintWaveformCnv_p0::persToTrans(const ScintWaveform_p0* persObj, ScintWaveform* transObj, MsgStream& log) {
transObj = 0; // Just fill available data here
log << MSG::WARNING << "ScintWaveformCnv_p0::persToTrans not implemented!" << endmsg; // Rest of it patched up in ScintWaveformContainerCnv_p0
transObj->setIdentifier(persObj->m_ID);
transObj->setChannel(persObj->m_channel);
transObj->setCounts(persObj->m_adc_counts);
} }
...@@ -20,7 +23,7 @@ ScintWaveformCnv_p0::transToPers(const ScintWaveform* transObj, ScintWaveform_p0 ...@@ -20,7 +23,7 @@ ScintWaveformCnv_p0::transToPers(const ScintWaveform* transObj, ScintWaveform_p0
// log << MSG::DEBUG << (*transObj) << endmsg; // log << MSG::DEBUG << (*transObj) << endmsg;
// log << MSG::DEBUG << "Persistent waveform (before):" << endmsg; // log << MSG::DEBUG << "Persistent waveform (before):" << endmsg;
// persObj->print(); // persObj->print();
persObj->m_ID = transObj->identify();
persObj->m_channel = transObj->channel(); persObj->m_channel = transObj->channel();
// Use copy here // Use copy here
......
...@@ -8,10 +8,30 @@ ...@@ -8,10 +8,30 @@
void void
ScintWaveformContainerCnv_p0::persToTrans(const ScintWaveformContainer_p0* persCont, ScintWaveformContainer* transCont, MsgStream& log) { ScintWaveformContainerCnv_p0::persToTrans(const ScintWaveformContainer_p0* persCont, ScintWaveformContainer* transCont, MsgStream& log) {
transCont = 0; log << MSG::DEBUG << "ScintWaveformContainerCnv_p0::persToTrans called" << endmsg;
log << MSG::WARNING << "ScintWaveformContainerCnv_p0::persToTrans not implemented!" << endmsg;
ScintWaveformCnv_p0 waveformCnv;
// Clear this, transient container is DataVector, which stores pointers
// Create them below and push back to fill
transCont->clear();
for (unsigned int index = 0; index < persCont->m_waveforms.size(); ++index) {
std::unique_ptr<ScintWaveform> data = std::make_unique<ScintWaveform>();
const ScintWaveform_p0* pdata = &persCont->m_waveforms.at(index);
waveformCnv.persToTrans(pdata, data.get(), log);
// Fill other values held by container in persistent class
data->setBoardFailFlag(persCont->m_board_fail_flag);
data->setBoardId(persCont->m_board_id);
data->setPatternTrigOptions(persCont->m_pattern_trig_options);
data->setChannelMask(persCont->m_channel_mask);
data->setEventCounter(persCont->m_event_counter);
data->setTriggerTime(persCont->m_trigger_time_tag);
data->setSamples(persCont->m_samples);
transCont->push_back(data.release());
}
} }
void void
......
...@@ -73,6 +73,17 @@ public: ...@@ -73,6 +73,17 @@ public:
void setHeader (const DigitizerDataFragment* frag); void setHeader (const DigitizerDataFragment* frag);
void setWaveform (unsigned int channel, const std::vector<uint16_t> waveform); void setWaveform (unsigned int channel, const std::vector<uint16_t> waveform);
// Set functions for P->T conversion
void setBoardId(unsigned int id) {m_board_id = id;}
void setBoardFailFlag(bool flag) {m_board_fail_flag = flag;}
void setPatternTrigOptions(unsigned int pattern) {m_pattern_trig_options = pattern;}
void setChannelMask(unsigned int mask) {m_channel_mask = mask;}
void setEventCounter(unsigned int counter) {m_event_counter = counter;}
void setTriggerTime(unsigned int tag) {m_trigger_time_tag = tag;}
void setChannel(unsigned int chan) {m_channel = chan;}
void setSamples(unsigned int samp) {m_samples = samp;}
void setCounts(const std::vector<unsigned int>& counts) {m_adc_counts = counts;}
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
// Private data: // Private data:
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment