X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDDLTracker.cxx;h=74d56541d2beb7105f399535875af207b4255a82;hb=618458595ba164aa2ee46cf89a50016c65a16e9a;hp=d3c9dd46c42f9a5ee260830c79afc053ebcf7341;hpb=f6762c718cec6a87765e034e4ad19397260a8ef3;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDDLTracker.cxx b/MUON/AliMUONDDLTracker.cxx index d3c9dd46c42..74d56541d2b 100644 --- a/MUON/AliMUONDDLTracker.cxx +++ b/MUON/AliMUONDDLTracker.cxx @@ -13,17 +13,96 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ + /* $Id$ */ + #include "AliMUONDDLTracker.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) - +/// \endcond + //___________________________________________ AliMUONDDLTracker::AliMUONDDLTracker() : TObject(), - fLength(0), - fBusPatchId(0), - fData(), - fEndOfDDL(0x0FFFFFFFF) + fBlkHeaderArray(new TClonesArray("AliMUONBlockHeader", 2)) +{ + /// + ///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) { - //ctor + /// 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"); + }