allpix

Helper class to hold support layers for a detector model. More…

Namespaces

Name
allpix::physicslists
Handler namespace for implementing additional PhysicsLists included in AllPix2 but not in the G4PhysListFactory.
allpix::tableau

Classes

Name
class allpix::Allpix
Provides the link between the core framework and the executable.
class allpix::ConfigManager
Manager responsible for loading and providing access to the main configuration.
class allpix::ConfigReader
Reader of configuration files.
class allpix::Configuration
Generic configuration object storing keys.
class allpix::ConfigurationError
Base class for all configurations exceptions in the framework.
class allpix::ConfigFileUnavailableError
Notifies of a missing configuration file.
class allpix::InvalidKeyError
Indicates a problem converting the value of a configuration key to the value it should represent.
class allpix::MissingKeyError
Informs of a missing key that should have been defined.
class allpix::KeyValueParseError
Indicates an error while parsing a key / value pair.
class allpix::ConfigParseError
Indicates an error while parsing a configuration file.
class allpix::InvalidValueError
Indicates an error with the contents of value.
class allpix::InvalidCombinationError
Indicates an error with a combination of configuration keys.
class allpix::ModuleIdentifierNotFoundError
Indicates that a given ModuleIdentifier was not found in the module identifier list.
class allpix::ModuleIdentifierAlreadyAddedError
Indicates that a given ModuleIdentifier is already in the module identifier list.
class allpix::OptionParser
Option parser responsible for parsing and caching command line arguments.
class allpix::Detector
Instantiation of a detector model in the world.
class allpix::DetectorAssembly
Helper class to hold information on the detector assembly.
class allpix::HybridAssembly
class allpix::MonolithicAssembly
class allpix::DetectorField
Field instance of a detector.
class allpix::DetectorModel
Base of all detector models.
class allpix::InvalidDetectorError
Indicates an error with finding a detector by name.
class allpix::InvalidDetectorModelError
Indicates an error that the detector model is not found.
class allpix::DetectorExistsError
Indicates an attempt to add a detector that is already registered before.
class allpix::PassiveElementExistsError
Indicates an attempt to add a detector that is already registered before.
class allpix::DetectorModelExistsError
Indicates an attempt to add a detector model that is already registered before.
class allpix::DetectorInvalidNameError
Indicates an attempt to add a detector with an invalid name.
class allpix::GeometryManager
Manager responsible for the global geometry.
class allpix::HexagonalPixelDetectorModel
Detector model with hexagonal pixel grid.
class allpix::PixelDetectorModel
Model of a generic pixel detector. This model is further extended by specialized pixel detector models.
class allpix::RadialStripDetectorModel
Model of a radial strip detector. This is a model where the silicon sensor is a trapezoid and the strips fan out radially from a focal point.
class allpix::SupportLayer
struct allpix::DelegateTypes
Container of the different delegate types.
class allpix::BaseDelegate
Base for all delegates.
class allpix::ModuleDelegate
Base for all delegates operating on modules.
class allpix::StoreDelegate
Delegate to store the message in memory for fetching the history.
class allpix::FilterDelegate
Delegate for filtering messages using a function.
class allpix::FilterAllDelegate
Delegate for invoking a filter listening to all messages also getting the name.
class allpix::SingleBindDelegate
Delegate for binding a single message.
class allpix::VectorBindDelegate
Delegate for binding multiple message to a vector.
class allpix::UnexpectedMessageException
Receive of a message that was not expected.
class allpix::MessageWithoutObjectException
Message does not contain an allpix::Object.
class allpix::MessageNotFoundException
Trying to fetch a message that wasn’t delivered.
class allpix::BaseMessage
Type-erased base class for all messages.
class allpix::Message
Generic class for all messages.
class allpix::Messenger
Manager responsible for setting up communication between modules and sending messages between them.
class allpix::LocalMessenger
Responsible for the actual handling of messages between Modules.
class allpix::Event
Holds the data required for running an event.
class allpix::DynamicLibraryError
Notifies of an error with dynamically loading a module.
class allpix::AmbiguousInstantiationError
Raised if ambiguous instantiation of two similar modules occurs.
class allpix::InvalidModuleStateException
Informs that a module is in a state it should never be.
class allpix::InvalidEventStateException
Informs that an event is in a state it should never be.
class allpix::InvalidModuleActionException
Informs that a module executes an action is it not allowed to do in particular state.
class allpix::ModuleError
General exception for modules if something goes wrong.
class allpix::EndOfRunException
Exception for modules to request an end of the event processing.
class allpix::AbortEventException
Exception for modules to request the abortion of the current event.
class allpix::MissingDependenciesException
Exception for modules to request an interrupt because dependencies are missing.
class allpix::Module
Base class for all modules.
class allpix::SequentialModule
A Module that always ensure to execute events in the order of event numbers. It implements buffering out of the box so interested modules can directly use it.
class allpix::ModuleIdentifier
Internal identifier for a module.
class allpix::ModuleManager
Manager responsible for dynamically loading all modules and running their event sequence.
class allpix::ThreadPool
Pool of threads where event tasks can be submitted to.
class allpix::Exception
Base class for all non-internal exceptions in framework.
class allpix::RuntimeError
Errors related to problems occurring at runtime.
class allpix::LogicError
Errors related to logical problems in the code structure.
class allpix::DefaultLogger
Logger of the framework to inform the user of process.
class allpix::RandomNumberGenerator
Wrapper around the STL’s Mersenne Twister.
struct allpix::type_tag
Tag for specific type.
struct allpix::empty_tag
Empty tag.
class allpix::Units
Static class to access units.
class allpix::CapacitiveTransferModule
Module that directly converts propagated charges to charges on a pixel and its neighbours (simulating the cross-coupling in CCPDs) This module is based on the SimpleTransferModule. It does a mapping of the propagated charges to the nearest pixel in the grid and copies this propageted charge, scaled by the cross-coupling matrix, to the neighbouring pixels. The coupling matrix must be provided in the configuration file as a Matrix or as a matrix file. Like the SimpleTransferModule, it only considers propagated charges within a certain distance from the implants and within the pixel grid, charges in the rest of the sensor are ignored. The cross hit created in the neighbouring pixels keeps the history, saving from where the original charge came from.
class allpix::CorryvreckanWriterModule
Module to do function.
class allpix::CSADigitizerModule
Module to simulate digitization of collected charges.
class allpix::DatabaseWriterModule
Module to write object data to PostgreSQL databases.
class allpix::DefaultDigitizerModule
Module to simulate digitization of collected charges.
class allpix::CosmicsGeneratorActionG4
Generates the particles in every event.
class allpix::GeneratorActionInitializationMaster
Creates and initialize the GPS messenger on master before workers use it.
class allpix::DepositionCosmicsModule
Module to simulate the particles stemming from cosmics rays and showers incident on the setup.
class allpix::RNGWrapper
This class is a wrapper that allows to pass the per-thread random number engine from Geant4 to CRY. The Geant4 engine is seeded by the Allpix Squared framework for every event, and separately per thread, so using this engine in CRY ensures a reproducible and thread-safe simulation.
class allpix::ActionInitializationG4
Initializer for the tracker and generator actions, required for RunManager.
class allpix::DepositionGeant4Module
Module to simulate the particle beam and generating the charge deposits in the sensor.
class allpix::GeneratorActionG4
Generates the particles in every event.
class allpix::SDAndFieldConstruction
User hook to construct the sensitive detector and magnetic field.
class allpix::SensitiveDetectorActionG4
Handles the steps of the particles in all sensitive devices.
class allpix::SetTrackInfoUserHookG4
Assigns every G4Track a TrackInfoG4 which carries various information, including the custom track id.
class allpix::StepInfoUserHookG4
Allows access to the info of each Geant4 step.
class allpix::TrackInfoG4
Allpix implementation of G4VUserTrackInformation to handle unique track IDs and the creation of MCTracks.
class allpix::TrackInfoManager
The TrackInfoManager is a factory for TrackInfoG4 objects and manages MCTracks within AP2.
class allpix::ActionInitializationPrimaries
Initializer for the generator actions, required for RunManager.
class allpix::DepositionGeneratorModule
Module to read primary particles from MC generators.
class allpix::PrimariesGeneratorAction
Generates the particles in every event.
class allpix::PrimariesReader
Interface class to read primary particles from input data in different file formats.
class allpix::PrimariesReaderGenie
Reads particles from an input data file.
class allpix::PrimariesReaderHepMC
Reads particles from an input data file.
class allpix::DepositionLaserModule
Module to do function.
class allpix::DepositionPointChargeModule
Module to deposit charges at predefined positions in the sensor volume.
class allpix::DepositionReaderModule
Module to read pre-computed energy deposits.
class allpix::Cluster
class allpix::DetectorHistogrammerModule
Module to plot the final digitized pixel data.
class allpix::DopingProfileReaderModule
Module to do function.
class allpix::DummyModule
Module which serves as a demonstrator and wireframe for new modules.
class allpix::ElectricFieldReaderModule
Module to read electric fields from INIT format or apply a linear electric field.
class allpix::GDMLOutputWriterModule
Module to construct a GDML Output of the geometry.
class allpix::GenericPropagationModule
Generic module for Runge-Kutta propagation of charge deposits in the sensitive device.
class allpix::DetectorConstructionG4
Constructs the Geant4 geometry during Geant4 initialization.
class allpix::GeometryBuilderGeant4Module
Module to construct the Geant4 geometry from the internal geometry.
class allpix::GeometryConstructionG4
Constructs the Geant4 geometry during Geant4 initialization.
class allpix::Materials
class allpix::Parameterization2DG4
Represents a 2D Geant4 parameterization in the X,Y plane.
class allpix::ParameterisedG4
Class to construct parameterized physical volumes allowing to switch off overlap checking.
class allpix::BoxModel
Model of a rectangular box.
class allpix::ConeModel
class allpix::CylinderModel
Model of an cylinder with inner and outer radius.
class allpix::SphereModel
Model of an sphere with inner and outer radius.
class allpix::PassiveMaterialConstructionG4
Constructs passive materials during Geant4 initialization.
class allpix::PassiveMaterialModel
Base of all passive material models.
class allpix::InducedTransferModule
Module to calculate the total induced charge from propagated charge carriers and to assign them to pixels.
class allpix::LCIOWriterModule
Module to write hit data to LCIO file.
class allpix::MagneticFieldReaderModule
Module to define magnetic fields.
class allpix::ProjectionPropagationModule
Module to project created electrons onto the sensor surface including diffusion.
class allpix::PulseTransferModule
Module to combine all charges induced at every pixel.
class allpix::RCEWriterModule
Module to write object data to ROOT trees in RCE format for telescope reconstruction.
class allpix::ROOTObjectReaderModule
Module to read data stored in ROOT file back to allpix messages.
class allpix::ROOTObjectWriterModule
Module to write object data to ROOT trees in file for persistent storage.
class allpix::SimpleTransferModule
Module that directly converts propagated charges to charges on a pixel.
class allpix::TextWriterModule
Module to write object data to simple ASCII text files.
class allpix::TransientPropagationModule
Module for simulation of transient current development using a Runge-Kutta approach.
class allpix::VisualizationGeant4Module
Module that shows visualization of constructed Geant4 geometry.
class allpix::WeightingPotentialReaderModule
Module to read weighting potentials.
class allpix::DepositedCharge
Charge deposit in sensor of detector.
class allpix::MissingReferenceException
Indicates an object that does not contain a reference fetched.
class allpix::IncompatibleDatatypesException
Indicates that two objects are of incompatible data types and cannot be combined.
class allpix::PulseBadAllocException
Indicates that a pulse object could not be allocated.
class allpix::MCParticle
Monte-Carlo particle through the sensor.
class allpix::MCTrack
Monte-Carlo track through the world.
class allpix::Object
Base class for internal objects.
class allpix::Pixel
Pixel in the model with indices, location and size.
class allpix::PixelCharge
Set of charges at a pixel.
class allpix::PixelHit
Pixel triggered in an event after digitization.
class allpix::PixelPulse
Pixel triggered in an event after digitization.
class allpix::PropagatedCharge
Set of charges propagated through the sensor.
class allpix::Pulse
Pulse holding induced charges as a function of time.
class allpix::SensorCharge
Base object for charge deposits and propagated charges in the sensor.
class allpix::DetrappingModel
Charge carrier detrapping time models.
class allpix::NoDetrapping
No detrapping.
class allpix::ConstantDetrapping
Constant detrapping rate of charge carriers.
class allpix::Detrapping
Wrapper class and factory for detrapping models.
class allpix::ModelError
Base class for all model exceptions in the framework.
class allpix::InvalidModelError
Notifies of an invalid model.
class allpix::ModelUnsuitable
Notifies of a model unsuitable for the current simulation.
class allpix::ImpactIonizationModel
Impact ionization models.
class allpix::NoImpactIonization
No multiplication.
class allpix::Massey
Massey model for impact ionization.
class allpix::MasseyOptimized
Massey model for impact ionization with optimized parameters.
class allpix::VanOverstraetenDeMan
van Overstraeten de Man model for impact ionization
class allpix::VanOverstraetenDeManOptimized
van Overstraeten de Man model for impact ionization with optimized parameters
class allpix::OkutoCrowell
Okuto Crowell model for impact ionization.
class allpix::OkutoCrowellOptimized
Okuto Crowell model for impact ionization with optimized parameters.
class allpix::Bologna
Bologna model for impact ionization.
class allpix::CustomGain
Custom gain model for charge carriers.
class allpix::ImpactIonization
Wrapper class and factory for impact ionization models.
class allpix::MobilityModel
Charge carrier mobility models.
class allpix::JacoboniCanali
Jacoboni/Canali mobility model for charge carriers in silicon.
class allpix::Canali
Canali mobility model.
class allpix::CanaliFast
Fast implementation of the Canali mobility model.
class allpix::Hamburg
Hamburg (Klanner-Scharf) parametrization for <100> silicon.
class allpix::HamburgHighField
Hamburg (Klanner-Scharf) high-field parametrization for <100> silicon.
class allpix::Masetti
Masetti mobility model for charge carriers in silicon.
class allpix::MasettiCanali
Combination of the Masetti and Canali mobility models for charge carriers in silicon (“extended Canali model”)
class allpix::Arora
Arora mobility model for charge carriers in silicon.
class allpix::RuchKino
Ruch-Kino mobility model for charge carriers in GaAs:Cr.
class allpix::Quay
class allpix::Levinshtein
Levinshtein mobility models for charge carriers in gallium nitride.
class allpix::ConstantMobility
Constant mobility of electrons and holes.
class allpix::Custom
Custom mobility model for charge carriers.
class allpix::Mobility
Wrapper class and factory for mobility models.
class allpix::RecombinationModel
Charge carrier recombination models.
class allpix::None
No recombination.
class allpix::ShockleyReadHall
Shockley-Read-Hall recombination of charge carriers in silicon.
class allpix::Auger
Auger recombination of charge carriers in silicon.
class allpix::ShockleyReadHallAuger
Auger recombination of charge carriers in silicon.
class allpix::ConstantLifetime
Simple recombination of charge carriers through constant lifetimes of holes and electrons.
class allpix::CustomRecombination
Custom recombination model for charge carriers.
class allpix::Recombination
Wrapper class and factory for recombination models.
class allpix::TrappingModel
Charge carrier trapping models.
class allpix::NoTrapping
No trapping.
class allpix::ConstantTrapping
Constant trapping rate of charge carriers.
class allpix::Ljubljana
Ljubljana / Kramberger effective trapping model for charge carriers in silicon.
class allpix::Dortmund
Dortmund / Krasel effective trapping model for charge carriers in silicon.
class allpix::CMSTracker
Effective trapping model developed by the CMS Tracker Group.
class allpix::Mandic
Mandic effective trapping model.
class allpix::CustomTrapping
Custom trapping model for charge carriers.
class allpix::Trapping
Wrapper class and factory for trapping models.
class allpix::FieldData
class allpix::FieldParser
Class to parse Allpix Squared field data from files.
class allpix::FieldWriter
Class to write Allpix Squared field data to files.
class allpix::G4ExceptionHandler
Exception handler for Geant4.
class allpix::G4LoggingDestination
Log message sink for Geant4 output streams.
class allpix::MTRunManager
A custom run manager for Geant4 that can work with external threads and be used concurrently.
class allpix::RunManager
A wrapper around G4RunManager that allows us to use our own event seeds.
class allpix::SensitiveDetectorAndFieldConstruction
Constructs the sensitive detectors and field for each worker.
class allpix::WorkerRunManager
Run manager for Geant4 that can be used by multiple threads where each thread will have its own instance.
class allpix::LiangBarsky
class allpix::LineGraph
class allpix::ThreadedHistogram
A re-implementation of ROOT::TThreadedObject.
class allpix::RungeKutta
Class to perform arbitrary Runge-Kutta integration.
class allpix::TabulatedPow
Class to pre-calculate powers of a fixed exponent within a defined range.

