| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

ReadoutHeaderCnv Class Reference

#include <ReadoutEventCnv.h>

Inheritance diagram for ReadoutHeaderCnv:

[legend]
Collaboration diagram for ReadoutHeaderCnv:
[legend]
List of all members.

Public Types

 INVALID_ADDRESS
 INVALID_OBJECT
 NO_MEMORY
 BAD_STORAGE_TYPE
 NO_SOURCE_OBJECT
 ICONVERSIONSVC_LAST_ERROR
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

 ReadoutHeaderCnv (ISvcLocator *svc)
virtual ~ReadoutHeaderCnv ()
StatusCode PerToTran (const PerReadoutHeader &perobj, DayaBay::ReadoutHeader &tranobj)
 Copy data from TObject based class of type TType to DataObject based class of type DOType.
StatusCode TranToPer (const DayaBay::ReadoutHeader &tranobj, PerReadoutHeader &perobj)
 Copy data from DataObject based class of type DOType to TObject based class of type TType.
StatusCode fillRepRefs (IOpaqueAddress *addr, DataObject *dobj)
StatusCode fillObjRefs (IOpaqueAddress *addr, DataObject *dobj)
PerReadoutconvert (const DayaBay::Readout &roRo)
PerReadoutPmtCrateconvert (const DayaBay::ReadoutPmtCrate &roPmtCrate)
PerReadoutPmtChannelconvert (const DayaBay::ReadoutPmtChannel &roPmtChannel)
PerReadoutTriggerDataPkgconvert (const DayaBay::ReadoutTriggerDataPkg &roPmtTDP)
PerReadoutTriggerDataFrameconvert (const DayaBay::ReadoutTriggerDataFrame &roPmtTDF)
DayaBay::Readoutconvert (const PerReadout &perRo)
DayaBay::ReadoutPmtCrateconvert (const PerReadoutPmtCrate &perRoPcr)
DayaBay::ReadoutPmtChannel convert (const PerReadoutPmtChannel &perRoPch)
DayaBay::ReadoutTriggerDataPkgconvert (const PerReadoutTriggerDataPkg &perRoPmtTDP)
DayaBay::ReadoutTriggerDataFrameconvert (const PerReadoutTriggerDataFrame &perToPmtTDF)
PerReadoutHeadergetPerInputObject ()
PerReadoutHeadergetPerOutputObject ()
const RootIOBaseObjectgetBaseInputObject ()
const RootIOBaseObjectgetBaseOutputObject ()
virtual StatusCode TranObjectToPerObject (DataObject &dat, const RootOutputAddress &)
virtual StatusCode PerObjectToTranObject (DataObject *&dat)
virtual RootInputStreammakeInputStream (const RootInputAddress &ria)
virtual RootOutputStreammakeOutputStream (const RootOutputAddress &ria)
virtual long repSvcType () const
virtual StatusCode initialize ()
virtual StatusCode finalize ()
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
int commit (const RootOutputAddress &roa)
RootIOBaseCnvotherConverter (int clID)
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)
virtual unsigned long addRef ()
virtual unsigned long release ()
virtual StatusCode setDataProvider (IDataProviderSvc *svc)
virtual IDataProviderSvcdataProvider () const
virtual StatusCode setConversionSvc (IConversionSvc *svc)
virtual IConversionSvcconversionSvc () const
virtual StatusCode setAddressCreator (IAddressCreator *creator)
virtual IAddressCreatoraddressCreator () const
virtual const CLIDobjType () const
virtual long i_repSvcType () const
virtual StatusCode updateObj (IOpaqueAddress *pAddress, DataObject *refpObject)
virtual StatusCode updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
virtual StatusCode updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
StatusCode service (const std::string &name, T *&psvc, bool createIf=false) const
StatusCode service (const std::string &type, const std::string &name, T *&psvc) const

Static Public Member Functions

static const CLIDclassID ()
static unsigned char storageType ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

Public Attributes

bool m_writefadc
 INVALID_ADDRESS
 INVALID_OBJECT
 NO_MEMORY
 BAD_STORAGE_TYPE
 NO_SOURCE_OBJECT
 ICONVERSIONSVC_LAST_ERROR

Protected Member Functions

ISvcLocatorserviceLocator () const
IMessageSvcmsgSvc () const
IMessageSvcmessageService () const
IDataManagerSvcdataManager () const

