]>
Commit | Line | Data |
---|---|---|
d810d0de | 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 | **************************************************************************/ | |
961e5e6c | 9 | void its_raw(const char *input = "rawdata.root", |
10 | Int_t mode = 63, | |
11 | Int_t event = 0, | |
12 | Bool_t accumulate = kFALSE) | |
9d7caeed | 13 | { |
14 | if (gSystem->AccessPathName(input, kReadPermission)) | |
15 | { | |
16 | Error("its_raw", "file '%s' not found.", input); | |
17 | return; | |
18 | } | |
19 | ||
20 | AliRawReader *rawReader = NULL; | |
21 | TString fileName(input); | |
22 | if (fileName.EndsWith("/")) { | |
23 | rawReader = new AliRawReaderFile(fileName); | |
24 | } else if (fileName.EndsWith(".root")) { | |
25 | rawReader = new AliRawReaderRoot(fileName); | |
26 | } else if (!fileName.IsNull()) { | |
27 | rawReader = new AliRawReaderDate(fileName); | |
28 | rawReader->SelectEvents(7); | |
29 | } | |
30 | ||
d810d0de | 31 | AliEveITSDigitsInfo* di = new AliEveITSDigitsInfo(); |
961e5e6c | 32 | |
33 | if (accumulate) AliLog::SetGlobalLogLevel(AliLog::kError); | |
34 | Int_t ev = 0; | |
35 | do { | |
d810d0de | 36 | if (ev % 100 == 0) printf("AliEveEventManager: %d\n", ev); |
961e5e6c | 37 | if (rawReader->NextEvent() == kFALSE) |
38 | { | |
39 | Error("its_raw", "Reading event %d failed (requested event %d).", ev, event); | |
40 | if (accumulate) | |
41 | break; | |
42 | else | |
43 | return; | |
44 | } | |
540e156e | 45 | if (accumulate) di->ReadRaw(rawReader,mode); |
961e5e6c | 46 | } while (++ev < event); |
47 | ||
540e156e | 48 | if ( ! accumulate) di->ReadRaw(rawReader,mode); |
961e5e6c | 49 | |
9d7caeed | 50 | di->Dump(); |
51 | ||
52 | delete rawReader; | |
d810d0de | 53 | // Could initialize AliEveITSModule statics (?) |
9d7caeed | 54 | |
55 | AliITSgeom* g = di->fGeom; | |
56 | ||
57 | gStyle->SetPalette(1, 0); | |
58 | // Initialize palettes (?) | |
59 | ||
84aff7a4 | 60 | gEve->DisableRedraw(); |
9d7caeed | 61 | |
62 | TString sSector; | |
63 | TString bsSector="Sector"; | |
64 | TString sStave; | |
65 | TString bsStave="Stave"; | |
66 | TString sLadder; | |
67 | TString bsLadder="Ladder"; | |
68 | ||
69 | Int_t i=0; | |
70 | Int_t nsec, nstave, nlad, nMod; | |
71 | ||
72 | if (mode & 1) { | |
84aff7a4 | 73 | TEveElementList* l = new TEveElementList("SPD0"); |
9d7caeed | 74 | l->SetTitle("SPDs' first layer"); |
75 | l->SetMainColor((Color_t)2); | |
84aff7a4 | 76 | gEve->AddElement(l); |
77 | for (nsec=0; nsec<10; nsec++) { | |
9d7caeed | 78 | sSector = bsSector; |
79 | sSector += nsec; | |
84aff7a4 | 80 | TEveElementList* relSector = new TEveElementList(sSector.Data()); |
9d7caeed | 81 | relSector->SetMainColor((Color_t)2); |
84aff7a4 | 82 | gEve->AddElement(relSector, l); |
83 | for (nstave=0; nstave<2; nstave++){ | |
9d7caeed | 84 | sStave = bsStave; |
85 | sStave += nstave; | |
84aff7a4 | 86 | TEveElementList* relStave = new TEveElementList(sStave.Data()); |
9d7caeed | 87 | relStave->SetMainColor((Color_t)2); |
84aff7a4 | 88 | gEve->AddElement(relStave, relSector); |
89 | for (nMod=0; nMod<4; nMod++) | |
961e5e6c | 90 | { |
91 | if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0) | |
92 | { | |
d810d0de | 93 | AliEveITSModule* m = new AliEveITSModule(i, di); |
84aff7a4 | 94 | gEve->AddElement(m, relStave); |
961e5e6c | 95 | } |
96 | ++i; | |
9d7caeed | 97 | } |
98 | } | |
99 | } | |
100 | } else { | |
101 | i += 10*2*4; | |
102 | } | |
103 | ||
104 | if (mode & 2) { | |
84aff7a4 | 105 | TEveElementList* l = new TEveElementList("SPD1"); |
9d7caeed | 106 | l->SetTitle("SPDs' second layer"); |
107 | l->SetMainColor((Color_t)2); | |
84aff7a4 | 108 | gEve->AddElement(l); |
9d7caeed | 109 | |
84aff7a4 | 110 | for (nsec=0; nsec<10; nsec++) { |
9d7caeed | 111 | sSector = bsSector; |
112 | sSector += nsec; | |
84aff7a4 | 113 | TEveElementList* relSector = new TEveElementList(sSector.Data()); |
9d7caeed | 114 | relSector->SetMainColor((Color_t)2); |
84aff7a4 | 115 | gEve->AddElement(relSector, l); |
116 | for (nstave=0; nstave<4; nstave++){ | |
9d7caeed | 117 | sStave = bsStave; |
118 | sStave += nstave; | |
84aff7a4 | 119 | TEveElementList* relStave = new TEveElementList(sStave.Data()); |
9d7caeed | 120 | relStave->SetMainColor((Color_t)2); |
84aff7a4 | 121 | gEve->AddElement(relStave, relSector); |
122 | for (nMod=0; nMod<4; nMod++) | |
961e5e6c | 123 | { |
124 | if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0) | |
125 | { | |
d810d0de | 126 | AliEveITSModule* m = new AliEveITSModule(i, di); |
84aff7a4 | 127 | gEve->AddElement(m, relStave); |
961e5e6c | 128 | } |
129 | ++i; | |
9d7caeed | 130 | } |
131 | } | |
132 | } | |
133 | } else { | |
134 | i += 10*4*4; | |
135 | } | |
136 | ||
137 | if (mode & 4) { | |
84aff7a4 | 138 | TEveElementList* l = new TEveElementList("SDD2"); |
9d7caeed | 139 | l->SetTitle("SDDs' first layer"); |
140 | l->SetMainColor((Color_t)3); | |
84aff7a4 | 141 | gEve->AddElement(l); |
9d7caeed | 142 | |
84aff7a4 | 143 | for (nlad=0; nlad<14; nlad++) { |
9d7caeed | 144 | sLadder = bsLadder; |
145 | sLadder += nlad; | |
84aff7a4 | 146 | TEveElementList* relLadder = new TEveElementList(sLadder.Data()); |
9d7caeed | 147 | relLadder->SetMainColor((Color_t)3); |
84aff7a4 | 148 | gEve->AddElement(relLadder, l); |
149 | for (nMod=0; nMod<6; nMod++) { | |
d810d0de | 150 | AliEveITSModule* m = new AliEveITSModule(i++, di); |
84aff7a4 | 151 | gEve->AddElement(m, relLadder); |
9d7caeed | 152 | } |
153 | } | |
154 | } else { | |
155 | i += 14*6; | |
156 | } | |
157 | ||
158 | if (mode & 8) { | |
84aff7a4 | 159 | TEveElementList* l = new TEveElementList("SDD3"); |
9d7caeed | 160 | l->SetTitle("SDDs' second layer"); |
161 | l->SetMainColor((Color_t)3); | |
84aff7a4 | 162 | gEve->AddElement(l); |
163 | for (nlad=0; nlad<22; nlad++) { | |
9d7caeed | 164 | sLadder = bsLadder; |
165 | sLadder += nlad; | |
84aff7a4 | 166 | TEveElementList* relLadder = new TEveElementList(sLadder.Data()); |
9d7caeed | 167 | relLadder->SetMainColor((Color_t)3); |
84aff7a4 | 168 | gEve->AddElement(relLadder, l); |
169 | for (nMod=0; nMod<8; nMod++) { | |
d810d0de | 170 | AliEveITSModule* m = new AliEveITSModule(i++, di); |
84aff7a4 | 171 | gEve->AddElement(m, relLadder); |
9d7caeed | 172 | } |
173 | } | |
174 | } else { | |
175 | i += 22*8; | |
176 | } | |
177 | ||
178 | if (mode & 16) { | |
84aff7a4 | 179 | TEveElementList* l = new TEveElementList("SSD4"); |
9d7caeed | 180 | l->SetTitle("SSDs' first layer"); |
181 | l->SetMainColor((Color_t)4); | |
84aff7a4 | 182 | gEve->AddElement(l); |
183 | for (nlad=0; nlad<34; nlad++) { | |
9d7caeed | 184 | sLadder = bsLadder; |
185 | sLadder += nlad; | |
84aff7a4 | 186 | TEveElementList* relLadder = new TEveElementList(sLadder.Data()); |
9d7caeed | 187 | relLadder->SetMainColor((Color_t)4); |
84aff7a4 | 188 | gEve->AddElement(relLadder, l); |
189 | for (nMod=0; nMod<22; nMod++) { | |
d810d0de | 190 | AliEveITSModule* m = new AliEveITSModule(i++, di); |
84aff7a4 | 191 | gEve->AddElement(m, relLadder); |
9d7caeed | 192 | } |
193 | } | |
194 | } else { | |
195 | i += 34*22; | |
196 | } | |
197 | ||
198 | if (mode & 32) { | |
84aff7a4 | 199 | TEveElementList* l = new TEveElementList("SSD5"); |
9d7caeed | 200 | l->SetTitle("SSDs' second layer"); |
201 | l->SetMainColor((Color_t)4); | |
84aff7a4 | 202 | gEve->AddElement(l); |
203 | for (nlad=0; nlad<38; nlad++) { | |
9d7caeed | 204 | sLadder = bsLadder; |
205 | sLadder += nlad; | |
84aff7a4 | 206 | TEveElementList* relLadder = new TEveElementList(sLadder.Data()); |
9d7caeed | 207 | relLadder->SetMainColor((Color_t)4); |
84aff7a4 | 208 | gEve->AddElement(relLadder, l); |
209 | for (nMod=0; nMod<25; nMod++) { | |
d810d0de | 210 | AliEveITSModule* m = new AliEveITSModule(i++, di); |
84aff7a4 | 211 | gEve->AddElement(m, relLadder); |
9d7caeed | 212 | } |
213 | } | |
214 | } else { | |
215 | i += 38*25; | |
216 | } | |
217 | ||
84aff7a4 | 218 | gEve->EnableRedraw(); |
9d7caeed | 219 | } |