Types

Name
enum class FieldType { NONE = 0, CONSTANT, LINEAR, GRID, CUSTOM1D, CUSTOM}
Type of fields.
enum class FieldMapping { PIXEL_FULL = 0, PIXEL_FULL_INVERSE, PIXEL_HALF_LEFT, PIXEL_HALF_RIGHT, PIXEL_HALF_TOP, PIXEL_HALF_BOTTOM, PIXEL_QUADRANT_I, PIXEL_QUADRANT_II, PIXEL_QUADRANT_III, PIXEL_QUADRANT_IV, SENSOR}
Type of field maps.
enum class SensorMaterial { SILICON = 1, GALLIUM_ARSENIDE, GERMANIUM, CADMIUM_TELLURIDE, CADMIUM_ZINC_TELLURIDE, DIAMOND, SILICON_CARBIDE, GALLIUM_NITRIDE}
Sensor materials.
enum class Dopant { PHOSPHORUS = 0, ARSENIC}
Type of dopant.
enum class MagneticFieldType { NONE = 0, CONSTANT, CUSTOM}
Type of the magnetic field.
enum class uint32_t MsgFlags { NONE = 0, REQUIRED = (1 « 0), ALLOW_OVERWRITE = (1 « 1), IGNORE_NAME = (1 « 2), UNNAMED_ONLY = (1 « 3)}
Flags to change the behaviour of delegates.
enum class LogLevel { FATAL = 0, STATUS, ERROR, WARNING, INFO, DEBUG, NONE, TRACE, PRNG}
Logging detail level.
enum class LogFormat { SHORT = 0, DEFAULT, LONG}
Format of the logger.
enum class CarrierState { UNKNOWN = 0, MOTION, RECOMBINED, TRAPPED, HALTED}
State of the charge carrier.
enum class int8_t CarrierType { ELECTRON = -1, HOLE = 1}
Flags to distinguish between electron and hole charge carriers.
enum class size_t FieldQuantity { UNKNOWN = 0, SCALAR = 1, VECTOR = 3}
Field quantities.
enum class FileType { UNKNOWN = 0, INIT, APF}
Type of file formats.
template <typename T >
using std::vector< std::vector< T > >
Matrix
template
using std::function< T(const ROOT::Math::XYZPoint &pos)>
FieldFunction
Functor returning the field at a given position.
using std::function< ROOT::Math::XYZVector(const ROOT::Math::XYZPoint &)> MagneticFieldFunction
using std::list< std::shared_ptr< Module > > ModuleList
template <typename T >
using boost::random::normal_distribution< T >
normal_distribution
template <typename T >
using boost::random::piecewise_linear_distribution< T >
piecewise_linear_distribution
template <typename T >
using boost::random::poisson_distribution< T >
poisson_distribution
template <typename T >
using boost::random::uniform_real_distribution< T >
uniform_real_distribution
template <typename T >
using boost::random::exponential_distribution< T >
exponential_distribution
using DefaultLogger Log
using Message< DepositedCharge > DepositedChargeMessage
Typedef for message carrying deposits.
using Message< MCParticle > MCParticleMessage
Typedef for message carrying MC particles.
using Message< MCTrack > MCTrackMessage
Typedef for message carrying MC tracks.
using std::tuple< MCTrack, MCParticle, DepositedCharge, PropagatedCharge, PixelCharge, PixelHit > OBJECTS
Tuple containing all objects.
using Message< PixelCharge > PixelChargeMessage
Typedef for message carrying pixel charges.
using Message< PixelHit > PixelHitMessage
Typedef for message carrying pixel hits.
using Message< PixelPulse > PixelPulseMessage
Typedef for message carrying pixel pulses.
using Message< PropagatedCharge > PropagatedChargeMessage
Typedef for message carrying propagated charges.
template <class T >
using std::unique_ptr< ThreadedHistogram< T > >
Histogram