Protected Attributes

std::string m_perclassName
PerReadoutHeaderm_perInObj
PerReadoutHeaderm_perOutObj
IRootIOSvcm_rioSvc
IConversionSvcm_cnvSvc
RootInputStreamm_ris

Private Member Functions

StatusCode TranToPer (const DayaBay::DaqCrate &tranobj, PerReadoutHeader &perobj)

Private Attributes

DybDaq::DaqBuffer::OutputBufferListm_buffers
 List of output buffers used to collect FileBuffer to be output.

Detailed Description

Definition at line 39 of file ReadoutEventCnv.h.


Constructor & Destructor Documentation

ReadoutHeaderCnv::ReadoutHeaderCnv ( ISvcLocator svc  ) 

Definition at line 20 of file ReadoutEventCnv.cc.

00021       : RootIOTypedCnv<PerReadoutHeader,ReadoutHeader>("PerReadoutHeader",
00022                                                        classID(),svc),
00023             m_buffers(new DaqBuffer::OutputBufferList())
00024 {
00025     m_writefadc = true;
00026 }

ReadoutHeaderCnv::~ReadoutHeaderCnv (  )  [virtual]

Definition at line 29 of file ReadoutEventCnv.cc.

00030 {
00031   delete m_buffers;
00032 }


Member Function Documentation

static const CLID& ReadoutHeaderCnv::classID (  )  [inline, static]

Definition at line 43 of file ReadoutEventCnv.h.

00043                                {
00044     return DayaBay::CLID_ReadoutHeader;
00045   }

StatusCode ReadoutHeaderCnv::PerToTran ( const PerReadoutHeader perobj,
DayaBay::ReadoutHeader tranobj 
) [virtual]

Copy data from TObject based class of type TType to DataObject based class of type DOType.

Implements RootIOTypedCnv< PerReadoutHeader, DayaBay::ReadoutHeader >.

Definition at line 34 of file ReadoutEventCnv.cc.

00036 {
00037   MsgStream log(msgSvc(), "ReadoutHeaderCnv::PerToTran");
00038   StatusCode sc = HeaderObjectCnv::toTran(perobj,tranobj);
00039   if (sc.isFailure()) return sc;
00040 
00041   delete tranobj.readout();
00042   if(perobj.readout){
00043     DayaBay::Readout* readout = convert( *(perobj.readout) );
00044     if (0 != readout) {
00045       readout->setHeader( &tranobj );
00046       tranobj.setReadout( readout );
00047     }
00048     if (!((perobj.readout)->rawEvent).empty()) {
00049       tranobj.setDaqCrate(new DaqPmtCrate(perobj.daqPmtCrate(true)));
00050     }
00051   }else{
00052     // Header has no readout
00053     tranobj.setReadout(0);
00054   }
00055 
00056   return StatusCode::SUCCESS;
00057 }                                       

StatusCode ReadoutHeaderCnv::TranToPer ( const DayaBay::ReadoutHeader tranobj,
PerReadoutHeader perobj 
) [virtual]

Copy data from DataObject based class of type DOType to TObject based class of type TType.

Implements RootIOTypedCnv< PerReadoutHeader, DayaBay::ReadoutHeader >.

Definition at line 59 of file ReadoutEventCnv.cc.

00061 {
00062   MsgStream log(msgSvc(), "ReadoutHeaderCnv::TranToPer");
00063   StatusCode sc = HeaderObjectCnv::toPer(tranobj,perobj);
00064   if (sc.isFailure()) return sc;
00065 
00066   delete perobj.readout;
00067   const Readout* readout = tranobj.readout();
00068   const DayaBay::DaqCrate* daqCrate = tranobj.daqCrate();
00069   if(0 != readout && m_rioSvc->isReadoutForced()) {
00070     perobj.readout = convert( *(readout ) );
00071     if ((0 == readout->rawEvent()) && (0 != daqCrate)) {
00072       return TranToPer(*daqCrate,
00073                        perobj);
00074     }
00075   }else{
00076     if (0 == daqCrate) {
00077       perobj.readout = 0;
00078     } else {
00079       perobj.readout = new PerReadout();
00080       return TranToPer(*daqCrate,
00081                        perobj);
00082     }
00083   }
00084   
00085   return StatusCode::SUCCESS;
00086 }

