// ------------------------------------------------------------------ // ----- TTofTdcBoard ----- // ----- Created 12/05/2013 by P.-A. Loizeau ----- // ------------------------------------------------------------------ #include "TTofTdcBoard.h" // TOF headers #include "TTofTdcData.h" #include "TofTdcDef.h" // FAIR headers #include "FairLogger.h" // ROOT headers #include "TClonesArray.h" // C/C++ headers /************************** TTofTdcBoard ****************************/ TTofTdcBoard::TTofTdcBoard(): fbValidData(kTRUE), fuTdcType(0), fuChannelNumber(0), fuTriggerTime(0), fDataCollection(NULL) { } TTofTdcBoard::TTofTdcBoard( UInt_t uType, UInt_t uChNb ) : fbValidData(kTRUE), fuTdcType(uType), fuChannelNumber(uChNb), fuTriggerTime(0), fDataCollection(NULL) { } TTofTdcBoard::~TTofTdcBoard() { if( 0 < fuChannelNumber && NULL != fDataCollection ) fDataCollection->Delete(); } void TTofTdcBoard::Clear(Option_t *option) { fbValidData = kTRUE; // Default, unpacker has to take care of invalidating stuff TObject::Clear( option ); fuTriggerTime = 0; if( NULL != fDataCollection ) fDataCollection->Clear("C"); } void TTofTdcBoard::SetChannelNb( UInt_t uChNb ) { fuChannelNumber = uChNb; ResizeArray(); } Bool_t TTofTdcBoard::CreateDataArray() { LOG(DEBUG)<<" TTofTdcBoard::CreateDataArray "<Expand( toftdc::kuDefNbMulti*fuChannelNumber ); return kTRUE; } // if( 0 < fuChannelNumber && NULL != fDataCollection ) else return kFALSE; } UInt_t TTofTdcBoard::AddData( TTofTdcData & dataIn ) { if( 0 < fDataCollection ) { Int_t iNextIndex = fDataCollection->GetEntriesFast(); if( iNextIndex < toftdc::kuDefNbMulti * fuChannelNumber ) { TTofTdcData * dataSlot = (TTofTdcData *)fDataCollection->ConstructedAt( iNextIndex ); *dataSlot = dataIn; } // if( iNextIndex < toftdc::kuDefNbMulti * fuChannelNumber ) return fDataCollection->GetEntriesFast(); } // if( 0 < fDataCollection ) else return 0; } TTofTdcData * TTofTdcBoard::GetDataPtr( UInt_t uDataIndex ) { if( 0 < fDataCollection ) { if( uDataIndex < fDataCollection->GetEntriesFast() ) return (TTofTdcData *)fDataCollection->At( uDataIndex ); else return NULL; } // if( 0 < fDataCollection ) else return NULL; } const TTofTdcData & TTofTdcBoard::GetData( UInt_t uDataIndex ) const { return *( (TTofTdcData *)fDataCollection->At( uDataIndex ) ); } UInt_t TTofTdcBoard::GetDataNb() const { if( 0 < fDataCollection ) return fDataCollection->GetEntriesFast(); else return 0; } void TTofTdcBoard::SortData() { if( 0 < fDataCollection ) fDataCollection->Sort(); }