Functions

Name
std::string to_string_impl(const std::string & inp, empty_tag )
Conversion handler for strings.
std::string to_string_impl(const char * inp, empty_tag )
Conversion handler for strings.
std::string to_string_impl(char * inp, empty_tag )
Conversion handler for strings.
template <typename T >
void
flip_vector_components(T & field, bool x, bool y)
Helper function to invert the field vector when flipping the field direction at pixel/field boundaries.
void flip_vector_components< ROOT::Math::XYZVector >(ROOT::Math::XYZVector & vec, bool x, bool y)
void flip_vector_components< double >(double & , bool , bool )
MsgFlags **[operator
MsgFlags operator&(MsgFlags f1, MsgFlags f2)
Give the set of flags present in both sets of message flags.
bool allpix_module_is_unique()
Returns the type of the Module it is linked to.
Module * allpix_module_generator(Configuration & config, Messenger * messenger, GeometryManager * geo_manager)
Instantiates an unique module.
Module * allpix_module_generator(Configuration & config, Messenger * messenger, std::shared_ptr< Detector > detector)
Instantiates a detector module.
void SUPPRESS_STREAM(std::ostream & stream)
Suppress a stream from writing any output.
void RELEASE_STREAM(std::ostream & stream)
Release an suppressed stream so it can write again.
std::string trim(const std::string & str, const std::string & delims =" \t\n\r\v")
Trims leading and trailing characters from a string.
template <typename T >
T
from_string(std::string str)
Converts a string to any supported type.
std::string from_string_helper(std::string str)
Internal helper method for checking and trimming conversions from string.
template <typename T >
std::enable_if_t< std::is_arithmetic< T >::value, T >
from_string_impl(std::string str, type_tag< T > )
Conversion handler for all arithmetic types.
template <typename T >
std::enable_if_t< std::is_enum< T >::value, T >
from_string_impl(std::string str, type_tag< T > )
Conversion handler for all enum types.
std::string from_string_impl(std::string str, type_tag< std::string > )
Conversion handler for strings.
std::filesystem::path from_string_impl(std::string str, type_tag< std::filesystem::path > )
Conversion handler for filesystem paths.
bool from_string_impl(std::string str, type_tag< bool > )
Conversion handler for booleans.
template <typename T >
std::string
to_string(T inp)
Converts any type to a string.
template <typename T ,std::enable_if_t< std::is_arithmetic< T >::value, bool > =true>
std::string
to_string_impl(T inp, empty_tag )
Conversion handler for all arithmetic types.
template <typename T >
std::vector< T >
split(std::string str, const std::string & delims =" \t,")
Splits string into substrings at delimiters.
template <typename T >
std::string
transform(const std::string & str, const T & op)
Transforms a string and returns the transformed string.
std::string demangle(const char * name, bool keep_allpix =false)
Demangle the type to human-readable form if it is mangled.
std::ostream & operator«(std::ostream & out, const allpix::Object & obj)
Overloaded ostream operator for printing of object data.
std::ostream & operator«(std::ostream & os, const CarrierType type)
CarrierType invertCarrierType(const CarrierType & type)
Invert the type of a charge carrier.
G4ThreeVector from_string_impl(std::string str, type_tag< G4ThreeVector > )
Enable support to convert string directly to Geant4 3D vector while fetching configuration parameter.
std::string to_string_impl(const G4ThreeVector & vec, empty_tag )
Enable support to convert Geant4 3D vector to string for storage in the configuration.
G4TwoVector from_string_impl(std::string str, type_tag< G4TwoVector > )
Enable support to convert string directly to Geant4 2D vector for fetching configuration parameter.
std::string to_string_impl(const G4TwoVector & vec, empty_tag )
Enable support to convert Geant4 2D vector to string for storage in the configuration.
template <typename T >
G4ThreeVector
toG4Vector(const ROOT::Math::DisplacementVector3D< T > & vector)
Utility method to convert ROOT 3D vector to Geant4 3D vector.
template <typename T >
G4ThreeVector
toG4Vector(const ROOT::Math::PositionVector3D< T > & vector)
Utility method to convert ROOT 2D vector to Geant4 2D vector.
template <typename T >
ROOT::Math::DisplacementVector3D< T >
from_string_impl(std::string str, type_tag< ROOT::Math::DisplacementVector3D< T » )
Enable support to convert string directly to ROOT 3D displacement vector while fetching configuration parameter.
template <typename T >
std::string
to_string_impl(const ROOT::Math::DisplacementVector3D< T > & vec, empty_tag )
Enable support to convert ROOT 3D displacement vector to string for storage in the configuration.
template <typename T >
ROOT::Math::DisplacementVector2D< T >
from_string_impl(std::string str, type_tag< ROOT::Math::DisplacementVector2D< T » )
Enable support to convert string directly to ROOT 2D displacement vector while fetching configuration parameter.
template <typename T >
std::string
to_string_impl(const ROOT::Math::DisplacementVector2D< T > & vec, empty_tag )
Enable support to convert ROOT 2D displacement vector to string for storage in the configuration.
template <typename T >
ROOT::Math::PositionVector3D< T >
from_string_impl(std::string str, type_tag< ROOT::Math::PositionVector3D< T » )
Enable support to convert string directly to ROOT 3D position vector while fetching configuration parameter.
template <typename T >
std::string
to_string_impl(const ROOT::Math::PositionVector3D< T > & vec, empty_tag )
Enable support to convert ROOT 3D position vector to string for storage in the configuration.
template <typename T >
ROOT::Math::PositionVector2D< T >
from_string_impl(std::string str, type_tag< ROOT::Math::PositionVector2D< T » )
Enable support to convert string directly to ROOT 2D position vector while fetching configuration parameter.
template <typename T >
std::string
to_string_impl(const ROOT::Math::PositionVector2D< T > & vec, empty_tag )
Enable support to convert ROOT 2D position vector to string for storage in the configuration.
template <typename T ,typename U >
std::ostream &
operator«(std::ostream & os, const ROOT::Math::DisplacementVector3D< T, U > & vec)
Overload output stream operator to display ROOT 3D displacement vector.
template <typename T ,typename U >
std::ostream &
operator«(std::ostream & os, const ROOT::Math::DisplacementVector2D< T, U > & vec)
Overload output stream operator to display ROOT 2D displacement vector.
template <typename T ,typename U >
std::ostream &
operator«(std::ostream & os, const ROOT::Math::PositionVector3D< T, U > & vec)
Overload output stream operator to display ROOT 3D position vector.
template <typename T ,typename U >
std::ostream &
operator«(std::ostream & os, const ROOT::Math::PositionVector2D< T, U > & vec)
Overload output stream operator to display ROOT 2D position vector.
template <typename T ,class… ARGS>
std::unique_ptr< ThreadedHistogram< T > >
CreateHistogram(ARGS &&… args)
Helper method to instantiate new objects of the type ThreadedHistogram.
std::unique_lock< std::mutex > root_process_lock()
Lock for TProcessID simultaneous action.
template <typename T ,int S,int D =3,class… Args>
RungeKutta< T, S, D >
make_runge_kutta(const Eigen::Matrix< T, S+2, S > & tableau, Args &&… args)
Utility function to create RungeKutta class using template deduction.
void register_units()
Sets the default unit conventions.

Attributes

Name
thread_local double(T::*)() RNGWrapper
std::map< SensorMaterial, double > ionization_energies
Ionization / charge creation energy for different materials.
std::map< SensorMaterial, double > fano_factors
Fano factors for different materials.

Detailed Description

Helper class to hold support layers for a detector model.

Copyright: Copyright (c) 2017-2024 CERN and the Allpix Squared authors. This software is distributed under the terms of the MIT License, copied verbatim in the file “LICENSE.md”. In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an Intergovernmental Organization or submit itself to any jurisdiction. SPDX-License-Identifier: MIT

Types Documentation

enum FieldType

Enumerator Value Description
NONE 0 No field is applied.
CONSTANT Constant field.
LINEAR Linear field (linearity determined by function)
GRID Field supplied through a regularized grid.
CUSTOM1D Custom field function, dependent only on z.
CUSTOM Custom field function.

Type of fields.

enum FieldMapping

Enumerator Value Description
PIXEL_FULL 0 The field map spans the full pixel plane.
PIXEL_FULL_INVERSE The field map spans the full pixel plane, but pixel centers are at field corners.
PIXEL_HALF_LEFT The field map spans the left half of the volume and is mirrored along x.
PIXEL_HALF_RIGHT The field map spans the right half of the volume and is mirrored along x.
PIXEL_HALF_TOP The field map spans the top half of the volume and is mirrored along y.
PIXEL_HALF_BOTTOM The field map spans the bottom half of the volume and is mirrored along y.
PIXEL_QUADRANT_I The field map spans the top right quadrant of the volume and is mirrored to the other quadrants
PIXEL_QUADRANT_II The field map spans the top left quadrant of the volume and is mirrored to the other quadrants
PIXEL_QUADRANT_III The field map spans the lower left quadrant of the volume and is mirrored to the other quadrants
PIXEL_QUADRANT_IV The field map spans the lower right quadrant of the volume and is mirrored to the other quadrants
SENSOR The field is mapped to the full sensor, starting at the local coordinate origin. The field is mirrored at its edges.

Type of field maps.

enum SensorMaterial

Enumerator Value Description
SILICON 1 Silicon.
GALLIUM_ARSENIDE Gallium Arsenide.
GERMANIUM Germanium.
CADMIUM_TELLURIDE Cadmium Telluride.
CADMIUM_ZINC_TELLURIDE Cadmium Zinc Telluride.
DIAMOND Diamond.
SILICON_CARBIDE Silicon Carbide.
GALLIUM_NITRIDE Gallium Nitride.

Sensor materials.

enum Dopant

Enumerator Value Description
PHOSPHORUS 0
ARSENIC

Type of dopant.

enum MagneticFieldType

Enumerator Value Description
NONE 0 No magnetic field is simulated.
CONSTANT Constant magnetic field (mostly for testing)
CUSTOM Custom magnetic field function.

Type of the magnetic field.

enum MsgFlags

Enumerator Value Description
NONE 0 No enabled flags.
REQUIRED (1 « 0) Require a message before running a module.
ALLOW_OVERWRITE (1 « 1) Allow overwriting a previous message.
IGNORE_NAME (1 « 2) Listen to all ignoring message name (equal to * as a input configuration parameter)
UNNAMED_ONLY (1 « 3) Listen to all messages without explicit name (equal to ? as configuration parameter)

Flags to change the behaviour of delegates.

All flags are distinct and can be combined using the | (OR) operator. The flags should be passed to the Messenger when registering a filter or when binding either a single or multiple messages. It depends on the delegate which combination of flags is valid.

enum LogLevel

Enumerator Value Description
FATAL 0 Fatal problems that terminate the framework (typically exceptions)
STATUS Only critical progress information.
ERROR Critical problems that usually lead to fatal errors.
WARNING Possible issue that could lead to unexpected results.
INFO General information about processes (should not be called in run function)
DEBUG Detailed information about physics process.
NONE Indicates the log level has not been set (cannot be selected by the user)
TRACE Software debugging information about what part is currently running.
PRNG Logging level printing every pseudo-random number requested.

Logging detail level.

enum LogFormat

Enumerator Value Description
SHORT 0 Only include a single character for the log level, the section header and the message.
DEFAULT Also include the time and a full logging level description.
LONG All of the above and also information about the file and line where the message was defined.

Format of the logger.

enum CarrierState

Enumerator Value Description
UNKNOWN 0 State of the propagated charge carrier is unknown.
MOTION The propagated charge carrier is in motion.
RECOMBINED The propagated charge carrier has recombined with the lattice.
TRAPPED The propagated charge carrier is trapped temporarily.
HALTED The carrier has come to a halt because it, for example, has reached the sensor surface or an implant.

State of the charge carrier.

enum CarrierType

Enumerator Value Description
ELECTRON -1
HOLE 1

Flags to distinguish between electron and hole charge carriers.

enum FieldQuantity

Enumerator Value Description
UNKNOWN 0 Unknown field quantity.
SCALAR 1 Scalar field, i.e. one entry per field position.
VECTOR 3 Vector field, i.e. three entries per field position.

Field quantities.

enum FileType

Enumerator Value Description
UNKNOWN 0 Unknown file format.
INIT Legacy file format, values stored in plain-text ASCII.
APF Binary Allpix Squared format serialized using the cereal library.

Type of file formats.

using Matrix

template <typename T >
using allpix::Matrix = typedef std::vector<std::vector<T> >;

using FieldFunction

template <typename T  =ROOT::Math::XYZVector>
using allpix::FieldFunction = typedef std::function<T(const ROOT::Math::XYZPoint& pos)>;

Functor returning the field at a given position.

Parameters:

  • pos Position in local coordinates at which the field should be evaluated

using MagneticFieldFunction

using allpix::MagneticFieldFunction = typedef std::function<ROOT::Math::XYZVector(const ROOT::Math::XYZPoint&)>;

using ModuleList

using allpix::ModuleList = typedef std::list<std::shared_ptr<Module> >;

using normal_distribution

template <typename T >
using allpix::normal_distribution = typedef boost::random::normal_distribution<T>;

using piecewise_linear_distribution

template <typename T >
using allpix::piecewise_linear_distribution = typedef boost::random::piecewise_linear_distribution<T>;

using poisson_distribution

template <typename T >
using allpix::poisson_distribution = typedef boost::random::poisson_distribution<T>;

using uniform_real_distribution

template <typename T >
using allpix::uniform_real_distribution = typedef boost::random::uniform_real_distribution<T>;

using exponential_distribution

template <typename T >
using allpix::exponential_distribution = typedef boost::random::exponential_distribution<T>;

using Log

using allpix::Log = typedef DefaultLogger;

using DepositedChargeMessage

using allpix::DepositedChargeMessage = typedef Message<DepositedCharge>;

Typedef for message carrying deposits.

using MCParticleMessage

using allpix::MCParticleMessage = typedef Message<MCParticle>;

Typedef for message carrying MC particles.

using MCTrackMessage

using allpix::MCTrackMessage = typedef Message<MCTrack>;

Typedef for message carrying MC tracks.

using OBJECTS

using allpix::OBJECTS = typedef std::tuple<MCTrack, MCParticle, DepositedCharge, PropagatedCharge, PixelCharge, PixelHit>;

Tuple containing all objects.

using PixelChargeMessage

using allpix::PixelChargeMessage = typedef Message<PixelCharge>;

Typedef for message carrying pixel charges.

using PixelHitMessage

using allpix::PixelHitMessage = typedef Message<PixelHit>;

Typedef for message carrying pixel hits.

using PixelPulseMessage

using allpix::PixelPulseMessage = typedef Message<PixelPulse>;

Typedef for message carrying pixel pulses.

using PropagatedChargeMessage

using allpix::PropagatedChargeMessage = typedef Message<PropagatedCharge>;

Typedef for message carrying propagated charges.

using Histogram

template <class T >
using allpix::Histogram = typedef std::unique_ptr<ThreadedHistogram<T> >;

Functions Documentation

function to_string_impl

inline std::string to_string_impl(
    const std::string & inp,
    empty_tag 
)

Conversion handler for strings.

Note: Overloaded for different types of strings

Adds enclosing double quotation marks to properly store strings containing whitespace.

function to_string_impl

inline std::string to_string_impl(
    const char * inp,
    empty_tag 
)

Conversion handler for strings.

Note: Overloaded for different types of strings

Adds enclosing double quotation marks to properly store strings containing whitespace.

function to_string_impl

inline std::string to_string_impl(
    char * inp,
    empty_tag 
)

Conversion handler for strings.

Note: Overloaded for different types of strings

Adds enclosing double quotation marks to properly store strings containing whitespace.

function flip_vector_components

template <typename T >
void flip_vector_components(
    T & field,
    bool x,
    bool y
)

Helper function to invert the field vector when flipping the field direction at pixel/field boundaries.

Parameters:

  • field Field value, templated to support vector fields and scalar fields
  • x Boolean to indicate flipping in x-direction
  • y Boolean to indicate flipping in y-direction

function flip_vector_components< ROOT::Math::XYZVector >

inline void flip_vector_components< ROOT::Math::XYZVector >(
    ROOT::Math::XYZVector & vec,
    bool x,
    bool y
)

function flip_vector_components< double >

inline void flip_vector_components< double >(
    double & ,
    bool ,
    bool 
)

function operator|

inline MsgFlags operator|(
    MsgFlags f1,
    MsgFlags f2
)

Combine two sets of message flags.

Parameters:

  • f1 First set of flag
  • f2 Second set of flag

Return: New set of flag representing the combination of the two given sets

function operator&

inline MsgFlags operator&(
    MsgFlags f1,
    MsgFlags f2
)

Give the set of flags present in both sets of message flags.

Parameters:

  • f1 First flag
  • f2 Second flag

Return: New flag representing the flags present in both sets of flags

function allpix_module_is_unique

bool allpix_module_is_unique()

Returns the type of the Module it is linked to.

Used by the ModuleManager to determine if it should instantiate a single module or modules per detector instead.

function allpix_module_generator

Module * allpix_module_generator(
    Configuration & config,
    Messenger * messenger,
    GeometryManager * geo_manager
)

Instantiates an unique module.

Parameters:

  • config Configuration for this module
  • messenger Pointer to the Messenger (guaranteed to be valid until the module is destructed)
  • geo_manager Pointer to the global GeometryManager (guaranteed to be valid until the module is destructed)

Return: Instantiation of the module

Internal method for the dynamic loading in the ModuleManager. Forwards the supplied arguments to the constructor and returns an instantiation.

function allpix_module_generator

Module * allpix_module_generator(
    Configuration & config,
    Messenger * messenger,
    std::shared_ptr< Detector > detector
)

Instantiates a detector module.

Parameters:

  • config Configuration for this module
  • messenger Pointer to the Messenger (guaranteed to be valid until the module is destructed)
  • detector Pointer to the Detector object this module is bound to

Return: Instantiation of the module

Internal method for the dynamic loading in the ModuleManager. Forwards the supplied arguments to the constructor and returns an instantiation

function SUPPRESS_STREAM

inline void SUPPRESS_STREAM(
    std::ostream & stream
)

Suppress a stream from writing any output.

Parameters:

  • stream The stream to suppress

function RELEASE_STREAM

inline void RELEASE_STREAM(
    std::ostream & stream
)

Release an suppressed stream so it can write again.

Parameters:

  • stream The stream to release

function trim

std::string trim(
    const std::string & str,
    const std::string & delims =" \t\n\r\v"
)

Trims leading and trailing characters from a string.

Parameters:

  • str String that should be trimmed
  • delims List of delimiters to trim from the string (defaults to all whitespace)

function from_string

template <typename T >
T from_string(
    std::string str
)

Converts a string to any supported type.

Parameters:

  • str String to convert

See: String conversions

function from_string_helper

std::string from_string_helper(
    std::string str
)

Internal helper method for checking and trimming conversions from string.

Parameters:

  • str Input string to check and trim

Return: Trimmed string

function from_string_impl

template <typename T >
std::enable_if_t< std::is_arithmetic< T >::value, T > from_string_impl(
    std::string str,
    type_tag< T > 
)

Conversion handler for all arithmetic types.

Exceptions:

  • std::invalid_argument If the string cannot be converted to the required arithmetic type

function from_string_impl

template <typename T >
std::enable_if_t< std::is_enum< T >::value, T > from_string_impl(
    std::string str,
    type_tag< T > 
)

Conversion handler for all enum types.

Exceptions:

  • std::invalid_argument If the string cannot be converted to the required enum type

function from_string_impl

std::string from_string_impl(
    std::string str,
    type_tag< std::string > 
)

Conversion handler for strings.

Exceptions:

  • std::invalid_argument If no closing quotation mark as last character after an opening quotation mark
  • std::invalid_argument If string without enclosing quotation marks, but more data after whitespace is found

If a pair of enclosing double quotation marks is found, the whole string within the quotation marks is returned. Otherwise only the first part is read until whitespace is encountered.

function from_string_impl

std::filesystem::path from_string_impl(
    std::string str,
    type_tag< std::filesystem::path > 
)

Conversion handler for filesystem paths.

Exceptions:

  • std::invalid_argument If no closing quotation mark as last character after an opening quotation mark
  • std::invalid_argument If string without enclosing quotation marks, but more data after whitespace is found

First parse as normal string and then construct path from it.

function from_string_impl

bool from_string_impl(
    std::string str,
    type_tag< bool > 
)

Conversion handler for booleans.

Exceptions:

  • std::invalid_argument If the string cannot be converted to a boolean type

Both numerical (0, 1) and textual representations (“false”, “true”) are supported for booleans. No enclosing quotation marks should be used.

function to_string

template <typename T >
std::string to_string(
    T inp
)

Converts any type to a string.

Note: C-strings are not supported due to allocation issues

function to_string_impl

template <typename T ,
std::enable_if_t< std::is_arithmetic< T >::value, bool >  =true>
std::string to_string_impl(
    T inp,
    empty_tag 
)

Conversion handler for all arithmetic types.

Conversion handler for all enum types.

function split

template <typename T >
std::vector< T > split(
    std::string str,
    const std::string & delims =" \t,"
)

Splits string into substrings at delimiters.

Parameters:

  • str String to split
  • delims Delimiters to split at (defaults to space, tab and comma)

Return: List of all the substrings with all empty substrings ignored (thus removed)

function transform

template <typename T >
std::string transform(
    const std::string & str,
    const T & op
)

Transforms a string and returns the transformed string.

Parameters:

  • str String that should be transformed
  • op Unary operator to act on the string

Return: Transformed string

function demangle

inline std::string demangle(
    const char * name,
    bool keep_allpix =false
)

Demangle the type to human-readable form if it is mangled.

Parameters:

  • name The possibly mangled name
  • keep_allpix If true the allpix namespace tag will be kept, otherwise it is removed

function operator«

std::ostream & operator<<(
    std::ostream & out,
    const allpix::Object & obj
)

Overloaded ostream operator for printing of object data.

Parameters:

  • out Stream to write output to
  • obj Object to print to stream

Return: Stream where output was written to

function operator«

inline std::ostream & operator<<(
    std::ostream & os,
    const CarrierType type
)

function invertCarrierType

inline CarrierType invertCarrierType(
    const CarrierType & type
)

Invert the type of a charge carrier.

Parameters:

  • type Initial type of the charge carrier

Return: Inverted type of the charge carrier

function from_string_impl

inline G4ThreeVector from_string_impl(
    std::string str,
    type_tag< G4ThreeVector > 
)

Enable support to convert string directly to Geant4 3D vector while fetching configuration parameter.

function to_string_impl

inline std::string to_string_impl(
    const G4ThreeVector & vec,
    empty_tag 
)

Enable support to convert Geant4 3D vector to string for storage in the configuration.

function from_string_impl

inline G4TwoVector from_string_impl(
    std::string str,
    type_tag< G4TwoVector > 
)

Enable support to convert string directly to Geant4 2D vector for fetching configuration parameter.

function to_string_impl

inline std::string to_string_impl(
    const G4TwoVector & vec,
    empty_tag 
)

Enable support to convert Geant4 2D vector to string for storage in the configuration.

function toG4Vector

template <typename T >
G4ThreeVector toG4Vector(
    const ROOT::Math::DisplacementVector3D< T > & vector
)

Utility method to convert ROOT 3D vector to Geant4 3D vector.

function toG4Vector

template <typename T >
G4ThreeVector toG4Vector(
    const ROOT::Math::PositionVector3D< T > & vector
)

Utility method to convert ROOT 2D vector to Geant4 2D vector.

function from_string_impl

template <typename T >
inline ROOT::Math::DisplacementVector3D< T > from_string_impl(
    std::string str,
    type_tag< ROOT::Math::DisplacementVector3D< T >> 
)

Enable support to convert string directly to ROOT 3D displacement vector while fetching configuration parameter.

function to_string_impl

template <typename T >
inline std::string to_string_impl(
    const ROOT::Math::DisplacementVector3D< T > & vec,
    empty_tag 
)

Enable support to convert ROOT 3D displacement vector to string for storage in the configuration.

function from_string_impl

template <typename T >
inline ROOT::Math::DisplacementVector2D< T > from_string_impl(
    std::string str,
    type_tag< ROOT::Math::DisplacementVector2D< T >> 
)

Enable support to convert string directly to ROOT 2D displacement vector while fetching configuration parameter.

function to_string_impl

template <typename T >
inline std::string to_string_impl(
    const ROOT::Math::DisplacementVector2D< T > & vec,
    empty_tag 
)

Enable support to convert ROOT 2D displacement vector to string for storage in the configuration.

function from_string_impl

template <typename T >
inline ROOT::Math::PositionVector3D< T > from_string_impl(
    std::string str,
    type_tag< ROOT::Math::PositionVector3D< T >> 
)

Enable support to convert string directly to ROOT 3D position vector while fetching configuration parameter.

function to_string_impl

template <typename T >
inline std::string to_string_impl(
    const ROOT::Math::PositionVector3D< T > & vec,
    empty_tag 
)

Enable support to convert ROOT 3D position vector to string for storage in the configuration.

function from_string_impl

template <typename T >
inline ROOT::Math::PositionVector2D< T > from_string_impl(
    std::string str,
    type_tag< ROOT::Math::PositionVector2D< T >> 
)

Enable support to convert string directly to ROOT 2D position vector while fetching configuration parameter.

function to_string_impl

template <typename T >
inline std::string to_string_impl(
    const ROOT::Math::PositionVector2D< T > & vec,
    empty_tag 
)

Enable support to convert ROOT 2D position vector to string for storage in the configuration.

function operator«

template <typename T ,
typename U >
inline std::ostream & operator<<(
    std::ostream & os,
    const ROOT::Math::DisplacementVector3D< T, U > & vec
)

Overload output stream operator to display ROOT 3D displacement vector.

function operator«

template <typename T ,
typename U >
inline std::ostream & operator<<(
    std::ostream & os,
    const ROOT::Math::DisplacementVector2D< T, U > & vec
)

Overload output stream operator to display ROOT 2D displacement vector.

function operator«

template <typename T ,
typename U >
inline std::ostream & operator<<(
    std::ostream & os,
    const ROOT::Math::PositionVector3D< T, U > & vec
)

Overload output stream operator to display ROOT 3D position vector.

function operator«

template <typename T ,
typename U >
inline std::ostream & operator<<(
    std::ostream & os,
    const ROOT::Math::PositionVector2D< T, U > & vec
)

Overload output stream operator to display ROOT 2D position vector.

function CreateHistogram

template <typename T ,
class... ARGS>
std::unique_ptr< ThreadedHistogram< T > > CreateHistogram(
    ARGS &&... args
)

Helper method to instantiate new objects of the type ThreadedHistogram.

Parameters:

  • args Arguments passed to histogram class

Return: Unique pointer to newly created object

function root_process_lock

inline std::unique_lock< std::mutex > root_process_lock()

Lock for TProcessID simultaneous action.

function make_runge_kutta

template <typename T ,
int S,
int D =3,
class... Args>
RungeKutta< T, S, D > make_runge_kutta(
    const Eigen::Matrix< T, S+2, S > & tableau,
    Args &&... args
)

Utility function to create RungeKutta class using template deduction.

Parameters:

Return: Instantiation of RungeKutta class with the forwarded arguments

function register_units

static void register_units()

Sets the default unit conventions.

Attributes Documentation

variable RNGWrapper

thread_local double(T::*)() RNGWrapper;

variable ionization_energies

static std::map< SensorMaterial, double > ionization_energies = {
        {SensorMaterial::SILICON, 3.64e-6},
        {SensorMaterial::GALLIUM_ARSENIDE, 4.2e-6},
        {SensorMaterial::GALLIUM_NITRIDE,
         8.33e-6}, 
        {SensorMaterial::GERMANIUM, 2.97e-6},         
        {SensorMaterial::CADMIUM_TELLURIDE, 4.43e-6}, 
        {SensorMaterial::CADMIUM_ZINC_TELLURIDE, 4.6e-6},
        {SensorMaterial::DIAMOND, 13.1e-6},         
        {SensorMaterial::SILICON_CARBIDE, 7.6e-6}};

Ionization / charge creation energy for different materials.

Warning: All values in framework-internal units, here: MeV

variable fano_factors

static std::map< SensorMaterial, double > fano_factors = {
        {SensorMaterial::SILICON, 0.115},
        {SensorMaterial::GALLIUM_ARSENIDE, 0.14},
        {SensorMaterial::GALLIUM_NITRIDE,
         0.07}, 
        {SensorMaterial::GERMANIUM, 0.112},             
        {SensorMaterial::CADMIUM_TELLURIDE, 0.24},      
        {SensorMaterial::CADMIUM_ZINC_TELLURIDE, 0.14}, 
        {SensorMaterial::DIAMOND, 0.382},               
        {SensorMaterial::SILICON_CARBIDE, 0.1}};

Fano factors for different materials.


Updated on 2025-02-27 at 14:14:45 +0000