StatusCode ReadoutHeaderCnv::fillRepRefs ( IOpaqueAddress addr,
DataObject dobj 
) [virtual]

Reimplemented from RootIOTypedCnv< PerReadoutHeader, DayaBay::ReadoutHeader >.

Definition at line 109 of file ReadoutEventCnv.cc.

00110 {
00111     MsgStream log(msgSvc(), "ReadoutHeaderCnv::fillRepRefs");
00112     ReadoutHeader* rh = dynamic_cast<ReadoutHeader*>(dobj);
00113 
00114     log << MSG::DEBUG
00115         << "Saving links to " << rh->inputHeaders().size() 
00116         << " input headers" << endreq;
00117 
00118     StatusCode sc = HeaderObjectCnv::fillPer(m_rioSvc,*rh,*m_perOutObj);
00119     if (sc.isFailure()) {
00120         log << MSG::ERROR << "Failed to fill HeaderObject part" << endreq;
00121         return sc;
00122     }
00123 
00124     // ... fill ReadoutHeader part...
00125     return sc;
00126 }

StatusCode ReadoutHeaderCnv::fillObjRefs ( IOpaqueAddress addr,
DataObject dobj 
) [virtual]

Reimplemented from RootIOTypedCnv< PerReadoutHeader, DayaBay::ReadoutHeader >.

Definition at line 128 of file ReadoutEventCnv.cc.

00129 {
00130     MsgStream log(msgSvc(), "ReadoutHeaderCnv::fillObjRefs");
00131     HeaderObject* hobj = dynamic_cast<HeaderObject*>(dobj);
00132     StatusCode sc = HeaderObjectCnv::fillTran(m_rioSvc,*m_perInObj,*hobj);
00133     if (sc.isFailure()) {
00134         log << MSG::ERROR << "Failed to fill HeaderObject part" << endreq;
00135         return sc;
00136     }
00137 
00138     log << MSG::DEBUG
00139         << "Restored links to " << hobj->inputHeaders().size() 
00140         << " input headers" << endreq;
00141 
00142     // ... fill ReadoutHeader part...
00143     return sc;
00144 }

PerReadout * ReadoutHeaderCnv::convert ( const DayaBay::Readout roRo  ) 

Definition at line 146 of file ReadoutEventCnv.cc.

00147 {
00148   Detector det(roRo.detector());
00149   if(det.detectorId() == DetectorId::kUnknown){
00150       return 0; 
00151   }else if( det.detectorId() != DetectorId::kRPC ){
00152       return convert( static_cast<const ReadoutPmtCrate&>(roRo) );
00153   }else{
00154       //return convert( static_cast<const ReadoutRpcCrate&>(roRo) ); 
00155     return 0; // do RPC later
00156   }
00157   return 0;
00158 }

PerReadoutPmtCrate * ReadoutHeaderCnv::convert ( const DayaBay::ReadoutPmtCrate roPmtCrate  ) 

Definition at line 160 of file ReadoutEventCnv.cc.

