Skip to content

Commit cd81778

Browse files
authored
overlap corrections in passive components (#3865)
* overlap corrections in passive components * array size corrected
1 parent fd59500 commit cd81778

4 files changed

Lines changed: 63 additions & 21 deletions

File tree

Detectors/Passive/src/Cave.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void Cave::ConstructGeometry()
9292
cavevol->AddNode(voBarrel, 1, new TGeoTranslation(0., -30., 0.));
9393

9494
// mother volune for RB24 side (FDD, Compensator)
95-
const Float_t kRB24CL = 2. * 598.74752;
95+
const Float_t kRB24CL = 2. * 597.9;
9696
auto shCaveRB24 = new TGeoPcon(0., 360., 6);
9797
Float_t z0 = kRB24CL / 2 + 714.6;
9898
shCaveRB24->DefineSection(0, -kRB24CL / 2., 0., 105.);

Detectors/Passive/src/FrameStructure.cxx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -429,15 +429,19 @@ void FrameStructure::ConstructGeometry()
429429
//
430430
TGeoPgon* shB77A = new TGeoPgon(0., 360., 18, 2);
431431
shB77A->SetName("shB77A");
432-
shB77A->DefineSection(0, -zE, 280., 423.7);
433-
shB77A->DefineSection(1, zE, 280., 423.7);
432+
shB77A->DefineSection(0, -zE, 280., 422.15);
433+
shB77A->DefineSection(1, zE, 280., 422.15);
434434
TGeoBBox* shB77B = new TGeoBBox(3.42, 2., 375.5);
435435
shB77B->SetName("shB77B");
436436
TGeoTranslation* trB77A = new TGeoTranslation("trB77A", +283.32, 0., 0.);
437437
TGeoTranslation* trB77B = new TGeoTranslation("trB77B", -283.32, 0., 0.);
438438
trB77A->RegisterYourself();
439439
trB77B->RegisterYourself();
440-
TGeoCompositeShape* shB77 = new TGeoCompositeShape("shB77", "shB77A+shB77B:trB77A+shB77B:trB77B");
440+
TGeoPgon* shB77C = new TGeoPgon(60., 360., 18, 2);
441+
shB77C->SetName("shB77C");
442+
shB77C->DefineSection(0, -zE, 422.15, 423.70);
443+
shB77C->DefineSection(1, zE, 422.15, 423.70);
444+
TGeoCompositeShape* shB77 = new TGeoCompositeShape("shB77", "shB77A+shB77B:trB77A+shB77B:trB77B+shB77C");
441445
TGeoVolume* voB77 = new TGeoVolume("B077", shB77, gGeoManager->GetMedium("FRAME_Air"));
442446
voB77->SetName("B077"); // just to avoid a warning
443447
vmc->Gspos("B077", 1, TOPNAME, 0., 30., 0., 0, "ONLY");
@@ -1372,6 +1376,8 @@ void FrameStructure::ConstructGeometry()
13721376
asTOFS01->SetVisibility(1);
13731377

13741378
for (i = 0; i < 18; i++) {
1379+
if (i >= 4 && i <= 8)
1380+
continue;
13751381
float phi1 = i * 20.;
13761382
float phi2 = 270. + phi1;
13771383
rot1 = new TGeoRotation(Form("TOFS_R1_%d", i), 90.0, phi1, 90., phi2, 0., 0.);
@@ -1561,8 +1567,8 @@ void FrameStructure::ConstructGeometry()
15611567
vmc->Gspos("BRS2", 1, "BRS1", 0., -27.5 + 3.75, 0., 0, "ONLY");
15621568
vmc->Gspos("BRS2", 2, "BRS1", 0., 27.5 - 3.75, 0., 0, "ONLY");
15631569
vmc->Gspos("BRS3", 1, "BRS1", 0., 0., 0., 0, "ONLY");
1564-
vmc->Gspos("BRS1", 1, TOPNAME, -430. - 3. + 30., -190., 0., 0, "ONLY");
1565-
vmc->Gspos("BRS1", 2, TOPNAME, 430. + 3. + 30., -190., 0., 0, "ONLY");
1570+
vmc->Gspos("BRS1", 1, TOPNAME, -430. - 3.1 + 30., -190., 0., 0, "ONLY");
1571+
vmc->Gspos("BRS1", 2, TOPNAME, 430. + 3.1 + 30., -190., 0., 0, "ONLY");
15661572

15671573
rbox[0] = 3.0;
15681574
rbox[1] = 145. / 4.;

Detectors/Passive/src/Pipe.cxx

Lines changed: 50 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <TGeoPcon.h>
1717
#include <TGeoTorus.h>
1818
#include <TGeoTube.h>
19+
#include <TGeoEltu.h>
1920
#include <TVirtualMC.h>
2021
#include "TGeoManager.h" // for TGeoManager, gGeoManager
2122
#include "TGeoMaterial.h" // for TGeoMaterial
@@ -629,14 +630,14 @@ void Pipe::ConstructGeometry()
629630
//
630631

631632
// Copper Tube RB24/1
632-
const Float_t kRB24CuTubeL = 393.5;
633-
const Float_t kRB24cCuTubeL = 167.775;
634-
const Float_t kRB24bCuTubeL = 393.5 - kRB24cCuTubeL;
633+
const Float_t kRB24CuTubeL = 381.5;
634+
const Float_t kRB24cCuTubeL = 155.775;
635+
const Float_t kRB24bCuTubeL = kRB24CuTubeL - kRB24cCuTubeL;
635636
const Float_t kRB24CuTubeRi = 8.0 / 2.;
636637
const Float_t kRB24CuTubeRo = 8.4 / 2.;
637638
const Float_t kRB24CuTubeFRo = 7.6;
638639
const Float_t kRB24CuTubeFL = 1.86;
639-
const Float_t kRB24CL = 2. * 598.74752;
640+
const Float_t kRB24CL = 2. * 597.9;
640641
//
641642
// introduce cut at end of barrel 714.6m
642643
//
@@ -1466,28 +1467,63 @@ void Pipe::ConstructGeometry()
14661467
//
14671468
// Copper Tube RB24/2
14681469
// mainly inside the compensator magnet
1469-
const Float_t kRB242CuTubeL = 330.0;
1470-
1470+
const Float_t kRB242CuTubeL = 350.0;
1471+
// 20 cm straight - 20 cm transition to final oval - 270 oval - 20 cm transition to final oval - 20 cm straight
1472+
//
1473+
// mother volume for transition region
1474+
TGeoVolume* voRB242CuOvTransMo = new TGeoVolume("voRB24CuOvTransMo", new TGeoTube(0., 4.75, 10.), kMedAir);
1475+
const Int_t nTrans = 10;
1476+
TGeoVolume* voRB242CuOvTransV[nTrans];
1477+
TGeoVolume* voRB242CuOvTransI[nTrans];
1478+
Float_t dovX = 4.;
1479+
Float_t dovY = 4.;
1480+
Float_t dovZ = -9.0;
1481+
for (Int_t i = 0; i < nTrans; i++) {
1482+
dovX -= 0.0625;
1483+
dovY += 0.075;
1484+
char vname[20];
1485+
sprintf(vname, "voRB242CuOvTransV%d", i);
1486+
voRB242CuOvTransV[i] = new TGeoVolume(vname, new TGeoEltu(dovX, dovY, 1.0), kMedCuHC);
1487+
sprintf(vname, "voRB242CuOvTransI%d", i);
1488+
voRB242CuOvTransI[i] = new TGeoVolume(vname, new TGeoEltu(dovX - 0.2, dovY - 0.2, 1.0), kMedVacHC);
1489+
voRB242CuOvTransV[i]->AddNode(voRB242CuOvTransI[i], 1, gGeoIdentity);
1490+
voRB242CuOvTransMo->AddNode(voRB242CuOvTransV[i], 1, new TGeoTranslation(0., 0., dovZ));
1491+
dovZ += 2.;
1492+
}
1493+
//
14711494
TGeoVolume* voRB242CuTubeM =
1472-
new TGeoVolume("voRB242CuTubeM", new TGeoTube(0., kRB24CuTubeRo, kRB242CuTubeL / 2.), kMedVacHC);
1473-
voRB24CuTubeM->SetVisibility(0);
1495+
new TGeoVolume("voRB242CuTubeM", new TGeoTube(0., kRB24CuTubeRo, 10.), kMedVacHC);
14741496
TGeoVolume* voRB242CuTube =
1475-
new TGeoVolume("voRB242CuTube", new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, kRB242CuTubeL / 2.), kMedCuHC);
1497+
new TGeoVolume("voRB242CuTube", new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, 10.), kMedCuHC);
14761498
voRB242CuTubeM->AddNode(voRB242CuTube, 1, gGeoIdentity);
1477-
1499+
TGeoVolume* voRB242CuOvalM =
1500+
new TGeoVolume("voRB242CuOvalM", new TGeoEltu(3.375, 4.75, 135.), kMedCuHC);
1501+
TGeoVolume* voRB242CuOval =
1502+
new TGeoVolume("voRB242CuOval", new TGeoEltu(3.175, 4.55, 135.), kMedVacHC);
1503+
voRB242CuOvalM->AddNode(voRB242CuOval, 1, gGeoIdentity);
1504+
//
14781505
TGeoVolumeAssembly* voRB242 = new TGeoVolumeAssembly("RB242");
1479-
voRB242->AddNode(voRB242CuTube, 1, gGeoIdentity);
1506+
voRB242->AddNode(voRB242CuOvalM, 1, gGeoIdentity);
14801507
z = -kRB242CuTubeL / 2 + kRB24CuTubeFL / 2.;
14811508
voRB242->AddNode(voRB24CuTubeF, 3, new TGeoTranslation(0., 0., z));
14821509
z = +kRB242CuTubeL / 2 - kRB24CuTubeFL / 2.;
14831510
voRB242->AddNode(voRB24CuTubeF, 4, new TGeoTranslation(0., 0., z));
1484-
z = -kRB24cCuTubeL / 2 - kRB24VMABCL - kRB242CuTubeL / 2.;
1511+
z = 135. + 10.;
1512+
voRB242->AddNode(voRB242CuOvTransMo, 1, new TGeoCombiTrans(0., 0., z, rot180));
1513+
z = -135. - 10.;
1514+
voRB242->AddNode(voRB242CuOvTransMo, 2, new TGeoTranslation(0., 0., z));
1515+
z = -135. - 30.;
1516+
voRB242->AddNode(voRB242CuTubeM, 1, new TGeoTranslation(0., 0., z));
1517+
z = 135. + 30.;
1518+
voRB242->AddNode(voRB242CuTubeM, 2, new TGeoTranslation(0., 0., z));
1519+
z = -kRB24cCuTubeL / 2 - kRB24VMABCL - kRB242CuTubeL / 2. - 1.2;
14851520
voRB24C->AddNode(voRB242, 1, new TGeoTranslation(0., 0., z));
14861521
//
14871522
// RB24/3
14881523
//
14891524
// Copper Tube RB24/3
1490-
const Float_t kRB243CuTubeL = 303.35;
1525+
// the lenth of the tube is 296.85 on the drawing but this is inconsistent with the total length tube + bellow
1526+
const Float_t kRB243CuTubeL = 297.85;
14911527

