From 2a08c3965f2c438bd6140cff7fcb22f2e6328b5b Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 18 Jul 2025 08:38:37 -0500 Subject: [PATCH 01/23] fix: ACTS_VERSION=v39.2.0 in run_material_map_validation.sh --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index bdfaed9bca..308509732f 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -11,7 +11,7 @@ if [[ -z ${DETECTOR_PATH} ]] ; then fi # Download required Acts files -ACTS_VERSION="v36.3.2" +ACTS_VERSION="v39.2.0" ACTS_URL="https://github.com/acts-project/acts/raw/" ACTS_FILES=( "Examples/Scripts/Python/geometry.py" From 568d35e89d1a4c3a87415ac3f4311471404bd009 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 18 Jul 2025 08:57:17 -0500 Subject: [PATCH 02/23] fix: update patch in run_material_map_validation.sh --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 308509732f..6fdf909a9a 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -42,7 +42,7 @@ diff -aru a/Examples/Scripts/MaterialMapping/Mat_map.C b/Examples/Scripts/Materi // 2D map for Validation input TCanvas *VM = new TCanvas("VM","Validation Map") ; -- Val_file->Draw("mat_y:mat_z","fabs(mat_x)<1"); +- Val_file->Draw("mat_y:mat_z","std::abs(mat_x)<1"); + Val_file->Draw("sqrt(mat_x**2+mat_y**2):mat_z>>mat_map1","(mat_z>-5000)&(mat_z<8000)"); + VM->SetGrid(); From 30781711b6f55a98b0e8d1f0611ed69d072ebc25 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 18 Jul 2025 12:00:31 -0500 Subject: [PATCH 03/23] fix: adapt to acts#3498 changes in python detector handling --- scripts/material_map/epic.py | 10 +++------- scripts/material_map/geometry_epic.py | 4 +++- scripts/material_map/material_mapping_epic.py | 5 +++-- scripts/material_map/material_recording_epic.py | 9 ++------- scripts/material_map/material_validation_epic.py | 4 +++- 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/scripts/material_map/epic.py b/scripts/material_map/epic.py index 4e8fc28583..cc02cef72d 100644 --- a/scripts/material_map/epic.py +++ b/scripts/material_map/epic.py @@ -35,15 +35,11 @@ def getDetector( level=customLogLevel(maxLevel=acts.logging.INFO), ) - dd4hepConfig = acts.examples.dd4hep.DD4hepGeometryService.Config( + dd4hepConfig = acts.examples.dd4hep.DD4hepDetector.Config( xmlFileNames=[xmlFile], logLevel=logLevel, dd4hepLogLevel=customLogLevel(), ) - detector = acts.examples.dd4hep.DD4hepDetector() + detector = acts.examples.dd4hep.DD4hepDetector(dd4hepConfig) - config = acts.MaterialMapJsonConverter.Config() - - trackingGeometry, deco = detector.finalize(dd4hepConfig, matDeco) - - return detector, trackingGeometry, deco + return detector diff --git a/scripts/material_map/geometry_epic.py b/scripts/material_map/geometry_epic.py index 08d231a335..80aa3b996c 100644 --- a/scripts/material_map/geometry_epic.py +++ b/scripts/material_map/geometry_epic.py @@ -27,7 +27,9 @@ ) args = p.parse_args() - detector, trackingGeometry, decorators = epic.getDetector(args.xmlFile) + detector = epic.getDetector(args.xmlFile) + trackingGeometry = detector.trackingGeometry() + decorators = detector.contextDecorators() runGeometry( trackingGeometry, diff --git a/scripts/material_map/material_mapping_epic.py b/scripts/material_map/material_mapping_epic.py index d99a458e1c..d5eb645d33 100644 --- a/scripts/material_map/material_mapping_epic.py +++ b/scripts/material_map/material_mapping_epic.py @@ -44,9 +44,10 @@ print('ERROR(material_mapping_epic.py): please provide a material map file in .json or .cbor format') exit() - detector, trackingGeometry, decorators = epic.getDetector( + detector = epic.getDetector( args.xmlFile, args.geoFile) - + trackingGeometry = detector.trackingGeometry() + decorators = detector.contextDecorators() runMaterialMapping( trackingGeometry, diff --git a/scripts/material_map/material_recording_epic.py b/scripts/material_map/material_recording_epic.py index 85290e9552..925cbedd35 100644 --- a/scripts/material_map/material_recording_epic.py +++ b/scripts/material_map/material_recording_epic.py @@ -18,7 +18,6 @@ import acts.examples.dd4hep import acts.examples.geant4 -import acts.examples.geant4.dd4hep import epic from material_recording import runMaterialRecording @@ -57,15 +56,11 @@ def main(): ) args = p.parse_args() - detector, trackingGeometry, decorators = epic.getDetector( + detector = epic.getDetector( args.xmlFile) - detectorConstructionFactory = ( - acts.examples.geant4.dd4hep.DDG4DetectorConstructionFactory(detector) - ) - runMaterialRecording( - detectorConstructionFactory=detectorConstructionFactory, + detector=detector, tracksPerEvent=args.tracks, outputDir=os.getcwd(), etaRange=(args.eta_min, args.eta_max), diff --git a/scripts/material_map/material_validation_epic.py b/scripts/material_map/material_validation_epic.py index fc636abe49..fce15c993d 100644 --- a/scripts/material_map/material_validation_epic.py +++ b/scripts/material_map/material_validation_epic.py @@ -50,7 +50,9 @@ args = p.parse_args() - detector, trackingGeometry, decorators = epic.getDetector(args.xmlFile, args.matFile) + detector = epic.getDetector(args.xmlFile, args.matFile) + trackingGeometry = detector.trackingGeometry() + decorators = detector.contextDecorators() field = acts.ConstantBField(acts.Vector3(0, 0, 0)) From 67a45ce0061033323bd196a600e4b7bb5ce333da Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 22 Jul 2025 09:58:34 -0500 Subject: [PATCH 04/23] fix: implement print_the_help --- scripts/material_map/run_material_map_validation.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 6fdf909a9a..fa04dcd61b 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -71,6 +71,18 @@ export ACTS_SEQUENCER_DISABLE_FPEMON=1 # Default arguments nevents=1000 nparticles=5000 + +function print_the_help { + echo "USAGE: [--nevents ] [--nparticles ]" + echo "OPTIONAL ARGUMENTS:" + echo " --nevents Number of events (default: $nevents)" + echo " --nparticles Number of particles per event (default: $nparticles)" + echo " -h,--help Print this message" + echo "" + echo " Run material map validation." + exit +} + while [[ $# -gt 1 ]] do key="$1" From 007288c916401954692324ccf8e5968d9219750a Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 22 Jul 2025 19:25:55 -0500 Subject: [PATCH 05/23] fix: avoid bad seed --- scripts/material_map/run_material_map_validation.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index fa04dcd61b..16f0c32255 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -116,6 +116,7 @@ propFile=propagation_material echo "::group::----GEANTINO SCAN------" # output geant4_material_tracks.root # The result of the geantino scan will be a root file containing material tracks. Those contain the direction and production vertex of the geantino, the total material accumulated and all the interaction points in the detector. +sed -i 's/seed=228/seed=305/' Examples/Scripts/Python/material_recording.py python material_recording_epic.py -i ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml -n ${nevents} -t ${nparticles} -o ${recordingFile} echo "::endgroup::" From 0596d6bb06537e9fb6ea393d6cb6582966f97c18 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 22 Jul 2025 20:17:01 -0500 Subject: [PATCH 06/23] fix: seed=306 --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 16f0c32255..e37ac12cce 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -116,7 +116,7 @@ propFile=propagation_material echo "::group::----GEANTINO SCAN------" # output geant4_material_tracks.root # The result of the geantino scan will be a root file containing material tracks. Those contain the direction and production vertex of the geantino, the total material accumulated and all the interaction points in the detector. -sed -i 's/seed=228/seed=305/' Examples/Scripts/Python/material_recording.py +sed -i 's/seed=228/seed=306/' Examples/Scripts/Python/material_recording.py python material_recording_epic.py -i ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml -n ${nevents} -t ${nparticles} -o ${recordingFile} echo "::endgroup::" From 5e33557a4b8f0d7c4888c93c21c5abad3c73c269 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 23 Jul 2025 11:29:27 -0500 Subject: [PATCH 07/23] fix: stop the fudging --- .../tracking/central_tracker_hybrid_v2.xml | 52 +++++++++---------- compact/tracking/silicon_barrel.xml | 6 +-- compact/tracking/silicon_disks.xml | 42 +++++++-------- compact/tracking/tof_endcap.xml | 4 +- compact/tracking/vertex_barrel.xml | 2 +- 5 files changed, 53 insertions(+), 53 deletions(-) diff --git a/compact/tracking/central_tracker_hybrid_v2.xml b/compact/tracking/central_tracker_hybrid_v2.xml index 925192edfe..a4aa68a661 100644 --- a/compact/tracking/central_tracker_hybrid_v2.xml +++ b/compact/tracking/central_tracker_hybrid_v2.xml @@ -156,8 +156,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + Place asymmetrically in the layer (module sits near the bottom). @@ -238,7 +238,7 @@ total X0 0.24% per disk layer (4 sectors per disk): Global Si endcap variables - + @@ -259,11 +259,11 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + - - + + @@ -565,8 +565,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + @@ -576,8 +576,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + The tracker endcap ends at the same place as the outer tracker barrel that sits around it @@ -762,8 +762,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + @@ -772,8 +772,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + @@ -782,8 +782,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + The Si tracker endcap ends at position of the last disk @@ -800,8 +800,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + @@ -810,8 +810,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + The Si tracker endcap ends at position of the last disk @@ -973,7 +973,7 @@ total X0 0.24% per disk layer (4 sectors per disk): - + Parameters for the "ring" GEMS around the silicon tracker, which are all identical @@ -993,8 +993,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + z position of the "ring" GEMS, note that some are offset slightly @@ -1031,8 +1031,8 @@ total X0 0.24% per disk layer (4 sectors per disk): - - + + diff --git a/compact/tracking/silicon_barrel.xml b/compact/tracking/silicon_barrel.xml index 4fbce770b5..b71747560c 100644 --- a/compact/tracking/silicon_barrel.xml +++ b/compact/tracking/silicon_barrel.xml @@ -31,9 +31,9 @@ 84cm=2*42cm is the engineer max - - - + + + diff --git a/compact/tracking/silicon_disks.xml b/compact/tracking/silicon_disks.xml index 36f5b9e3e7..bd50f6c5ea 100644 --- a/compact/tracking/silicon_disks.xml +++ b/compact/tracking/silicon_disks.xml @@ -28,7 +28,7 @@ Global Si endcap variables - + @@ -42,8 +42,8 @@ - - + + @@ -52,8 +52,8 @@ - - + + @@ -130,8 +130,8 @@ - - + + @@ -139,8 +139,8 @@ - - + + @@ -148,8 +148,8 @@ - - + + @@ -157,8 +157,8 @@ - - + + @@ -167,8 +167,8 @@ - - + + @@ -176,8 +176,8 @@ - - + + @@ -185,8 +185,8 @@ - - + + symmetric N and P disks (5 each) @@ -195,8 +195,8 @@ - - + + diff --git a/compact/tracking/tof_endcap.xml b/compact/tracking/tof_endcap.xml index 7ee623b249..0988b0fabb 100644 --- a/compact/tracking/tof_endcap.xml +++ b/compact/tracking/tof_endcap.xml @@ -107,8 +107,8 @@ - - + + diff --git a/compact/tracking/vertex_barrel.xml b/compact/tracking/vertex_barrel.xml index f2fc4ad20b..9c7395c0ff 100644 --- a/compact/tracking/vertex_barrel.xml +++ b/compact/tracking/vertex_barrel.xml @@ -27,7 +27,7 @@ - + From 4bc17978b1d46cb8ef214ed318f3298eccd04c65 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 23 Jul 2025 12:46:22 -0500 Subject: [PATCH 08/23] test: run material_mapping.py in acts.logging.VERBOSE and tail -n 500 --- scripts/material_map/run_material_map_validation.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index e37ac12cce..ea3984ab51 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -144,7 +144,8 @@ echo "::group::----MAPPING------------" # input: geant4_material_tracks.root, geometry-map.json # output: material-maps.json or cbor. This is the material map that you want to provide to EICrecon, i.e. -Pacts:MaterialMap=XXX .Please --matFile to specify the name and type # material-maps_tracks.root(recorded steps from geantino, for validation purpose) -python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} +sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py +python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" echo "::group::----Prepare validation rootfile--------" From b6c175220e7f3d584a4ddf690314073869c71c9b Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 23 Jul 2025 13:56:17 -0500 Subject: [PATCH 09/23] fix: also run navigator in verbose mode --- scripts/material_map/run_material_map_validation.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index ea3984ab51..9b94e3fa2e 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -145,6 +145,7 @@ echo "::group::----MAPPING------------" # output: material-maps.json or cbor. This is the material map that you want to provide to EICrecon, i.e. -Pacts:MaterialMap=XXX .Please --matFile to specify the name and type # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py +sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" From 83a3425fb5d943e324c60793e849a46417b2265a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 23 Jul 2025 18:56:39 +0000 Subject: [PATCH 10/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 9b94e3fa2e..9cfdb13bf8 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -145,7 +145,7 @@ echo "::group::----MAPPING------------" # output: material-maps.json or cbor. This is the material map that you want to provide to EICrecon, i.e. -Pacts:MaterialMap=XXX .Please --matFile to specify the name and type # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py -sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py +sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" From 1d2f1c701fd13ae3ebcf5d263d2a1610d8ed59aa Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 28 Jul 2025 11:53:37 -0500 Subject: [PATCH 11/23] fix: set B0 tracker envelopes large enough --- compact/far_forward/B0_tracker.xml | 20 ++++++++------------ src/B0Tracker_geo.cpp | 25 ++++++++++--------------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/compact/far_forward/B0_tracker.xml b/compact/far_forward/B0_tracker.xml index 3d44537cb3..06a64fc3da 100644 --- a/compact/far_forward/B0_tracker.xml +++ b/compact/far_forward/B0_tracker.xml @@ -111,9 +111,8 @@ - + @@ -124,9 +123,8 @@ - + @@ -137,9 +135,8 @@ - + @@ -150,9 +147,8 @@ - + diff --git a/src/B0Tracker_geo.cpp b/src/B0Tracker_geo.cpp index ac6a3dc9d3..9c3a9245ad 100644 --- a/src/B0Tracker_geo.cpp +++ b/src/B0Tracker_geo.cpp @@ -163,17 +163,12 @@ static Ref_t create_B0Tracker(Detector& description, xml_h e, SensitiveDetector xml_comp_t l_env = x_layer.child(_U(envelope)); string layer_name = det_name + std::string("_layer") + std::to_string(l_id); - std::string layer_vis = l_env.attr(_Unicode(vis)); - double layer_rmin_tolerance = l_env.attr(_Unicode(rmin_tolerance)); - double layer_rmax_tolerance = l_env.attr(_Unicode(rmax_tolerance)); - double layer_zmin_tolerance = l_env.attr(_Unicode(zmin_tolerance)); - double layer_zmax_tolerance = l_env.attr(_Unicode(zmax_tolerance)); - double layer_length = l_env.attr(_Unicode(length)); - double layer_zstart = l_env.attr(_Unicode(zstart)); - double layer_center_z = layer_zstart + layer_length / 2.0; - // printout(INFO,"ROOTGDMLParse","+++ Read geometry from GDML file file:%s",input.c_str()); - // std::cout << "SiTracker Endcap layer " << l_id << " zstart = " << layer_zstart/dd4hep::mm << "mm ( " << - // layer_length/dd4hep::mm << " mm thick )\n"; + std::string layer_vis = l_env.attr(_Unicode(vis)); + double envelope_r_min = l_env.attr(_Unicode(rmin)); + double envelope_r_max = l_env.attr(_Unicode(rmax)); + double envelope_z_min = l_env.attr(_Unicode(zmin)); + double envelope_z_max = l_env.attr(_Unicode(zmax)); + double layer_center_z = (envelope_z_min + envelope_z_max) / 2.0; Assembly layer_vol(layer_name); PlacedVolume layer_pv; @@ -226,10 +221,10 @@ static Ref_t create_B0Tracker(Detector& description, xml_h e, SensitiveDetector } } layer_vol->GetShape()->ComputeBBox(); - layerParams.set("envelope_r_min", layer_rmin_tolerance / dd4hep::mm); - layerParams.set("envelope_r_max", layer_rmax_tolerance / dd4hep::mm); - layerParams.set("envelope_z_min", layer_zmin_tolerance / dd4hep::mm); - layerParams.set("envelope_z_max", layer_zmax_tolerance / dd4hep::mm); + layerParams.set("envelope_r_min", envelope_r_min); + layerParams.set("envelope_r_max", envelope_r_max); + layerParams.set("envelope_z_min", envelope_z_min); + layerParams.set("envelope_z_max", envelope_z_max); for (xml_coll_t lmat(x_layer, _Unicode(layer_material)); lmat; ++lmat) { xml_comp_t x_layer_material = lmat; From 46086a0d9b1b70d2d54942645d5224aa713cb809 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 28 Jul 2025 13:54:06 -0500 Subject: [PATCH 12/23] fix: disable material_mapping.py debugging --- scripts/material_map/run_material_map_validation.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 9cfdb13bf8..dc872291fb 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -144,9 +144,10 @@ echo "::group::----MAPPING------------" # input: geant4_material_tracks.root, geometry-map.json # output: material-maps.json or cbor. This is the material map that you want to provide to EICrecon, i.e. -Pacts:MaterialMap=XXX .Please --matFile to specify the name and type # material-maps_tracks.root(recorded steps from geantino, for validation purpose) -sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py -sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py -python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 +# The following two lines enable extensive debugging +#sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py +#sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py +python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} echo "::endgroup::" echo "::group::----Prepare validation rootfile--------" From 1c453996126d5a3f4677c05f3a79dc0614cec9b6 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 22:48:35 -0500 Subject: [PATCH 13/23] Revert "fix: disable material_mapping.py debugging" This reverts commit a04166fa2aa5cc292ec8411ebd2e96c521ac1a71. --- scripts/material_map/run_material_map_validation.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index dc872291fb..9cfdb13bf8 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -144,10 +144,9 @@ echo "::group::----MAPPING------------" # input: geant4_material_tracks.root, geometry-map.json # output: material-maps.json or cbor. This is the material map that you want to provide to EICrecon, i.e. -Pacts:MaterialMap=XXX .Please --matFile to specify the name and type # material-maps_tracks.root(recorded steps from geantino, for validation purpose) -# The following two lines enable extensive debugging -#sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py -#sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py -python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} +sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py +sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py +python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" echo "::group::----Prepare validation rootfile--------" From c1e46411b8b13880bbf508a003a0ac5134274f13 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 31 Jul 2025 15:20:18 -0500 Subject: [PATCH 14/23] fix: print some geometry debug info avoid multiple sed append --- scripts/material_map/run_material_map_validation.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 9cfdb13bf8..e8a6bc8ab2 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -140,12 +140,21 @@ mkdir -p plots python Examples/Scripts/MaterialMapping/GeometryVisualisationAndMaterialHandling.py --geometry ${geoFile} echo "::endgroup::" +echo "::group::----MAPPING Debugging-----" +echo "Volumes by name:" +jq -r '.Volumes.entries[] | "vol=\(.volume): \(.value.NAME)"' geometry-map.json +echo "Volume surfaces:" +jq -r '.Surfaces.entries[] | select(.boundary != null) | "vol=\(.volume)|bnd=\(.boundary): \(.value.type) \(.value.bounds.type) \(.value.bounds.values) rot=\(.value.transform.rotation) pos=\(.value.transform.translation)"' geometry-map.json +echo "Layer surfaces:" +jq -r '.Surfaces.entries[] | select(.volume < 40 and .layer != null) | "vol=\(.volume)|lay=\(.layer): \(.value.type) \(.value.bounds.type) \(.value.bounds.values) rot=\(.value.transform.rotation) pos=\(.value.transform.translation)"' geometry-map.json +echo "::endgroup::" + echo "::group::----MAPPING------------" # input: geant4_material_tracks.root, geometry-map.json # output: material-maps.json or cbor. This is the material map that you want to provide to EICrecon, i.e. -Pacts:MaterialMap=XXX .Please --matFile to specify the name and type # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py -sed -i 's/navigator = Navigator(/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py +sed -i 's/navigator = Navigator($/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" From f76bc99665b435c040ea3a3d9e0b5909c5f46809 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 1 Aug 2025 09:21:45 -0500 Subject: [PATCH 15/23] fix: propagator verbose too --- scripts/material_map/run_material_map_validation.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index e8a6bc8ab2..e366ca105a 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -155,6 +155,7 @@ echo "::group::----MAPPING------------" # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py sed -i 's/navigator = Navigator($/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py +sed -i 's/propagator = Propagator(stepper, navigator/&, level=acts.logging.VERBOSE)/' Examples/Scripts/Python/material_mapping.py python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" From 23e4a5241c65f7db14c7d4262013125c334f7e1a Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 1 Aug 2025 10:39:33 -0500 Subject: [PATCH 16/23] fix: avoid double parentheses --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index e366ca105a..6122fcfbcf 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -155,7 +155,7 @@ echo "::group::----MAPPING------------" # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py sed -i 's/navigator = Navigator($/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py -sed -i 's/propagator = Propagator(stepper, navigator/&, level=acts.logging.VERBOSE)/' Examples/Scripts/Python/material_mapping.py +sed -i 's/propagator = Propagator(stepper, navigator)/&, level=acts.logging.VERBOSE)/' Examples/Scripts/Python/material_mapping.py python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" From 2c9c40daac2bf36624d4b28475d339400ca714b3 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 1 Aug 2025 12:21:44 -0500 Subject: [PATCH 17/23] fix: propagator again --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 6122fcfbcf..be293a3e23 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -155,7 +155,7 @@ echo "::group::----MAPPING------------" # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py sed -i 's/navigator = Navigator($/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py -sed -i 's/propagator = Propagator(stepper, navigator)/&, level=acts.logging.VERBOSE)/' Examples/Scripts/Python/material_mapping.py +sed -i 's/propagator = Propagator(stepper, navigator/&, level=acts.logging.VERBOSE/' Examples/Scripts/Python/material_mapping.py python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" From 4b7f7de785171fb52175c469372b9f713338997d Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 1 Aug 2025 13:19:55 -0500 Subject: [PATCH 18/23] fix: propagator uses loglevel --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index be293a3e23..a76140ffbb 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -155,7 +155,7 @@ echo "::group::----MAPPING------------" # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py sed -i 's/navigator = Navigator($/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py -sed -i 's/propagator = Propagator(stepper, navigator/&, level=acts.logging.VERBOSE/' Examples/Scripts/Python/material_mapping.py +sed -i 's/propagator = Propagator(stepper, navigator/&, loglevel=acts.logging.VERBOSE/' Examples/Scripts/Python/material_mapping.py python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 echo "::endgroup::" From 2777044b116d3115a825142459e089f0ff425a0c Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 1 Aug 2025 15:36:56 -0500 Subject: [PATCH 19/23] fix: tail -n 5000 --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index a76140ffbb..e37c2715d0 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -156,7 +156,7 @@ echo "::group::----MAPPING------------" sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py sed -i 's/navigator = Navigator($/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py sed -i 's/propagator = Propagator(stepper, navigator/&, loglevel=acts.logging.VERBOSE/' Examples/Scripts/Python/material_mapping.py -python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 500 +python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 5000 echo "::endgroup::" echo "::group::----Prepare validation rootfile--------" From 7671865cb4cf107d0cf7d1a06c4e0436197ba6d1 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 4 Aug 2025 15:10:02 -0500 Subject: [PATCH 20/23] fix: skip 1k events --- scripts/material_map/run_material_map_validation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index e37c2715d0..85a62a5294 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -116,7 +116,7 @@ propFile=propagation_material echo "::group::----GEANTINO SCAN------" # output geant4_material_tracks.root # The result of the geantino scan will be a root file containing material tracks. Those contain the direction and production vertex of the geantino, the total material accumulated and all the interaction points in the detector. -sed -i 's/seed=228/seed=306/' Examples/Scripts/Python/material_recording.py +sed -i 's/seed=228/seed=1306/' Examples/Scripts/Python/material_recording.py python material_recording_epic.py -i ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml -n ${nevents} -t ${nparticles} -o ${recordingFile} echo "::endgroup::" From 5cde18bd428f23b3e14118fe3df0326be9673845 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 11 Sep 2025 10:27:23 -0500 Subject: [PATCH 21/23] Disable ECAL BIC configuration temporarily Comment out ecal section due to bounding box error. --- configurations/craterlake_material_map.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configurations/craterlake_material_map.yml b/configurations/craterlake_material_map.yml index 6bfebb53f2..e385f589d5 100644 --- a/configurations/craterlake_material_map.yml +++ b/configurations/craterlake_material_map.yml @@ -15,8 +15,11 @@ features: silicon_disks: tof_barrel: tof_endcap: - ecal: - bic_layer1_only: + #ecal: + # FIXME: disabled due to: + # Error in : + # Wrong bounding box for volume envelope26 + #bic_layer1_only: pid: dirc: pfrich: From 5f50f6738f456fbcd3a2d16d99eca4c6d2156925 Mon Sep 17 00:00:00 2001 From: EIC Container Build Service Date: Thu, 11 Sep 2025 15:21:22 -0400 Subject: [PATCH 22/23] Disable far forward B0 configuration temporarily --- configurations/craterlake_material_map.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/configurations/craterlake_material_map.yml b/configurations/craterlake_material_map.yml index e385f589d5..e2ec921824 100644 --- a/configurations/craterlake_material_map.yml +++ b/configurations/craterlake_material_map.yml @@ -24,7 +24,11 @@ features: dirc: pfrich: drich: - far_forward: - default: + #far_forward: + # FIXME: disabled due to: + # 16:39:13 StraightLine VERBOSE Step with size 10000 performed. We are now at -131706 -162867 -9.98943e+06 with direction -0.0131817 -0.0163004 -0.99978 + # 16:39:13 StraightLine VERBOSE PathLimit aborter | Target stepSize (path limit) updated to ( +∞, +∞, +∞, 10000) + # 16:39:13 StraightLine ERROR Propagation reached the step count limit of 1000 (did 1000 steps) + #default: far_backward: default: From 9c85ce329e69bd9b700836d34f47b3f18f9701e5 Mon Sep 17 00:00:00 2001 From: EIC Container Build Service Date: Thu, 11 Sep 2025 15:22:25 -0400 Subject: [PATCH 23/23] Update propagator loglevel patch and set pipefail --- scripts/material_map/run_material_map_validation.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/material_map/run_material_map_validation.sh b/scripts/material_map/run_material_map_validation.sh index 85a62a5294..581620b223 100755 --- a/scripts/material_map/run_material_map_validation.sh +++ b/scripts/material_map/run_material_map_validation.sh @@ -155,7 +155,8 @@ echo "::group::----MAPPING------------" # material-maps_tracks.root(recorded steps from geantino, for validation purpose) sed -i 's/acts\.logging\.INFO/acts.logging.VERBOSE/g' Examples/Scripts/Python/material_mapping.py sed -i 's/navigator = Navigator($/&level=acts.logging.VERBOSE,/' Examples/Scripts/Python/material_mapping.py -sed -i 's/propagator = Propagator(stepper, navigator/&, loglevel=acts.logging.VERBOSE/' Examples/Scripts/Python/material_mapping.py +sed -i 's/propagator = Propagator(stepper, navigator)$/propagator = Propagator(stepper, navigator, loglevel=acts.logging.VERBOSE)/' Examples/Scripts/Python/material_mapping.py +set -o pipefail python material_mapping_epic.py --xmlFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml --geoFile ${geoFile} --matFile ${matFile} | tail -n 5000 echo "::endgroup::"