00161 {
00162   MsgStream log(msgSvc(), "ReadoutHeaderCnv::convert(ReadoutPmtCrate&)");
00163   PerReadoutPmtCrate *perRoPcr = new PerReadoutPmtCrate();
00164   perRoPcr->detector = (roPmtCrate.detector()).siteDetPackedData();
00165   perRoPcr->triggerType = roPmtCrate.triggerType();
00166   perRoPcr->triggerNumber = roPmtCrate.triggerNumber();
00167   
00168   perRoPcr->triggerTimeSec = roPmtCrate.triggerTime().GetSec(); /* FIXME */
00169   perRoPcr->triggerTimeNanoSec = roPmtCrate.triggerTime().GetNanoSec();
00170   const DayaBay::RawEvent* rawEvent = roPmtCrate.rawEvent();
00171   if( rawEvent && rawEvent->isValid() ){
00172     perRoPcr->rawEvent.resize( roPmtCrate.rawEvent()->size() );
00173     memcpy(&(perRoPcr->rawEvent[0]), roPmtCrate.rawEvent()->buffer(),
00174            roPmtCrate.rawEvent()->size()*sizeof(unsigned int) );
00175   }
00176   ReadoutPmtCrate::PmtChannelReadouts chReadouts = roPmtCrate.channelReadout();
00177   ReadoutPmtCrate::PmtChannelReadouts::iterator it;
00178   
00179   std::vector<PerReadoutPmtChannel*> out_vec;
00180   
00181   for(it=chReadouts.begin();it!=chReadouts.end();++it)
00182   {
00183     PerReadoutPmtChannel* perRoPch = convert( it->second );
00184     perRoPch->channelId = (it->first).fullPackedData();
00185     out_vec.push_back(perRoPch);
00186   }
00187   perRoPcr->perChannelReadouts = out_vec;
00188   if(roPmtCrate.triggerDataPkg()){
00189       perRoPcr->perTriggerDataPkg = convert (*(roPmtCrate.triggerDataPkg()));
00190   }else{
00191       log << MSG::WARNING << "TriggerDataPackage Not Found" << endreq;
00192   }
00193   
00194   // now do fadc data
00195   if(m_writefadc)
00196   {
00197       const map<FadcChannelId, DigitalSignal>& in_fadcReadouts = roPmtCrate.fadcReadout();
00198       map<FadcChannelId, DigitalSignal>::const_iterator fadc_it, done=in_fadcReadouts.end();
00199       for( fadc_it = in_fadcReadouts.begin() ; fadc_it != done ; ++fadc_it ){
00200         (perRoPcr->perFadcReadouts)[(fadc_it->first).fullPackedData()] = fadc_it->second ;
00201       }   
00202   }
00203   
00204   //perRoPcr->fadcReadouts = chan;
00205   
00206   return perRoPcr;
00207 }

PerReadoutPmtChannel * ReadoutHeaderCnv::convert ( const DayaBay::ReadoutPmtChannel roPmtChannel  ) 

Definition at line 209 of file ReadoutEventCnv.cc.

00210 {
00211   PerReadoutPmtChannel* perRoPch = new PerReadoutPmtChannel();
00212   
00213   perRoPch->mode = roPmtChannel.mode();
00214   perRoPch->adc   = roPmtChannel.adc();
00215   perRoPch->adcRange= roPmtChannel.adcRange();
00216   perRoPch->adcCycle= roPmtChannel.adcCycle();
00217   perRoPch->pedestal= roPmtChannel.pedestal();
00218   perRoPch->tdc   = roPmtChannel.tdc();
00219   perRoPch->tdcHitCount = roPmtChannel.tdcHitCount();
00220   perRoPch->waveAdcCycle= roPmtChannel.waveAdcCycle();
00221   perRoPch->waveAdcHigh = roPmtChannel.waveAdcHigh();
00222   perRoPch->waveAdcLow = roPmtChannel.waveAdcLow();
00223   return perRoPch;
00224 }

PerReadoutTriggerDataPkg * ReadoutHeaderCnv::convert ( const DayaBay::ReadoutTriggerDataPkg roPmtTDP  ) 

Definition at line 226 of file ReadoutEventCnv.cc.

00227 {
00228     PerReadoutTriggerDataPkg* perRoTDP= new PerReadoutTriggerDataPkg((roPmtTDP.detector()).siteDetPackedData(),
00229                                                                       roPmtTDP.trigNumber(),    
00230                                                                       roPmtTDP.numSubTriggers(),
00231                                                                       roPmtTDP.boardStatus(),   
00232                                                                       roPmtTDP.localSN());
00233     
00234     //PerReadoutTriggerDataPkg* perRoTDP= new PerReadoutTriggerDataPkg();
00235     //perRoTDP->detector=(roPmtTDP.detector()).siteDetPackedData();
00236     //perRoTDP->trigNumber=roPmtTDP.trigNumber();
00237     //perRoTDP->numSubTriggers=roPmtTDP.numSubTriggers();
00238     //perRoTDP->boardStatus=roPmtTDP.boardStatus();
00239     //perRoTDP->localSN=roPmtTDP.localSN();
00240     
00241     std::vector<DayaBay::ReadoutTriggerDataFrame*>::const_iterator it;
00242     for(it=roPmtTDP.frames().begin();it!=roPmtTDP.frames().end();++it){
00243         (perRoTDP->frames).push_back(convert(**it));
00244     }
00245     return perRoTDP;
00246 }

