1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 #include "AliMUONDDLTracker.h"
19 #include "AliMUONBusStruct.h"
20 #include "AliMUONDspHeader.h"
21 #include "AliMUONBlockHeader.h"
24 /// \class AliMUONDDLTracker
26 /// A wrapper object for 1 DDL of the MUON tracking chambers.
31 ClassImp(AliMUONDDLTracker)
34 //___________________________________________
35 AliMUONDDLTracker::AliMUONDDLTracker()
37 fBlkHeaderArray(new TClonesArray("AliMUONBlockHeader", 2))
45 //___________________________________________
46 AliMUONDDLTracker::~AliMUONDDLTracker()
51 fBlkHeaderArray->Delete();
52 delete fBlkHeaderArray;
56 //___________________________________________
57 void AliMUONDDLTracker::AddBusPatch(const AliMUONBusStruct& busPatch, Int_t iBlock, Int_t iDsp )
59 /// adding bus patch informations
60 /// for a given block & Dsp structure
61 /// using TClonesArrays
63 AliMUONBlockHeader* blockHeader = (AliMUONBlockHeader*)fBlkHeaderArray->At(iBlock);
64 AliMUONDspHeader* dspHeader = (AliMUONDspHeader*)blockHeader->GetDspHeaderEntry(iDsp);
66 TClonesArray* busPatchArray = (TClonesArray*)dspHeader->GetBusPatchArray();
68 TClonesArray &eventArray = *busPatchArray;
69 new(eventArray[eventArray.GetEntriesFast()]) AliMUONBusStruct(busPatch);
72 //___________________________________________
73 void AliMUONDDLTracker::AddDspHeader(const AliMUONDspHeader& dspHeader, Int_t iBlock)
75 /// adding DspHeader informations
76 /// for a given block structure
77 /// using TClonesArrays
79 AliMUONBlockHeader* blockHeader = (AliMUONBlockHeader*)fBlkHeaderArray->At(iBlock);
81 TClonesArray* dspHeaderArray = (TClonesArray*)blockHeader->GetDspHeaderArray();
83 TClonesArray &dspArray = *dspHeaderArray;
84 new(dspArray[dspArray.GetEntriesFast()]) AliMUONDspHeader(dspHeader);
87 //___________________________________________
88 void AliMUONDDLTracker::AddBlkHeader(const AliMUONBlockHeader& blkHeader)
90 /// adding Block header informations
91 /// for a given block structure
92 /// using TClonesArrays
94 TClonesArray &blkArray = *fBlkHeaderArray;
95 new(blkArray[blkArray.GetEntriesFast()]) AliMUONBlockHeader(blkHeader);
98 //___________________________________________
99 void AliMUONDDLTracker::Clear(Option_t* )
101 /// Clear TClones arrays
102 /// instead of deleting
104 fBlkHeaderArray->Clear("C");