]>
Commit | Line | Data |
---|---|---|
d810d0de | 1 | // $Id$ |
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 * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
fd31e9de | 9 | |
d810d0de | 10 | #include "AliEveTRDModuleImp.h" |
11 | #include "AliEveTRDData.h" | |
b9df0156 | 12 | #include "AliEveEventManager.h" |
a282bf09 | 13 | |
a879a24a | 14 | #include "TTree.h" |
6983e87a | 15 | #include "TGListTree.h" |
16 | #include "TClonesArray.h" | |
17 | #include "TGeoManager.h" | |
18 | #include "TGeoMatrix.h" | |
a282bf09 | 19 | |
84aff7a4 | 20 | #include "TEveManager.h" |
21 | #include "TEveTrack.h" | |
6983e87a | 22 | #include "TEveGeoNode.h" |
23 | #include "TEveTrans.h" | |
24 | ||
a282bf09 | 25 | |
edf0c4a0 | 26 | #include "AliLog.h" |
6bbacce9 | 27 | #include "AliCDBManager.h" |
a282bf09 | 28 | #include "AliTRDgeometry.h" |
29 | #include "AliTRDCommonParam.h" | |
30 | #include "AliTRDpadPlane.h" | |
a282bf09 | 31 | #include "AliTRDhit.h" |
32 | #include "AliTRDcluster.h" | |
6bbacce9 | 33 | #include "AliTRDtrackingChamber.h" |
a879a24a | 34 | #include "AliTRDtrackletMCM.h" |
a282bf09 | 35 | |
d810d0de | 36 | ClassImp(AliEveTRDChamber) |
37 | ClassImp(AliEveTRDNode) | |
a282bf09 | 38 | |
fd31e9de | 39 | //______________________________________________________________________________ |
d810d0de | 40 | AliEveTRDNode::AliEveTRDNode(const char *typ, Int_t det) : |
41 | TEveElement(), AliEveTRDModule(typ, det) | |
a282bf09 | 42 | { |
a15e6d7d | 43 | // Xonstructor. |
a282bf09 | 44 | } |
45 | ||
fd31e9de | 46 | //______________________________________________________________________________ |
47 | void AliEveTRDNode::Paint(Option_t* option) | |
a282bf09 | 48 | { |
a15e6d7d | 49 | // Paint object. |
50 | ||
90ae0503 | 51 | AliEveTRDModule *module(NULL); |
fd31e9de | 52 | List_i iter = fChildren.begin(); |
53 | while(iter != fChildren.end()){ | |
90ae0503 | 54 | if((module = dynamic_cast<AliEveTRDModule*>(*iter))) module->Paint(option); |
fd31e9de | 55 | iter++; |
56 | } | |
a282bf09 | 57 | } |
58 | ||
fd31e9de | 59 | //______________________________________________________________________________ |
60 | void AliEveTRDNode::Reset() | |
a282bf09 | 61 | { |
a15e6d7d | 62 | // Reset. |
63 | ||
fd31e9de | 64 | List_i iter = fChildren.begin(); |
65 | while(iter != fChildren.end()){ | |
527ceac3 | 66 | //(dynamic_cast<AliEveTRDModule*>(*iter))->Reset(); |
fd31e9de | 67 | iter++; |
68 | } | |
a282bf09 | 69 | } |
70 | ||
fd31e9de | 71 | //______________________________________________________________________________ |
d810d0de | 72 | void AliEveTRDNode::Collapse() |
a282bf09 | 73 | { |
a15e6d7d | 74 | // Collapse. |
75 | ||
fd31e9de | 76 | TGListTree *list = gEve->GetListTree(); |
77 | AliEveTRDNode *node = 0x0; | |
78 | List_i iter = fChildren.begin(); | |
79 | while(iter != fChildren.end()){ | |
80 | if((node = dynamic_cast<AliEveTRDNode*>(*iter))) node->Collapse(); | |
81 | list->CloseItem(FindListTreeItem(list)); | |
82 | iter++; | |
83 | } | |
a282bf09 | 84 | } |
85 | ||
fd31e9de | 86 | //______________________________________________________________________________ |
d810d0de | 87 | void AliEveTRDNode::Expand() |
a282bf09 | 88 | { |
a15e6d7d | 89 | // Expand. |
90 | ||
fd31e9de | 91 | TGListTree *list = gEve->GetListTree(); |
92 | AliEveTRDNode *node = 0x0; | |
93 | List_i iter = fChildren.begin(); | |
94 | while(iter != fChildren.end()){ | |
95 | if((node = dynamic_cast<AliEveTRDNode*>(*iter))) node->Expand(); | |
96 | list->OpenItem(FindListTreeItem(list)); | |
97 | iter++; | |
98 | } | |
a282bf09 | 99 | } |
100 | ||
fd31e9de | 101 | //______________________________________________________________________________ |
e11486f9 | 102 | void AliEveTRDNode::EnableListElements(Bool_t rnr_self, Bool_t rnr_children) |
a282bf09 | 103 | { |
a15e6d7d | 104 | // Enable list elements. |
105 | ||
e11486f9 | 106 | SetRnrSelf(rnr_self); |
107 | AliEveTRDNode *node(NULL); | |
108 | AliEveTRDChamber *chmb(NULL); | |
fd31e9de | 109 | List_i iter = fChildren.begin(); |
110 | while(iter != fChildren.end()){ | |
111 | if((node = dynamic_cast<AliEveTRDNode*>(*iter))){ | |
e11486f9 | 112 | node->SetRnrSelf(rnr_children); |
113 | node->EnableListElements(rnr_children, rnr_children); | |
fd31e9de | 114 | } |
e11486f9 | 115 | if((chmb = dynamic_cast<AliEveTRDChamber*>(*iter))) chmb->EnableListElements(rnr_children, rnr_children); |
fd31e9de | 116 | iter++; |
117 | } | |
118 | gEve->Redraw3D(); | |
a282bf09 | 119 | } |
120 | ||
fd31e9de | 121 | //______________________________________________________________________________ |
e11486f9 | 122 | void AliEveTRDNode::DisableListElements(Bool_t rnr_self, Bool_t rnr_children) |
a282bf09 | 123 | { |
a15e6d7d | 124 | // Disable list elements. |
125 | ||
e11486f9 | 126 | SetRnrSelf(rnr_self); |
127 | AliEveTRDNode *node(NULL); | |
128 | AliEveTRDChamber *chmb(NULL); | |
fd31e9de | 129 | List_i iter = fChildren.begin(); |
130 | while(iter != fChildren.end()){ | |
131 | if((node = dynamic_cast<AliEveTRDNode*>(*iter))){ | |
e11486f9 | 132 | node->SetRnrSelf(rnr_children); |
133 | node->DisableListElements(rnr_children, rnr_children); | |
fd31e9de | 134 | } |
e11486f9 | 135 | if((chmb = dynamic_cast<AliEveTRDChamber*>(*iter))) chmb->DisableListElements(rnr_children, rnr_children); |
fd31e9de | 136 | iter++; |
137 | } | |
138 | gEve->Redraw3D(); | |
a282bf09 | 139 | } |
140 | ||
fd31e9de | 141 | //______________________________________________________________________________ |
d810d0de | 142 | void AliEveTRDNode::UpdateLeaves() |
a282bf09 | 143 | { |
a15e6d7d | 144 | // Update leaves. |
145 | ||
fd31e9de | 146 | AliEveTRDModule *module; |
147 | List_i iter = fChildren.begin(); | |
148 | while(iter != fChildren.end()){ | |
149 | module = dynamic_cast<AliEveTRDModule*>(*iter); | |
150 | if(!module) continue; | |
151 | ||
152 | module->fRnrHits = fRnrHits; | |
153 | module->fRnrDigits = fRnrDigits; | |
154 | module->fDigitsLog = fDigitsLog; | |
155 | module->fDigitsBox = fDigitsBox; | |
156 | module->fDigitsThreshold = fDigitsThreshold; | |
157 | module->fDigitsNeedRecompute = fDigitsNeedRecompute; | |
158 | module->fRnrRecPoints = fRnrRecPoints; | |
159 | module->fRnrTracklets = fRnrTracklets; | |
160 | iter++; | |
161 | } | |
162 | ||
163 | AliEveTRDNode *node = 0x0; | |
164 | iter = fChildren.begin(); | |
165 | while(iter != fChildren.end()){ | |
166 | if((node = dynamic_cast<AliEveTRDNode*>(*iter))) node->UpdateLeaves(); | |
167 | iter++; | |
168 | } | |
a282bf09 | 169 | } |
170 | ||
171 | ||
fd31e9de | 172 | //______________________________________________________________________________ |
d810d0de | 173 | void AliEveTRDNode::UpdateNode() |
a282bf09 | 174 | { |
a15e6d7d | 175 | // Update node. |
176 | ||
fd31e9de | 177 | // Info("UpdateNode()", Form("%s", GetName())); |
178 | AliEveTRDNode *node = 0x0; | |
179 | List_i iter = fChildren.begin(); | |
180 | while(iter != fChildren.end()){ | |
181 | if((node = dynamic_cast<AliEveTRDNode*>(*iter))) node->UpdateNode(); | |
182 | iter++; | |
183 | } | |
a282bf09 | 184 | |
fd31e9de | 185 | Int_t score[11]; |
186 | for(int i=0; i<11; i++) score[i] = 0; | |
187 | AliEveTRDModule *module; | |
188 | iter = fChildren.begin(); | |
189 | while(iter != fChildren.end()){ | |
190 | module = dynamic_cast<AliEveTRDModule*>(*iter); | |
191 | if(!module) continue; | |
192 | score[0] += (module->fLoadHits) ? 1 : 0; | |
193 | score[1] += (module->fRnrHits) ? 1 : 0; | |
194 | ||
195 | score[2] += (module->fLoadDigits) ? 1 : 0; | |
196 | score[3] += (module->fRnrDigits) ? 1 : 0; | |
197 | score[4] += (module->fDigitsLog) ? 1 : 0; | |
198 | score[5] += (module->fDigitsBox) ? 1 : 0; | |
199 | score[6] += (module->fDigitsNeedRecompute) ? 1 : 0; | |
200 | ||
201 | score[7] += (module->fLoadRecPoints) ? 1 : 0; | |
202 | score[8] += (module->fRnrRecPoints) ? 1 : 0; | |
203 | ||
204 | score[9] += (module->fLoadTracklets) ? 1 : 0; | |
205 | score[10] += (module->fRnrTracklets) ? 1 : 0; | |
206 | iter++; | |
207 | } | |
a282bf09 | 208 | |
fd31e9de | 209 | Int_t size = fChildren.size(); |
210 | fLoadHits = (score[0] > 0) ? kTRUE : kFALSE; | |
211 | fRnrHits = (score[1] == size) ? kTRUE : kFALSE; | |
51346b82 | 212 | |
fd31e9de | 213 | fLoadDigits = (score[2] > 0) ? kTRUE : kFALSE; |
214 | fRnrDigits = (score[3] == size) ? kTRUE : kFALSE; | |
215 | fDigitsLog = (score[4] == size) ? kTRUE : kFALSE; | |
216 | fDigitsBox = (score[5] == size) ? kTRUE : kFALSE; | |
217 | fDigitsNeedRecompute = (score[6] == size) ? kTRUE : kFALSE; | |
51346b82 | 218 | |
fd31e9de | 219 | fLoadRecPoints = (score[7] > 0) ? kTRUE : kFALSE; |
220 | fRnrRecPoints = (score[8] == size) ? kTRUE : kFALSE; | |
51346b82 | 221 | |
fd31e9de | 222 | fLoadTracklets = (score[9] > 0) ? kTRUE : kFALSE; |
223 | fRnrTracklets = (score[10] == size) ? kTRUE : kFALSE; | |
a282bf09 | 224 | } |
225 | ||
a282bf09 | 226 | |
fd31e9de | 227 | /////////////////////////////////////////////////////////// |
228 | //////////// AliEveTRDChamber //////////////////// | |
229 | /////////////////////////////////////////////////////////// | |
a282bf09 | 230 | |
fd31e9de | 231 | //______________________________________________________________________________ |
232 | AliEveTRDChamber::AliEveTRDChamber(Int_t det) : | |
6983e87a | 233 | TEveElement() |
234 | ,AliEveTRDModule("Chmb", det) | |
235 | ,fDigits(0x0) | |
236 | ,fHits(0x0) | |
237 | ,fRecPoints(0x0) | |
238 | ,fTracklets(0x0) | |
239 | ,fGeo(0x0) | |
240 | ,fShape(0x0) | |
241 | ,fNrows(-1) | |
242 | ,fNcols(-1) | |
243 | ,fNtime(22) | |
a282bf09 | 244 | { |
245 | // | |
fd31e9de | 246 | // Constructor |
a282bf09 | 247 | // |
a282bf09 | 248 | } |
249 | ||
edf0c4a0 | 250 | |
fd31e9de | 251 | //______________________________________________________________________________ |
d810d0de | 252 | void AliEveTRDChamber::LoadClusters(TObjArray *clusters) |
a282bf09 | 253 | { |
254 | // | |
255 | // Draw clusters | |
256 | // | |
51346b82 | 257 | |
fd31e9de | 258 | if(!fGeo){ |
259 | AliError(Form("Geometry not set for chamber %d. Please call first AliEveTRDChamber::SetGeometry().", fDet)); | |
260 | return; | |
261 | } | |
262 | ||
a4197d2e | 263 | if(!fRecPoints){ |
264 | AddElement(fRecPoints = new AliEveTRDClusters()); | |
265 | fRecPoints->SetTitle(Form("Clusters for Det %d", GetID())); | |
6983e87a | 266 | } |
267 | fRecPoints->Reset(); | |
fd31e9de | 268 | |
4f7bd6c9 | 269 | // get rotation parameters |
270 | Int_t sec = AliTRDgeometry::GetSector(GetID()); | |
271 | Float_t alpha((0.5+sec)*AliTRDgeometry::GetAlpha()), | |
272 | cphi(TMath::Cos(alpha)), | |
273 | sphi(TMath::Sin(alpha)); | |
fd31e9de | 274 | Float_t q; |
6983e87a | 275 | Float_t g[3]; //global coordinates |
4f7bd6c9 | 276 | AliTRDcluster *c(NULL); |
0d9ef37b | 277 | Int_t nc = clusters->GetEntriesFast(); |
278 | for(int iclus=0; iclus<nc; iclus++){ | |
4f7bd6c9 | 279 | if(!(c = (AliTRDcluster*)clusters->UncheckedAt(iclus))) continue; |
fd31e9de | 280 | q = c->GetQ(); |
4f7bd6c9 | 281 | // Temorary fix related to bug http://savannah.cern.ch/bugs/?89730 |
282 | // c->GetGlobalXYZ(g); | |
283 | g[0] = c->GetX() * cphi - c->GetY() * sphi; | |
284 | g[1] = c->GetX() * sphi + c->GetY() * cphi; | |
285 | g[2] = c->GetZ(); | |
286 | Int_t id = fRecPoints->SetNextPoint(g[0], g[1], g[2]); | |
6983e87a | 287 | fRecPoints->SetPointId(id, new AliTRDcluster(*c)); |
fd31e9de | 288 | } |
fbc350a3 | 289 | fRecPoints->StampObjProps(); |
fd31e9de | 290 | fLoadRecPoints = kTRUE; |
a282bf09 | 291 | } |
292 | ||
6bbacce9 | 293 | |
294 | //______________________________________________________________________________ | |
295 | void AliEveTRDChamber::LoadClusters(AliTRDtrackingChamber *tc) | |
296 | { | |
297 | if(!fGeo){ | |
298 | AliError(Form("Geometry not set for chamber %d. Please call first AliEveTRDChamber::SetGeometry().", fDet)); | |
299 | return; | |
300 | } | |
301 | ||
302 | if(!fRecPoints){ | |
303 | AddElement(fRecPoints = new AliEveTRDClusters()); | |
304 | fRecPoints->SetTitle(Form("Clusters for Det %d", GetID())); | |
305 | } | |
306 | fRecPoints->Reset(); | |
307 | ||
4f7bd6c9 | 308 | // get rotation parameters |
309 | Int_t sec = AliTRDgeometry::GetSector(fDet); | |
310 | Float_t alpha((0.5+sec)*AliTRDgeometry::GetAlpha()), | |
311 | cphi(TMath::Cos(alpha)), | |
312 | sphi(TMath::Sin(alpha)); | |
6bbacce9 | 313 | Float_t g[3]; //global coordinates |
4f7bd6c9 | 314 | const AliTRDchamberTimeBin *tb(NULL); |
ab456262 | 315 | for(int itb=0; itb<AliTRDseedV1::kNtb; itb++){ |
6bbacce9 | 316 | tb = tc->GetTB(itb); |
317 | if(!(Int_t(*tb))) continue; | |
4f7bd6c9 | 318 | const AliTRDcluster *c(NULL); Int_t ic = 0; |
6bbacce9 | 319 | while((c=tb->GetCluster(ic))){ |
4f7bd6c9 | 320 | // Temorary fix related to bug http://savannah.cern.ch/bugs/?89730 |
321 | // c->GetGlobalXYZ(g); | |
322 | g[0] = c->GetX() * cphi - c->GetY() * sphi; | |
323 | g[1] = c->GetX() * sphi + c->GetY() * cphi; | |
324 | g[2] = c->GetZ(); | |
325 | Int_t id = fRecPoints->SetNextPoint(g[0], g[1], g[2]); | |
6bbacce9 | 326 | fRecPoints->SetPointId(id, new AliTRDcluster(*c)); |
327 | ic++; | |
328 | } | |
329 | } | |
330 | fRecPoints->StampObjProps(); | |
331 | fLoadRecPoints = kTRUE; | |
332 | } | |
333 | ||
334 | ||
fd31e9de | 335 | //______________________________________________________________________________ |
d810d0de | 336 | void AliEveTRDChamber::LoadDigits(AliTRDdigitsManager *digits) |
a282bf09 | 337 | { |
338 | // | |
339 | // Draw digits | |
340 | // | |
fd31e9de | 341 | if(!fGeo){ |
342 | AliError(Form("Geometry not set for chamber %d. Please call first AliEveTRDChamber::SetGeometry().", fDet)); | |
343 | return; | |
344 | } | |
51346b82 | 345 | |
6983e87a | 346 | if(!fDigits) AddElement(fDigits = new AliEveTRDDigits(this)); |
51346b82 | 347 | |
5998b164 | 348 | //fDigits->Reset(); |
fd31e9de | 349 | fDigits->SetData(digits); |
fbc350a3 | 350 | fDigits->StampObjProps(); |
0d9ef37b | 351 | fDigitsNeedRecompute = kTRUE; |
fd31e9de | 352 | fLoadDigits = kTRUE; |
a282bf09 | 353 | } |
354 | ||
fd31e9de | 355 | //______________________________________________________________________________ |
6983e87a | 356 | void AliEveTRDChamber::LoadHits(TClonesArray *hits, Int_t &idx) |
a282bf09 | 357 | { |
358 | // | |
359 | // Draw hits | |
360 | // | |
fd31e9de | 361 | |
a4197d2e | 362 | if(!fHits){ |
363 | AddElement(fHits = new AliEveTRDHits()); | |
364 | fHits->SetTitle(Form("Hits for Det %d", GetID())); | |
fd31e9de | 365 | } |
fd31e9de | 366 | fLoadHits = kTRUE; |
6983e87a | 367 | Int_t nhits = hits->GetEntriesFast(); |
368 | ||
369 | AliTRDhit *hit = 0x0; | |
370 | while(idx<nhits){ | |
371 | hit = (AliTRDhit*)hits->UncheckedAt(idx); | |
372 | if(hit->GetDetector() != fDet) return; | |
373 | ||
374 | Int_t id = fHits->SetNextPoint(hit->X(), hit->Y(), hit->Z()); | |
375 | fHits->SetPointId(id, new AliTRDhit(*hit)); | |
fbc350a3 | 376 | fHits->StampObjProps(); |
6983e87a | 377 | idx++; |
378 | } | |
379 | return; | |
a282bf09 | 380 | } |
381 | ||
fd31e9de | 382 | //______________________________________________________________________________ |
a879a24a | 383 | void AliEveTRDChamber::LoadTracklets(TTree *trklTree) |
a282bf09 | 384 | { |
385 | // | |
386 | // Draw tracks | |
387 | // | |
a879a24a | 388 | |
fd31e9de | 389 | if(!fGeo){ |
ea41d018 | 390 | Error("LoadTracklets()", "Geometry not set for chamber %d. Please call first AliEveTRDChamber::SetGeometry().", fDet); |
fd31e9de | 391 | return; |
392 | } | |
fd31e9de | 393 | |
394 | if(!fTracklets){ | |
a879a24a | 395 | fTracklets = new TClonesArray("AliEveTRDTrackletOnline",100); |
396 | } else { | |
397 | fTracklets->Delete(); | |
398 | TEveElementList *trklChild = (TEveElementList*) FindChild("Tracklets"); | |
a428533a | 399 | if (trklChild) |
400 | trklChild->Destroy(); | |
a879a24a | 401 | } |
402 | ||
403 | ||
404 | TBranch *mcmBranch = trklTree->GetBranch("mcmtrklbranch"); | |
405 | if (!mcmBranch) | |
406 | return; | |
407 | ||
408 | AliTRDtrackletMCM *trkl = 0x0; | |
409 | mcmBranch->SetAddress(&trkl); | |
410 | ||
411 | TEveElementList* listOfTracklets = new TEveElementList("Tracklets"); | |
412 | gEve->AddElement(listOfTracklets, this); | |
413 | ||
414 | for(Int_t iTrkl = 0; iTrkl < mcmBranch->GetEntries(); iTrkl++){ | |
415 | mcmBranch->GetEntry(iTrkl); | |
416 | if (trkl->GetDetector() == GetID()) { | |
417 | new ((*fTracklets)[fTracklets->GetEntriesFast()]) AliEveTRDTrackletOnline(trkl); | |
418 | gEve->AddElement(new AliEveTRDTrackletOnline(trkl), listOfTracklets); | |
419 | } | |
fd31e9de | 420 | } |
421 | fLoadTracklets = kTRUE; | |
a282bf09 | 422 | } |
423 | ||
a282bf09 | 424 | |
fd31e9de | 425 | //______________________________________________________________________________ |
d810d0de | 426 | void AliEveTRDChamber::SetGeometry(AliTRDgeometry *geo) |
14217b5f | 427 | { |
a15e6d7d | 428 | // Set geometry. |
429 | ||
fd31e9de | 430 | fGeo = geo; |
51346b82 | 431 | |
6983e87a | 432 | Int_t ism = geo->GetSector(fDet); |
7bc3159a | 433 | Int_t istk = geo->GetStack(fDet); |
434 | Int_t ilyr = geo->GetLayer(fDet); | |
435 | Int_t icha = istk*6+ilyr; | |
d2472d3d | 436 | Int_t idx(1); |
437 | if(ism>12&&ism<16) idx=3; | |
438 | else if(ism==11||ism==12) idx=2; | |
6983e87a | 439 | |
440 | // define pad plane size in pads | |
7bc3159a | 441 | AliTRDpadPlane *pp = fGeo->GetPadPlane(ilyr, istk); |
6983e87a | 442 | fNrows = pp->GetNrows(); |
443 | fNcols = pp->GetNcols(); | |
444 | ||
445 | // this version for setting the rendarable object is not working very nice | |
446 | // Int_t shape_offset = TEveGeoShape::Class()->GetDataMemberOffset("fShape"); | |
447 | // TEveGeoShape* eg_shape = new TEveGeoShape("geometry"); | |
448 | // eg_shape->RefMainTrans().SetFrom(* gGeoManager->GetCurrentMatrix()); | |
449 | // * (TGeoShape**) (((char*)eg_shape) + shape_offset) = gGeoManager->GetCurrentVolume()->GetShape(); | |
450 | // | |
451 | // eg_shape->StampColorSelection(); | |
5998b164 | 452 | if(!(gGeoManager)){ |
6bbacce9 | 453 | AliEveEventManager::AssertGeometry(); |
5998b164 | 454 | if(!(gGeoManager)){ |
455 | AliError("Geo manager not available."); | |
456 | return; | |
457 | } | |
6bbacce9 | 458 | } |
6983e87a | 459 | |
460 | // define rendarable volumes | |
d2472d3d | 461 | if(!gGeoManager->cd(Form("/B077_1/BSEGMO%d_1/BTRD%d_1/UTR%d_1/UTS%d_1/UTI%d_1/UT%02d_1", ism, ism, idx, idx, idx, icha))) return; |
462 | ||
6983e87a | 463 | fShape = new TEveGeoTopNode(gGeoManager, gGeoManager->GetCurrentNode()); |
464 | fShape->RefMainTrans().SetFrom(*gGeoManager->GetCurrentMatrix()); | |
465 | fShape->DisableListElements(); | |
466 | fShape->SetRnrSelf(kFALSE); | |
467 | // try to set the properties but it is crashing !! | |
468 | // TEveGeoNode *node = 0x0; | |
469 | // if((node = (TEveGeoNode*)fShape->FindChild(Form("UA%02d_1", icha)))) node->SetRnrState(kTRUE); | |
470 | // else AliWarning(Form("Can not retrieve geo node UA%02d_1", icha)); | |
471 | ||
472 | AddElement(fShape); | |
14217b5f | 473 | } |
474 |