From 4d270bb1848ec015e743230904b8d201d3f0a118 Mon Sep 17 00:00:00 2001 From: Bryan Gonzalez Date: Mon, 3 Aug 2026 11:05:43 -0500 Subject: [PATCH 1/2] Made Changes to the IPA so that we get IPA EndRing output. Corrected EndRings half length and radial length as shown in protonAbsorber_cylindrical_v05.txt, changed the stopping material for the IPA EndRings and corrected the density to 0.426g/cm^3. Added debugging print to further investigate wire support placement in the End Rings --- Mu2eG4/geom/geom_run1.txt | 2 +- Mu2eG4/geom/geom_run1_a_stickman.txt | 2 +- .../geom/protonAbsorber_cylindrical_v05.txt | 131 ++++++++++++++++++ Mu2eG4/src/ConstructMaterials.cc | 11 +- Mu2eG4/src/constructProtonAbsorber.cc | 1 + 5 files changed, 143 insertions(+), 4 deletions(-) create mode 100644 Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt diff --git a/Mu2eG4/geom/geom_run1.txt b/Mu2eG4/geom/geom_run1.txt index 09f518237d..693e2f508c 100644 --- a/Mu2eG4/geom/geom_run1.txt +++ b/Mu2eG4/geom/geom_run1.txt @@ -63,7 +63,7 @@ double mu2e.detectorSystemZ0 = 10171.; // mm G4BL: (17730-7292=9801 mm) #include "Offline/Mu2eG4/geom/STM_v09.txt" // (muon) stopping target monitor // Proton Absorber -#include "Offline/Mu2eG4/geom/protonAbsorber_cylindrical_v04.txt" +#include "Offline/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt" #include "Offline/Mu2eG4/geom/degrader_v02.txt" // pion degrader. Off by default #include "Offline/Mu2eG4/geom/ProductionTarget_Hayman_v2_2.txt" diff --git a/Mu2eG4/geom/geom_run1_a_stickman.txt b/Mu2eG4/geom/geom_run1_a_stickman.txt index 47ed2d2bc8..3a6482810f 100644 --- a/Mu2eG4/geom/geom_run1_a_stickman.txt +++ b/Mu2eG4/geom/geom_run1_a_stickman.txt @@ -63,7 +63,7 @@ double mu2e.detectorSystemZ0 = 10171.; // mm G4BL: (17730-7292=9801 mm) #include "Offline/Mu2eG4/geom/STM_v09.txt" // (muon) stopping target monitor // Proton Absorber -#include "Offline/Mu2eG4/geom/protonAbsorber_cylindrical_v04.txt" +#include "Offline/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt" #include "Offline/Mu2eG4/geom/degrader_v02.txt" // pion degrader. Off by default #include "Offline/Mu2eG4/geom/ProductionTarget_Stickman_v1_0.txt" diff --git a/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt b/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt new file mode 100644 index 0000000000..4b75e9852c --- /dev/null +++ b/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt @@ -0,0 +1,131 @@ +// +// Conical proton absorber geometry file. +// Now the default is 1m inner part and 2.2m outer part. +// See doc-3186, 3155, 3006, and 2259 +// +// +// This version introduces an OPA version number and implements the OPA as +// 24 slats in a "barrel" shape instead +// of as a conical frustrum. Slots are cut in the barrel to allow support +// wires to penetrate. +// It also adds the support rods for the Stopping Target and the notches in +// the OPA support ring for those support rods. +// + +//Increment version number +int protonabsorber.version = 4; +int protonabsorber.verbosityLevel = 0; + +//IPA updates +string protonabsorber.materialName = "IPAPolyethylene"; +double protonabsorber.OutRadius1 = 300.5; //design is 300 mm inner radius, so add thickness to outer here +double protonabsorber.OutRadius0 = 300.5; +double protonabsorber.thickness = 0.511; // measured by S. Krave 6/22/2021 +int protonabsorber.verbosityLevel = 0; +bool protonabsorber.visible = true; +bool protonabsorber.solid = false; + +// To make inner part shorter than MECO design +bool protonabsorber.isShorterCone = true; +double protonabsorber.distFromTargetEnd = 625.; //mu2e z positions are 6901-7901 mm +double protonabsorber.halfLength = 500.0; + +bool protonabsorber.ipa.buildSupports = true; +int protonabsorber.ipa.nSets = 2; +double protonabsorber.ipa.wireRadius = 0.05388; // 3-mil diameter wire, but double area (sqrt(2) radius) for twisted return +string protonabsorber.ipa.wireMaterial = "ST_Wires"; //same W + Au plating wires as stopping target +double protonabsorber.ipa.wireRotationToVertical = 45; // degrees +int protonabsorber.ipa.nWiresPerSet = 3; //only 3 wires per side +double protonabsorber.ipa.wireAngleOffset = 30.; + +int protonabsorber.ipa.nEndRings = 2; + +//Corrected Dimensions - refer to Doc-57487-v3 +double protonabsorber.ipa.endRingHalfLength = 3.175; // 1/4" long in the z-direction +double protonabsorber.ipa.endRingRadialLength = 19.05; // 3/4" long in the r-direction +string protonabsorber.ipa.endRingMaterial = "IPAPolystyrene"; //Changed Material + + + +//OPA updates +int protonabsorber.outerPAversion = 4; +bool protonabsorber.isShorterCone = true; +bool protonabsorber.outerPA = true; +double protonabsorber.outerPAInnerRadius0 = 454.0; // was 452.4; +double protonabsorber.outerPAInnerRadius1 = 728.4; +double protonabsorber.outerPAHalfLength = 2125.0; // was 2137.5; +double protonabsorber.outerPAThickness = 20.0; +double protonabsorber.outerPAZCenter = 6405.0; // was 6392.5; +string protonabsorber.outerPAMaterialName = "Polyethylene096"; +int protonabsorber.outerPAnSides = 24; +double protonabsorber.outerPAslotWidth = 1.0; //mm +double protonabsorber.outerPAslotLength = 840.0; // mm +double protonabsorber.outerPAslotOffset = -410.0; // mm - relative + +// oPA Supports are Aluminum rings that support and "hold together" the +// OPA. Support rings and bars for the IPA are also included here +string protonabsorber.oPASupportMaterialName = "StainlessSteel316"; +int protonabsorber.oPASupportNSupportRing = 6; +vector protonabsorber.oPASupportInnerRadii = {506.3, 564.4, 665.0, 662. , 721. , 665.0}; //index 2 and 5 are 378.4 mm + 2*half lengths apart +vector protonabsorber.oPASupportOuterRadii = {606.3, 714.4, 685.0, 761.25, 819.35, 685.0}; +vector protonabsorber.oPASupportHalflength = { 12.7, 12.7, 4.76, 12.7 , 12.7 , 4.76}; +//upstream opa to upstream ends: 415.772, 1315.772, 2815.772, 3715.772 +vector protonabsorber.oPASupportZMidpoints = { 4683, 5583, 6183, 7083, 7983, 5883}; //OPA is from 4280-8530 +vector protonabsorber.oPASupportHasExtra = { 1.0, 1.0,-1.0,-1.0,-1.0,-1.0}; +vector protonabsorber.oPASupportExtraRad = { 180.0,50.0,0.,0.0,0.0,0.0}; +vector protonabsorber.oPASupportExtraDPhi = {80.,80.,0.,0.,0,0 }; +double protonabsorber.oPASupportNotchWidth = 130.; +double protonabsorber.oPASupportNotchHeight = 110.; +double protonabsorber.oPASupportSlatHeight = 20.0; // mm +double protonabsorber.oPASupportSlatWidth = 50.0; // mm +double protonabsorber.oPASupportSlatLength = 800.0; // mm - Same as ST + +vector protonabsorber.oPASupportMaterials = { "StainlessSteel316" + ,"StainlessSteel316" + ,"StainlessSteel316" + ,"StainlessSteel316" + ,"StainlessSteel316" + ,"StainlessSteel316"}; +//slats for the stopping target supports +int protonabsorber.nOPASupportSlats = 3; +vector protonabsorber.oPASupportSlatAngles = {0.,120.,240.}; // degrees +vector protonabsorber.oPASupportSlatTypes = {0 , 1 , 0 }; +int protonabsorber.nOPASupportSlatTypes = 2; +vector protonabsorber.oPASupportSlatMaterials = { "StainlessSteel316", "StainlessSteel316"}; +vector protonabsorber.oPASupportSlatFillMaterials = { "BronzeC642" , "G4_Al" }; +vector protonabsorber.oPASupportSlatHeights = { 45. , 40. }; // mm +vector protonabsorber.oPASupportSlatWidths = { 127., 35. }; // mm +vector protonabsorber.oPASupportSlatLengths = {1106.7, 1110. }; // mm +vector protonabsorber.oPASupportSlatSideThicknesses= { 19. , 5.08}; // mm +vector protonabsorber.oPASupportSlatTopThicknesses = { 12.7, 3.3 }; // mm +vector protonabsorber.oPASupportSlatFillParameter1 = { 12.7, 6.35}; //type 0: height type 1: rod radius +vector protonabsorber.oPASupportSlatFillParameter2 = { 15.9, 1106.7 }; //type 0: width type 1: rod length +vector protonabsorber.oPASupportSlatFillParameter3 = {1000. , 5. }; //type 0: length type 1: rod 1 y offset +vector protonabsorber.oPASupportSlatFillParameter4 = { -15. , -5. }; //type 0: x offset type 1: rod 2 y offset +//parameters for the weights tensioning the stopping target wires +double protonabsorber.oPASTWeightBox.height = 38.1; +double protonabsorber.oPASTWeightBox.width = 76.2; +double protonabsorber.oPASTWeightBox.length = 1150.; +double protonabsorber.oPASTWeightBox.radius = 660.; +double protonabsorber.oPASTWeightBox.angle = -34.; +double protonabsorber.oPASTWeight.height = 19.05; +double protonabsorber.oPASTWeight.width = 15.88; +string protonabsorber.oPASTWeight.material = "BronzeC642"; + +//cross supports for the OPA support rings/stopping target support rings +//see F10094560 drawing +int protonabsorber.nCrossSupports = 3; +vector protonabsorber.crossSupportThicknesses = { 9.95, 9.95, 9.95}; //bar thickness in phi/theta hat +vector protonabsorber.crossSupportWidth = { 19.05, 19.05, 19.05}; //bar thickness in r hat +vector protonabsorber.crossSupportOneIndex = { 2 , 2 , 2 }; //index of OPA support ring +vector protonabsorber.crossSupportTwoIndex = { 5 , 5 , 5 }; //index of OPA support ring +vector protonabsorber.crossSupportPhis = { -20. ,100. ,220. }; //phi about ring +vector protonabsorber.crossSupportHeights = {228.6 ,228.6 ,228.6 }; //height of box, width of box from ring separation +vector protonabsorber.crossSupportRadii = {665. ,665. ,665. }; //radius of the support center +string protonabsorber.crossSupportMaterial = "StainlessSteel316"; + + +// This tells emacs to view this file in c++ mode. +// Local Variables: +// mode:c++ +// End: diff --git a/Mu2eG4/src/ConstructMaterials.cc b/Mu2eG4/src/ConstructMaterials.cc index 55aeea3145..b2cedd2946 100644 --- a/Mu2eG4/src/ConstructMaterials.cc +++ b/Mu2eG4/src/ConstructMaterials.cc @@ -278,7 +278,7 @@ namespace mu2e { mat = uniqueMaterialOrThrow( "IPAPolyethylene"); { - G4Material* IPAPolyethylene = new G4Material( mat.name, 0.954*CLHEP::g/CLHEP::cm3, 2); + G4Material* IPAPolyethylene = new G4Material( mat.name, 1.05*CLHEP::g/CLHEP::cm3, 2); IPAPolyethylene->AddMaterial( findMaterialOrThrow("G4_H"), 0.11); IPAPolyethylene->AddMaterial( findMaterialOrThrow("G4_C"), 0.89); // Carbon doped Polytehylene, additional carbon 2-5% from MDS (DeWal DW 402B), density measured by S. Krave 6/22/2021 } @@ -1334,6 +1334,13 @@ namespace mu2e { CorrugatedPolypropylene->AddElement( getElementOrThrow("H"), 6); } + mat = uniqueMaterialOrThrow("IPAPolystyrene"); + { + G4double IPAEffectiveDensity = 0.426*CLHEP::g/CLHEP::cm3; //explicit density + G4Material* IPAPolystyrene = new G4Material( mat.name, IPAEffectiveDensity, 2); + IPAPolystyrene->AddElement( getElementOrThrow("C"), 8); + IPAPolystyrene->AddElement( getElementOrThrow("H"), 8); + } //G10-FR4 used for printed board of the I-Tracker // G10 http://personalpages.to.infn.it/~tosello/EngMeet/ITSmat/SDD/SDD_G10FR4.html @@ -1913,7 +1920,7 @@ namespace mu2e { != conductors.end() ) { G4NistManager::Instance()->SetDensityEffectCalculatorFlag(theMaterial, true); if (config_.debug().diagLevel() > 0) { - G4cout << "ConstructMaterials::" << __func__ + G4cout << "ConstructMaterials::" << __func__ << " Using correction in calculations for " << theMaterial->GetName() << ", its free electron density is " diff --git a/Mu2eG4/src/constructProtonAbsorber.cc b/Mu2eG4/src/constructProtonAbsorber.cc index 174ef37edc..ee608149fa 100644 --- a/Mu2eG4/src/constructProtonAbsorber.cc +++ b/Mu2eG4/src/constructProtonAbsorber.cc @@ -1614,6 +1614,7 @@ namespace mu2e { ostringstream wirename ; wirename << "IPAsupport_set" << iS << "_wire" << ++iW ; const double rStartOfWire = pabs1rOut0+(supportWire.originInMu2e().z()-zstartOfIPA)/pabs1len*(pabs1rOut1-pabs1rOut0); + std::cout << "Set " << iSet << ", Wire " << iWire << ": rStartOfWire = " << rStartOfWire << "\n"; // will be used for debugging const double wirePhi = iWire * 360.*CLHEP::deg / ipaSup->nWiresPerSet() + wire_angle_offset ; CLHEP::Hep3Vector additionalOffset ( (supportWire.halfLength()+0.005+rStartOfWire) * std::cos(wirePhi), From f857837e3b31171440693c4e37fd68e9acb277e5 Mon Sep 17 00:00:00 2001 From: Bryan Gonzalez Date: Mon, 3 Aug 2026 17:08:34 -0500 Subject: [PATCH 2/2] Adressed PR changes: accidentally made changes to IPApolyethylene - correct density should remain uncahed at 0.954, added guards to debug print in constructProtonAbsorber restructured v05 txt IPA EndRing output refers to the outputs in Produce, not in this directory --- .../geom/protonAbsorber_cylindrical_v05.txt | 127 +----------------- Mu2eG4/src/ConstructMaterials.cc | 10 +- Mu2eG4/src/constructProtonAbsorber.cc | 4 +- 3 files changed, 13 insertions(+), 128 deletions(-) diff --git a/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt b/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt index 4b75e9852c..0fc748c70f 100644 --- a/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt +++ b/Mu2eG4/geom/protonAbsorber_cylindrical_v05.txt @@ -1,131 +1,12 @@ // // Conical proton absorber geometry file. -// Now the default is 1m inner part and 2.2m outer part. -// See doc-3186, 3155, 3006, and 2259 +// Correced Dimensions and endRing Material +// See Doc-57487-v3 // -// -// This version introduces an OPA version number and implements the OPA as -// 24 slats in a "barrel" shape instead -// of as a conical frustrum. Slots are cut in the barrel to allow support -// wires to penetrate. -// It also adds the support rods for the Stopping Target and the notches in -// the OPA support ring for those support rods. -// - -//Increment version number -int protonabsorber.version = 4; -int protonabsorber.verbosityLevel = 0; - -//IPA updates -string protonabsorber.materialName = "IPAPolyethylene"; -double protonabsorber.OutRadius1 = 300.5; //design is 300 mm inner radius, so add thickness to outer here -double protonabsorber.OutRadius0 = 300.5; -double protonabsorber.thickness = 0.511; // measured by S. Krave 6/22/2021 -int protonabsorber.verbosityLevel = 0; -bool protonabsorber.visible = true; -bool protonabsorber.solid = false; -// To make inner part shorter than MECO design -bool protonabsorber.isShorterCone = true; -double protonabsorber.distFromTargetEnd = 625.; //mu2e z positions are 6901-7901 mm -double protonabsorber.halfLength = 500.0; +#include "Offline/Mu2eG4/geom/protonAbsorber_cylindrical_v04.txt" -bool protonabsorber.ipa.buildSupports = true; -int protonabsorber.ipa.nSets = 2; -double protonabsorber.ipa.wireRadius = 0.05388; // 3-mil diameter wire, but double area (sqrt(2) radius) for twisted return -string protonabsorber.ipa.wireMaterial = "ST_Wires"; //same W + Au plating wires as stopping target -double protonabsorber.ipa.wireRotationToVertical = 45; // degrees -int protonabsorber.ipa.nWiresPerSet = 3; //only 3 wires per side -double protonabsorber.ipa.wireAngleOffset = 30.; - -int protonabsorber.ipa.nEndRings = 2; - -//Corrected Dimensions - refer to Doc-57487-v3 +//Corrected Dimensions - overwriting previous entries double protonabsorber.ipa.endRingHalfLength = 3.175; // 1/4" long in the z-direction double protonabsorber.ipa.endRingRadialLength = 19.05; // 3/4" long in the r-direction string protonabsorber.ipa.endRingMaterial = "IPAPolystyrene"; //Changed Material - - - -//OPA updates -int protonabsorber.outerPAversion = 4; -bool protonabsorber.isShorterCone = true; -bool protonabsorber.outerPA = true; -double protonabsorber.outerPAInnerRadius0 = 454.0; // was 452.4; -double protonabsorber.outerPAInnerRadius1 = 728.4; -double protonabsorber.outerPAHalfLength = 2125.0; // was 2137.5; -double protonabsorber.outerPAThickness = 20.0; -double protonabsorber.outerPAZCenter = 6405.0; // was 6392.5; -string protonabsorber.outerPAMaterialName = "Polyethylene096"; -int protonabsorber.outerPAnSides = 24; -double protonabsorber.outerPAslotWidth = 1.0; //mm -double protonabsorber.outerPAslotLength = 840.0; // mm -double protonabsorber.outerPAslotOffset = -410.0; // mm - relative - -// oPA Supports are Aluminum rings that support and "hold together" the -// OPA. Support rings and bars for the IPA are also included here -string protonabsorber.oPASupportMaterialName = "StainlessSteel316"; -int protonabsorber.oPASupportNSupportRing = 6; -vector protonabsorber.oPASupportInnerRadii = {506.3, 564.4, 665.0, 662. , 721. , 665.0}; //index 2 and 5 are 378.4 mm + 2*half lengths apart -vector protonabsorber.oPASupportOuterRadii = {606.3, 714.4, 685.0, 761.25, 819.35, 685.0}; -vector protonabsorber.oPASupportHalflength = { 12.7, 12.7, 4.76, 12.7 , 12.7 , 4.76}; -//upstream opa to upstream ends: 415.772, 1315.772, 2815.772, 3715.772 -vector protonabsorber.oPASupportZMidpoints = { 4683, 5583, 6183, 7083, 7983, 5883}; //OPA is from 4280-8530 -vector protonabsorber.oPASupportHasExtra = { 1.0, 1.0,-1.0,-1.0,-1.0,-1.0}; -vector protonabsorber.oPASupportExtraRad = { 180.0,50.0,0.,0.0,0.0,0.0}; -vector protonabsorber.oPASupportExtraDPhi = {80.,80.,0.,0.,0,0 }; -double protonabsorber.oPASupportNotchWidth = 130.; -double protonabsorber.oPASupportNotchHeight = 110.; -double protonabsorber.oPASupportSlatHeight = 20.0; // mm -double protonabsorber.oPASupportSlatWidth = 50.0; // mm -double protonabsorber.oPASupportSlatLength = 800.0; // mm - Same as ST - -vector protonabsorber.oPASupportMaterials = { "StainlessSteel316" - ,"StainlessSteel316" - ,"StainlessSteel316" - ,"StainlessSteel316" - ,"StainlessSteel316" - ,"StainlessSteel316"}; -//slats for the stopping target supports -int protonabsorber.nOPASupportSlats = 3; -vector protonabsorber.oPASupportSlatAngles = {0.,120.,240.}; // degrees -vector protonabsorber.oPASupportSlatTypes = {0 , 1 , 0 }; -int protonabsorber.nOPASupportSlatTypes = 2; -vector protonabsorber.oPASupportSlatMaterials = { "StainlessSteel316", "StainlessSteel316"}; -vector protonabsorber.oPASupportSlatFillMaterials = { "BronzeC642" , "G4_Al" }; -vector protonabsorber.oPASupportSlatHeights = { 45. , 40. }; // mm -vector protonabsorber.oPASupportSlatWidths = { 127., 35. }; // mm -vector protonabsorber.oPASupportSlatLengths = {1106.7, 1110. }; // mm -vector protonabsorber.oPASupportSlatSideThicknesses= { 19. , 5.08}; // mm -vector protonabsorber.oPASupportSlatTopThicknesses = { 12.7, 3.3 }; // mm -vector protonabsorber.oPASupportSlatFillParameter1 = { 12.7, 6.35}; //type 0: height type 1: rod radius -vector protonabsorber.oPASupportSlatFillParameter2 = { 15.9, 1106.7 }; //type 0: width type 1: rod length -vector protonabsorber.oPASupportSlatFillParameter3 = {1000. , 5. }; //type 0: length type 1: rod 1 y offset -vector protonabsorber.oPASupportSlatFillParameter4 = { -15. , -5. }; //type 0: x offset type 1: rod 2 y offset -//parameters for the weights tensioning the stopping target wires -double protonabsorber.oPASTWeightBox.height = 38.1; -double protonabsorber.oPASTWeightBox.width = 76.2; -double protonabsorber.oPASTWeightBox.length = 1150.; -double protonabsorber.oPASTWeightBox.radius = 660.; -double protonabsorber.oPASTWeightBox.angle = -34.; -double protonabsorber.oPASTWeight.height = 19.05; -double protonabsorber.oPASTWeight.width = 15.88; -string protonabsorber.oPASTWeight.material = "BronzeC642"; - -//cross supports for the OPA support rings/stopping target support rings -//see F10094560 drawing -int protonabsorber.nCrossSupports = 3; -vector protonabsorber.crossSupportThicknesses = { 9.95, 9.95, 9.95}; //bar thickness in phi/theta hat -vector protonabsorber.crossSupportWidth = { 19.05, 19.05, 19.05}; //bar thickness in r hat -vector protonabsorber.crossSupportOneIndex = { 2 , 2 , 2 }; //index of OPA support ring -vector protonabsorber.crossSupportTwoIndex = { 5 , 5 , 5 }; //index of OPA support ring -vector protonabsorber.crossSupportPhis = { -20. ,100. ,220. }; //phi about ring -vector protonabsorber.crossSupportHeights = {228.6 ,228.6 ,228.6 }; //height of box, width of box from ring separation -vector protonabsorber.crossSupportRadii = {665. ,665. ,665. }; //radius of the support center -string protonabsorber.crossSupportMaterial = "StainlessSteel316"; - - -// This tells emacs to view this file in c++ mode. -// Local Variables: -// mode:c++ -// End: diff --git a/Mu2eG4/src/ConstructMaterials.cc b/Mu2eG4/src/ConstructMaterials.cc index b2cedd2946..50a7fe5027 100644 --- a/Mu2eG4/src/ConstructMaterials.cc +++ b/Mu2eG4/src/ConstructMaterials.cc @@ -1,4 +1,4 @@ -// + // // Construct materials requested by the run-time configuration system. // @@ -278,7 +278,7 @@ namespace mu2e { mat = uniqueMaterialOrThrow( "IPAPolyethylene"); { - G4Material* IPAPolyethylene = new G4Material( mat.name, 1.05*CLHEP::g/CLHEP::cm3, 2); + G4Material* IPAPolyethylene = new G4Material( mat.name, 0.954*CLHEP::g/CLHEP::cm3, 2); IPAPolyethylene->AddMaterial( findMaterialOrThrow("G4_H"), 0.11); IPAPolyethylene->AddMaterial( findMaterialOrThrow("G4_C"), 0.89); // Carbon doped Polytehylene, additional carbon 2-5% from MDS (DeWal DW 402B), density measured by S. Krave 6/22/2021 } @@ -1336,7 +1336,9 @@ namespace mu2e { mat = uniqueMaterialOrThrow("IPAPolystyrene"); { - G4double IPAEffectiveDensity = 0.426*CLHEP::g/CLHEP::cm3; //explicit density + // We used an explicity density here + // Reflects the corrected density for End Ring material + G4double IPAEffectiveDensity = 0.426*CLHEP::g/CLHEP::cm3; //explicit density refer to Doc-57487-v3 G4Material* IPAPolystyrene = new G4Material( mat.name, IPAEffectiveDensity, 2); IPAPolystyrene->AddElement( getElementOrThrow("C"), 8); IPAPolystyrene->AddElement( getElementOrThrow("H"), 8); @@ -1920,7 +1922,7 @@ namespace mu2e { != conductors.end() ) { G4NistManager::Instance()->SetDensityEffectCalculatorFlag(theMaterial, true); if (config_.debug().diagLevel() > 0) { - G4cout << "ConstructMaterials::" << __func__ + G4cout << "ConstructMaterials::" << __func__ << " Using correction in calculations for " << theMaterial->GetName() << ", its free electron density is " diff --git a/Mu2eG4/src/constructProtonAbsorber.cc b/Mu2eG4/src/constructProtonAbsorber.cc index ee608149fa..5c38d3a1fd 100644 --- a/Mu2eG4/src/constructProtonAbsorber.cc +++ b/Mu2eG4/src/constructProtonAbsorber.cc @@ -1614,7 +1614,9 @@ namespace mu2e { ostringstream wirename ; wirename << "IPAsupport_set" << iS << "_wire" << ++iW ; const double rStartOfWire = pabs1rOut0+(supportWire.originInMu2e().z()-zstartOfIPA)/pabs1len*(pabs1rOut1-pabs1rOut0); - std::cout << "Set " << iSet << ", Wire " << iWire << ": rStartOfWire = " << rStartOfWire << "\n"; // will be used for debugging + if ( verbosityLevel > 0){ + std::cout << "Set " << iSet << ", Wire " << iWire << ": rStartOfWire = " << rStartOfWire << "\n"; + } const double wirePhi = iWire * 360.*CLHEP::deg / ipaSup->nWiresPerSet() + wire_angle_offset ; CLHEP::Hep3Vector additionalOffset ( (supportWire.halfLength()+0.005+rStartOfWire) * std::cos(wirePhi),