/icpc_siggen

Primary LanguageCBSD 2-Clause "Simplified" LicenseBSD-2-Clause

This is the source code of the Majorana Demonstrator / MaGe signal simulation software.
It was most recently re-written by David C. Radford in Nov/Dec 2014.
Earlier versions of the fieldgen code were called m3dcr/ppc8 and ppc9, also by DCR
Earlier versions of the siggen code were by I-Yang Lee (in fortran), Karin Lagergren, and DCR.


These codes are for unsegmented, cylindrically symmetric point-contact HPGe detectors.
They will work for both p-type and n-type detectors.

mjd_fieldgen:
    This code calculates the electric potential and weighting potential in
    the detector and writes them to files as specified in the configuration file.
    If you tell it to calculate the weight potential, it will also calculate
    the detector capacitance.
    It properly identifies and handles undepleted regions of the detector,
    including their effect on the weighting potential and capacitance.
    This is a stand-alone code and should not need any additional interface.

mjd_siggen (and signal_tester):
    This code uses the potentials calculated by mjd_fieldgen to simulate the signals
    from energy depositions at specific locations inside the detector.
    This can be considered a library rather than a stand-alone program, although
    signal_tester serves as a test/demonstration program as well as a template for
    how to use the package. You can write your own interface or input/output code
    to compile with the siggen modules. 
    The siggen modules compile cleanly under both gcc and g++, so you can call them
    from C++ code without writing a separate wrapper.

A single configuration file is used to control the behavior of both the
fieldgen and siggen codes. A well-commented example can be found inside the
config_files directory.

There is a simple Makefile to compile mjd_fieldgen and signal_tester.

As written, signal_tester.c requires the gnu readline development package.
    If you do not have that package and are unable to install it, you can simply
     remove all references to readline and history in signal_tester.c and Makefile,
     and replace the call to
  rl_gets(ans, MAX_LINE);
     with
  fgets(ans, MAX_LINE, stdin);


Please send questions and comments to radforddc@ornl.gov