Hadronic shower reconstruction for the SND@LHC experiment.
In this project, the first procedure for hadronic shower energy and vertex position reconstruction is developed for the SND detector. Shower propagation is profiled using PDFs and a log-likelihood function is built to reconstruct energy and vertex.
- Energy reco plots (summary reco plots)
- Energy reco diagnostics (single event energy reco breakdown)
- Depth reco and diagnostics (full depth reco, summary plots, single event depth reco breakdown)
- PDF diagnostics (PDF diagnostic plots)
- Event simulation diagnostics (simulation diagnostic plots)
To reproduce the results you need to have all the files from this repository
Steps to prepare the files:
- Run
make_depth_dirs.sh - Run
generate_energy_reco.sh, while selecting "n" to submit to condor, "n" to runPG and "n" to createPDFs
This should produce populated dirs {z_291, z_295,..., z_343, z_347}, each containing populated sub-dirs {e_50, e_100,..., e_1500, e_2000}.
Steps to generate results:
- Run
generate_energy_reco.shand select "n" to recoEnergy, "y" to runPG and "n" to createPDFs (simulate 1000 events per depth and energy) - Run
generate_energy_reco.shonce the condor jobs have finished and select "n" to recoEnergy, "n" to runPG and "y" to createPDFs (create the PDFs for each station of each depth and energy) - Run
generate_energy_reco.shonce the PDFs have been created and select "y" to recoEnergy, "n" to runPG and "n" to createPDFs (reconstruct the energy for each event) - Run the depth reconstruction code in jupyter notebook
Depth reco and diagnostics.ipynb(reconstruct the depth for each event)
Steps taken by the scripts to prepare the results:
- All the depth dirs are created from
make_depth_dirs.sh generate_energy_reco.shcopies the file contents of z_291 to all the other depths and updates the parameters of the execution files
Steps taken by the scripts to generate results:
-
Run the GEANT4 simulation in
run_simSND.py, for every depth and energy -
Run
PDF_python_code.pyto use the GEANT4 simulation results and create a PDF for each SciFi station for every depth and energy -
Run
Energy_reco_code.pywhich takes individual events and performs a log-likelihood scan over all the SciFi PDFs for each energy and a fixed depth. For each scan, the log-likelihood is summed over all 5 SciFi stations. The maximum of the log-likelihood corresponds to the reconstructed energy.
(4.) Depth reco needs to be run manually via the jupyter notebook Depth reco and diagnostics.ipynb. The depth reconstruction code works similarly to the code in Energy_reco_code.py.