27 constexpr auto NaN = std::numeric_limits<double>::quiet_NaN();
28 constexpr auto Inf = std::numeric_limits<double>::infinity();
33 constexpr T
Sqr(
const T val)
51 return (charge * length_mm == 0.
53 : edep_MeV / (1. +
BirkC1 * (
Sqr(charge) > 1 ? 7.2 / 12.6 : 1.) * (edep_MeV / length_mm) +
104 assert(planeNum > 0);
107 template <
typename T =
double>
110 return static_cast<T
>((plane_id + 0.5) *
BarSize_Z);
112 template <
typename T =
double>
Simulation of NeuLAND Bar/Paddle.
constexpr auto COARSE_TIME_CLOCK_FREQUENCY_MHZ
constexpr double GetLightYieldAfterBirk(const int charge, const double length_mm, const double edep_MeV)
constexpr auto BarsPerPlane
constexpr auto DEFAULT_T_DIFF_RESIDUAL_CUT
constexpr auto ModuleID2PlaneID(int moduleID) -> int
constexpr auto AvgTimeResolution
constexpr auto NeulandOnSpillTpatPos
constexpr auto BarUncertainty_Z
constexpr auto GetBarVerticalDisplacement(int module_num) -> double
constexpr auto Neuland_PlaneBar2ModuleNum(unsigned int planeNum, unsigned int barNum) -> unsigned int
constexpr auto ModuleID2PlaneNum(int moduleID) -> int
constexpr auto DEFAULT_CALIBRATION_P_VALUE_CUT
constexpr auto SaturationCoefficient
constexpr auto MaxNumberOfBars
constexpr auto MIPStoppingPower
constexpr auto AvgEffectiveCLight
constexpr auto BarSize_XY
constexpr auto FirstHorizontalPlane
constexpr auto TotalBarLength
constexpr auto ModuleNum2ZPos(int module_num) -> T
constexpr auto AvgAttenuationLength
constexpr auto AvgThreshold
constexpr auto BarUncertainty_XY
constexpr auto MaxFTValue
constexpr auto MAXCTValue
constexpr auto IsPlaneIDHorizontal(int plane_id) -> bool
constexpr auto LightGuideLength
constexpr auto MaxNumberOfPlanes
constexpr auto IsPlaneIDVertical(int plane_id) -> bool
constexpr auto MIPStoppingPowerPerDensity
constexpr T Sqr(const T val)
constexpr auto MaxCalTime
constexpr auto DEFAULT_EFFECTIVE_C
constexpr auto PlaneID2ZPos(int plane_id) -> T
constexpr auto ScintillatorDensity