diff --git a/spack.yaml b/spack.yaml index 2acd16acf17f91a2f6956d86a21e133db71a9bab..9d8370256ed6ea6e0d4b8285fc7ffafd1c74edeb 100644 --- a/spack.yaml +++ b/spack.yaml @@ -24,7 +24,7 @@ spack: - podio@0.13 - geant4@10.7.1 cxxstd=17 +opengl +vecgeom +x11 +qt ^qt +opengl - dd4hep@1.16.1 +geant4 +assimp +hepmc3 +ipo - - acts@8.02.0 +dd4hep +digitization +identification +json +tgeo +ipo + - acts@8.02.0p1 +dd4hep +digitization +identification +json +tgeo +ipo - gaudi@34.0 - dawn@3_91a - dawncut@1_54a diff --git a/spack/packages/acts/acts-822.patch b/spack/packages/acts/acts-822.patch new file mode 100644 index 0000000000000000000000000000000000000000..8b91047206e0d01f78dfbe87738126adcab58060 --- /dev/null +++ b/spack/packages/acts/acts-822.patch @@ -0,0 +1,31 @@ +diff --git a/Core/src/Geometry/CylinderVolumeBuilder.cpp b/Core/src/Geometry/CylinderVolumeBuilder.cpp +index eba6f8617..950c5286b 100644 +--- a/Core/src/Geometry/CylinderVolumeBuilder.cpp ++++ b/Core/src/Geometry/CylinderVolumeBuilder.cpp +@@ -542,6 +542,7 @@ Acts::VolumeConfig Acts::CylinderVolumeBuilder::analyzeContent( + double zMaxD = center.z() + 0.5 * thickness; + lConfig.rMin = + std::min(lConfig.rMin, rMinD - m_cfg.layerEnvelopeR.first); ++ lConfig.rMin = std::max(0.0, lConfig.rMin); + lConfig.rMax = + std::max(lConfig.rMax, rMaxD + m_cfg.layerEnvelopeR.second); + lConfig.zMin = std::min(lConfig.zMin, zMinD - m_cfg.layerEnvelopeZ); +@@ -576,4 +577,4 @@ Acts::VolumeConfig Acts::CylinderVolumeBuilder::analyzeContent( + + // and return what you have + return lConfig; +-} +\ No newline at end of file ++} +diff --git a/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp b/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp +index 4d1695abf..455481538 100644 +--- a/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp ++++ b/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp +@@ -128,6 +128,7 @@ const Acts::LayerVector Acts::DD4hepLayerBuilder::endcapLayers( + std::abs(zMax - pl.max(Acts::binZ))}; + pl.envelope[Acts::binR] = {std::abs(rMin - pl.min(Acts::binR)), + std::abs(rMax - pl.max(Acts::binR))}; ++ pl.extent.ranges[Acts::binR] = {rMin, rMax}; + } + } else { + throw std::logic_error( diff --git a/spack/packages/acts/package.py b/spack/packages/acts/package.py index c86b6250f782226121a9a2dbccf1f372b5f39df0..eb788a546005329c0f316e0adbfe8efc5bec738e 100644 --- a/spack/packages/acts/package.py +++ b/spack/packages/acts/package.py @@ -37,6 +37,7 @@ class Acts(CMakePackage, CudaPackage): # Supported Acts versions version('master', branch='master') + version('8.02.0p1', commit='f25cf639915fc2ac65b03882ad3eb11fb037ed00') version('8.02.0', commit='f25cf639915fc2ac65b03882ad3eb11fb037ed00') version('8.01.0', commit='ccc8c77bbc011f3adc020c565a509815be0ea029') version('8.00.0', commit='50c972823144c007b406ae12d7ca25a1e0c35532') @@ -120,6 +121,10 @@ class Acts(CMakePackage, CudaPackage): variant('hepmc3', default=False, description='Build the HepMC3-based examples') variant('pythia8', default=False, description='Build the Pythia8-based examples') + ## Temporary patch for ACTS to address + ## https://github.com/acts-project/acts/issues/822 + patch('acts-822.patch', when='@8.02.0p1') + # Build dependencies # FIXME: Use spack's autodiff package once there is one depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3')