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