Line data Source code
1 :
2 : #include "TClonesArray.h"
3 : #include "AliMFTCALadder.h"
4 :
5 :
6 12 : ClassImp(AliMFTCALadder)
7 :
8 :
9 : //___________________________________________________________________________
10 : AliMFTCALadder::AliMFTCALadder() :
11 0 : TObject(),
12 0 : fID(-1),
13 0 : fNhits(0),
14 0 : fNcells(0)
15 0 : {
16 :
17 0 : fCells = new TClonesArray("AliMFTCACell", 1000);
18 0 : fHits = new TClonesArray("AliMFTCAHit", 1000);
19 :
20 0 : }
21 :
22 : //___________________________________________________________________________
23 : AliMFTCALadder::AliMFTCALadder(const AliMFTCALadder &ladder) :
24 0 : TObject(ladder),
25 0 : fID(ladder.fID),
26 0 : fNhits(ladder.fNhits),
27 0 : fNcells(ladder.fNcells)
28 0 : {
29 :
30 : // copy constructor
31 :
32 0 : fCells = new TClonesArray("AliMFTCACell", ladder.fNcells);
33 0 : fHits = new TClonesArray("AliMFTCAHit", ladder.fNhits);
34 :
35 : AliMFTCACell *caCell;
36 0 : for (Int_t i = 0; i < ladder.fNcells; i++) {
37 0 : caCell = (AliMFTCACell*)(ladder.fCells->At(i));
38 0 : new ((*fCells)[i]) AliMFTCACell(*caCell);
39 : }
40 : AliMFTCAHit *caHit;
41 0 : for (Int_t i = 0; i < ladder.fNhits; i++) {
42 0 : caHit = (AliMFTCAHit*)(ladder.fHits->At(i));
43 0 : new ((*fHits)[i]) AliMFTCAHit(*caHit);
44 : }
45 :
46 0 : }
47 :
48 : //___________________________________________________________________________
49 : AliMFTCALadder& AliMFTCALadder::operator=(const AliMFTCALadder& ladder)
50 : {
51 :
52 : // assignment operator
53 :
54 : // check assignement to self
55 0 : if (this == &ladder) return *this;
56 :
57 0 : TObject::operator=(ladder);
58 :
59 0 : fID = ladder.fID;
60 0 : fNhits = ladder.fNhits;
61 0 : fNcells = ladder.fNcells;
62 :
63 0 : fCells = new TClonesArray("AliMFTCACell", ladder.fNcells);
64 0 : fHits = new TClonesArray("AliMFTCAHit", ladder.fNhits);
65 :
66 : AliMFTCACell *caCell;
67 0 : for (Int_t i = 0; i < ladder.fNcells; i++) {
68 0 : caCell = (AliMFTCACell*)(ladder.fCells->At(i));
69 0 : new ((*fCells)[i]) AliMFTCACell(*caCell);
70 : }
71 : AliMFTCAHit *caHit;
72 0 : for (Int_t i = 0; i < ladder.fNhits; i++) {
73 0 : caHit = (AliMFTCAHit*)(ladder.fHits->At(i));
74 0 : new ((*fHits)[i]) AliMFTCAHit(*caHit);
75 : }
76 :
77 0 : }
78 :
79 : //___________________________________________________________________________
80 : void AliMFTCALadder::Clear(const Option_t *)
81 : {
82 :
83 0 : if (fCells) fCells->Clear("C");
84 0 : if (fHits) fHits->Clear("C");
85 :
86 0 : fNhits = 0;
87 0 : fNcells = 0;
88 :
89 0 : }
90 :
91 : //___________________________________________________________________________
92 : void AliMFTCALadder::ClearCells()
93 : {
94 :
95 0 : if (fCells) fCells->Clear("C");
96 :
97 0 : fNcells = 0;
98 :
99 0 : }
100 :
101 : //___________________________________________________________________________
102 : AliMFTCACell *AliMFTCALadder::AddCell()
103 : {
104 :
105 0 : new ((*fCells)[fNcells++]) AliMFTCACell();
106 0 : AliMFTCACell *cell = (AliMFTCACell*)fCells->At(fCells->GetLast());
107 :
108 0 : return cell;
109 :
110 0 : }
111 :
112 : //___________________________________________________________________________
113 : AliMFTCAHit *AliMFTCALadder::AddHit()
114 : {
115 :
116 0 : new ((*fHits)[fNhits++]) AliMFTCAHit();
117 0 : AliMFTCAHit *hit = (AliMFTCAHit*)fHits->At(fHits->GetLast());
118 :
119 0 : return hit;
120 :
121 0 : }
|