PerReadoutTriggerDataFrame * ReadoutHeaderCnv::convert ( const DayaBay::ReadoutTriggerDataFrame roPmtTDF  ) 

Definition at line 249 of file ReadoutEventCnv.cc.

00250 {
00251     PerReadoutTriggerDataFrame *perRoTDF = new PerReadoutTriggerDataFrame(roPmtTDF.seqNumber(), 
00252                                                                           roPmtTDF.readoutType(),
00253                                                                           roPmtTDF.triggerType(),
00254                                                                           roPmtTDF.triggerTime(),
00255                                                                           roPmtTDF.cycle(),
00256                                                                           roPmtTDF.nhit(),
00257                                                                           roPmtTDF.esumAdc(),
00258                                                                           roPmtTDF.esumComp(),  
00259                                                                           roPmtTDF.crossSource());
00260 
00261     return perRoTDF;
00262 
00263 }

Readout * ReadoutHeaderCnv::convert ( const PerReadout perRo  ) 

Definition at line 265 of file ReadoutEventCnv.cc.

00266 {
00267   Detector det(perRo.detector);
00268   if(det.detectorId() == DetectorId::kUnknown){
00269       return 0; 
00270   }else if( det.detectorId() != DetectorId::kRPC ){
00271       return convert( static_cast<const PerReadoutPmtCrate&>(perRo) );
00272   }else{
00273       //return convert( static_cast<const ReadoutRpcCrate&>(roRo) ); 
00274     return 0; // do RPC later
00275   }
00276   return 0;
00277 }

ReadoutPmtCrate * ReadoutHeaderCnv::convert ( const PerReadoutPmtCrate perRoPcr  ) 

Definition at line 279 of file ReadoutEventCnv.cc.

00280 {
00281   ReadoutPmtCrate *out_crate = new ReadoutPmtCrate();
00282   Detector det(perRoPcr.detector);
00283   out_crate->setDetector(det);
00284   out_crate->setTriggerType( Trigger::TriggerType_t(perRoPcr.triggerType) );
00285   out_crate->setTriggerNumber( perRoPcr.triggerNumber );
00286   
00287   timespec value = {perRoPcr.triggerTimeSec,perRoPcr.triggerTimeNanoSec};
00288   TimeStamp tstamp(value);
00289   out_crate->setTriggerTime(tstamp); 
00290   if(perRoPcr.rawEvent.size() > 0){
00291     unsigned int* buffer = const_cast<unsigned int*>(&(perRoPcr.rawEvent[0]));
00292     out_crate->setRawEvent( RawEvent( buffer ).clone() );
00293   }
00294   
00295   ReadoutPmtCrate::PmtChannelReadouts out_channels;
00296   
00297   PerReadoutPmtCrate::PerPmtChannelReadouts in_channels = perRoPcr.perChannelReadouts;
00298   PerReadoutPmtCrate::PerPmtChannelReadouts::const_iterator it;
00299   
00300   for(it=in_channels.begin(); it!=in_channels.end(); ++it){
00301     ReadoutPmtChannel out_channel = convert(**it);
00302     out_channel.setReadout(out_crate);
00303     out_channels[out_channel.channelId()]=out_channel;
00304   }
00305   
00306   out_crate->setChannelReadout(out_channels);
00307   //Add protection so old version data without TriggerDataPkg can also be read
00308   if(perRoPcr.perTriggerDataPkg) {
00309     ReadoutTriggerDataPkg* rotdf = convert( *(perRoPcr.perTriggerDataPkg) );
00310     rotdf->setReadout(out_crate);
00311     out_crate->setTriggerDataPkg(rotdf);
00312   }
00313   
00314   ReadoutPmtCrate::FadcReadouts& out_fadcReadouts = out_crate->fadcReadout();
00315   
00316   PerReadoutPmtCrate::PerFadcReadouts in_fadcReadouts;
00317   PerReadoutPmtCrate::PerFadcReadouts::const_iterator fadc_it;
00318   
00319   //if(perRoPcr.perFadcReadouts.size()>0){
00320   //ReadoutPmtCrate::FadcReadouts::iterator fadc_it;
00321   for(fadc_it=in_fadcReadouts.begin();fadc_it!=in_fadcReadouts.end();++fadc_it){
00322       out_fadcReadouts[DayaBay::FadcChannelId(fadc_it->first)]=fadc_it->second;
00323   }
00324   //}
00325     
00326   return out_crate;
00327 }

