The Large Area Picosecond Photodetector (LAPPD) is an advanced photodetector designed for fast timing and high spatial resolution applications. This package provides a Geant4 implementation of the LAPPD geometry based on Incom’s product sheet (LAPPD Product Sheet), enabling the simulation of photon propagation up to detection at the photocathode. All materials, optical surfaces, and the geometric volumes that make up the LAPPD, including the LAPPD housing, photocathode window, and the gaps between volumes, have been properly defined. Their properties can be configured using the provied user interface commands. Additionally, the package includes an example Geant4 application demonstrating the use of LAPPDs. With a single line of code, an LAPPD can be instantiated as either a G4LogicalVolume or a G4VPhysicalVolume object, making it easy to integrate into simulations.
The figure below illustrates the geometric details of the LAPPD.
This tool relies on OPSim for efficient optical photon simulation and G4DCP for detector geometry construction.
The tool can be easily integrated into a typical Geant4 application/project as a library by copying the entire directory (directory name is lappd) into the project source directory where your CMakeList.txt file is located, and adding the following lines of code to the CMakeList.txt file (for help, you can examine the CMakeList.txt files in the provided example application):
before the executable target is created:
add_subdirectory(lappd)
add_subdirectory(OPSim)
add_subdirectory(g4dcp)
after the executable target is created:
target_link_libraries(yourExecutableTarget OPSim g4dcp lappd)
You can now get the lappd as either G4LogicalVolume or G4VPhysicalVolume object with just two lines of code! Add the following code to the Construct() method of your detector construction class to visualise the geometry:
#include "LAPPDPVBuilder.hh"
G4String lappdModel = "lappd";
LAPPDPVBuilder builder(lappdModel);
G4VPhysicalVolume* lappdEnvelopePV = builder.GetProduct();
return lappdEnvelopePV;
or to obtain an LAPPD as a G4LogicalVolume object:
#include "LAPPDLVFactory.hh"
G4LogicalVolume* pmtLv = LAPPDLVFactory::GetInstance()->Get(lappdModel)
lappd/include: This directory contains all LAPPD header files (.h).
lappd/src: This directory contains all LAPPD source files (.cc).
lappd/data: This directory contains data on the optical properties of the materials and surfaces used to construct the LAPPD. The data is categorized into material optical properties and surface optical properties.
lappd/data/material_mpt: This directory contains data files for the optical properties of the materials used to construct the LAPPD.
lappd/data/surface_mpt: This directory contains data files for the optical properties of the surfaces used to construct the LAPPD.
lappd/macros: This directory contains macro files (.mac) that control the parameters used in LAPPD construction.
lappd/macros/mpt: This directory contains macro files to control material optical properties such as refractive index, absorption length, etc..
lappd/macros/os: This directory contains macro files to control surface optical properties such as reflector reflectivity and PMT photocathode quantum efficiency.
lappd/macros/lappds: This directory contains macro files to control the geometry construction parameters of LAPPDs.
lappd/macros/vis: This directory contains macro files to control visual parameters such as visibility and colors.
lappd-g4-app: This directory contains a sample Geant4 application that uses LAPPDs in the detector geometry. To test the LAPPDs, a toy Cherenkov detector surrounded by LAPPDs was constructed, and a sensitive detector was defined to count the detected photons. The program outputs the photon detection time and the number of photons detected by each LAPPD. Other classes required to complete the application (except the UserDetectorConstruction class) have been kept in their simplest form.
- Os: Linux (Ubuntu 24.04.1 LTS)
- Architecture: x86_64
- Compiler: GCC 13.3.0
- Geant4.11.2.2
- Navigate to the directory where you installed the lappd-g4-app on your system.
cd path/To/lappd-g4-app
- Create a directory named lappd-g4-app-build in the same location as the lappd-g4-app directory.
mkdir lappd-g4-app-build
- Now, navigate inside the build directory and run CMake to generate the Makefiles needed to build the application. Two arguments are passed to CMake: the first argument is the path to the source directory, which includes the CMakeLists.txt file, and the second argument is the path to the build directory, where the generated Makefiles will be located. CMake will configure the build and generate the Makefiles.
cd lappd-g4-app-build
cmake -S ../lappd-g4-app -B .
- With the Makefile generated, you can now build the application by simply running make:
make -j
- The application is now ready to run. If you list the contents of your build directory, you will see that the executable main has been created. The program can be executed in two modes: interactive and batch. To run in interactive mode:
./main
The figure below shows an example of an event output from the program.
If you have any questions or wish to notify of updates and/or modifications please contact:
Mustafa Kandemir (mustafa.kandemir@erdogan.edu.tr)