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