TGeoVolume* top = gGeoManager->GetVolume("ALIC");
//
-// Translation
-//
- TGeoTranslation* vec0 = new TGeoTranslation(0., 0., 0.);
-//
// Media
//
TGeoMedium* kMedNiW = gGeoManager->GetMedium("ABSO_Ni/W0");
// Front insert
Float_t dzSteelEnvelopeFI = 1.;
Float_t rInSteelEnvelopeFI = 42.0/2.;
- Float_t rOuSteelEnvelopeFI = 85.0/2.;
+ Float_t rOuSteelEnvelopeFI = 85.0/2.+ 0.06;
TGeoPcon* shFaSteelEnvelopeC = new TGeoPcon(0., 360., 7);
z = 0.;
for (Int_t i = 1; i < 5; i++) {
Float_t rmin = shFaWPlateA->GetRmin(i+2);
Float_t rmax = shFaWPlateA->GetRmax(i+2) - 3.;
- Float_t z = shFaWPlateA->GetZ(i+2);
- shFaWPlateAI->DefineSection(i, z, rmin, rmax);
+ Float_t zpos = shFaWPlateA->GetZ(i+2);
+ shFaWPlateAI->DefineSection(i, zpos, rmin, rmax);
}
TGeoVolume* voFaWPlateAI = new TGeoVolume("AFaWPlateAI", shFaWPlateAI, kMedNiWsh);
- voFaWPlateA->AddNode(voFaWPlateAI, 1, vec0);
+ voFaWPlateA->AddNode(voFaWPlateAI, 1, gGeoIdentity);
//
// Inner Tungsten Shield
Float_t rInFaWTube2C1 = 9.10/2.;
Float_t rInFaWTube2C2 = 12.58/2.;
Float_t rOuFaWTube2C1 = 20.70/2.;
- Float_t rOuFaWTube2C2 = 30.72/2.;
+ Float_t rOuFaWTube2C2 = 30.72/2.- 0.05;
// Front Flange
Float_t dzFaWTube2F = 0.6;
Float_t rInFaWTube2F = 15.4/2.;
// Inner region with higher transport cuts
TGeoPcon* shFaPbConeI = MakeShapeFromTemplate(shFaPbCone, 0., -3.);
TGeoVolume* voFaPbConeI = new TGeoVolume("AFaPbConeI", shFaPbConeI, kMedPbSh);
- voFaPbCone->AddNode(voFaPbConeI, 1, vec0);
+ voFaPbCone->AddNode(voFaPbConeI, 1, gGeoIdentity);
// Pos 13
// Drawing ALIP2A__00xx //
///////////////////////////////////
Float_t dzFaSteelCone25 = 25.;
+ Float_t eps = 0.001;
Float_t rInFaSteelCone25A = rInFaConcreteCone2;
Float_t rOuFaSteelCone25A = rOuFaConcreteCone2;
Float_t rInFaSteelCone25B = rInFaSteelCone25A + dzFaSteelCone25 * angle02;
TGeoVolume* voFaSteelCone25 = new TGeoVolume("AFaSteelCone25",
new TGeoCone(dzFaSteelCone25/2.,
- rInFaSteelCone25A, rOuFaSteelCone25A,
- rInFaSteelCone25B, rOuFaSteelCone25B),
+ rInFaSteelCone25A + eps, rOuFaSteelCone25A - eps,
+ rInFaSteelCone25B + eps, rOuFaSteelCone25B - eps),
kMedSteelSh);
// Pos 16
TGeoVolume* voFaSteelCone31 = new TGeoVolume("AFaSteelCone31",
new TGeoCone(dzFaSteelCone31/2.,
- rInFaSteelCone31A, rOuFaSteelCone31A,
- rInFaSteelCone31B, rOuFaSteelCone31B),
+ rInFaSteelCone31A + eps, rOuFaSteelCone31A - eps,
+ rInFaSteelCone31B + eps, rOuFaSteelCone31B - eps),
kMedSteelSh);
- // Outer Rregion with higher transport cuts
+ // Outer Region with higher transport cuts
dz = 5.;
TGeoVolume* voFaSteelCone31I = new TGeoVolume("AFaSteelCone31I",
new TGeoCone(dz/2.,
- rInFaSteelCone31B - dz * angle03,
- rOuFaSteelCone31B - dz * angle10,
- rInFaSteelCone31B, rOuFaSteelCone31B),
+ rInFaSteelCone31B - dz * angle03 + eps,
+ rOuFaSteelCone31B - dz * angle10 - eps,
+ rInFaSteelCone31B + eps, rOuFaSteelCone31B - eps),
kMedSteel);
voFaSteelCone31->AddNode(voFaSteelCone31I, 1, new TGeoTranslation(0., 0., dzFaSteelCone31/2. - dz/2.));
// 2nd section
Float_t dzFaCompRing2 = 1.2;
Float_t rInFaCompRing2 = 14.0/2.;
- Float_t rOuFaCompRing2 = 34.3/2.;
+ Float_t rOuFaCompRing2 = 35.3/2.;
TGeoPcon* shFaCompRing = new TGeoPcon(0., 360., 4);
z = 0.;
shFaM->DefineSection(15, z, rInFaCH2Cone2, rOuSteelEnvelopeR2);
TGeoVolume* voFaM = new TGeoVolume("AFaM", shFaM, kMedAir);
-
+ voFaM->SetVisibility(0);
+
//
// Assemble volumes inside acceptance
TGeoPcon* shFaAccM = new TGeoPcon(0., 360., 7);
for (Int_t i = 0; i < 4; i++) {
- Float_t z = shFaGraphiteCone->GetZ(i);
+ Float_t zpos = shFaGraphiteCone->GetZ(i);
Float_t rmin = shFaGraphiteCone->GetRmin(i);
Float_t rmax = shFaGraphiteCone->GetRmax(i);
- shFaAccM->DefineSection(i, z, rmin, rmax);
+ shFaAccM->DefineSection(i, zpos, rmin, rmax);
}
z = dzFaGraphiteCone + dzFaConcreteCone + dzFaSteelCone25;
z0 = z + zFa + dzFaFlange;
TGeoVolume* voFaAccM = new TGeoVolume("AFaAcc", shFaAccM, kMedAir);
z = 0;
- voFaAccM->AddNode(voFaGraphiteCone, 1, vec0);
+ voFaAccM->AddNode(voFaGraphiteCone, 1, gGeoIdentity);
z += dzFaGraphiteCone;
voFaAccM->AddNode(voFaConcreteCone, 1, new TGeoTranslation(0., 0., z + dzFaConcreteCone / 2.));
z += dzFaConcreteCone;
- voFaAccM->AddNode(voFaSteelCone25, 1, new TGeoTranslation(0., 0., z + dzFaSteelCone25 / 2. + 0.001));
+ voFaAccM->AddNode(voFaSteelCone25, 1, new TGeoTranslation(0., 0., z + dzFaSteelCone25 / 2.));
z += dzFaSteelCone25;
- voFaAccM->AddNode(voFaSteelCone31, 1, new TGeoTranslation(0., 0., z + dzFaSteelCone31 / 2. + 0.001));
+ voFaAccM->AddNode(voFaSteelCone31, 1, new TGeoTranslation(0., 0., z + dzFaSteelCone31 / 2.));
//
// Inner shield
TGeoVolumeAssembly* voFaInnerShield = new TGeoVolumeAssembly("AFaInnerShield");
- voFaInnerShield->AddNode(voFaWTube1, 1, vec0);
+ voFaInnerShield->AddNode(voFaWTube1, 1, gGeoIdentity);
z = dzFaWTube1 - 0.6;
voFaInnerShield->AddNode(voFaWTube2, 1, new TGeoTranslation(0., 0., z) );
z += dzFaWTube2;
// Adding volumes to mother volume
//
z = 0.;
- voFaM->AddNode(voFaWPlateA, 1, vec0);
+ voFaM->AddNode(voFaWPlateA, 1, gGeoIdentity);
z += dzFaWPlate;
voFaM->AddNode(voFaSteelEnvelope, 1, new TGeoTranslation(0., 0., z));
z += dzSteelEnvelopeFC;
voFaM->AddNode(voFaPbCone, 1, new TGeoTranslation(0., 0., z));
z += (dzFaPbCone + dzFaCH2Cone / 2.);
voFaM->AddNode(voFaCH2Cone, 1, new TGeoTranslation(0., 0., z));
- voFaM->AddNode(voFaFlange, 1, vec0);
- voFaM->AddNode(voFaMgRing, 1, vec0);
- voFaM->AddNode(voFaCompRing, 1, vec0);
+ voFaM->AddNode(voFaFlange, 1, gGeoIdentity);
+ voFaM->AddNode(voFaMgRing, 1, gGeoIdentity);
+ voFaM->AddNode(voFaCompRing, 1, gGeoIdentity);
voFaM->AddNode(voFaAccM, 1, new TGeoTranslation(0., 0., dzFaFlange));
////////////////////////////////////////////////////
new TGeoCompositeShape("shFassCentral", "FassCone-(FassWindow:tFassWindow+FassApperture)");
TGeoVolume* voFassCentral = new TGeoVolume("AFassCentral", shFassCentral, kMedSteel);
- voFass->AddNode(voFassCentral, 1, vec0);
+ voFass->AddNode(voFassCentral, 1, gGeoIdentity);
//
// Aluminum ring
//
// Absorber and Support
TGeoVolumeAssembly* voFA = new TGeoVolumeAssembly("AFA");
- voFA->AddNode(voFaM, 1, vec0);
+ voFA->AddNode(voFaM, 1, gGeoIdentity);
voFA->AddNode(voFaEndPlate, 1, new TGeoTranslation(0., 0., dzFa + dzEndPlate/2.));
voFA->AddNode(voFass, 1, new TGeoTranslation(0., 0., 388.45));
- voFA->AddNode(voFassAlRing, 1, new TGeoTranslation(0., 0., 382. - 0.55));
+ voFA->AddNode(voFassAlRing, 1, new TGeoTranslation(0., 0., 382. - 3.56));
top->AddNode(voFA, 1, new TGeoCombiTrans(0., 0., -90., rotxz));
}
-TGeoPcon* AliABSOv3::MakeShapeFromTemplate(TGeoPcon* pcon, Float_t drMin, Float_t drMax)
+TGeoPcon* AliABSOv3::MakeShapeFromTemplate(const TGeoPcon* pcon, Float_t drMin, Float_t drMax)
{
//
// Returns new shape based on a template changing