]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/its_common_foos.C
With Davide Caffarri:
[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   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
50 void 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 }