Skip to content

Commit

Permalink
Add polyurthane and polyethilene
Browse files Browse the repository at this point in the history
  • Loading branch information
mconcas committed Jan 24, 2024
1 parent d297f5a commit 63a2fd5
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKServices.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,29 @@ void TRKServices::createMaterials()
float wAir[4] = {0.000124, 0.755267, 0.231781, 0.012827};
float dAir = 1.20479E-3;

matmgr.Mixture("ALICE3_TRKSERVICES", 66, "CERAMIC$", aCer, zCer, dCer, 2, wCer); // Ceramic for cold plate
matmgr.Material("ALICE3_TRKSERVICES", 67, "COPPER", 63.546, 29, 8.96, 1.43, 15.1); // Copper for cables
matmgr.Mixture("ALICE3_TRKSERVICES", 68, "VACUUM", aAir, zAir, dAir, 4, wAir); // Vacuum for placeholding cables

matmgr.Medium("ALICE3_TRKSERVICES", 1, "CERAMIC", 66, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Ceramic for cold plate
matmgr.Medium("ALICE3_TRKSERVICES", 2, "COPPER", 67, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Copper for cables
matmgr.Medium("ALICE3_TRKSERVICES", 3, "VACUUM", 68, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Vacuum for placeholding cables
// Polyethylene from alice 2 absorber
float aPolyethylene[2] = {12.01, 1.};
float zPolyethylene[2] = {6., 1.};
float wPolyethylene[2] = {.33, .67};

// Polyurethane [HN-CO-O] from alice 2 mft
int nPolyurethane = 4;
float aPolyurethane[4] = {1.00794, 14.010, 12.0107, 15.9994};
float zPolyurethane[4] = {1.0, 7.0, 6.0, 8.0};
float wPolyurethane[4] = {0.017077588, 0.237314387, 0.203327619, 0.542280405};
float dPolyurethane = 1.25;

matmgr.Mixture("ALICE3_TRKSERVICES", 66, "CERAMIC$", aCer, zCer, dCer, 2, wCer); // Ceramic for cold plate
matmgr.Mixture("ALICE3_TRKSERVICES", 68, "VACUUM", aAir, zAir, dAir, 4, wAir); // Vacuum for placeholding cables
matmgr.Mixture("ALICE3_TRKSERVICES", 69, "POLYETHYLENE", aPolyethylene, zPolyethylene, .95, 2, wPolyethylene); // Polyethylene for fibers
matmgr.Mixture("ALICE3_TRKSERVICES", 70, "POLYURETHANE", aPolyurethane, zPolyurethane, dPolyurethane, nPolyurethane, wPolyurethane); // Polyurethane for cooling pipes
matmgr.Material("ALICE3_TRKSERVICES", 67, "COPPER", 63.546, 29, 8.96, 1.43, 15.1); // Copper for cables

matmgr.Medium("ALICE3_TRKSERVICES", 1, "CERAMIC", 66, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Ceramic for cold plate
matmgr.Medium("ALICE3_TRKSERVICES", 2, "COPPER", 67, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Copper for cables
matmgr.Medium("ALICE3_TRKSERVICES", 3, "VACUUM", 68, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Vacuum for placeholding cables
matmgr.Medium("ALICE3_TRKSERVICES", 4, "POLYETHYLENE", 69, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Polyethylene for fibers
matmgr.Medium("ALICE3_TRKSERVICES", 5, "POLYURETHANE", 70, 0, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin); // Polyurethane for cooling pipes
}

void TRKServices::createServices(TGeoVolume* motherVolume)
Expand Down Expand Up @@ -109,7 +125,7 @@ void TRKServices::createCables(TGeoVolume* motherVolume)
TGeoTube* cableFan = new TGeoTube("TRK_CABLEFAN_MIDsh", rMinInnerCables, rMaxInnerCables, mMiddleDiskThickness * mCableFanWeights[iCableFan]);
TGeoVolume* cableFanVolume = new TGeoVolume("TRK_CABLEFAN_MID", cableFan, !(iCableFan % 2) ? medVac : medCop);
cableFanVolume->SetLineColor(!(iCableFan % 2) ? kGray : kBlack);
auto* rot = new TGeoRotation(Form("TRK_CABLEFAN_MID_ROT_%d", iCableFan), 0, 0, 180);
auto* rot = new TGeoRotation(Form("TRK_CABLEFAN_MID_ROT_%d", (size_t)iCableFan), 0, 0, 180);
float incrShiftW = std::accumulate(mCableFanWeights.begin(), mCableFanWeights.begin() + iCableFan + 1, -mCableFanWeights[0]);
auto* combiTrans = new TGeoCombiTrans(0, 0, zLengthInnerCables + 0.5 * mMiddleDiskThickness + incrShiftW * mMiddleDiskThickness, rot);

Expand All @@ -127,7 +143,7 @@ void TRKServices::createCables(TGeoVolume* motherVolume)
TGeoTube* cableFan = new TGeoTube("TRK_CABLEFAN_EXTsh", rMinOuterCables, rMaxOuterCables, mMiddleDiskThickness * mCableFanWeights[iCableFan]);
TGeoVolume* cableFanVolume = new TGeoVolume("TRK_CABLEFAN_EXT", cableFan, !(iCableFan % 2) ? medVac : medCop);
cableFanVolume->SetLineColor(!(iCableFan % 2) ? kGray : kBlack);
auto* rot = new TGeoRotation(Form("TRK_CABLEFAN_EXT_ROT_%d", iCableFan), 0, 0, 180);
auto* rot = new TGeoRotation(Form("TRK_CABLEFAN_EXT_ROT_%d", (size_t)iCableFan), 0, 0, 180);
float incrShiftW = std::accumulate(mCableFanWeights.begin(), mCableFanWeights.begin() + iCableFan + 1, -mCableFanWeights[0]);
auto* combiTrans = new TGeoCombiTrans(0, 0, zLengthOuterCables + 0.5 * mMiddleDiskThickness + incrShiftW * mMiddleDiskThickness, rot);

Expand Down

0 comments on commit 63a2fd5

Please sign in to comment.