diff --git a/GeometryService/src/MECOStyleProtonAbsorberMaker.cc b/GeometryService/src/MECOStyleProtonAbsorberMaker.cc index 9bf595e5bc..a39221223a 100644 --- a/GeometryService/src/MECOStyleProtonAbsorberMaker.cc +++ b/GeometryService/src/MECOStyleProtonAbsorberMaker.cc @@ -125,6 +125,14 @@ namespace mu2e { // we add space for the virtual detector here double targetEnd = _target->centerInMu2e().z() + 0.5*_target->cylinderLength() + 2.*vdHL;; + // Optional absolute pinning: when protonabsorber.zStartInMu2e is set, + // the IPA's upstream end sits at that absolute z regardless of the + // stopping target; distFromTargetEnd then only anchors the cone-radius + // interpolation. Unset (default): stock target-relative behavior. + if ( _config.hasName("protonabsorber.zStartInMu2e") ) { + targetEnd = _config.getDouble("protonabsorber.zStartInMu2e") - distFromTargetEnd; + } + // distance from target end to ds2-ds3 boundary double targetEndToDS2End = _ds->vac_zLocDs23Split() - targetEnd; diff --git a/Mu2eG4/geom/protonAbsorber_cylindrical_v04.txt b/Mu2eG4/geom/protonAbsorber_cylindrical_v04.txt index 673904b182..4cedf0fa6e 100644 --- a/Mu2eG4/geom/protonAbsorber_cylindrical_v04.txt +++ b/Mu2eG4/geom/protonAbsorber_cylindrical_v04.txt @@ -29,6 +29,9 @@ 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 +// Optional: pin the IPA at an absolute z, independent of the stopping +// target (see MECOStyleProtonAbsorberMaker): +// double protonabsorber.zStartInMu2e = 6901.; double protonabsorber.halfLength = 500.0; bool protonabsorber.ipa.buildSupports = true;