19#ifndef ROOT_Math_GenVector_Cartesian3D
20#define ROOT_Math_GenVector_Cartesian3D 1
45template <
class T =
double>
68 template <
class CoordSystem>
151 template <
class CoordSystem>
172 T
x()
const {
return X();}
173 T
y()
const {
return Y();}
174 T
z()
const {
return Z(); }
181 const T rho =
v.Rho();
184 fX = rho * std::cos(
v.Phi());
185 fY = rho * std::sin(
v.Phi());
195 const T rho =
v.
Rho();
197 fX = rho * cos(
v.Phi());
199 fY = rho * sin(
v.Phi());
206#if defined(__MAKECINT__) || defined(G__DICTIONARY)
212 void SetTheta(
Scalar theta);
235#if defined(__MAKECINT__) || defined(G__DICTIONARY)
250void Cartesian3D<T>::SetR(Scalar
r) {
251 GenVector_exception
e(
"Cartesian3D::SetR() is not supposed to be called");
257void Cartesian3D<T>::SetTheta(Scalar theta) {
258 GenVector_exception
e(
"Cartesian3D::SetTheta() is not supposed to be called");
264void Cartesian3D<T>::SetPhi(Scalar phi) {
265 GenVector_exception
e(
"Cartesian3D::SetPhi() is not supposed to be called");
271void Cartesian3D<T>::SetRho(Scalar rho) {
272 GenVector_exception
e(
"Cartesian3D::SetRho() is not supposed to be called");
279void Cartesian3D<T>::SetEta(Scalar eta) {
280 GenVector_exception
e(
"Cartesian3D::SetEta() is not supposed to be called");
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t dest
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
Class describing a 3D cartesian coordinate system (x, y, z coordinates)
void SetXYZ(Scalar xx, Scalar yy, Scalar zz)
set all values using cartesian coordinates
Cartesian3D & operator=(const CoordSystem &v)
Assignment from any class implementing x(),y() and z() (can assign from any coordinate system)
constexpr Cartesian3D() noexcept=default
Default constructor with x=y=z=0.
static constexpr unsigned int Dimension
bool operator!=(const Cartesian3D &rhs) const
constexpr Cartesian3D(const CoordSystem &v)
Construct from any Vector or coordinate system implementing X(), Y() and Z()
bool operator==(const Cartesian3D &rhs) const
Exact equality.
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 3 Scalar numbers.
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 3 Scalar numbers
void Scale(Scalar a)
scale the vector by a scalar quantity a
constexpr Cartesian3D(const Polar3D< T2 > &v)
void SetCoordinates(Scalar xx, Scalar yy, Scalar zz)
Set internal data based on 3 Scalar numbers.
void SetZ(Scalar zz)
set the z coordinate value keeping x and y constant
void GetCoordinates(Scalar &xx, Scalar &yy, Scalar &zz) const
get internal data into 3 Scalar numbers
void SetX(Scalar xx)
set the x coordinate value keeping y and z constant
void SetY(Scalar yy)
set the y coordinate value keeping x and z constant
void Negate()
negate the vector
Namespace for new Math classes and functions.
Scalar Eta_FromRhoZ(Scalar rho, Scalar z)
Calculate eta given rho and zeta.
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
Rotation3D::Scalar Scalar
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...