21 :
fX(
utils::simd::Cast<double, T>(
x))
22 ,
fY(
utils::simd::Cast<double, T>(
y))
23 ,
fZ(
utils::simd::Cast<double, T>(z))
24 ,
fDz(
utils::simd::Cast<double, T>(dz))
25 ,
fR(
utils::simd::Cast<double, T>(r))
35 throw std::logic_error(
"Target:ReceiveMaterial(): attempt to pass an undefined instance of the material map");
45 if (material.IsUndefined()) {
46 throw std::logic_error(
"Target:ReceiveMaterial(): attempt to pass an undefined instance of the material map");
56 constexpr char IndentChar =
'\t';
57 std::stringstream msg;
58 std::string indent(indentLevel, IndentChar);
60 msg << indent <<
"position: {" << Cnv(
fX) <<
", " << Cnv(
fY) <<
", " << Cnv(
fZ) <<
"} [cm]\n";
61 msg << indent <<
"half-thickness: " << Cnv(
fDz) <<
" [cm]\n";
62 msg << indent <<
"material:\n" << indent << IndentChar <<
" " <<
fMaterial.ToString(verbose);
A target layer in the KF-setup (header)
A map of station thickness in units of radiation length (X0) to the specific point in XY plane.
bool IsUndefined() const
Function to test the instance for NaN.
A geometry layer in the target region.
T fR
Half-thickness of the target [cm].
T fX
x-coordinate of the nominal target center [cm]
std::string ToString(int indentLevel=0, int vebose=1) const
String representation of the class.
void SetMaterial(const MaterialMap &material)
Sets material map.
T fZ
z-coordinate of the nominal target center [cm]
MaterialMap fMaterial
Material map in the target region.
T fY
y-coordinate of the nominal target center [cm]
T fDz
Half-thickness of the target [cm].
DataOut Cast(const DataT &val)
Converts a value of type DataT to type DataOut.