]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/its_digits.C
6d7584480666530cc0c48ab3657d0eebb601be20
[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   // Could initialize AliEveITSModule statics (?)
27
28   AliITSgeom* g = di->fGeom;
29
30   gStyle->SetPalette(1, 0);
31   // Initialize palettes (?)
32
33   gEve->DisableRedraw();
34
35   TString sSector;
36   TString bsSector="Sector";
37   TString sStave;
38   TString bsStave="Stave";
39   TString sLadder;
40   TString bsLadder="Ladder";
41
42   Int_t i=0;
43   Int_t nsec, nstave, nlad, nMod;
44
45   if (mode & 1) {
46     TEveElementList* l = new TEveElementList("SPD0");
47     l->SetTitle("SPDs' first layer");
48     l->SetMainColor((Color_t)2);
49     gEve->AddElement(l);
50     for (nsec=0; nsec<10; nsec++) {
51       sSector  = bsSector;
52       sSector += nsec;
53       TEveElementList* relSector = new TEveElementList(sSector.Data());
54       relSector->SetMainColor((Color_t)2);
55       gEve->AddElement(relSector, l);
56       for (nstave=0; nstave<2; nstave++){
57         sStave  = bsStave;
58         sStave += nstave;
59         TEveElementList* relStave = new TEveElementList(sStave.Data());
60         relStave->SetMainColor((Color_t)2);
61         gEve->AddElement(relStave, relSector);
62         for (nMod=0; nMod<4; nMod++) {
63           AliEveITSModule* m = new AliEveITSModule(i++, di);
64           gEve->AddElement(m, relStave);
65         }
66       }
67     }
68   } else {
69     i += 10*2*4;
70   }
71
72   if (mode & 2) {
73     TEveElementList* l = new TEveElementList("SPD1");
74     l->SetTitle("SPDs' second layer");
75     l->SetMainColor((Color_t)2);
76     gEve->AddElement(l);
77
78     for (nsec=0; nsec<10; nsec++) {
79       sSector  = bsSector;
80       sSector += nsec;
81       TEveElementList* relSector = new TEveElementList(sSector.Data());
82       relSector->SetMainColor((Color_t)2);
83       gEve->AddElement(relSector, l);
84       for (nstave=0; nstave<4; nstave++){
85         sStave  = bsStave;
86         sStave += nstave;
87         TEveElementList* relStave = new TEveElementList(sStave.Data());
88         relStave->SetMainColor((Color_t)2);
89         gEve->AddElement(relStave, relSector);
90         for (nMod=0; nMod<4; nMod++) {
91           AliEveITSModule* m = new AliEveITSModule(i++, di);
92           gEve->AddElement(m, relStave);
93         }
94       }
95     }
96   } else {
97     i += 10*4*4;
98   }
99
100   if (mode & 4) {
101     TEveElementList* l = new TEveElementList("SDD2");
102     l->SetTitle("SDDs' first layer");
103     l->SetMainColor((Color_t)3);
104     gEve->AddElement(l);
105
106     for (nlad=0; nlad<14; nlad++) {
107       sLadder  = bsLadder;
108       sLadder += nlad;
109       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
110       relLadder->SetMainColor((Color_t)3);
111       gEve->AddElement(relLadder, l);
112       for (nMod=0; nMod<6; nMod++) {
113         AliEveITSModule* m = new AliEveITSModule(i++, di);
114         gEve->AddElement(m, relLadder);
115       }
116     }
117   } else {
118     i += 14*6;
119   }
120
121   if (mode & 8) {
122     TEveElementList* l = new TEveElementList("SDD3");
123     l->SetTitle("SDDs' second layer");
124     l->SetMainColor((Color_t)3);
125     gEve->AddElement(l);
126     for (nlad=0; nlad<22; nlad++) {
127       sLadder  = bsLadder;
128       sLadder += nlad;
129       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
130       relLadder->SetMainColor((Color_t)3);
131       gEve->AddElement(relLadder, l);
132       for (nMod=0; nMod<8; nMod++) {
133         AliEveITSModule* m = new AliEveITSModule(i++, di);
134         gEve->AddElement(m, relLadder);
135       }
136     }
137   } else {
138     i += 22*8;
139   }
140
141   if (mode & 16) {
142     TEveElementList* l = new TEveElementList("SSD4");
143     l->SetTitle("SSDs' first layer");
144     l->SetMainColor((Color_t)4);
145     gEve->AddElement(l);
146     for (nlad=0; nlad<34; nlad++) {
147       sLadder  = bsLadder;
148       sLadder += nlad;
149       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
150       relLadder->SetMainColor((Color_t)4);
151       gEve->AddElement(relLadder, l);
152       for (nMod=0; nMod<22; nMod++) {
153         AliEveITSModule* m = new AliEveITSModule(i++, di);
154         gEve->AddElement(m, relLadder);
155       }
156     }
157   } else {
158     i += 34*22;
159   }
160
161   if (mode & 32) {
162     TEveElementList* l = new TEveElementList("SSD5");
163     l->SetTitle("SSDs' second layer");
164     l->SetMainColor((Color_t)4);
165     gEve->AddElement(l);
166     for (nlad=0; nlad<38; nlad++) {
167       sLadder  = bsLadder;
168       sLadder += nlad;
169       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
170       relLadder->SetMainColor((Color_t)4);
171       gEve->AddElement(relLadder, l);
172       for (nMod=0; nMod<25; nMod++) {
173         AliEveITSModule* m = new AliEveITSModule(i++, di);
174         gEve->AddElement(m, relLadder);
175       }
176     }
177   } else {
178     i += 38*25;
179   }
180
181   gEve->EnableRedraw();
182 }