Skip to content
jdkio edited this page Aug 12, 2024 · 5 revisions

General

I have an issue

Please let someone know on Dune slack's #nd_muon_spectrometer_code (for more coding-related issues) or #nd_muon_spectrometer (for more general issues). You can also add an issue to the issue tracker. It's always best to share logs and code (put it on git!), etc. The more info someone has, the quicker and easier they can help

Where should code go?

Most dune-tms-related users scripts should go into a subdirectory in the scripts directory. Please make your own branch and push as often as you like. When you think the code is ready, you can make a Pull Request (PR).

dune-tms det sim and reco are in the src directory. ConvertToTMSTree.cpp (the code we run) is in the app directory. Then configs are in the config directory

The geometry lives in a separate repository. See the #nd_geometry slack page. The same thing is true for fermigrid and nersc production. Usually you don't run production directly. Instead you make requests ND_reco/sim convenors (slack channel) who make requests to nd production (slack channel).

What's the procedure for committing/updating code?

Anyone is allowed to make their own branch assuming they have dune git access rights. To commit code to main, first clean it up, and validate. Then, make a pull request (PR) from your branch. Be sure to explain what it does. Tag Liam as a reviewer

Datasets

Where are datasets?

See datasets

What version of dune-tms, genie, edep-sim are datasets made with?

That's likely on the datasets page. If it's not there, please add it or contact someone who would know

How do I visualize geomtry?

See the online visualizer. See also geometry wiki and geometry slack

What is the fiducial volume of the TMS/LAr

We define the fiducial volume in the reco config, but note that they are currently (as of 2024-08-12) setup for geometry v3. For TMS, these numbers reflect the locations where there is overlapping scintillator, and doesn't include the steel components. For the volume of TMS including steel, see TMS_Start/End_Exact in TMS_Constants.h

Coding

Should I write scripts in python or c++?

Python is sometimes easier, but can be slower. It's safe to say you should do what you feel most comfortable with, and change if you need to

My python code is slow

Rewrite it in c++. See code in Validation directory

Issues reading branches

TrackHitPosU and branches like it are 3d arrays of track number, hit number, and orientation. You can find all the branch defs in TMS_TreeWriter.cpp. It's defined TrackHitPosU[10][200][2], and then you can also find where it's filled. The first index is the track number, second is hit number, and third is orientation. Orientation is either U/V or Z, so it's a 2 element array

In python, you read root branches with a single dimensional array. So it's a bit more complicated. Look at existing python code for examples

Clone this wiki locally