ReadoutPmtChannel ReadoutHeaderCnv::convert ( const PerReadoutPmtChannel perRoPch  ) 

Definition at line 329 of file ReadoutEventCnv.cc.

00330 {
00331   ReadoutPmtChannel out_ch;
00332   FeeChannelId id(perRoPch.channelId);
00333   out_ch.setChannelId(id);
00334   out_ch.setMode(perRoPch.mode);
00335   out_ch.setAdc(perRoPch.adc);
00336   out_ch.setAdcRange(perRoPch.adcRange);
00337   out_ch.setAdcCycle(perRoPch.adcCycle);
00338   out_ch.setPedestal(perRoPch.pedestal);
00339   out_ch.setTdc(perRoPch.tdc);
00340   out_ch.setTdcHitCount(perRoPch.tdcHitCount);
00341   out_ch.setWaveAdcCycle(perRoPch.waveAdcCycle);
00342   out_ch.setWaveAdcHigh(perRoPch.waveAdcHigh);
00343   out_ch.setWaveAdcLow(perRoPch.waveAdcLow);
00344   return out_ch;
00345 }

ReadoutTriggerDataPkg * ReadoutHeaderCnv::convert ( const PerReadoutTriggerDataPkg perRoPmtTDP  ) 

Definition at line 347 of file ReadoutEventCnv.cc.

00348 {
00349   ReadoutTriggerDataPkg* roTDP = new ReadoutTriggerDataPkg();
00350   Detector det(perRoPmtTDP.detector);
00351   roTDP->setDetector(det);
00352   roTDP->setTrigNumber(perRoPmtTDP.trigNumber);
00353   roTDP->setBoardStatus(perRoPmtTDP.boardStatus);
00354   roTDP->setLocalSN(perRoPmtTDP.localSN);
00355   std::vector<PerReadoutTriggerDataFrame*>::const_iterator it;
00356   for(it=perRoPmtTDP.frames.begin();it!=perRoPmtTDP.frames.end();++it)
00357   {
00358     ReadoutTriggerDataFrame* rotdf=convert(**it);
00359     rotdf->setPackage(roTDP);
00360     roTDP->addFrame(rotdf);
00361   }
00362   return roTDP;
00363 }

ReadoutTriggerDataFrame * ReadoutHeaderCnv::convert ( const PerReadoutTriggerDataFrame perToPmtTDF  ) 

Definition at line 365 of file ReadoutEventCnv.cc.

00366 {
00367   ReadoutTriggerDataFrame *rotdf = new ReadoutTriggerDataFrame();
00368   rotdf->setSeqNumber(perToPmtTDF.seqNumber);
00369   rotdf->setReadoutType(perToPmtTDF.readoutType);
00370   rotdf->setTriggerType(Trigger::TriggerType_t(perToPmtTDF.triggerType));
00371   rotdf->setTriggerTime(perToPmtTDF.triggerTime);
00372   rotdf->setCycle(perToPmtTDF.cycle);
00373   rotdf->setNhit(perToPmtTDF.nhit);
00374   rotdf->setEsumAdc(perToPmtTDF.esumAdc);
00375   rotdf->setEsumComp(perToPmtTDF.esumComp);
00376   rotdf->setCrossSource(perToPmtTDF.crossSource);
00377   return rotdf;
00378 }

StatusCode ReadoutHeaderCnv::TranToPer ( const DayaBay::DaqCrate tranobj,
PerReadoutHeader perobj 
) [private]

Definition at line 88 of file ReadoutEventCnv.cc.

00089                                                                  {
00090   const DybDaq::EventReadout& eventReadout = tranobj.eventReadout();
00091   std::vector<unsigned int>& daqBytes = perobj.readout->rawEvent;
00092   daqBytes.resize(eventReadout.bufferSize() * ByteBuffer::BYTES_IN_INT);
00093   unsigned int index = 0;
00094   eventReadout.gather(*m_buffers);
00095   DaqBuffer::OutputBufferList::const_iterator buffer;
00096   for (buffer = m_buffers->begin();
00097        buffer != m_buffers->end();
00098        ++buffer) {
00099     unsigned int capacity = (*buffer).second;
00100     memcpy(&(daqBytes[index]),
00101            (*buffer).first,
00102            capacity);
00103     index += (capacity / ByteBuffer::BYTES_IN_INT);
00104   }
00105   m_buffers->clear();
00106   return StatusCode::SUCCESS;
00107 }

