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