Skip to content
/ MDT Public
forked from WCTE/MDT

C++ Stand-alone Codes for Merging, Digitizing, and Triggering PMT hits

Notifications You must be signed in to change notification settings

hyperk/MDT

This branch is 43 commits ahead of WCTE/MDT:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5e70dcc · Oct 2, 2024

History

95 Commits
Aug 21, 2023
Oct 2, 2024
Oct 2, 2024
Nov 9, 2023
Oct 2, 2024
Aug 21, 2023
Nov 8, 2023
Aug 21, 2023
Aug 21, 2023
Sep 4, 2023
Aug 21, 2023
Oct 2, 2024
Aug 5, 2022
Aug 21, 2023
Oct 2, 2024
Aug 21, 2023
Aug 4, 2023
Aug 3, 2023

Repository files navigation

MDT

C++ Stand-alone library for Merging, Digitizing, and Triggering hits of photomultiplier tubes (PMTs) based on WCSim. A Python interface is optionally provided, requiring pre-installation of pybind11.

The library provides C++ classes that manage three tasks:

  • Merging true hits (simulated photoelectrons by WCSim) of an events with those of any number of events
    • Intrinsic dark noise can be added during this stage
  • Digitizing true hits
    • Timing and charge of a digitized hit is simulated by a simple model used in WCSim
    • The library is capable of accomodating alternative models
    • Parameters describing PMT charcteristics such as timing resolution can be varied
    • Digitized hits by PMT afterpusing can be added
  • Triggering digitized hits
    • A simple algorithm that counts number of digitized hits falling in a sliding time winodw
    • Selectable trigger window and thershold

WCTE/WCSim usage

Simple runtime procedures. First set up your ROOT and WCSIM:

source your_thisroot.sh
source your_this_wcsim.sh # or just export WCSIM_BUILD_DIR

Then set up the MDT environment.

source envMDT.sh
cd $MDTROOT/cpp; make clean; make all
cd $MDTROOT/app/utilities/WCRootData; make clean; make all
cd $MDTROOT/app/application; make clean; make all
cd $MDTROOT
# edit variables properly in run_test_mdt4wcte.sh
bash run_test_mdt4wcte.sh

IWCD usage

Essentially the same usage but with OD support.

# edit variables properly in run_test_mdt4iwcd.sh
bash run_test_mdt4iwcd.sh

IWCD pile-up generation

Example usage

$MDTROOT/app/application/appGenPileUpSpill $MDTROOT/example/genPileUpConfig.txt

The application generates pile-up events by combining ID neutrino interaction events and beam background events in a spill.

Input variables are:

  • ListIDNuIntFiles,ListBeamBkgFiles: list of WCSim output files for the ID and background events
  • OutFileNamePrefix: output file name will be something like "OutFileNamePrefix".00000.root
  • MDTParFile: MDT config file
  • InitialSeed: Random seed
  • IDNuIntRate,BeamBkgRate: Mean number of ID and background events per spill. In each spill, the actual number of interactions are drawn from a Poisson distribution, and interaction timing according to the bunch structure (see BeamTiming class under app/utilities/WCRootData/)
  • UseOD: Process OD hits
  • NumOfSpillsSavedPerFile, TotalNumOfSpills: output spill setup

About

C++ Stand-alone Codes for Merging, Digitizing, and Triggering PMT hits

Resources

Stars

Watchers

Forks

Languages

  • C++ 87.4%
  • C 3.7%
  • Shell 3.0%
  • CMake 2.8%
  • Makefile 1.7%
  • Python 1.2%
  • Dockerfile 0.2%