]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/its_digits.C
From Massimo: remove usage of AliITSgeom, use AliITSgeomTGeo instead.
[u/mrichter/AliRoot.git] / EVE / alice-macros / its_digits.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 // Load ITS digits.
11 // Argument mode is a bitwise or determining which layers to import:
12 //    1,  2 : SPD
13 //    4,  8 : SDD
14 //   16, 32 : SSD
15 // By default import all layers.
16
17 void its_digits(Int_t mode=63)
18 {
19   AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
20   rl->LoadDigits("ITS");
21   TTree* dt = rl->GetTreeD("ITS", false);
22
23   AliEveITSDigitsInfo* di = new AliEveITSDigitsInfo();
24   di->SetTree(dt);
25   di->Dump();
26
27   gStyle->SetPalette(1, 0);
28
29   gEve->DisableRedraw();
30
31   TString sSector;
32   TString bsSector="Sector";
33   TString sStave;
34   TString bsStave="Stave";
35   TString sLadder;
36   TString bsLadder="Ladder";
37
38   Int_t i=0;
39   Int_t nsec, nstave, nlad, nMod;
40
41   if (mode & 1) {
42     TEveElementList* l = new TEveElementList("SPD0");
43     l->SetTitle("SPDs' first layer");
44     l->SetMainColor((Color_t)2);
45     gEve->AddElement(l);
46     for (nsec=0; nsec<10; nsec++) {
47       sSector  = bsSector;
48       sSector += nsec;
49       TEveElementList* relSector = new TEveElementList(sSector.Data());
50       relSector->SetMainColor((Color_t)2);
51       gEve->AddElement(relSector, l);
52       for (nstave=0; nstave<2; nstave++){
53         sStave  = bsStave;
54         sStave += nstave;
55         TEveElementList* relStave = new TEveElementList(sStave.Data());
56         relStave->SetMainColor((Color_t)2);
57         gEve->AddElement(relStave, relSector);
58         for (nMod=0; nMod<4; nMod++) {
59           AliEveITSModule* m = new AliEveITSModule(i++, di);
60           gEve->AddElement(m, relStave);
61         }
62       }
63     }
64   } else {
65     i += 10*2*4;
66   }
67
68   if (mode & 2) {
69     TEveElementList* l = new TEveElementList("SPD1");
70     l->SetTitle("SPDs' second layer");
71     l->SetMainColor((Color_t)2);
72     gEve->AddElement(l);
73
74     for (nsec=0; nsec<10; nsec++) {
75       sSector  = bsSector;
76       sSector += nsec;
77       TEveElementList* relSector = new TEveElementList(sSector.Data());
78       relSector->SetMainColor((Color_t)2);
79       gEve->AddElement(relSector, l);
80       for (nstave=0; nstave<4; nstave++){
81         sStave  = bsStave;
82         sStave += nstave;
83         TEveElementList* relStave = new TEveElementList(sStave.Data());
84         relStave->SetMainColor((Color_t)2);
85         gEve->AddElement(relStave, relSector);
86         for (nMod=0; nMod<4; nMod++) {
87           AliEveITSModule* m = new AliEveITSModule(i++, di);
88           gEve->AddElement(m, relStave);
89         }
90       }
91     }
92   } else {
93     i += 10*4*4;
94   }
95
96   if (mode & 4) {
97     TEveElementList* l = new TEveElementList("SDD2");
98     l->SetTitle("SDDs' first layer");
99     l->SetMainColor((Color_t)3);
100     gEve->AddElement(l);
101
102     for (nlad=0; nlad<14; nlad++) {
103       sLadder  = bsLadder;
104       sLadder += nlad;
105       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
106       relLadder->SetMainColor((Color_t)3);
107       gEve->AddElement(relLadder, l);
108       for (nMod=0; nMod<6; nMod++) {
109         AliEveITSModule* m = new AliEveITSModule(i++, di);
110         gEve->AddElement(m, relLadder);
111       }
112     }
113   } else {
114     i += 14*6;
115   }
116
117   if (mode & 8) {
118     TEveElementList* l = new TEveElementList("SDD3");
119     l->SetTitle("SDDs' second layer");
120     l->SetMainColor((Color_t)3);
121     gEve->AddElement(l);
122     for (nlad=0; nlad<22; nlad++) {
123       sLadder  = bsLadder;
124       sLadder += nlad;
125       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
126       relLadder->SetMainColor((Color_t)3);
127       gEve->AddElement(relLadder, l);
128       for (nMod=0; nMod<8; nMod++) {
129         AliEveITSModule* m = new AliEveITSModule(i++, di);
130         gEve->AddElement(m, relLadder);
131       }
132     }
133   } else {
134     i += 22*8;
135   }
136
137   if (mode & 16) {
138     TEveElementList* l = new TEveElementList("SSD4");
139     l->SetTitle("SSDs' first layer");
140     l->SetMainColor((Color_t)4);
141     gEve->AddElement(l);
142     for (nlad=0; nlad<34; nlad++) {
143       sLadder  = bsLadder;
144       sLadder += nlad;
145       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
146       relLadder->SetMainColor((Color_t)4);
147       gEve->AddElement(relLadder, l);
148       for (nMod=0; nMod<22; nMod++) {
149         AliEveITSModule* m = new AliEveITSModule(i++, di);
150         gEve->AddElement(m, relLadder);
151       }
152     }
153   } else {
154     i += 34*22;
155   }
156
157   if (mode & 32) {
158     TEveElementList* l = new TEveElementList("SSD5");
159     l->SetTitle("SSDs' second layer");
160     l->SetMainColor((Color_t)4);
161     gEve->AddElement(l);
162     for (nlad=0; nlad<38; nlad++) {
163       sLadder  = bsLadder;
164       sLadder += nlad;
165       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
166       relLadder->SetMainColor((Color_t)4);
167       gEve->AddElement(relLadder, l);
168       for (nMod=0; nMod<25; nMod++) {
169         AliEveITSModule* m = new AliEveITSModule(i++, di);
170         gEve->AddElement(m, relLadder);
171       }
172     }
173   } else {
174     i += 38*25;
175   }
176
177   gEve->EnableRedraw();
178 }