4#ifndef TRIGTOOLS_TRIG_VSI_COORD
5#define TRIGTOOLS_TRIG_VSI_COORD
38 static inline TVector3
X123toXYZ(
double x1,
double x2,
double x3) {
39 return TVector3(x1, x2, x3);
43 return TVector3(p.at(0),p.at(1),p.at(2));
75 static inline TVector3
X123toXYZ(
double x1,
double x2,
double x3) {
77 tmp.SetPtEtaPhi(x1,x2,x3);
83 tmp.SetPtEtaPhi(p.at(0),p.at(1),p.at(2));
96 tmp[2] = std::fmod( p[2] + TMath::Pi(), 2. * TMath::Pi() ) - TMath::Pi();
105 tmp[2] = (ibin[2] - 1) % (
map->GetNbinsZ() - 1 + 1) + 1;
118 static auto check(...) -> std::false_type;
120 template<
typename _Coord>
122 decltype(
static_cast<TVector3(*)(
const KDPoint<double,3>&)
>(&_Coord::X123toXYZ),
point classes for clustering
Cordinate policy for x, y, z.
static TVector3 X123toXYZ(const KDPoint< double, 3 > &p)
static KDPoint< double, 3 > XYZtoX123(const TVector3 &v)
static KDPoint< double, 3 > Proj(const KDPoint< double, 3 > &p)
static KDPoint< int, 3 > ProjBin(const KDPoint< int, 3 > &ibin, const std::unique_ptr< TH3D > &)
static TVector3 X123toXYZ(double x1, double x2, double x3)
Cordinate policy for perp, eta, phi.
static TVector3 X123toXYZ(const KDPoint< double, 3 > &p)
static KDPoint< double, 3 > XYZtoX123(const TVector3 &v)
static TVector3 X123toXYZ(double x1, double x2, double x3)
static KDPoint< double, 3 > Proj(const KDPoint< double, 3 > &p)
static KDPoint< int, 3 > ProjBin(const KDPoint< int, 3 > &ibin, const std::unique_ptr< TH3D > &map)
Class for k-dimensional point.
Namespace for Coordinate policy used in TrigVSI::VtxMap.
===========================================================================
static constexpr T * insPolicy
static constexpr bool value
static auto check(...) -> std::false_type
static auto check(_Coord *) -> decltype(static_cast< TVector3(*)(const KDPoint< double, 3 > &)>(&_Coord::X123toXYZ), static_cast< KDPoint< double, 3 >(*)(const TVector3 &)>(&_Coord::XYZtoX123), static_cast< KDPoint< double, 3 >(*)(const KDPoint< double, 3 > &)>(&_Coord::Proj), static_cast< KDPoint< int, 3 >(*)(const KDPoint< int, 3 > &, const std::unique_ptr< TH3D > &)>(&_Coord::ProjBin), std::true_type())