2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
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 **************************************************************************/
10 #if !defined(__CINT__) || defined(__MAKECINT__)
12 #include <TEveManager.h>
13 #include <TEveElement.h>
15 #include <AliEveITSModule.h>
16 #include <AliEveITSDigitsInfo.h>
17 #include <AliEveITSScaledModule.h>
21 void its_common_foos()
24 AliEveITSModule* its_make_module(Int_t i, TEveElement* parent,
25 AliEveITSDigitsInfo* di,
26 AliEveDigitScaleInfo* si,
28 Bool_t scaled_modules)
30 AliEveITSModule* m = 0;
33 if (i > 239 && i < 500) det_id = 1;
34 else if (i >= 500) det_id = 2;
36 if (!check_empty || di->HasData(i, det_id) || di->IsDead(i, det_id))
39 m = new AliEveITSScaledModule(i, di, si);
41 m = new AliEveITSModule(i, di);
43 // Before 5.26 ROOT did not draw frames of empty quad-sets.
44 // Bypass until we move there.
45 if (!di->HasData(i, det_id))
52 parent->AddElement(m);
58 void its_display_raw_digits(AliEveITSDigitsInfo* di, Int_t mode,
59 Bool_t check_empty = kTRUE,
60 Bool_t scaled_modules = kFALSE)
62 const TString bsSector = "Sector";
63 const TString bsStave = "Stave";
64 const TString bsLadder = "Ladder";
70 Long_t nsec, nstave, nlad, nMod;
72 gEve->DisableRedraw();
74 AliEveDigitScaleInfo* si = 0;
77 si = new AliEveDigitScaleInfo;
82 TEveElementList* l = new TEveElementList("SPD0");
83 l->SetTitle("SPDs' first layer");
84 l->SetMainColor(kRed);
87 for (nsec=0; nsec<10; nsec++)
89 TEveElementList* relSector = new TEveElementList(bsSector + nsec);
90 relSector->SetMainColor(kRed);
91 l->AddElement(relSector);
93 for (nstave=0; nstave<2; nstave++)
95 TEveElementList* relStave = new TEveElementList(bsStave + nstave);
96 relStave->SetMainColor(kRed);
97 relSector->AddElement(relStave);
99 for (nMod=0; nMod<4; ++nMod, ++i)
101 its_make_module(i, relStave, di, si, check_empty, scaled_modules);
113 TEveElementList* l = new TEveElementList("SPD1");
114 l->SetTitle("SPDs' second layer");
115 l->SetMainColor(kRed);
118 for (nsec=0; nsec<10; nsec++)
120 TEveElementList* relSector = new TEveElementList(bsSector + nsec);
121 relSector->SetMainColor(kRed);
122 l->AddElement(relSector);
124 for (nstave=0; nstave<4; nstave++)
126 TEveElementList* relStave = new TEveElementList(bsStave + nstave);
127 relStave->SetMainColor(kRed);
128 relSector->AddElement(relStave);
130 for (nMod=0; nMod<4; ++nMod, ++i)
132 its_make_module(i, relStave, di, si, check_empty, scaled_modules);
144 TEveElementList* l = new TEveElementList("SDD2");
145 l->SetTitle("SDDs' first layer");
146 l->SetMainColor(kBlue);
149 for (nlad=0; nlad<14; nlad++)
151 TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
152 relLadder->SetMainColor(kBlue);
153 l->AddElement(relLadder);
154 for (nMod=0; nMod<6; ++nMod, ++i)
156 its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
167 TEveElementList* l = new TEveElementList("SDD3");
168 l->SetTitle("SDDs' second layer");
169 l->SetMainColor(kBlue);
172 for (nlad=0; nlad<22; nlad++)
174 TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
175 relLadder->SetMainColor(kBlue);
176 l->AddElement(relLadder);
177 for (nMod=0; nMod<8; ++nMod, ++i)
179 its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
190 TEveElementList* l = new TEveElementList("SSD4");
191 l->SetTitle("SSDs' first layer");
192 l->SetMainColor(kGreen);
195 for (nlad=0; nlad<34; nlad++)
197 TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
198 relLadder->SetMainColor(kGreen);
199 l->AddElement(relLadder);
200 for (nMod=0; nMod<22; ++nMod, ++i)
202 its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
213 TEveElementList* l = new TEveElementList("SSD5");
214 l->SetTitle("SSDs' second layer");
215 l->SetMainColor(kGreen);
218 for (nlad=0; nlad<38; nlad++)
220 TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
221 relLadder->SetMainColor(kGreen);
222 l->AddElement(relLadder);
223 for (nMod=0; nMod<25; ++nMod, ++i)
225 its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
234 gEve->EnableRedraw();