00001 /* 00002 * DaqFadcChannel.cc 00003 * DaqEvent 00004 * 00005 * Created by Simon Patton on 9/2/2010. 00006 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00007 * 00008 */ 00009 #include "Event/DaqFadcChannel.h" 00010 00011 #include "FadcReadoutFormat/FadcData.h" 00012 #include "FadcReadoutFormat/FadcReadout.h" 00013 00014 using DayaBay::DaqFadcChannel; 00015 using DybDaq::FadcData; 00016 using DybDaq::FadcReadout; 00017 00018 DaqFadcChannel::DaqFadcChannel(const DayaBay::FadcChannelId& channelId, 00019 FadcReadout& fadcReadout) : 00020 m_samples(0), 00021 m_fadcReadout(&fadcReadout), 00022 m_channelId(channelId) { 00023 } 00024 00025 DaqFadcChannel::DaqFadcChannel(const FadcData& fadcData, 00026 const DayaBay::FadcChannelId& channelId) : 00027 m_samples(0), 00028 m_fadcReadout(0), 00029 m_channelId(channelId) { 00030 addData(fadcData); 00031 } 00032 00033 DaqFadcChannel::~DaqFadcChannel() { 00034 if (0 != m_samples) { 00035 delete m_samples; 00036 } 00037 } 00038 00039 const DaqFadcChannel::FadcSamples& DaqFadcChannel::samples() const { 00040 if (0 == m_samples) { 00041 FadcSamples** samples = const_cast<FadcSamples**>(&m_samples); 00042 *(samples) = new FadcSamples(); 00043 } 00044 return *m_samples; 00045 } 00046 00047 void DaqFadcChannel::addData(const FadcData& fadcData) { 00048 samples(); 00049 m_samples->push_back(fadcData.highDataByte()); 00050 m_samples->push_back(fadcData.middleDataByte()); 00051 m_samples->push_back(fadcData.lowDataByte()); 00052 }