X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDDLTracker.cxx;h=74d56541d2beb7105f399535875af207b4255a82;hb=664ef33ab279bf8810a405177d309946bfe5c452;hp=bbb70fd38a0ddae3645072e90269a495a92d9bc9;hpb=e516b01dc9b050949d85a6e082e9213ee783c82c;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDDLTracker.cxx b/MUON/AliMUONDDLTracker.cxx index bbb70fd38a0..74d56541d2b 100644 --- a/MUON/AliMUONDDLTracker.cxx +++ b/MUON/AliMUONDDLTracker.cxx @@ -13,25 +13,96 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ + /* $Id$ */ + #include "AliMUONDDLTracker.h" -#include "AliRawDataHeader.h" +#include "AliMUONBusStruct.h" +#include "AliMUONDspHeader.h" +#include "AliMUONBlockHeader.h" + + +//----------------------------------------------------------------------------- +/// \class AliMUONDDLTracker +/// +/// A wrapper object for 1 DDL of the MUON tracking chambers. +/// +/// \author C. Finck +//----------------------------------------------------------------------------- +/// \cond CLASSIMP ClassImp(AliMUONDDLTracker) - const Int_t AliMUONDDLTracker::fEndOfDDL = 0x0FFFFFFFF; +/// \endcond //___________________________________________ AliMUONDDLTracker::AliMUONDDLTracker() : TObject(), - fTotalBlkLength(0), - fBlkLength(0), - fDSPId(0), - fPadding(0x0DEADDEAD), - fTotalDspLength(0), - fDspLength(0), - fDSPId1(0), - fEventWord(0) + fBlkHeaderArray(new TClonesArray("AliMUONBlockHeader", 2)) { - //ctor - for (Int_t i = 0; i < 4; i++) - fBlkTriggerWord[i] = fDspTriggerWord[i] = 0; + /// + ///ctor + /// + +} + +//___________________________________________ +AliMUONDDLTracker::~AliMUONDDLTracker() +{ + /// + ///dtor + /// + fBlkHeaderArray->Delete(); + delete fBlkHeaderArray; + +} + +//___________________________________________ +void AliMUONDDLTracker::AddBusPatch(const AliMUONBusStruct& busPatch, Int_t iBlock, Int_t iDsp ) +{ + /// adding bus patch informations + /// for a given block & Dsp structure + /// using TClonesArrays + + AliMUONBlockHeader* blockHeader = (AliMUONBlockHeader*)fBlkHeaderArray->At(iBlock); + AliMUONDspHeader* dspHeader = (AliMUONDspHeader*)blockHeader->GetDspHeaderEntry(iDsp); + + TClonesArray* busPatchArray = (TClonesArray*)dspHeader->GetBusPatchArray(); + + TClonesArray &eventArray = *busPatchArray; + new(eventArray[eventArray.GetEntriesFast()]) AliMUONBusStruct(busPatch); +} + +//___________________________________________ +void AliMUONDDLTracker::AddDspHeader(const AliMUONDspHeader& dspHeader, Int_t iBlock) +{ + /// adding DspHeader informations + /// for a given block structure + /// using TClonesArrays + + AliMUONBlockHeader* blockHeader = (AliMUONBlockHeader*)fBlkHeaderArray->At(iBlock); + + TClonesArray* dspHeaderArray = (TClonesArray*)blockHeader->GetDspHeaderArray(); + + TClonesArray &dspArray = *dspHeaderArray; + new(dspArray[dspArray.GetEntriesFast()]) AliMUONDspHeader(dspHeader); +} + +//___________________________________________ +void AliMUONDDLTracker::AddBlkHeader(const AliMUONBlockHeader& blkHeader) +{ + /// adding Block header informations + /// for a given block structure + /// using TClonesArrays + + TClonesArray &blkArray = *fBlkHeaderArray; + new(blkArray[blkArray.GetEntriesFast()]) AliMUONBlockHeader(blkHeader); +} + +//___________________________________________ +void AliMUONDDLTracker::Clear(Option_t* ) +{ + /// Clear TClones arrays + /// instead of deleting + /// + fBlkHeaderArray->Clear("C"); + }