14921528
TGeoVolume* voRB243CuTubeM =
14931529
new TGeoVolume("voRB243CuTubeM", new TGeoTube(0., kRB24CuTubeRo, kRB243CuTubeL / 2.), kMedVacNF);
@@ -1515,7 +1551,7 @@ void Pipe::ConstructGeometry()
15151551
z = -2. * (kRB243CuTubeL + kRB24B1L) - (kRB24VMABCL - kRB24VMABCRBT1L / 2) + 1.;
15161552
voRB243->AddNode(voRB24VMABCRB, 3, new TGeoTranslation(0., 0., z));
15171553

1518-
z = -kRB24cCuTubeL / 2 - kRB24VMABCL - kRB242CuTubeL;
1554+
z = -kRB24cCuTubeL / 2 - kRB24VMABCL - kRB242CuTubeL - 1.2;
15191555
voRB24C->AddNode(voRB243, 1, new TGeoTranslation(0., 0., z));
15201556

15211557
//

Detectors/ZDC/simulation/src/Detector.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ void Detector::createAsideBeamLine()
637637
Double_t tubspar[5] = {0., 0., 0., 0., 0.};
638638
Double_t conpar[15] = {0.}; // all elements will be 0
639639

640-
Float_t zA = 1910.2;
640+
Float_t zA = 1910.4;
641641

642642
conpar[0] = 0.;
643643
conpar[1] = 360.;

0 commit comments

Comments
 (0)