#include <TVirtualMC.h>
#include <TGeoMatrix.h>
#include "AliLog.h"
#include "AliMUONSt1GeometryBuilder.h"
#include "AliMUON.h"
#include "TArrayI.h"
#include "AliMUONConstants.h"
#include "AliMUONGeometryModule.h"
#include "AliMUONGeometryEnvelopeStore.h"
using std::endl;
using std::cout;
ClassImp(AliMUONSt1GeometryBuilder)
AliMUONSt1GeometryBuilder::AliMUONSt1GeometryBuilder(AliMUON* muon)
: AliMUONVGeometryBuilder(0, 2),
fMUON(muon)
{
}
AliMUONSt1GeometryBuilder::AliMUONSt1GeometryBuilder()
: AliMUONVGeometryBuilder(),
fMUON(0)
{
}
AliMUONSt1GeometryBuilder::~AliMUONSt1GeometryBuilder()
{
}
void AliMUONSt1GeometryBuilder::CreateGeometry()
{
Int_t *idtmed = fMUON->GetIdtmed()->GetArray()-1099;
Int_t idAir= idtmed[1100];
Int_t idAlu1=idtmed[1103];
Int_t idAlu2=idtmed[1104];
Int_t idGas=idtmed[1108];
Bool_t frameCrosses=kTRUE;
Int_t irot1;
fMUON->AliMatrix(irot1, 90., 0., 90., 90., 0., 0.);
Int_t irot2;
fMUON->AliMatrix(irot2, 90., 90., 90., 180., 0., 0.);
const Float_t kDGas = 0.4;
const Float_t kDAlu = 3.5 * 8.9 / 100.;
Float_t dframez = 3. * 8.9 / 100;
Float_t zfpos=-(kDGas+dframez+kDAlu)/2;
Float_t dframep=.001;
Float_t dframep1 = 11.0;
Float_t phi=2*TMath::Pi()/12/2;
Float_t tpar[3];
Float_t dstation = (-AliMUONConstants::DefaultChamberZ(1)) -
(-AliMUONConstants::DefaultChamberZ(0));
tpar[0] = AliMUONConstants::Rmin(0)-dframep;
tpar[1] = (AliMUONConstants::Rmax(0)+dframep)/TMath::Cos(phi);
tpar[2] = dstation/5;
TVirtualMC::GetMC()->Gsvolu("S01M", "TUBE", idAir, tpar, 3);
TVirtualMC::GetMC()->Gsvolu("S02M", "TUBE", idAir, tpar, 3);
GetEnvelopes(0)->AddEnvelope("S01M", 100, false);
GetEnvelopes(1)->AddEnvelope("S02M", 200, false);
if (frameCrosses) {
Float_t bpar[3];
bpar[0] = (AliMUONConstants::Rmax(0) - AliMUONConstants::Rmin(0))
* TMath::Cos(TMath::ASin(dframep1 /
(AliMUONConstants::Rmax(0) - AliMUONConstants::Rmin(0))))
/ 2.0;
bpar[1] = dframep1/2;
bpar[2] = (2.0 * dframez - kDAlu) / 4.0;
TVirtualMC::GetMC()->Gsvolu("S01B", "BOX", idAlu1, bpar, 3);
TVirtualMC::GetMC()->Gsvolu("S02B", "BOX", idAlu1, bpar, 3);
TVirtualMC::GetMC()->Gspos("S01B",1,"S01M", +AliMUONConstants::Rmin(0)+bpar[0] , 0,-zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S01B",2,"S01M", -AliMUONConstants::Rmin(0)-bpar[0] , 0,-zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S01B",3,"S01M", 0, +AliMUONConstants::Rmin(0)+bpar[0] ,-zfpos,
irot2,"ONLY");
TVirtualMC::GetMC()->Gspos("S01B",4,"S01M", 0, -AliMUONConstants::Rmin(0)-bpar[0] ,-zfpos,
irot2,"ONLY");
TVirtualMC::GetMC()->Gspos("S01B",5,"S01M", +AliMUONConstants::Rmin(0)+bpar[0] , 0,+zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S01B",6,"S01M", -AliMUONConstants::Rmin(0)-bpar[0] , 0,+zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S01B",7,"S01M", 0, +AliMUONConstants::Rmin(0)+bpar[0] ,+zfpos,
irot2,"ONLY");
TVirtualMC::GetMC()->Gspos("S01B",8,"S01M", 0, -AliMUONConstants::Rmin(0)-bpar[0] ,+zfpos,
irot2,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",1,"S02M", +AliMUONConstants::Rmin(0)+bpar[0] , 0,-zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",2,"S02M", -AliMUONConstants::Rmin(0)-bpar[0] , 0,-zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",3,"S02M", 0, +AliMUONConstants::Rmin(0)+bpar[0] ,-zfpos,
irot2,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",4,"S02M", 0, -AliMUONConstants::Rmin(0)-bpar[0] ,-zfpos,
irot2,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",5,"S02M", +AliMUONConstants::Rmin(0)+bpar[0] , 0,+zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",6,"S02M", -AliMUONConstants::Rmin(0)-bpar[0] , 0,+zfpos,
irot1,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",7,"S02M", 0, +AliMUONConstants::Rmin(0)+bpar[0] ,+zfpos,
irot2,"ONLY");
TVirtualMC::GetMC()->Gspos("S02B",8,"S02M", 0, -AliMUONConstants::Rmin(0)-bpar[0] ,+zfpos,
irot2,"ONLY");
}
tpar[0]= AliMUONConstants::Rmin(0);
tpar[1]= AliMUONConstants::Rmax(0);
tpar[2] = (kDGas+kDAlu)/2;
TVirtualMC::GetMC()->Gsvolu("S01A", "TUBE", idAlu2, tpar, 3);
TVirtualMC::GetMC()->Gsvolu("S02A", "TUBE",idAlu2, tpar, 3);
TVirtualMC::GetMC()->Gspos("S01A", 1, "S01M", 0., 0., 0., 0, "ONLY");
TVirtualMC::GetMC()->Gspos("S02A", 1, "S02M", 0., 0., 0., 0, "ONLY");
tpar[2] = kDGas/2;
TVirtualMC::GetMC()->Gsvolu("S01G", "TUBE", idGas, tpar, 3);
TVirtualMC::GetMC()->Gsvolu("S02G", "TUBE", idGas, tpar, 3);
TVirtualMC::GetMC()->Gspos("S01G", 1, "S01A", 0., 0., 0., 0, "ONLY");
TVirtualMC::GetMC()->Gspos("S02G", 1, "S02A", 0., 0., 0., 0, "ONLY");
}
void AliMUONSt1GeometryBuilder::SetVolumes()
{
}
void AliMUONSt1GeometryBuilder::SetTransformations()
{
Double_t zpos1= - AliMUONConstants::DefaultChamberZ(0);
SetTranslation(0, TGeoTranslation(0., 0., zpos1));
Double_t zpos2 = - AliMUONConstants::DefaultChamberZ(1);
SetTranslation(0, TGeoTranslation(0., 0., zpos2));
}
void AliMUONSt1GeometryBuilder::SetSensitiveVolumes()
{
GetGeometry(0)->SetSensitiveVolume("S01G");
GetGeometry(1)->SetSensitiveVolume("S02G");
}
AliMUONSt1GeometryBuilder.cxx:1 AliMUONSt1GeometryBuilder.cxx:2 AliMUONSt1GeometryBuilder.cxx:3 AliMUONSt1GeometryBuilder.cxx:4 AliMUONSt1GeometryBuilder.cxx:5 AliMUONSt1GeometryBuilder.cxx:6 AliMUONSt1GeometryBuilder.cxx:7 AliMUONSt1GeometryBuilder.cxx:8 AliMUONSt1GeometryBuilder.cxx:9 AliMUONSt1GeometryBuilder.cxx:10 AliMUONSt1GeometryBuilder.cxx:11 AliMUONSt1GeometryBuilder.cxx:12 AliMUONSt1GeometryBuilder.cxx:13 AliMUONSt1GeometryBuilder.cxx:14 AliMUONSt1GeometryBuilder.cxx:15 AliMUONSt1GeometryBuilder.cxx:16 AliMUONSt1GeometryBuilder.cxx:17 AliMUONSt1GeometryBuilder.cxx:18 AliMUONSt1GeometryBuilder.cxx:19 AliMUONSt1GeometryBuilder.cxx:20 AliMUONSt1GeometryBuilder.cxx:21 AliMUONSt1GeometryBuilder.cxx:22 AliMUONSt1GeometryBuilder.cxx:23 AliMUONSt1GeometryBuilder.cxx:24 AliMUONSt1GeometryBuilder.cxx:25 AliMUONSt1GeometryBuilder.cxx:26 AliMUONSt1GeometryBuilder.cxx:27 AliMUONSt1GeometryBuilder.cxx:28 AliMUONSt1GeometryBuilder.cxx:29 AliMUONSt1GeometryBuilder.cxx:30 AliMUONSt1GeometryBuilder.cxx:31 AliMUONSt1GeometryBuilder.cxx:32 AliMUONSt1GeometryBuilder.cxx:33 AliMUONSt1GeometryBuilder.cxx:34 AliMUONSt1GeometryBuilder.cxx:35 AliMUONSt1GeometryBuilder.cxx:36 AliMUONSt1GeometryBuilder.cxx:37 AliMUONSt1GeometryBuilder.cxx:38 AliMUONSt1GeometryBuilder.cxx:39 AliMUONSt1GeometryBuilder.cxx:40 AliMUONSt1GeometryBuilder.cxx:41 AliMUONSt1GeometryBuilder.cxx:42 AliMUONSt1GeometryBuilder.cxx:43 AliMUONSt1GeometryBuilder.cxx:44 AliMUONSt1GeometryBuilder.cxx:45 AliMUONSt1GeometryBuilder.cxx:46 AliMUONSt1GeometryBuilder.cxx:47 AliMUONSt1GeometryBuilder.cxx:48 AliMUONSt1GeometryBuilder.cxx:49 AliMUONSt1GeometryBuilder.cxx:50 AliMUONSt1GeometryBuilder.cxx:51 AliMUONSt1GeometryBuilder.cxx:52 AliMUONSt1GeometryBuilder.cxx:53 AliMUONSt1GeometryBuilder.cxx:54 AliMUONSt1GeometryBuilder.cxx:55 AliMUONSt1GeometryBuilder.cxx:56 AliMUONSt1GeometryBuilder.cxx:57 AliMUONSt1GeometryBuilder.cxx:58 AliMUONSt1GeometryBuilder.cxx:59 AliMUONSt1GeometryBuilder.cxx:60 AliMUONSt1GeometryBuilder.cxx:61 AliMUONSt1GeometryBuilder.cxx:62 AliMUONSt1GeometryBuilder.cxx:63 AliMUONSt1GeometryBuilder.cxx:64 AliMUONSt1GeometryBuilder.cxx:65 AliMUONSt1GeometryBuilder.cxx:66 AliMUONSt1GeometryBuilder.cxx:67 AliMUONSt1GeometryBuilder.cxx:68 AliMUONSt1GeometryBuilder.cxx:69 AliMUONSt1GeometryBuilder.cxx:70 AliMUONSt1GeometryBuilder.cxx:71 AliMUONSt1GeometryBuilder.cxx:72 AliMUONSt1GeometryBuilder.cxx:73 AliMUONSt1GeometryBuilder.cxx:74 AliMUONSt1GeometryBuilder.cxx:75 AliMUONSt1GeometryBuilder.cxx:76 AliMUONSt1GeometryBuilder.cxx:77 AliMUONSt1GeometryBuilder.cxx:78 AliMUONSt1GeometryBuilder.cxx:79 AliMUONSt1GeometryBuilder.cxx:80 AliMUONSt1GeometryBuilder.cxx:81 AliMUONSt1GeometryBuilder.cxx:82 AliMUONSt1GeometryBuilder.cxx:83 AliMUONSt1GeometryBuilder.cxx:84 AliMUONSt1GeometryBuilder.cxx:85 AliMUONSt1GeometryBuilder.cxx:86 AliMUONSt1GeometryBuilder.cxx:87 AliMUONSt1GeometryBuilder.cxx:88 AliMUONSt1GeometryBuilder.cxx:89 AliMUONSt1GeometryBuilder.cxx:90 AliMUONSt1GeometryBuilder.cxx:91 AliMUONSt1GeometryBuilder.cxx:92 AliMUONSt1GeometryBuilder.cxx:93 AliMUONSt1GeometryBuilder.cxx:94 AliMUONSt1GeometryBuilder.cxx:95 AliMUONSt1GeometryBuilder.cxx:96 AliMUONSt1GeometryBuilder.cxx:97 AliMUONSt1GeometryBuilder.cxx:98 AliMUONSt1GeometryBuilder.cxx:99 AliMUONSt1GeometryBuilder.cxx:100 AliMUONSt1GeometryBuilder.cxx:101 AliMUONSt1GeometryBuilder.cxx:102 AliMUONSt1GeometryBuilder.cxx:103 AliMUONSt1GeometryBuilder.cxx:104 AliMUONSt1GeometryBuilder.cxx:105 AliMUONSt1GeometryBuilder.cxx:106 AliMUONSt1GeometryBuilder.cxx:107 AliMUONSt1GeometryBuilder.cxx:108 AliMUONSt1GeometryBuilder.cxx:109 AliMUONSt1GeometryBuilder.cxx:110 AliMUONSt1GeometryBuilder.cxx:111 AliMUONSt1GeometryBuilder.cxx:112 AliMUONSt1GeometryBuilder.cxx:113 AliMUONSt1GeometryBuilder.cxx:114 AliMUONSt1GeometryBuilder.cxx:115 AliMUONSt1GeometryBuilder.cxx:116 AliMUONSt1GeometryBuilder.cxx:117 AliMUONSt1GeometryBuilder.cxx:118 AliMUONSt1GeometryBuilder.cxx:119 AliMUONSt1GeometryBuilder.cxx:120 AliMUONSt1GeometryBuilder.cxx:121 AliMUONSt1GeometryBuilder.cxx:122 AliMUONSt1GeometryBuilder.cxx:123 AliMUONSt1GeometryBuilder.cxx:124 AliMUONSt1GeometryBuilder.cxx:125 AliMUONSt1GeometryBuilder.cxx:126 AliMUONSt1GeometryBuilder.cxx:127 AliMUONSt1GeometryBuilder.cxx:128 AliMUONSt1GeometryBuilder.cxx:129 AliMUONSt1GeometryBuilder.cxx:130 AliMUONSt1GeometryBuilder.cxx:131 AliMUONSt1GeometryBuilder.cxx:132 AliMUONSt1GeometryBuilder.cxx:133 AliMUONSt1GeometryBuilder.cxx:134 AliMUONSt1GeometryBuilder.cxx:135 AliMUONSt1GeometryBuilder.cxx:136 AliMUONSt1GeometryBuilder.cxx:137 AliMUONSt1GeometryBuilder.cxx:138 AliMUONSt1GeometryBuilder.cxx:139 AliMUONSt1GeometryBuilder.cxx:140 AliMUONSt1GeometryBuilder.cxx:141 AliMUONSt1GeometryBuilder.cxx:142 AliMUONSt1GeometryBuilder.cxx:143 AliMUONSt1GeometryBuilder.cxx:144 AliMUONSt1GeometryBuilder.cxx:145 AliMUONSt1GeometryBuilder.cxx:146 AliMUONSt1GeometryBuilder.cxx:147 AliMUONSt1GeometryBuilder.cxx:148 AliMUONSt1GeometryBuilder.cxx:149 AliMUONSt1GeometryBuilder.cxx:150 AliMUONSt1GeometryBuilder.cxx:151 AliMUONSt1GeometryBuilder.cxx:152 AliMUONSt1GeometryBuilder.cxx:153 AliMUONSt1GeometryBuilder.cxx:154 AliMUONSt1GeometryBuilder.cxx:155 AliMUONSt1GeometryBuilder.cxx:156 AliMUONSt1GeometryBuilder.cxx:157 AliMUONSt1GeometryBuilder.cxx:158 AliMUONSt1GeometryBuilder.cxx:159 AliMUONSt1GeometryBuilder.cxx:160 AliMUONSt1GeometryBuilder.cxx:161 AliMUONSt1GeometryBuilder.cxx:162 AliMUONSt1GeometryBuilder.cxx:163 AliMUONSt1GeometryBuilder.cxx:164 AliMUONSt1GeometryBuilder.cxx:165 AliMUONSt1GeometryBuilder.cxx:166 AliMUONSt1GeometryBuilder.cxx:167 AliMUONSt1GeometryBuilder.cxx:168 AliMUONSt1GeometryBuilder.cxx:169 AliMUONSt1GeometryBuilder.cxx:170 AliMUONSt1GeometryBuilder.cxx:171 AliMUONSt1GeometryBuilder.cxx:172 AliMUONSt1GeometryBuilder.cxx:173 AliMUONSt1GeometryBuilder.cxx:174 AliMUONSt1GeometryBuilder.cxx:175 AliMUONSt1GeometryBuilder.cxx:176 AliMUONSt1GeometryBuilder.cxx:177 AliMUONSt1GeometryBuilder.cxx:178 AliMUONSt1GeometryBuilder.cxx:179 AliMUONSt1GeometryBuilder.cxx:180 AliMUONSt1GeometryBuilder.cxx:181 AliMUONSt1GeometryBuilder.cxx:182 AliMUONSt1GeometryBuilder.cxx:183 AliMUONSt1GeometryBuilder.cxx:184 AliMUONSt1GeometryBuilder.cxx:185 AliMUONSt1GeometryBuilder.cxx:186 AliMUONSt1GeometryBuilder.cxx:187 AliMUONSt1GeometryBuilder.cxx:188 AliMUONSt1GeometryBuilder.cxx:189 AliMUONSt1GeometryBuilder.cxx:190 AliMUONSt1GeometryBuilder.cxx:191 AliMUONSt1GeometryBuilder.cxx:192 AliMUONSt1GeometryBuilder.cxx:193 AliMUONSt1GeometryBuilder.cxx:194 AliMUONSt1GeometryBuilder.cxx:195 AliMUONSt1GeometryBuilder.cxx:196 AliMUONSt1GeometryBuilder.cxx:197 AliMUONSt1GeometryBuilder.cxx:198 AliMUONSt1GeometryBuilder.cxx:199 AliMUONSt1GeometryBuilder.cxx:200 AliMUONSt1GeometryBuilder.cxx:201 AliMUONSt1GeometryBuilder.cxx:202 AliMUONSt1GeometryBuilder.cxx:203 AliMUONSt1GeometryBuilder.cxx:204 AliMUONSt1GeometryBuilder.cxx:205 AliMUONSt1GeometryBuilder.cxx:206 AliMUONSt1GeometryBuilder.cxx:207 AliMUONSt1GeometryBuilder.cxx:208 AliMUONSt1GeometryBuilder.cxx:209 AliMUONSt1GeometryBuilder.cxx:210 AliMUONSt1GeometryBuilder.cxx:211 AliMUONSt1GeometryBuilder.cxx:212 AliMUONSt1GeometryBuilder.cxx:213 AliMUONSt1GeometryBuilder.cxx:214 AliMUONSt1GeometryBuilder.cxx:215 AliMUONSt1GeometryBuilder.cxx:216 AliMUONSt1GeometryBuilder.cxx:217 AliMUONSt1GeometryBuilder.cxx:218 AliMUONSt1GeometryBuilder.cxx:219 AliMUONSt1GeometryBuilder.cxx:220 AliMUONSt1GeometryBuilder.cxx:221 AliMUONSt1GeometryBuilder.cxx:222 AliMUONSt1GeometryBuilder.cxx:223 AliMUONSt1GeometryBuilder.cxx:224 AliMUONSt1GeometryBuilder.cxx:225 AliMUONSt1GeometryBuilder.cxx:226 AliMUONSt1GeometryBuilder.cxx:227 AliMUONSt1GeometryBuilder.cxx:228 AliMUONSt1GeometryBuilder.cxx:229 AliMUONSt1GeometryBuilder.cxx:230 AliMUONSt1GeometryBuilder.cxx:231 AliMUONSt1GeometryBuilder.cxx:232 AliMUONSt1GeometryBuilder.cxx:233 AliMUONSt1GeometryBuilder.cxx:234 AliMUONSt1GeometryBuilder.cxx:235 AliMUONSt1GeometryBuilder.cxx:236 AliMUONSt1GeometryBuilder.cxx:237 AliMUONSt1GeometryBuilder.cxx:238 AliMUONSt1GeometryBuilder.cxx:239 AliMUONSt1GeometryBuilder.cxx:240 AliMUONSt1GeometryBuilder.cxx:241 AliMUONSt1GeometryBuilder.cxx:242 AliMUONSt1GeometryBuilder.cxx:243 AliMUONSt1GeometryBuilder.cxx:244 AliMUONSt1GeometryBuilder.cxx:245 AliMUONSt1GeometryBuilder.cxx:246 AliMUONSt1GeometryBuilder.cxx:247 AliMUONSt1GeometryBuilder.cxx:248 AliMUONSt1GeometryBuilder.cxx:249 AliMUONSt1GeometryBuilder.cxx:250 AliMUONSt1GeometryBuilder.cxx:251 AliMUONSt1GeometryBuilder.cxx:252 AliMUONSt1GeometryBuilder.cxx:253 AliMUONSt1GeometryBuilder.cxx:254 AliMUONSt1GeometryBuilder.cxx:255 AliMUONSt1GeometryBuilder.cxx:256 AliMUONSt1GeometryBuilder.cxx:257 AliMUONSt1GeometryBuilder.cxx:258 AliMUONSt1GeometryBuilder.cxx:259 AliMUONSt1GeometryBuilder.cxx:260 AliMUONSt1GeometryBuilder.cxx:261 AliMUONSt1GeometryBuilder.cxx:262 AliMUONSt1GeometryBuilder.cxx:263 AliMUONSt1GeometryBuilder.cxx:264 AliMUONSt1GeometryBuilder.cxx:265 AliMUONSt1GeometryBuilder.cxx:266 AliMUONSt1GeometryBuilder.cxx:267 AliMUONSt1GeometryBuilder.cxx:268 AliMUONSt1GeometryBuilder.cxx:269 AliMUONSt1GeometryBuilder.cxx:270 AliMUONSt1GeometryBuilder.cxx:271 AliMUONSt1GeometryBuilder.cxx:272 AliMUONSt1GeometryBuilder.cxx:273 AliMUONSt1GeometryBuilder.cxx:274 AliMUONSt1GeometryBuilder.cxx:275 AliMUONSt1GeometryBuilder.cxx:276 AliMUONSt1GeometryBuilder.cxx:277 AliMUONSt1GeometryBuilder.cxx:278 AliMUONSt1GeometryBuilder.cxx:279 AliMUONSt1GeometryBuilder.cxx:280 AliMUONSt1GeometryBuilder.cxx:281 AliMUONSt1GeometryBuilder.cxx:282 AliMUONSt1GeometryBuilder.cxx:283 AliMUONSt1GeometryBuilder.cxx:284 AliMUONSt1GeometryBuilder.cxx:285 AliMUONSt1GeometryBuilder.cxx:286 AliMUONSt1GeometryBuilder.cxx:287 AliMUONSt1GeometryBuilder.cxx:288 AliMUONSt1GeometryBuilder.cxx:289 AliMUONSt1GeometryBuilder.cxx:290 AliMUONSt1GeometryBuilder.cxx:291 AliMUONSt1GeometryBuilder.cxx:292 AliMUONSt1GeometryBuilder.cxx:293 AliMUONSt1GeometryBuilder.cxx:294 AliMUONSt1GeometryBuilder.cxx:295 AliMUONSt1GeometryBuilder.cxx:296 AliMUONSt1GeometryBuilder.cxx:297 AliMUONSt1GeometryBuilder.cxx:298 AliMUONSt1GeometryBuilder.cxx:299