PerReadoutHeader & RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::getPerInputObject (  )  [inherited]

PerReadoutHeader & RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::getPerOutputObject (  )  [inherited]

const RootIOBaseObject * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::getBaseInputObject (  )  [virtual, inherited]

Implements RootIOBaseCnv.

const RootIOBaseObject * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::getBaseOutputObject (  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::TranObjectToPerObject ( DataObject dat,
const RootOutputAddress  
) [virtual, inherited]

Implements RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::PerObjectToTranObject ( DataObject *&  dat  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual RootInputStream * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::makeInputStream ( const RootInputAddress ria  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual RootOutputStream * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::makeOutputStream ( const RootOutputAddress ria  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual long RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::repSvcType (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::initialize (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::finalize (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::createObj ( IOpaqueAddress addr,
DataObject *&  dat 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::createRep ( DataObject pObject,
IOpaqueAddress *&  refpAddress 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

int RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::commit ( const RootOutputAddress roa  )  [inherited]

Reimplemented from RootIOBaseCnv.

RootIOBaseCnv * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::otherConverter ( int  clID  )  [inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::queryInterface ( const InterfaceID riid,
void **  ppvInterface 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual unsigned long RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::addRef (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual unsigned long RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::release (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::setDataProvider ( IDataProviderSvc svc  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual IDataProviderSvc * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::dataProvider (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::setConversionSvc ( IConversionSvc svc  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual IConversionSvc * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::conversionSvc (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::setAddressCreator ( IAddressCreator creator  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual IAddressCreator * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::addressCreator (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual const CLID & RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::objType (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual long RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::i_repSvcType (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::updateObj ( IOpaqueAddress pAddress,
DataObject refpObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::updateObjRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::updateRep ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::updateRepRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::service ( const std::string &  name,
T *&  psvc,
bool  createIf = false 
) const [inherited]

Reimplemented from RootIOBaseCnv.

StatusCode RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::service ( const std::string &  type,
const std::string &  name,
T *&  psvc 
) const [inherited]

Reimplemented from RootIOBaseCnv.

static unsigned char RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::storageType (  )  [static, inherited]

Reimplemented from RootIOBaseCnv.

static const InterfaceID & RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::interfaceID (  )  [static, inherited]

Reimplemented from RootIOBaseCnv.

static const InterfaceID & RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::interfaceID (  )  [static, inherited]

Reimplemented from RootIOBaseCnv.

ISvcLocator * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::serviceLocator (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.

IMessageSvc * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::msgSvc (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.

IMessageSvc * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::messageService (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.

IDataManagerSvc * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::dataManager (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.


Member Data Documentation

bool ReadoutHeaderCnv::m_writefadc

Definition at line 79 of file ReadoutEventCnv.h.

DybDaq::DaqBuffer::OutputBufferList* ReadoutHeaderCnv::m_buffers [private]

List of output buffers used to collect FileBuffer to be output.

Definition at line 89 of file ReadoutEventCnv.h.

RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::INVALID_ADDRESS [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::INVALID_OBJECT [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::NO_MEMORY [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::BAD_STORAGE_TYPE [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::NO_SOURCE_OBJECT [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::ICONVERSIONSVC_LAST_ERROR [inherited]

Reimplemented from RootIOBaseCnv.

std::string RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::m_perclassName [protected, inherited]

PerReadoutHeader * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::m_perInObj [protected, inherited]

PerReadoutHeader * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::m_perOutObj [protected, inherited]

IRootIOSvc * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::m_rioSvc [protected, inherited]

Reimplemented from RootIOBaseCnv.

IConversionSvc * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::m_cnvSvc [protected, inherited]

Reimplemented from RootIOBaseCnv.

RootInputStream * RootIOTypedCnv< PerReadoutHeader , DayaBay::ReadoutHeader >::m_ris [protected, inherited]

Reimplemented from RootIOBaseCnv.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:30:33 2011 for PerReadoutEvent by doxygen 1.4.7