Line data Source code
1 : /**************************************************************************
2 : * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 : * *
4 : * Author: The ALICE Off-line Project. *
5 : * Contributors are mentioned in the code where appropriate. *
6 : * *
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 : **************************************************************************/
15 :
16 : /* $Id$ */
17 :
18 : #include "AliMUONDDLTracker.h"
19 : #include "AliMUONBusStruct.h"
20 : #include "AliMUONDspHeader.h"
21 : #include "AliMUONBlockHeader.h"
22 :
23 :
24 : //-----------------------------------------------------------------------------
25 : /// \class AliMUONDDLTracker
26 : ///
27 : /// A wrapper object for 1 DDL of the MUON tracking chambers.
28 : ///
29 : /// \author C. Finck
30 : //-----------------------------------------------------------------------------
31 :
32 : /// \cond CLASSIMP
33 18 : ClassImp(AliMUONDDLTracker)
34 : /// \endcond
35 :
36 : //___________________________________________
37 : AliMUONDDLTracker::AliMUONDDLTracker(TRootIOCtor* /*dummy*/)
38 0 : : TObject(),
39 0 : fBlkHeaderArray(0x0)
40 0 : {
41 : ///
42 : ///ctor
43 : ///
44 0 : }
45 :
46 : //___________________________________________
47 : AliMUONDDLTracker::AliMUONDDLTracker()
48 0 : : TObject(),
49 0 : fBlkHeaderArray(new TClonesArray("AliMUONBlockHeader", 2))
50 0 : {
51 : ///
52 : ///ctor
53 : ///
54 :
55 0 : }
56 :
57 : //___________________________________________
58 : AliMUONDDLTracker::~AliMUONDDLTracker()
59 0 : {
60 : ///
61 : ///dtor
62 : ///
63 0 : fBlkHeaderArray->Delete();
64 0 : delete fBlkHeaderArray;
65 :
66 0 : }
67 :
68 : //___________________________________________
69 : void AliMUONDDLTracker::AddBusPatch(const AliMUONBusStruct& busPatch, Int_t iBlock, Int_t iDsp )
70 : {
71 : /// adding bus patch informations
72 : /// for a given block & Dsp structure
73 : /// using TClonesArrays
74 :
75 0 : AliMUONBlockHeader* blockHeader = (AliMUONBlockHeader*)fBlkHeaderArray->At(iBlock);
76 0 : AliMUONDspHeader* dspHeader = (AliMUONDspHeader*)blockHeader->GetDspHeaderEntry(iDsp);
77 :
78 0 : TClonesArray* busPatchArray = (TClonesArray*)dspHeader->GetBusPatchArray();
79 :
80 : TClonesArray &eventArray = *busPatchArray;
81 0 : new(eventArray[eventArray.GetEntriesFast()]) AliMUONBusStruct(busPatch);
82 0 : }
83 :
84 : //___________________________________________
85 : void AliMUONDDLTracker::AddDspHeader(const AliMUONDspHeader& dspHeader, Int_t iBlock)
86 : {
87 : /// adding DspHeader informations
88 : /// for a given block structure
89 : /// using TClonesArrays
90 :
91 0 : AliMUONBlockHeader* blockHeader = (AliMUONBlockHeader*)fBlkHeaderArray->At(iBlock);
92 :
93 0 : TClonesArray* dspHeaderArray = (TClonesArray*)blockHeader->GetDspHeaderArray();
94 :
95 : TClonesArray &dspArray = *dspHeaderArray;
96 0 : new(dspArray[dspArray.GetEntriesFast()]) AliMUONDspHeader(dspHeader);
97 0 : }
98 :
99 : //___________________________________________
100 : void AliMUONDDLTracker::AddBlkHeader(const AliMUONBlockHeader& blkHeader)
101 : {
102 : /// adding Block header informations
103 : /// for a given block structure
104 : /// using TClonesArrays
105 :
106 0 : TClonesArray &blkArray = *fBlkHeaderArray;
107 0 : new(blkArray[blkArray.GetEntriesFast()]) AliMUONBlockHeader(blkHeader);
108 0 : }
109 :
110 : //___________________________________________
111 : void AliMUONDDLTracker::Clear(Option_t* )
112 : {
113 : /// Clear TClones arrays
114 : /// instead of deleting
115 : ///
116 0 : fBlkHeaderArray->Clear("C");
117 :
118 0 : }
|