]>
Commit | Line | Data |
---|---|---|
20dae051 | 1 | // $Id$ |
c2c4b7a2 | 2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
7 | * full copyright notice. * | |
8 | **************************************************************************/ | |
6c49a8e1 | 9 | |
4f8b4026 | 10 | #if !defined(__CINT__) || defined(__MAKECINT__) |
11 | #include <TString.h> | |
12 | #include <TEveManager.h> | |
13 | #include <TEveElement.h> | |
14 | ||
6c49a8e1 | 15 | #include <AliEveITSModule.h> |
16 | #include <AliEveITSDigitsInfo.h> | |
17 | #include <AliEveITSScaledModule.h> | |
4f8b4026 | 18 | #endif |
19 | ||
c2c4b7a2 | 20 | |
21 | void its_common_foos() | |
22 | {} | |
23 | ||
a4135a45 | 24 | AliEveITSModule* its_make_module(Int_t i, TEveElement* parent, |
25 | AliEveITSDigitsInfo* di, | |
26 | AliEveDigitScaleInfo* si, | |
4516a822 | 27 | Bool_t check_empty, |
28 | Bool_t scaled_modules) | |
a4135a45 | 29 | { |
30 | AliEveITSModule* m = 0; | |
31 | ||
32 | Int_t det_id = 0; | |
33 | if (i > 239 && i < 500) det_id = 1; | |
34 | else if (i >= 500) det_id = 2; | |
35 | ||
fe6798e0 | 36 | if (!check_empty || di->HasData(i, det_id) || di->IsDead(i, det_id)) |
a4135a45 | 37 | { |
38 | if (scaled_modules) | |
39 | m = new AliEveITSScaledModule(i, di, si); | |
40 | else | |
41 | m = new AliEveITSModule(i, di); | |
fe6798e0 | 42 | |
43 | // Before 5.26 ROOT did not draw frames of empty quad-sets. | |
44 | // Bypass until we move there. | |
45 | if (!di->HasData(i, det_id)) | |
46 | { | |
47 | m->AddQuad(0,0,0,0); | |
48 | m->RefitPlex(); | |
49 | } | |
50 | ||
a4135a45 | 51 | if (parent) |
52 | parent->AddElement(m); | |
53 | } | |
54 | ||
55 | return m; | |
56 | } | |
57 | ||
58 | void its_display_raw_digits(AliEveITSDigitsInfo* di, Int_t mode, | |
59 | Bool_t check_empty = kTRUE, | |
60 | Bool_t scaled_modules = kFALSE) | |
c2c4b7a2 | 61 | { |
4516a822 | 62 | const TString bsSector = "Sector"; |
63 | const TString bsStave = "Stave"; | |
64 | const TString bsLadder = "Ladder"; | |
c2c4b7a2 | 65 | TString sSector; |
c2c4b7a2 | 66 | TString sStave; |
c2c4b7a2 | 67 | TString sLadder; |
c2c4b7a2 | 68 | |
4516a822 | 69 | Int_t i=0; |
70 | Long_t nsec, nstave, nlad, nMod; | |
c2c4b7a2 | 71 | |
72 | gEve->DisableRedraw(); | |
73 | ||
a4135a45 | 74 | AliEveDigitScaleInfo* si = 0; |
75 | if (scaled_modules) | |
4516a822 | 76 | { |
a4135a45 | 77 | si = new AliEveDigitScaleInfo; |
4516a822 | 78 | } |
a4135a45 | 79 | |
4516a822 | 80 | if (mode & 1) |
81 | { | |
c2c4b7a2 | 82 | TEveElementList* l = new TEveElementList("SPD0"); |
83 | l->SetTitle("SPDs' first layer"); | |
4516a822 | 84 | l->SetMainColor(kRed); |
c2c4b7a2 | 85 | gEve->AddElement(l); |
4516a822 | 86 | |
87 | for (nsec=0; nsec<10; nsec++) | |
88 | { | |
89 | TEveElementList* relSector = new TEveElementList(bsSector + nsec); | |
90 | relSector->SetMainColor(kRed); | |
91 | l->AddElement(relSector); | |
92 | ||
93 | for (nstave=0; nstave<2; nstave++) | |
94 | { | |
95 | TEveElementList* relStave = new TEveElementList(bsStave + nstave); | |
96 | relStave->SetMainColor(kRed); | |
97 | relSector->AddElement(relStave); | |
98 | ||
a4135a45 | 99 | for (nMod=0; nMod<4; ++nMod, ++i) |
c2c4b7a2 | 100 | { |
a4135a45 | 101 | its_make_module(i, relStave, di, si, check_empty, scaled_modules); |
c2c4b7a2 | 102 | } |
103 | } | |
104 | } | |
4516a822 | 105 | } |
106 | else | |
107 | { | |
c2c4b7a2 | 108 | i += 10*2*4; |
109 | } | |
110 | ||
4516a822 | 111 | if (mode & 2) |
112 | { | |
c2c4b7a2 | 113 | TEveElementList* l = new TEveElementList("SPD1"); |
114 | l->SetTitle("SPDs' second layer"); | |
4516a822 | 115 | l->SetMainColor(kRed); |
c2c4b7a2 | 116 | gEve->AddElement(l); |
117 | ||
4516a822 | 118 | for (nsec=0; nsec<10; nsec++) |
119 | { | |
120 | TEveElementList* relSector = new TEveElementList(bsSector + nsec); | |
121 | relSector->SetMainColor(kRed); | |
122 | l->AddElement(relSector); | |
123 | ||
124 | for (nstave=0; nstave<4; nstave++) | |
125 | { | |
126 | TEveElementList* relStave = new TEveElementList(bsStave + nstave); | |
127 | relStave->SetMainColor(kRed); | |
128 | relSector->AddElement(relStave); | |
129 | ||
a4135a45 | 130 | for (nMod=0; nMod<4; ++nMod, ++i) |
c2c4b7a2 | 131 | { |
a4135a45 | 132 | its_make_module(i, relStave, di, si, check_empty, scaled_modules); |
c2c4b7a2 | 133 | } |
134 | } | |
135 | } | |
4516a822 | 136 | } |
137 | else | |
138 | { | |
c2c4b7a2 | 139 | i += 10*4*4; |
140 | } | |
141 | ||
4516a822 | 142 | if (mode & 4) |
143 | { | |
c2c4b7a2 | 144 | TEveElementList* l = new TEveElementList("SDD2"); |
145 | l->SetTitle("SDDs' first layer"); | |
4516a822 | 146 | l->SetMainColor(kBlue); |
c2c4b7a2 | 147 | gEve->AddElement(l); |
148 | ||
4516a822 | 149 | for (nlad=0; nlad<14; nlad++) |
150 | { | |
151 | TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); | |
152 | relLadder->SetMainColor(kBlue); | |
153 | l->AddElement(relLadder); | |
a4135a45 | 154 | for (nMod=0; nMod<6; ++nMod, ++i) |
155 | { | |
156 | its_make_module(i, relLadder, di, si, check_empty, scaled_modules); | |
c2c4b7a2 | 157 | } |
158 | } | |
4516a822 | 159 | } |
160 | else | |
161 | { | |
c2c4b7a2 | 162 | i += 14*6; |
163 | } | |
164 | ||
4516a822 | 165 | if (mode & 8) |
166 | { | |
c2c4b7a2 | 167 | TEveElementList* l = new TEveElementList("SDD3"); |
168 | l->SetTitle("SDDs' second layer"); | |
4516a822 | 169 | l->SetMainColor(kBlue); |
c2c4b7a2 | 170 | gEve->AddElement(l); |
4516a822 | 171 | |
172 | for (nlad=0; nlad<22; nlad++) | |
173 | { | |
174 | TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); | |
175 | relLadder->SetMainColor(kBlue); | |
176 | l->AddElement(relLadder); | |
a4135a45 | 177 | for (nMod=0; nMod<8; ++nMod, ++i) |
178 | { | |
179 | its_make_module(i, relLadder, di, si, check_empty, scaled_modules); | |
c2c4b7a2 | 180 | } |
181 | } | |
4516a822 | 182 | } |
183 | else | |
184 | { | |
c2c4b7a2 | 185 | i += 22*8; |
186 | } | |
187 | ||
4516a822 | 188 | if (mode & 16) |
189 | { | |
c2c4b7a2 | 190 | TEveElementList* l = new TEveElementList("SSD4"); |
191 | l->SetTitle("SSDs' first layer"); | |
4516a822 | 192 | l->SetMainColor(kGreen); |
c2c4b7a2 | 193 | gEve->AddElement(l); |
4516a822 | 194 | |
195 | for (nlad=0; nlad<34; nlad++) | |
196 | { | |
197 | TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); | |
198 | relLadder->SetMainColor(kGreen); | |
199 | l->AddElement(relLadder); | |
a4135a45 | 200 | for (nMod=0; nMod<22; ++nMod, ++i) |
201 | { | |
202 | its_make_module(i, relLadder, di, si, check_empty, scaled_modules); | |
c2c4b7a2 | 203 | } |
204 | } | |
4516a822 | 205 | } |
206 | else | |
207 | { | |
c2c4b7a2 | 208 | i += 34*22; |
209 | } | |
210 | ||
4516a822 | 211 | if (mode & 32) |
212 | { | |
c2c4b7a2 | 213 | TEveElementList* l = new TEveElementList("SSD5"); |
214 | l->SetTitle("SSDs' second layer"); | |
4516a822 | 215 | l->SetMainColor(kGreen); |
c2c4b7a2 | 216 | gEve->AddElement(l); |
4516a822 | 217 | |
218 | for (nlad=0; nlad<38; nlad++) | |
219 | { | |
220 | TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); | |
221 | relLadder->SetMainColor(kGreen); | |
222 | l->AddElement(relLadder); | |
a4135a45 | 223 | for (nMod=0; nMod<25; ++nMod, ++i) |
224 | { | |
225 | its_make_module(i, relLadder, di, si, check_empty, scaled_modules); | |
c2c4b7a2 | 226 | } |
227 | } | |
4516a822 | 228 | } |
229 | else | |
230 | { | |
c2c4b7a2 | 231 | i += 38*25; |
232 | } | |
233 | ||
234 | gEve->EnableRedraw(); | |
235 | } |