#include <TVirtualMC.h>
#include <TGeoMatrix.h>
#include <TArrayI.h>
#include "AliLog.h"
#include "AliMUONSt2GeometryBuilder.h"
#include "AliMUON.h"
#include "AliMUONConstants.h"
#include "AliMUONGeometryModule.h"
#include "AliMUONGeometryEnvelopeStore.h"
ClassImp(AliMUONSt2GeometryBuilder)
AliMUONSt2GeometryBuilder::AliMUONSt2GeometryBuilder(AliMUON* muon)
: AliMUONVGeometryBuilder(2, 2),
fMUON(muon)
{
}
AliMUONSt2GeometryBuilder::AliMUONSt2GeometryBuilder()
: AliMUONVGeometryBuilder(),
fMUON(0)
{
}
AliMUONSt2GeometryBuilder::~AliMUONSt2GeometryBuilder()
{
}
void AliMUONSt2GeometryBuilder::CreateGeometry()
{
Int_t *idtmed = fMUON->GetIdtmed()->GetArray()-1099;
Int_t idAir= idtmed[1100];
Int_t idGas=idtmed[1108];
const Float_t kDeltaQuad = 0.01;
const Float_t kDeltaZ = 6.5/2.;
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.5;
Float_t tpar[5];
Float_t posx, posy, posz;
tpar[0]= AliMUONConstants::Rmin(1);
tpar[1]= AliMUONConstants::Rmax(1);
tpar[2] = kDGas/2;
tpar[3] = 0.;
tpar[4] = 90.;
TVirtualMC::GetMC()->Gsvolu("S03G", "TUBS", idGas, tpar, 5);
TVirtualMC::GetMC()->Gsvolu("S04G", "TUBS", idGas, tpar, 5);
Int_t detElemId;
posx = kDeltaQuad;
posy = kDeltaQuad;
posz = -kDeltaZ;
detElemId = 301;
TVirtualMC::GetMC()->Gsvolu("LE01", "TUBS", idAir, tpar, 5);
GetEnvelopes(2)->AddEnvelope("LE01", detElemId, true, TGeoTranslation(posx, posy, posz),
TGeoRotation("rot1",90,0,90,90,0,0) );
detElemId = 401;
TVirtualMC::GetMC()->Gsvolu("LF01", "TUBS", idAir, tpar, 5);
GetEnvelopes(3)->AddEnvelope("LF01", detElemId, true, TGeoTranslation(posx, posy, posz),
TGeoRotation("rot1",90,0,90,90,0,0) );
detElemId = 300;
TVirtualMC::GetMC()->Gsvolu("LE02", "TUBS", idAir, tpar, 5);
GetEnvelopes(2)->AddEnvelope("LE02", detElemId, true, TGeoTranslation(-posx, posy,-posz),
TGeoRotation("rot2",90,180,90,90,180,0) );
detElemId = 400;
TVirtualMC::GetMC()->Gsvolu("LF02", "TUBS", idAir, tpar, 5);
GetEnvelopes(3)->AddEnvelope("LF02", detElemId, true, TGeoTranslation(-posx, posy,-posz),
TGeoRotation("rot2",90,180,90,90,180,0) );
detElemId = 302;
TVirtualMC::GetMC()->Gsvolu("LE03", "TUBS", idAir, tpar, 5);
GetEnvelopes(2)->AddEnvelope("LE03", detElemId, true, TGeoTranslation(posx, -posy, -posz),
TGeoRotation("rot3",90,0,90,270,180,0) );
detElemId = 402;
TVirtualMC::GetMC()->Gsvolu("LF03", "TUBS", idAir, tpar, 5);
GetEnvelopes(3)->AddEnvelope("LF03", detElemId, true, TGeoTranslation(posx, -posy, -posz),
TGeoRotation("rot3",90,0,90,270,180,0) );
detElemId = 303;
TVirtualMC::GetMC()->Gsvolu("LE04", "TUBS", idAir, tpar, 5);
GetEnvelopes(2)->AddEnvelope("LE04", detElemId, true, TGeoTranslation(-posx, -posy, posz),
TGeoRotation("rot4",90,180,90,270,0,0) );
detElemId = 403;
TVirtualMC::GetMC()->Gsvolu("LF04", "TUBS", idAir, tpar, 5);
GetEnvelopes(3)->AddEnvelope("LF04", detElemId, true, TGeoTranslation(-posx, -posy, posz),
TGeoRotation("rot4",90,180,90,270,0,0) );
GetEnvelopes(2)->AddEnvelopeConstituent("S03G", "LE01", 1);
GetEnvelopes(3)->AddEnvelopeConstituent("S04G", "LF01", 1);
GetEnvelopes(2)->AddEnvelopeConstituent("S03G", "LE02", 2);
GetEnvelopes(3)->AddEnvelopeConstituent("S04G", "LF02", 2);
GetEnvelopes(2)->AddEnvelopeConstituent("S03G", "LE03", 3);
GetEnvelopes(3)->AddEnvelopeConstituent("S04G", "LF03", 3);
GetEnvelopes(2)->AddEnvelopeConstituent("S03G", "LE04", 4);
GetEnvelopes(3)->AddEnvelopeConstituent("S04G", "LF04", 4);
}
void AliMUONSt2GeometryBuilder::SetVolumes()
{
SetVolume(2, "SC03", true);
SetVolume(3, "SC04", true);
}
void AliMUONSt2GeometryBuilder::SetTransformations()
{
Double_t zpos1 = - AliMUONConstants::DefaultChamberZ(2);
SetTranslation(2, TGeoTranslation(0., 0., zpos1));
Double_t zpos2 = - AliMUONConstants::DefaultChamberZ(3);
SetTranslation(3, TGeoTranslation(0., 0., zpos2));
}
void AliMUONSt2GeometryBuilder::SetSensitiveVolumes()
{
GetGeometry(2)->SetSensitiveVolume("S03G");
GetGeometry(3)->SetSensitiveVolume("S04G");
}
AliMUONSt2GeometryBuilder.cxx:1 AliMUONSt2GeometryBuilder.cxx:2 AliMUONSt2GeometryBuilder.cxx:3 AliMUONSt2GeometryBuilder.cxx:4 AliMUONSt2GeometryBuilder.cxx:5 AliMUONSt2GeometryBuilder.cxx:6 AliMUONSt2GeometryBuilder.cxx:7 AliMUONSt2GeometryBuilder.cxx:8 AliMUONSt2GeometryBuilder.cxx:9 AliMUONSt2GeometryBuilder.cxx:10 AliMUONSt2GeometryBuilder.cxx:11 AliMUONSt2GeometryBuilder.cxx:12 AliMUONSt2GeometryBuilder.cxx:13 AliMUONSt2GeometryBuilder.cxx:14 AliMUONSt2GeometryBuilder.cxx:15 AliMUONSt2GeometryBuilder.cxx:16 AliMUONSt2GeometryBuilder.cxx:17 AliMUONSt2GeometryBuilder.cxx:18 AliMUONSt2GeometryBuilder.cxx:19 AliMUONSt2GeometryBuilder.cxx:20 AliMUONSt2GeometryBuilder.cxx:21 AliMUONSt2GeometryBuilder.cxx:22 AliMUONSt2GeometryBuilder.cxx:23 AliMUONSt2GeometryBuilder.cxx:24 AliMUONSt2GeometryBuilder.cxx:25 AliMUONSt2GeometryBuilder.cxx:26 AliMUONSt2GeometryBuilder.cxx:27 AliMUONSt2GeometryBuilder.cxx:28 AliMUONSt2GeometryBuilder.cxx:29 AliMUONSt2GeometryBuilder.cxx:30 AliMUONSt2GeometryBuilder.cxx:31 AliMUONSt2GeometryBuilder.cxx:32 AliMUONSt2GeometryBuilder.cxx:33 AliMUONSt2GeometryBuilder.cxx:34 AliMUONSt2GeometryBuilder.cxx:35 AliMUONSt2GeometryBuilder.cxx:36 AliMUONSt2GeometryBuilder.cxx:37 AliMUONSt2GeometryBuilder.cxx:38 AliMUONSt2GeometryBuilder.cxx:39 AliMUONSt2GeometryBuilder.cxx:40 AliMUONSt2GeometryBuilder.cxx:41 AliMUONSt2GeometryBuilder.cxx:42 AliMUONSt2GeometryBuilder.cxx:43 AliMUONSt2GeometryBuilder.cxx:44 AliMUONSt2GeometryBuilder.cxx:45 AliMUONSt2GeometryBuilder.cxx:46 AliMUONSt2GeometryBuilder.cxx:47 AliMUONSt2GeometryBuilder.cxx:48 AliMUONSt2GeometryBuilder.cxx:49 AliMUONSt2GeometryBuilder.cxx:50 AliMUONSt2GeometryBuilder.cxx:51 AliMUONSt2GeometryBuilder.cxx:52 AliMUONSt2GeometryBuilder.cxx:53 AliMUONSt2GeometryBuilder.cxx:54 AliMUONSt2GeometryBuilder.cxx:55 AliMUONSt2GeometryBuilder.cxx:56 AliMUONSt2GeometryBuilder.cxx:57 AliMUONSt2GeometryBuilder.cxx:58 AliMUONSt2GeometryBuilder.cxx:59 AliMUONSt2GeometryBuilder.cxx:60 AliMUONSt2GeometryBuilder.cxx:61 AliMUONSt2GeometryBuilder.cxx:62 AliMUONSt2GeometryBuilder.cxx:63 AliMUONSt2GeometryBuilder.cxx:64 AliMUONSt2GeometryBuilder.cxx:65 AliMUONSt2GeometryBuilder.cxx:66 AliMUONSt2GeometryBuilder.cxx:67 AliMUONSt2GeometryBuilder.cxx:68 AliMUONSt2GeometryBuilder.cxx:69 AliMUONSt2GeometryBuilder.cxx:70 AliMUONSt2GeometryBuilder.cxx:71 AliMUONSt2GeometryBuilder.cxx:72 AliMUONSt2GeometryBuilder.cxx:73 AliMUONSt2GeometryBuilder.cxx:74 AliMUONSt2GeometryBuilder.cxx:75 AliMUONSt2GeometryBuilder.cxx:76 AliMUONSt2GeometryBuilder.cxx:77 AliMUONSt2GeometryBuilder.cxx:78 AliMUONSt2GeometryBuilder.cxx:79 AliMUONSt2GeometryBuilder.cxx:80 AliMUONSt2GeometryBuilder.cxx:81 AliMUONSt2GeometryBuilder.cxx:82 AliMUONSt2GeometryBuilder.cxx:83 AliMUONSt2GeometryBuilder.cxx:84 AliMUONSt2GeometryBuilder.cxx:85 AliMUONSt2GeometryBuilder.cxx:86 AliMUONSt2GeometryBuilder.cxx:87 AliMUONSt2GeometryBuilder.cxx:88 AliMUONSt2GeometryBuilder.cxx:89 AliMUONSt2GeometryBuilder.cxx:90 AliMUONSt2GeometryBuilder.cxx:91 AliMUONSt2GeometryBuilder.cxx:92 AliMUONSt2GeometryBuilder.cxx:93 AliMUONSt2GeometryBuilder.cxx:94 AliMUONSt2GeometryBuilder.cxx:95 AliMUONSt2GeometryBuilder.cxx:96 AliMUONSt2GeometryBuilder.cxx:97 AliMUONSt2GeometryBuilder.cxx:98 AliMUONSt2GeometryBuilder.cxx:99 AliMUONSt2GeometryBuilder.cxx:100 AliMUONSt2GeometryBuilder.cxx:101 AliMUONSt2GeometryBuilder.cxx:102 AliMUONSt2GeometryBuilder.cxx:103 AliMUONSt2GeometryBuilder.cxx:104 AliMUONSt2GeometryBuilder.cxx:105 AliMUONSt2GeometryBuilder.cxx:106 AliMUONSt2GeometryBuilder.cxx:107 AliMUONSt2GeometryBuilder.cxx:108 AliMUONSt2GeometryBuilder.cxx:109 AliMUONSt2GeometryBuilder.cxx:110 AliMUONSt2GeometryBuilder.cxx:111 AliMUONSt2GeometryBuilder.cxx:112 AliMUONSt2GeometryBuilder.cxx:113 AliMUONSt2GeometryBuilder.cxx:114 AliMUONSt2GeometryBuilder.cxx:115 AliMUONSt2GeometryBuilder.cxx:116 AliMUONSt2GeometryBuilder.cxx:117 AliMUONSt2GeometryBuilder.cxx:118 AliMUONSt2GeometryBuilder.cxx:119 AliMUONSt2GeometryBuilder.cxx:120 AliMUONSt2GeometryBuilder.cxx:121 AliMUONSt2GeometryBuilder.cxx:122 AliMUONSt2GeometryBuilder.cxx:123 AliMUONSt2GeometryBuilder.cxx:124 AliMUONSt2GeometryBuilder.cxx:125 AliMUONSt2GeometryBuilder.cxx:126 AliMUONSt2GeometryBuilder.cxx:127 AliMUONSt2GeometryBuilder.cxx:128 AliMUONSt2GeometryBuilder.cxx:129 AliMUONSt2GeometryBuilder.cxx:130 AliMUONSt2GeometryBuilder.cxx:131 AliMUONSt2GeometryBuilder.cxx:132 AliMUONSt2GeometryBuilder.cxx:133 AliMUONSt2GeometryBuilder.cxx:134 AliMUONSt2GeometryBuilder.cxx:135 AliMUONSt2GeometryBuilder.cxx:136 AliMUONSt2GeometryBuilder.cxx:137 AliMUONSt2GeometryBuilder.cxx:138 AliMUONSt2GeometryBuilder.cxx:139 AliMUONSt2GeometryBuilder.cxx:140 AliMUONSt2GeometryBuilder.cxx:141 AliMUONSt2GeometryBuilder.cxx:142 AliMUONSt2GeometryBuilder.cxx:143 AliMUONSt2GeometryBuilder.cxx:144 AliMUONSt2GeometryBuilder.cxx:145 AliMUONSt2GeometryBuilder.cxx:146 AliMUONSt2GeometryBuilder.cxx:147 AliMUONSt2GeometryBuilder.cxx:148 AliMUONSt2GeometryBuilder.cxx:149 AliMUONSt2GeometryBuilder.cxx:150 AliMUONSt2GeometryBuilder.cxx:151 AliMUONSt2GeometryBuilder.cxx:152 AliMUONSt2GeometryBuilder.cxx:153 AliMUONSt2GeometryBuilder.cxx:154 AliMUONSt2GeometryBuilder.cxx:155 AliMUONSt2GeometryBuilder.cxx:156 AliMUONSt2GeometryBuilder.cxx:157 AliMUONSt2GeometryBuilder.cxx:158 AliMUONSt2GeometryBuilder.cxx:159 AliMUONSt2GeometryBuilder.cxx:160 AliMUONSt2GeometryBuilder.cxx:161 AliMUONSt2GeometryBuilder.cxx:162 AliMUONSt2GeometryBuilder.cxx:163 AliMUONSt2GeometryBuilder.cxx:164 AliMUONSt2GeometryBuilder.cxx:165 AliMUONSt2GeometryBuilder.cxx:166 AliMUONSt2GeometryBuilder.cxx:167 AliMUONSt2GeometryBuilder.cxx:168 AliMUONSt2GeometryBuilder.cxx:169 AliMUONSt2GeometryBuilder.cxx:170 AliMUONSt2GeometryBuilder.cxx:171 AliMUONSt2GeometryBuilder.cxx:172 AliMUONSt2GeometryBuilder.cxx:173 AliMUONSt2GeometryBuilder.cxx:174 AliMUONSt2GeometryBuilder.cxx:175 AliMUONSt2GeometryBuilder.cxx:176 AliMUONSt2GeometryBuilder.cxx:177 AliMUONSt2GeometryBuilder.cxx:178 AliMUONSt2GeometryBuilder.cxx:179 AliMUONSt2GeometryBuilder.cxx:180 AliMUONSt2GeometryBuilder.cxx:181 AliMUONSt2GeometryBuilder.cxx:182 AliMUONSt2GeometryBuilder.cxx:183 AliMUONSt2GeometryBuilder.cxx:184 AliMUONSt2GeometryBuilder.cxx:185 AliMUONSt2GeometryBuilder.cxx:186 AliMUONSt2GeometryBuilder.cxx:187 AliMUONSt2GeometryBuilder.cxx:188 AliMUONSt2GeometryBuilder.cxx:189 AliMUONSt2GeometryBuilder.cxx:190 AliMUONSt2GeometryBuilder.cxx:191 AliMUONSt2GeometryBuilder.cxx:192 AliMUONSt2GeometryBuilder.cxx:193 AliMUONSt2GeometryBuilder.cxx:194 AliMUONSt2GeometryBuilder.cxx:195 AliMUONSt2GeometryBuilder.cxx:196 AliMUONSt2GeometryBuilder.cxx:197 AliMUONSt2GeometryBuilder.cxx:198 AliMUONSt2GeometryBuilder.cxx:199 AliMUONSt2GeometryBuilder.cxx:200 AliMUONSt2GeometryBuilder.cxx:201 AliMUONSt2GeometryBuilder.cxx:202 AliMUONSt2GeometryBuilder.cxx:203 AliMUONSt2GeometryBuilder.cxx:204 AliMUONSt2GeometryBuilder.cxx:205 AliMUONSt2GeometryBuilder.cxx:206 AliMUONSt2GeometryBuilder.cxx:207 AliMUONSt2GeometryBuilder.cxx:208 AliMUONSt2GeometryBuilder.cxx:209 AliMUONSt2GeometryBuilder.cxx:210 AliMUONSt2GeometryBuilder.cxx:211 AliMUONSt2GeometryBuilder.cxx:212 AliMUONSt2GeometryBuilder.cxx:213 AliMUONSt2GeometryBuilder.cxx:214 AliMUONSt2GeometryBuilder.cxx:215 AliMUONSt2GeometryBuilder.cxx:216 AliMUONSt2GeometryBuilder.cxx:217 AliMUONSt2GeometryBuilder.cxx:218 AliMUONSt2GeometryBuilder.cxx:219 AliMUONSt2GeometryBuilder.cxx:220 AliMUONSt2GeometryBuilder.cxx:221 AliMUONSt2GeometryBuilder.cxx:222 AliMUONSt2GeometryBuilder.cxx:223