// ----------------------------------------------------------------------------- // ----- TTofTrbTdcBoard source file ----- // ----- ----- // ----- created by C. Simon on 2014-04-06 ----- // ----- ----- // ----- based on TTofVftxBoard by P.-A. Loizeau ----- // ----- https://subversion.gsi.de/fairroot/cbmroot/development/ploizeau/ ----- // ----- main/unpack/tof/tdc/vftx/TTofVftxBoard.cxx ----- // ----- revision 20754, 2013-07-17 ----- // ----------------------------------------------------------------------------- #include "TTofTrbTdcBoard.h" // TOF headers #include "TofTdcDef.h" #include "TofTrbTdcDef.h" #include "TTofTrbTdcData.h" // FAIR headers #include "FairLogger.h" // ROOT headers #include "TClonesArray.h" TTofTrbTdcBoard::TTofTrbTdcBoard(): TTofTdcBoard( toftdc::trb, trbtdc::kuNbChan ), fRefChannelData(TTofTrbTdcData()), fuTriggerCode(0), fbIsChannelFifoIssue(kFALSE) { CreateDataArray(); } TTofTrbTdcBoard::~TTofTrbTdcBoard() { } void TTofTrbTdcBoard::Clear( Option_t *option ) { TTofTdcBoard::Clear( option ); fRefChannelData.Clear( option ); fuTriggerCode = 0; fbIsChannelFifoIssue = kFALSE; } // TClonesArray versions Bool_t TTofTrbTdcBoard::CreateDataArray() { LOG(DEBUG)<<" TTofTrbTdcBoard::CreateDataArray "<Expand( trbtdc::kuNbMulti*GetChannelNb() ); return kTRUE; } // if( 0 < GetChannelNb() && NULL != fDataCollection ) else return kFALSE; } UInt_t TTofTrbTdcBoard::AddData( TTofTrbTdcData & dataIn ) { if( 0 < fDataCollection ) { Int_t iNextIndex = fDataCollection->GetEntriesFast(); if( iNextIndex < trbtdc::kuNbMulti * GetChannelNb() ) { TTofTrbTdcData * dataSlot = (TTofTrbTdcData *)fDataCollection->ConstructedAt( iNextIndex ); *dataSlot = dataIn; } // if( iNextIndex < toftdc::kuDefNbMulti * GetChannelNb() ) return fDataCollection->GetEntriesFast(); } // if( 0 < fDataCollection ) else return 0; } TTofTrbTdcData * TTofTrbTdcBoard::GetDataPtr( UInt_t uDataIndex ) { if( 0 < fDataCollection ) { if( uDataIndex < fDataCollection->GetEntriesFast() ) return (TTofTrbTdcData *)fDataCollection->At( uDataIndex ); else return NULL; } // if( 0 < fDataCollection ) else return NULL; } // ! no check on valid index in this one, Probably stupid method const TTofTrbTdcData & TTofTrbTdcBoard::GetData( UInt_t uDataIndex ) const { return *( (TTofTrbTdcData *)fDataCollection->At( uDataIndex ) ); }