FAQ - DUNE/dune-tms GitHub Wiki
General
How do I report an issue?
If you encounter an issue, please reach out on DUNE Slack:
- For coding-related issues: #nd_muon_spectrometer_code
- For general issues: #nd_muon_spectrometer
You can also create an issue on our issue tracker. Providing logs, code snippets, and other relevant information will help us address your issue more efficiently.
Where should my code go?
Most user scripts related to dune-tms
should go into a subdirectory within the scripts directory. We recommend creating a new branch for your changes and pushing frequently. When you're ready, create a Pull Request (PR).
- Detector simulation and reconstruction codes are in the src directory.
- The
ConvertToTMSTree.cpp
code resides in the app directory. - Config files are located in the config directory.
Geometry-related codes live in a separate repository, see also the #nd_geometry slack page. For fermigrid and NERSC production, please refer to their respective wiki pages. Usually, you don't run production directly; instead, make requests through ND_reco/sim convenors (slack channel) who make requests to nd production (slack channel).
What's the procedure for committing/updating code?
Anyone with dune git access rights can create their own branch. To commit code to develop
:
- Clean up and validate your changes.
- Create a Pull Request (PR) from your branch.
- Explain what the PR does in the description.
- Tag liam (
@LiamOS
) as a reviewer.
Datasets
Where are datasets located?
See our datasets page for more information.
What versions of dune-tms, genie, and edep-sim were used to create datasets?
Check the datasets page. If the information is not there, please add it or reach out to someone who might know.
How can I visualize geometry?
Visit the online visualizer for interactive geometry visualization. Also, see the geometry wiki and geometry Slack channel.
What is the fiducial volume of the TMS/LAr?
The current simulation geometries are described here. The fiducial volume for TMS and LAr is defined in the reco config, but note that these are currently set up for geometry v3 (as of 2024-08-12). For TMS including steel, see TMS_Start/End_Exact in TMS_Constants.h.
Coding
Should I write scripts in Python or C++?
Both languages are suitable for different tasks. Choose the one you're most comfortable with, but be prepared to switch if needed.
My Python code is slow.
Rewrite your Python script in C++. You can find an example in the Validation directory.
I'm having issues reading branches.
Branches like TrackHitPosU
are 3D arrays of track number, hit number, and orientation. You can find all branch definitions in TMS_TreeWriter.cpp. Here's an example:
TrackHitPosU[10][200][2]
In Python, you read ROOT branches using a single-dimensional array. Look at existing Python code for examples on how to handle this.