Coverity
[u/mrichter/AliRoot.git] / EVE / hlt-macros / geom_gentle_hlt.C
CommitLineData
9e78371d 1// $Id: geom_gentle.C 30976 2009-02-11 15:55:45Z mtadel $
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 **************************************************************************/
9
1d8ae8b6 10#if !defined(__CINT__) || defined(__MAKECINT__)
11#include "TEveGeoShapeExtract.h"
12#include "TEveGeoNode.h"
13#include "TEveManager.h"
14#include "TEveEventManager.h"
15#include "TEveElement.h"
16#include "TGLViewer.h"
17
18#include "TFile.h"
19#include "TStyle.h"
20#endif
21
9e78371d 22// -----------------------------------------------------------------
23TEveGeoShape* geom_gentle_hlt(Bool_t register_as_global=kTRUE) {
24 TFile f("$ALICE_ROOT/EVE/alice-data/gentle_geo.root");
25 TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle");
26 TEveGeoShape* gsre = TEveGeoShape::ImportShapeExtract(gse);
27 f.Close();
28
29 TEveElement* elTRD = gsre->FindChild("TRD+TOF");
30 elTRD->SetRnrState(kFALSE);
31
32 TEveElement* elHMPID = gsre->FindChild("HMPID");
294dbb61 33 elHMPID->SetRnrState(kFALSE);
d20d2124 34
35 TEveElement* elPHOS = gsre->FindChild("PHOS");
36 elPHOS->SetRnrState(kTRUE);
37 elPHOS->FindChild("PHOS_4")->SetRnrState(kFALSE);
38 elPHOS->FindChild("PHOS_5")->SetRnrState(kFALSE);
9e78371d 39
294dbb61 40
9e78371d 41 if (register_as_global) {
42 gEve->AddGlobalElement(gsre);
43 }
44
45 return gsre;
46}
47
48// -----------------------------------------------------------------
49TEveGeoShape* geom_gentle_rphi() {
50 // The resulting geometry is NOT added into the global scene!
51
52 TFile f("$ALICE_ROOT/EVE/alice-data/gentle_rphi_geo.root");
53 TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle");
54 TEveGeoShape* gsre = TEveGeoShape::ImportShapeExtract(gse);
55 f.Close();
56
d20d2124 57 TEveElement* elPHOS = gsre->FindChild("PHOS");
58 elPHOS->SetRnrState(kTRUE);
59 elPHOS->FindChild("PHOS_4")->SetRnrState(kFALSE);
60 elPHOS->FindChild("PHOS_5")->SetRnrState(kFALSE);
61
9e78371d 62 return gsre;
63}
64
65// -----------------------------------------------------------------
66TEveGeoShape* geom_gentle_rhoz() {
67 // The resulting geometry is NOT added into the global scene!
68
69 TFile f("$ALICE_ROOT/EVE/alice-data/gentle_rhoz_geo.root");
70 TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle");
71 TEveGeoShape* gsre = TEveGeoShape::ImportShapeExtract(gse);
72 f.Close();
73
74 return gsre;
75}
76
77// -----------------------------------------------------------------
78TEveGeoShape* geom_gentle_trd() {
79 TFile f("$ALICE_ROOT/EVE/alice-data/gentle_geo_trd.root");
80 TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle TRD");
81 TEveGeoShape* gsre = TEveGeoShape::ImportShapeExtract(gse);
82 gEve->AddGlobalElement(gsre);
83 f.Close();
84
85 Int_t sm = 0;
86
87 // Fix visibility, color and transparency
88 gsre->SetRnrSelf(kFALSE);
89 for (TEveElement::List_i i = gsre->BeginChildren(); i != gsre->EndChildren(); ++i) {
90
91 TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
92 lvl1->SetRnrSelf(kFALSE);
93 for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); ++j) {
94
95 TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
96
97 if ( sm == 0 || sm == 1 || sm == 7 || sm == 8 || sm == 9 || sm == 10 || sm == 17 )
98 lvl2->SetRnrSelf(kTRUE);
99 else
100 lvl2->SetRnrSelf(kFALSE);
101
102 lvl2->SetMainColor(3);
103 lvl2->SetMainTransparency(80);
104
105 ++sm;
106 }
107
108 }
109
110 return gsre;
111}
1d8ae8b6 112
113void DrawDeep(TEveGeoShape *gsre) {
114
115 for (TEveElement::List_i i = gsre->BeginChildren(); i != gsre->EndChildren(); ++i) {
116 TEveGeoShape* lvl = (TEveGeoShape*) *i;
117 lvl->SetRnrSelf(kFALSE);
118 if (!lvl->HasChildren()) {
119 lvl->SetRnrSelf(kTRUE);
120 lvl->SetMainColor(3);
121 lvl->SetMainTransparency(50);
122 }
123 DrawDeep(lvl);
124 }
125
126}
127
128TEveGeoShape* geom_gentle_muon(Bool_t updateScene = kTRUE) {
129
130 TFile f("$ALICE_ROOT/EVE/alice-data/gentle_geo_muon.root");
131 TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle MUON");
132 TEveGeoShape* gsre = TEveGeoShape::ImportShapeExtract(gse);
133 gEve->AddGlobalElement(gsre);
134 f.Close();
135
136 gsre->SetRnrSelf(kFALSE);
137
138 DrawDeep(gsre);
139
140 if ( updateScene ) {
141 TGLViewer* v = gEve->GetDefaultGLViewer();
142 v->UpdateScene();
143 }
144
145 return gsre;
146
147}