File indexing completed on 2025-08-05 08:09:08
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Utilities/Helpers.hpp"
0012 #include <cmath>
0013
0014 namespace Fatras {
0015
0016 namespace casts {
0017
0018
0019 struct eta {
0020
0021 template <typename particle_t>
0022 double operator()(const particle_t &particle) const {
0023 return Acts::VectorHelpers::eta(particle.momentum());
0024 }
0025 };
0026
0027
0028 struct absEta {
0029
0030 template <typename particle_t>
0031 double operator()(const particle_t &particle) const {
0032 return std::abs(Acts::VectorHelpers::eta(particle.momentum()));
0033 }
0034 };
0035
0036
0037 struct pT {
0038 template <typename particle_t>
0039 double operator()(const particle_t &particle) const {
0040 return Acts::VectorHelpers::perp(particle.momentum());
0041 }
0042 };
0043
0044
0045 struct p {
0046 template <typename particle_t>
0047 double operator()(const particle_t &particle) const {
0048 return particle.momentum().norm();
0049 }
0050 };
0051
0052
0053 struct E {
0054
0055 template <typename particle_t>
0056 double operator()(const particle_t &particle) const {
0057 return particle.E();
0058 }
0059 };
0060
0061
0062 struct vR {
0063
0064 template <typename particle_t>
0065 double operator()(const particle_t &particle) const {
0066 return Acts::VectorHelpers::perp(particle.position());
0067 }
0068 };
0069
0070
0071 struct vZ {
0072
0073 template <typename particle_t>
0074 double operator()(const particle_t &particle) const {
0075 return particle.position().z();
0076 }
0077 };
0078
0079
0080 struct AbsVz {
0081
0082 template <typename particle_t>
0083 double operator()(const particle_t &particle) const {
0084 return std::abs(particle.position().z());
0085 }
0086 };
0087
0088 }
0089 }