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