|
ATLAS Offline Software
|
Go to the documentation of this file.
15 #ifndef PATHLENGTUTILS_H
16 #define PATHLENGTUTILS_H
23 #include "CaloGeoHelpers/CaloSampling.h"
47 double getPathLengthInZ(
double zMin,
double zMax,
double z_entrance,
double z_exit)
const;
56 double mean_phi =
phiMean(phi_entrance, phi_exit);
58 double phi_min = mean_phi - dphi, phi_max = mean_phi + dphi;
68 if (fabs(eta_entrance - eta_exit) < 1
e-6)
71 double etaMinTrack =
std::min(eta_entrance, eta_exit);
72 double etaMaxTrack =
std::max(eta_entrance, eta_exit);
78 if (fabs(z_entrance - z_exit) < 1
e-6)
79 return z_entrance > zMin && z_entrance < zMax;
81 double zMinTrack =
std::min(z_entrance, z_exit);
82 double zMaxTrack =
std::max(z_entrance, z_exit);
83 return (
std::min(zMax, zMaxTrack) -
std::max(zMin, zMinTrack)) / (zMaxTrack - zMinTrack);
91 #endif //> !PATHLENGTUTILS_H
~PathLengthUtils()=default
path
python interpreter configuration --------------------------------------—
void entryExitLayerMap(const Trk::CaloExtension &extension, EntryExitLayerMap &result, const LayersToSelect *selection=nullptr)
double phiMean(double a, double b) const
double getPathLengthInZ(double zMin, double zMax, double z_entrance, double z_exit) const
Return the % of path length crossed by the track inside a cell in Z.
#define AmgMatrix(rows, cols)
static bool crossingMatrix(const AmgMatrix(3, 3)&Matrix, const Amg::Vector3D &entry, Amg::Vector3D &path)
static double getPathLengthInTile(const CaloCell &cell, const Amg::Vector3D &entry, const Amg::Vector3D &exit)
CaloPhiRange class declaration.
std::map< CaloSampling::CaloSample, std::pair< Amg::Vector3D, Amg::Vector3D > > EntryExitLayerMap
double getPathLengthInEta(const CaloCell &cell, double eta_entrance, double eta_exit) const
Return the % of path length crossed by the track inside a cell in eta.
static double get3DPathLength(const CaloCell &cell, const Amg::Vector3D &entry, const Amg::Vector3D &exit, double drFix, double dzFix)
Eigen::Matrix< double, 3, 1 > Vector3D
Data object for each calorimeter readout cell.
static CaloSampling::CaloSample tileEntrance(CaloSampling::CaloSample sample)
bool crossedPhi(const CaloCell &cell, double phi_entrance, double phi_exit) const
Return true if the cell crossed was crossed by the track in phi.
double pathInsideCell(const CaloCell &cell, const CaloExtensionHelpers::EntryExitLayerMap &entryExitLayerMap) const
Return the length(mm) of the path crossed inside the cell, given the parameters for the extrapolation...
static CaloSampling::CaloSample tileExit(CaloSampling::CaloSample sample)
static double diff(double phi1, double phi2)
simple phi1 - phi2 calculation, but result is fixed to respect range.