]>
Commit | Line | Data |
---|---|---|
30178c30 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
d1cd2474 | 16 | // $Id$ |
17 | // | |
18 | // Class AliMUONTriggerGeometryBuilder | |
19 | // ----------------------------------- | |
20 | // MUON Trigger stations geometry construction class. | |
21 | // | |
22 | // Author: Philippe Crochette, LPC Clermont-Ferrand | |
23 | ||
24 | #include <TVirtualMC.h> | |
25 | #include <TGeoMatrix.h> | |
26 | ||
e118b27e | 27 | #include "AliLog.h" |
28 | ||
d1cd2474 | 29 | #include "AliMUONTriggerGeometryBuilder.h" |
30 | #include "AliMUON.h" | |
31 | #include "AliMUONChamber.h" | |
e118b27e | 32 | #include "AliMUONGeometryModule.h" |
a432117a | 33 | #include "AliMUONGeometryEnvelopeStore.h" |
d1cd2474 | 34 | |
35 | ClassImp(AliMUONTriggerGeometryBuilder) | |
36 | ||
37 | //______________________________________________________________________________ | |
38 | AliMUONTriggerGeometryBuilder::AliMUONTriggerGeometryBuilder(AliMUON* muon) | |
a432117a | 39 | : AliMUONVGeometryBuilder("trigger.dat", |
e118b27e | 40 | muon->Chamber(10).GetGeometry(), |
41 | muon->Chamber(11).GetGeometry(), | |
42 | muon->Chamber(12).GetGeometry(), | |
43 | muon->Chamber(13).GetGeometry()), | |
d1cd2474 | 44 | fMUON(muon) |
45 | { | |
46 | // Standard constructor | |
47 | ||
48 | } | |
49 | ||
50 | //______________________________________________________________________________ | |
51 | AliMUONTriggerGeometryBuilder::AliMUONTriggerGeometryBuilder() | |
52 | : AliMUONVGeometryBuilder(), | |
53 | fMUON(0) | |
54 | { | |
55 | // Default constructor | |
56 | } | |
57 | ||
58 | ||
59 | //______________________________________________________________________________ | |
60 | AliMUONTriggerGeometryBuilder::AliMUONTriggerGeometryBuilder(const AliMUONTriggerGeometryBuilder& rhs) | |
61 | : AliMUONVGeometryBuilder(rhs) | |
62 | { | |
30178c30 | 63 | // Protected copy constructor |
64 | ||
8c343c7c | 65 | AliFatal("Copy constructor is not implemented."); |
d1cd2474 | 66 | } |
67 | ||
68 | //______________________________________________________________________________ | |
69 | AliMUONTriggerGeometryBuilder::~AliMUONTriggerGeometryBuilder() { | |
70 | // | |
71 | } | |
72 | ||
73 | //______________________________________________________________________________ | |
74 | AliMUONTriggerGeometryBuilder& | |
75 | AliMUONTriggerGeometryBuilder::operator = (const AliMUONTriggerGeometryBuilder& rhs) | |
76 | { | |
30178c30 | 77 | // Protected assignement operator |
78 | ||
d1cd2474 | 79 | // check assignement to self |
80 | if (this == &rhs) return *this; | |
81 | ||
8c343c7c | 82 | AliFatal("Assignment operator is not implemented."); |
d1cd2474 | 83 | |
84 | return *this; | |
85 | } | |
86 | ||
87 | // | |
88 | // public methods | |
89 | // | |
90 | ||
91 | //______________________________________________________________________________ | |
92 | void AliMUONTriggerGeometryBuilder::CreateGeometry() | |
93 | { | |
94 | // From AliMUONv1::CreateGeometry() | |
95 | ||
96 | /* | |
97 | zpos1 and zpos2 are the middle of the first and second | |
98 | planes of station 1 (+1m for second station): | |
99 | zpos1=(zpos1m+zpos1p)/2=(15999+16071)/2=16035 mm, thick/2=40 mm | |
100 | zpos2=(zpos2m+zpos2p)/2=(16169+16241)/2=16205 mm, thick/2=40 mm | |
101 | zposxm and zposxp= middles of gaz gaps within a detection plane | |
102 | rem: the total thickness accounts for 1 mm of al on both | |
103 | side of the RPCs (see zpos1 and zpos2) | |
104 | */ | |
105 | ||
106 | Int_t *idtmed = fMUON->GetIdtmed()->GetArray()-1099; | |
107 | Int_t idAir= idtmed[1100]; // medium 1 | |
108 | Int_t idAlu1=idtmed[1103]; // medium 4 | |
a432117a | 109 | Int_t detElemId=0; // Detection Element Number |
d1cd2474 | 110 | Float_t tpar[3]; |
111 | Double_t dpar[3]; | |
112 | ||
113 | // vertical gap between right and left chambers (kDXZERO*2=4cm) | |
114 | const Float_t kDXZERO=2.; | |
115 | // main distances for chamber definition in first plane/first station | |
116 | const Float_t kXMIN=34.; | |
117 | const Float_t kXMED=51.; | |
b6a52ffa | 118 | const Float_t kXMAX=255.; |
119 | // 090704 kXMAX changed from 272 to 255. | |
d1cd2474 | 120 | // (see fig.2-4 & 2-5 of Local Trigger Board PRR) |
b6a52ffa | 121 | // segmentation updated accordingly |
d1cd2474 | 122 | const Float_t kYMIN=34.; |
123 | const Float_t kYMAX=51.; | |
124 | // inner/outer radius of flange between beam shield. and chambers (1/station) | |
936e7ca3 | 125 | // const Float_t kRMIN[2]={50.,50.}; |
126 | // const Float_t kRMAX[2]={64.,68.}; | |
d1cd2474 | 127 | // z position of the middle of the gas gap in mother vol |
128 | const Float_t kZm=-3.6; | |
129 | const Float_t kZp=+3.6; | |
130 | ||
eb571c25 | 131 | AliMUONChamber *iChamber, *iChamber1, *iChamber2; |
e118b27e | 132 | iChamber1 = &fMUON->Chamber(10); |
d1cd2474 | 133 | Float_t zpos1=-iChamber1->Z(); |
eb571c25 | 134 | iChamber2 = &fMUON->Chamber(11); |
135 | ||
136 | Double_t dstation = ( (-iChamber2->Z()) - (-iChamber1->Z()) ) /2.1; | |
137 | Float_t par[3]; | |
138 | par[2] = dstation; | |
139 | ||
d1cd2474 | 140 | // ratio of zpos1m/zpos1p and inverse for first plane |
141 | Float_t zmp=(zpos1-3.6)/(zpos1+3.6); | |
142 | Float_t zpm=1./zmp; | |
143 | ||
144 | Int_t icount=0; // chamber counter (0 1 2 3) | |
145 | ||
146 | for (Int_t istation=0; istation<2; istation++) { // loop on stations | |
147 | for (Int_t iplane=0; iplane<2; iplane++) { // loop on detection planes | |
148 | ||
149 | Int_t iVolNum=1; // counter Volume Number | |
150 | icount = Int_t(iplane*TMath::Power(2,0))+ | |
151 | Int_t(istation*TMath::Power(2,1)); | |
152 | ||
e118b27e | 153 | iChamber = &fMUON->Chamber(10+icount); |
eb571c25 | 154 | par[0] = iChamber->RInner(); |
155 | par[1] = iChamber->ROuter(); | |
156 | Char_t volName[6]; | |
157 | sprintf(volName,"%s%d", "CH",11+icount); | |
158 | gMC->Gsvolu(volName,"TUBE", idAir, par, 3); | |
159 | iChamber->GetGeometry()->SetVolume(volName); | |
160 | ||
d1cd2474 | 161 | Float_t zpos = - iChamber->Z(); |
162 | ||
880610c7 | 163 | /* removed 03/18/05 |
d1cd2474 | 164 | // Flange between beam shielding and RPC |
165 | tpar[0]= kRMIN[istation]; | |
166 | tpar[1]= kRMAX[istation]; | |
167 | tpar[2]= 4.0; | |
168 | char volFlange[5]; | |
169 | sprintf(volFlange,"SF%dA",icount+1); | |
170 | gMC->Gsvolu(volFlange,"TUBE",idAlu1,tpar,3); // Al | |
171 | // changed by ivana | |
172 | //gMC->Gspos(volFlange,1,"ALIC",0.,0.,zpos,0,"MANY"); | |
a432117a | 173 | iChamber->GetGeometry()->GetEnvelopeStore() |
174 | ->AddEnvelope(volFlange, 0, false, "MANY"); | |
880610c7 | 175 | */ |
d1cd2474 | 176 | |
177 | // scaling factor | |
178 | Float_t zRatio = zpos / zpos1; | |
179 | ||
180 | // envelopes (same size except line 5, all virtual) | |
181 | char volEnv[18][5]; | |
182 | tpar[1] = kYMIN * zRatio; | |
183 | tpar[2] = 0.4; | |
184 | Int_t i=0; // counter | |
185 | for (Int_t icolumn=0; icolumn<2; icolumn++) { | |
186 | for (Int_t iline=1; iline<10; iline++){ | |
187 | tpar[0] = (kXMAX/2.) * zRatio; | |
188 | if (iline==5) tpar[0] = ((kXMAX-kXMED)/2.)*zRatio; | |
189 | if (icolumn==0) | |
d1cd2474 | 190 | sprintf(volEnv[i],"S%dR%d",icount,iline); |
528abf6f | 191 | else |
192 | sprintf(volEnv[i],"S%dL%d",icount,iline); | |
d1cd2474 | 193 | gMC->Gsvolu(volEnv[i],"BOX",idAir,tpar,0); |
194 | i++; | |
195 | } | |
196 | } | |
197 | ||
198 | // chamber prototype | |
199 | tpar[0]= 0.; | |
200 | tpar[1]= 0.; | |
936e7ca3 | 201 | tpar[2]= 0.; char volAlu[5]; // Alu |
d1cd2474 | 202 | char volBak[5]; // Bakelite |
203 | char volGaz[5]; // Gas streamer | |
204 | sprintf(volAlu,"SC%dA",icount+1); | |
205 | sprintf(volBak,"SB%dA",icount+1); | |
eb571c25 | 206 | sprintf(volGaz,"S%dG",icount+11); |
d1cd2474 | 207 | gMC->Gsvolu(volAlu,"BOX",idAlu1,tpar,0); // Al |
208 | gMC->Gsvolu(volBak,"BOX",idtmed[1107],tpar,0); // Bakelite | |
209 | gMC->Gsvolu(volGaz,"BOX",idtmed[1106],tpar,0); // Gas streamer | |
210 | tpar[0] = -1.; | |
211 | tpar[1] = -1.; | |
212 | tpar[2] = 0.1; | |
213 | gMC->Gsposp(volGaz,1,volBak,0.,0.,0.,0,"ONLY",tpar,3); | |
214 | tpar[2] = 0.3; | |
215 | gMC->Gsposp(volBak,1,volAlu,0.,0.,0.,0,"ONLY",tpar,3); | |
216 | ||
217 | // chamber type A | |
218 | Float_t xEnv = (kDXZERO+kXMED+(kXMAX-kXMED)/2.)*zRatio; | |
219 | Float_t yEnvM = 0.; // y low position of envelope in chamber | |
220 | Float_t yEnvP = 0.; // y up position of envelope in chamber | |
221 | Float_t yEnvPsave = 0.; // tmp data | |
222 | Float_t yEnvMsave = 0.; // tmp data | |
223 | Float_t xpos = 0.; // x position of RPC in envelope | |
224 | Float_t ypos = 0.; // y position of RPC in envelope | |
225 | dpar[2] = 0.4; | |
226 | dpar[0] = ((kXMAX-kXMED)/2.)*zRatio; | |
227 | dpar[1] = kYMIN * zRatio; | |
228 | ||
a432117a | 229 | detElemId = (10+icount+1)*100+4; |
8bd68448 | 230 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[4], detElemId, true, TGeoTranslation(xEnv,yEnvP,kZp)); |
a432117a | 231 | detElemId = (10+icount+1)*100+50+4; |
8bd68448 | 232 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[13], detElemId, true, TGeoTranslation(-xEnv,yEnvM,kZm),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
d1cd2474 | 233 | |
a432117a | 234 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[4],iVolNum++,3, dpar); |
235 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[13],iVolNum++,3, dpar); | |
d1cd2474 | 236 | |
237 | // chamber type B (plus envelope chambers B & C) | |
238 | xEnv = (kDXZERO+kXMAX/2.)*zRatio; | |
239 | yEnvPsave = yEnvP; | |
240 | yEnvMsave = yEnvM; | |
241 | yEnvP = (yEnvMsave + kYMIN * zRatio ) * zpm + kYMIN * zRatio; | |
242 | yEnvM = (yEnvPsave + kYMIN * zRatio ) * zmp + kYMIN * zRatio; | |
243 | dpar[0] = ((kXMAX-kXMIN)/2.) * zRatio; | |
244 | dpar[1] = ((kYMAX-kYMIN)/2.) * zRatio; | |
245 | xpos = kXMIN/2. * zRatio; | |
246 | ypos = (kYMIN - kYMIN/4.) * zRatio; | |
247 | ||
a432117a | 248 | detElemId = (10+icount+1)*100+3; |
8bd68448 | 249 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[3], detElemId, true, TGeoTranslation( xEnv,-yEnvM,kZm)); |
a432117a | 250 | detElemId = (10+icount+1)*100+5; |
8bd68448 | 251 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[5], detElemId, true, TGeoTranslation( xEnv, yEnvM,kZm)); |
a432117a | 252 | detElemId = (10+icount+1)*100+50+3; |
8bd68448 | 253 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[12], detElemId, true, TGeoTranslation(-xEnv,-yEnvP,kZp),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
a432117a | 254 | detElemId = (10+icount+1)*100+50+5; |
8bd68448 | 255 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[14], detElemId, true, TGeoTranslation(-xEnv, yEnvP,kZp),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
d1cd2474 | 256 | |
a432117a | 257 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[3],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); |
258 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[5],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); | |
298c0899 | 259 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[12],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); |
260 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[14],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); | |
d1cd2474 | 261 | |
262 | // chamber type C (note: same Z than type B) | |
263 | dpar[0] = (kXMAX/2)*zRatio; | |
264 | dpar[1] = (kYMAX/2)*zRatio; | |
265 | xpos = 0.; | |
266 | ypos = ((kYMAX - kYMIN)/2.) * zRatio; | |
267 | ||
a432117a | 268 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[3],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); |
269 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[5],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); | |
298c0899 | 270 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[12],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); |
271 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[14],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); | |
880610c7 | 272 | |
d1cd2474 | 273 | // chamber type D, E and F (same size) |
274 | // D | |
275 | yEnvPsave = yEnvP; | |
276 | yEnvMsave = yEnvM; | |
277 | yEnvP = (yEnvMsave + kYMIN * zRatio ) * zpm + kYMIN * zRatio; | |
278 | yEnvM = (yEnvPsave + kYMIN * zRatio ) * zmp + kYMIN * zRatio; | |
279 | dpar[0] = (kXMAX/2.)*zRatio; | |
280 | dpar[1] = kYMIN*zRatio; | |
281 | ||
a432117a | 282 | detElemId = (10+icount+1)*100+2; |
8bd68448 | 283 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[2], detElemId, true, TGeoTranslation(xEnv,-yEnvP,kZp)); |
a432117a | 284 | detElemId = (10+icount+1)*100+6; |
8bd68448 | 285 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[6], detElemId, true, TGeoTranslation(xEnv, yEnvP,kZp)); |
a432117a | 286 | detElemId = (10+icount+1)*100+50+2; |
8bd68448 | 287 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[11], detElemId, true, TGeoTranslation(-xEnv,-yEnvM,kZm),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
a432117a | 288 | detElemId = (10+icount+1)*100+50+6; |
8bd68448 | 289 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[15], detElemId, true, TGeoTranslation(-xEnv, yEnvM,kZm),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
d1cd2474 | 290 | |
a432117a | 291 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[2],iVolNum++,3, dpar); |
292 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[6],iVolNum++,3, dpar); | |
293 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[11],iVolNum++,3, dpar); | |
294 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[15],iVolNum++,3, dpar); | |
d1cd2474 | 295 | |
296 | // E | |
297 | yEnvPsave = yEnvP; | |
298 | yEnvMsave = yEnvM; | |
299 | yEnvP = (yEnvMsave + kYMIN * zRatio ) * zpm + kYMIN * zRatio; | |
300 | yEnvM = (yEnvPsave + kYMIN * zRatio ) * zmp + kYMIN * zRatio; | |
301 | ||
a432117a | 302 | detElemId = (10+icount+1)*100+1; |
8bd68448 | 303 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[1], detElemId, true, TGeoTranslation(xEnv,-yEnvM,kZm)); |
a432117a | 304 | detElemId = (10+icount+1)*100+7; |
8bd68448 | 305 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[7], detElemId, true, TGeoTranslation(xEnv, yEnvM,kZm)); |
a432117a | 306 | detElemId = (10+icount+1)*100+50+1; |
8bd68448 | 307 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[10], detElemId, true, TGeoTranslation(-xEnv,-yEnvP,kZp),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
a432117a | 308 | detElemId = (10+icount+1)*100+50+7; |
8bd68448 | 309 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[16], detElemId, true, TGeoTranslation(-xEnv, yEnvP,kZp),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
d1cd2474 | 310 | |
a432117a | 311 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[1],iVolNum++,3,dpar); |
312 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[7],iVolNum++,3,dpar); | |
313 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[10],iVolNum++,3,dpar); | |
314 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[16],iVolNum++,3,dpar); | |
d1cd2474 | 315 | |
316 | ||
317 | // F | |
318 | yEnvPsave = yEnvP; | |
319 | yEnvMsave = yEnvM; | |
320 | yEnvP = (yEnvMsave + kYMIN * zRatio ) * zpm + kYMIN * zRatio; | |
321 | yEnvM = (yEnvPsave + kYMIN * zRatio ) * zmp + kYMIN * zRatio; | |
322 | ||
a432117a | 323 | detElemId = (10+icount+1)*100; |
8bd68448 | 324 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[0], detElemId, true, TGeoTranslation(xEnv,-yEnvP,kZp)); |
a432117a | 325 | detElemId = (10+icount+1)*100+8; |
8bd68448 | 326 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[8], detElemId, true, TGeoTranslation(xEnv, yEnvP,kZp)); |
a432117a | 327 | detElemId = (10+icount+1)*100+50; |
8bd68448 | 328 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[9], detElemId, true, TGeoTranslation(-xEnv,-yEnvM,kZm),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
a432117a | 329 | detElemId = (10+icount+1)*100+50+8; |
8bd68448 | 330 | GetEnvelopes(10+icount)->AddEnvelope(volEnv[17], detElemId, true, TGeoTranslation(-xEnv, yEnvM,kZm),TGeoRotation("rot1",90.,180.,90.,90.,180.,0.)); |
528abf6f | 331 | |
a432117a | 332 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[0],iVolNum++,3,dpar); |
333 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[8],iVolNum++,3,dpar); | |
334 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[9],iVolNum++,3,dpar); | |
335 | GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[17],iVolNum++,3,dpar); | |
d1cd2474 | 336 | |
337 | } // end loop on detection planes | |
338 | } // end loop on stations | |
339 | } | |
340 | ||
341 | //______________________________________________________________________________ | |
342 | void AliMUONTriggerGeometryBuilder::SetTransformations() | |
343 | { | |
344 | // Defines the transformations for the trigger chambers. | |
345 | // --- | |
346 | Double_t zpos1, zpos2; | |
347 | AliMUONChamber *iChamber1, *iChamber2; | |
348 | ||
e118b27e | 349 | iChamber1 = &fMUON->Chamber(10); |
d1cd2474 | 350 | zpos1= - iChamber1->Z(); |
351 | iChamber1->GetGeometry() | |
352 | ->SetTranslation(TGeoTranslation(0., 0., zpos1)); | |
353 | ||
e118b27e | 354 | iChamber2 = &fMUON->Chamber(11); |
d1cd2474 | 355 | zpos2 = - iChamber2->Z(); |
356 | iChamber2->GetGeometry() | |
357 | ->SetTranslation(TGeoTranslation(0., 0., zpos2)); | |
358 | ||
e118b27e | 359 | iChamber1 = &fMUON->Chamber(12); |
d1cd2474 | 360 | zpos1 = - iChamber1->Z(); |
361 | iChamber1->GetGeometry() | |
362 | ->SetTranslation(TGeoTranslation(0., 0., zpos1)); | |
363 | ||
e118b27e | 364 | iChamber2 = &fMUON->Chamber(13); |
d1cd2474 | 365 | zpos2 = - iChamber2->Z(); |
366 | iChamber2->GetGeometry() | |
367 | ->SetTranslation(TGeoTranslation(0., 0., zpos2)); | |
368 | } | |
369 | ||
370 | //______________________________________________________________________________ | |
371 | void AliMUONTriggerGeometryBuilder::SetSensitiveVolumes() | |
372 | { | |
373 | // Defines the sensitive volumes for trigger station chambers. | |
374 | // --- | |
375 | ||
eb571c25 | 376 | GetGeometry(10)->SetSensitiveVolume("S11G"); |
377 | GetGeometry(11)->SetSensitiveVolume("S12G"); | |
378 | GetGeometry(12)->SetSensitiveVolume("S13G"); | |
379 | GetGeometry(13)->SetSensitiveVolume("S14G"); | |
d1cd2474 | 380 | } |
381 |