X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONBusStruct.cxx;h=2ed5c2ef1ac9a277733368a1dd175ceabf20f0c0;hb=888073191223832455d9ca5b75113c0beeccbe0a;hp=d9aaed5e7bef2acc2342d2826a6afc40806787bc;hpb=6dee95a7aa3d68da164a61a379ac55e5918bb873;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONBusStruct.cxx b/MUON/AliMUONBusStruct.cxx index d9aaed5e7be..2ed5c2ef1ac 100644 --- a/MUON/AliMUONBusStruct.cxx +++ b/MUON/AliMUONBusStruct.cxx @@ -14,12 +14,15 @@ **************************************************************************/ /* $Id$ */ - + #include "AliMUONBusStruct.h" -#include "AliLog.h" +#include "AliLog.h" +#include +#include -/// +//----------------------------------------------------------------------------- +/// \class AliMUONBusStruct /// Bus patch structure for tracker raw data /// each Dsp contains at most 5 bus patch structure /// Beside the total length and length of the below data @@ -27,6 +30,8 @@ /// and data structure itself (11bits for manu id, 6 bits for channel id and /// 12 bits for charge) /// +/// \author Christian Finck +//----------------------------------------------------------------------------- /// \cond CLASSIMP ClassImp(AliMUONBusStruct) @@ -34,6 +39,7 @@ ClassImp(AliMUONBusStruct) const Int_t AliMUONBusStruct::fgkHeaderLength = 4; const UInt_t AliMUONBusStruct::fgkDefaultDataKey = 0xB000000B; +const Int_t AliMUONBusStruct::fgkManuNofChannels(64); //___________________________________________ AliMUONBusStruct::AliMUONBusStruct() @@ -42,31 +48,34 @@ AliMUONBusStruct::AliMUONBusStruct() fTotalLength(0), fLength(0), fBusPatchId(0), - fBufSize(1024), +fBufSize(43*fgkManuNofChannels), + /* assuming 43 manus max per bustpatch. + Anyway fData is resized where needed (though it makes it slower) */ + fData(new UInt_t[fBufSize]), fDspId(0), fBlkId(0) { - // - // ctor - // - fData = new UInt_t[fBufSize]; + /// + /// ctor + /// + } //___________________________________________ AliMUONBusStruct::~AliMUONBusStruct() { - // - // dtor - // + /// + /// dtor + /// delete[] fData; } //___________________________________________ void AliMUONBusStruct::SetAlloc(Int_t size) { - // - // Allocate size per default 1024; - // return if size < 1024 - // + /// + /// Allocate size + /// return if size < fBufSize + /// if (size < fBufSize) return; else @@ -75,9 +84,9 @@ void AliMUONBusStruct::SetAlloc(Int_t size) //___________________________________________ void AliMUONBusStruct::AddData(UInt_t data) { - // could have used class from ROOT - // but the structure must be as simple as possible - // to be written on disc blockwise, not so sure ? + /// could have used class from ROOT + /// but the structure must be as simple as possible + /// to be written on disc blockwise, not so sure ? if (fLength == fBufSize) ResizeData(); fData[fLength++] = data; @@ -87,9 +96,9 @@ void AliMUONBusStruct::AddData(UInt_t data) //___________________________________________ void AliMUONBusStruct::ResizeData(Int_t size) { - // In case of resizing the vector - // the most simplest way to do it - // + /// In case of resizing the vector + /// the most simplest way to do it + /// if (size == 0) fBufSize *= 2; else @@ -102,21 +111,21 @@ void AliMUONBusStruct::ResizeData(Int_t size) } //___________________________________________ AliMUONBusStruct:: -AliMUONBusStruct(const AliMUONBusStruct& event): TObject(event) +AliMUONBusStruct(const AliMUONBusStruct& event) + : TObject(event), + fDataKey(event.fDataKey), + fTotalLength(event.fTotalLength), + fLength(event.fLength), + fBusPatchId(event.fBusPatchId), + fBufSize(event.fBufSize), + fData(new UInt_t[event.fBufSize]), + fDspId(event.fDspId), + fBlkId(event.fBlkId) { - // - // copy ctor - // - fDataKey = event.fDataKey; - fTotalLength = event.fTotalLength; - fLength = event.fLength; - fBusPatchId = event.fBusPatchId; - fBufSize = event.fBufSize; - - fBlkId = event.fBlkId; - fDspId = event.fDspId; + /// + /// copy ctor + /// - fData = new UInt_t[event.fBufSize]; for (int i = 0; i < event.fBufSize; i++) fData[i] = event.fData[i]; } @@ -124,9 +133,9 @@ AliMUONBusStruct(const AliMUONBusStruct& event): TObject(event) AliMUONBusStruct& AliMUONBusStruct::operator=(const AliMUONBusStruct& event) { - // - // assignment operator - // + /// + /// assignment operator + /// if (this == &event) return *this; fDataKey = event.fDataKey; fTotalLength = event.fTotalLength; @@ -147,10 +156,10 @@ AliMUONBusStruct::operator=(const AliMUONBusStruct& event) //___________________________________________ Int_t AliMUONBusStruct::Compare(const TObject *obj) const { - // - // sort bus patch by bus patch number - // important for AliMUONRawWriter - // + /// + /// sort bus patch by bus patch number + /// important for AliMUONRawWriter + /// AliMUONBusStruct* event = (AliMUONBusStruct*) obj; return (fBusPatchId > event->GetBusPatchId()) ? 1 : -1; } @@ -158,18 +167,17 @@ Int_t AliMUONBusStruct::Compare(const TObject *obj) const //___________________________________________ void AliMUONBusStruct::Clear(Option_t *) { - // clear - // delete the allocated memory - // - + /// clear + /// delete the allocated memory + /// delete[] fData; } //___________________________________________ UInt_t AliMUONBusStruct::GetData(Int_t n) const { - // - // get data - // + /// + /// get data + /// if ( n>=0 && n=0 && n> 31) & 0x1; AliError("Index outside limits."); @@ -191,9 +199,9 @@ Char_t AliMUONBusStruct::GetParity(Int_t n) const //___________________________________________ UShort_t AliMUONBusStruct::GetManuId(Int_t n) const { - // - // get manu Id - // + /// + /// get manu Id + /// if ( n>=0 && n> 18) & 0x7FF; AliError("Index outside limits."); @@ -201,11 +209,11 @@ UShort_t AliMUONBusStruct::GetManuId(Int_t n) const } //___________________________________________ -Char_t AliMUONBusStruct::GetChannelId(Int_t n) const +UChar_t AliMUONBusStruct::GetChannelId(Int_t n) const { - // - // get channel Id - // + /// + /// get channel Id + /// if ( n>=0 && n> 12) & 0x3F; AliError("Index outside limits."); @@ -215,11 +223,31 @@ Char_t AliMUONBusStruct::GetChannelId(Int_t n) const //___________________________________________ UShort_t AliMUONBusStruct::GetCharge(Int_t n) const { - // - // get charge (in ADC) - // + /// + /// get charge (in ADC) + /// if ( n>=0 && n