#include <DMaterialMap.h>
|
| DMaterialMap (string namepath, JCalibration *jcalib) |
|
virtual | ~DMaterialMap () |
|
const MaterialNode * | FindNode (const DVector3 &pos) const |
|
jerror_t | FindMat (DVector3 &pos, double &rhoZ_overA, double &rhoZ_overA_logI, double &RadLen) const |
|
jerror_t | FindMatALT1 (DVector3 &pos, double &KrhoZ_overA, double &rhoZ_overA, double &logI, double &RadLen) const |
|
jerror_t | FindMat (DVector3 &pos, double &density, double &A, double &Z, double &RadLen) const |
|
jerror_t | FindMatKalman (const DVector3 &pos, double &K_rho_Z_over_A, double &rho_Z_over_A, double &LogI, double &chi2c_factor, double &chi2a_factor, double &chi2a_corr, double &Z) const |
|
bool | IsInMap (const DVector3 &pos) const |
|
double | EstimatedDistanceToBoundary (const DVector3 &pos, const DVector3 &mom) |
|
double | EstimatedDistanceToBoundarySearch (double r, double z, double p_hatR, double p_hatZ, double &s_to_boundary) |
|
double | DistanceToBox (double &x, double &y, double &xdir, double &ydir, double xmin, double xmax, double ymin, double ymax) |
|
string | GetNamepath (void) const |
|
double | GetRmin (void) const |
|
double | GetRmax (void) const |
|
double | GetZmin (void) const |
|
double | GetZmax (void) const |
|
double | GetNr (void) const |
|
double | GetNz (void) const |
|
double | Getdr (void) const |
|
double | Getdz (void) const |
|
Definition at line 13 of file DMaterialMap.h.
DMaterialMap::DMaterialMap |
( |
string |
namepath, |
|
|
JCalibration * |
jcalib |
|
) |
| |
virtual DMaterialMap::~DMaterialMap |
( |
| ) |
|
|
inlinevirtual |
DMaterialMap::DMaterialMap |
( |
| ) |
|
|
private |
double DMaterialMap::DistanceToBox |
( |
double & |
x, |
|
|
double & |
y, |
|
|
double & |
xdir, |
|
|
double & |
ydir, |
|
|
double |
xmin, |
|
|
double |
xmax, |
|
|
double |
ymin, |
|
|
double |
ymax |
|
) |
| |
|
inline |
Given a point in 2-D space, a direction, and the limits of a box, find the closest distance to box edge in the given direction.
Definition at line 484 of file DMaterialMap.cc.
References x, and y.
double DMaterialMap::EstimatedDistanceToBoundary |
( |
const DVector3 & |
pos, |
|
|
const DVector3 & |
mom |
|
) |
| |
Give a very rough estimate of the distance a track at this position/momentum will travel before seeing either a significant change in the raditation length of material, or the edge of this map. The primary purpose of this is to help determine the appropriate step size when swimming charged tracks. As we approach a boundary of materials, we want to take smaller steps to ensure the material is integrated properly.
This method can be called for points either inside or outside of this map. It can be that this map overlaps another so for points outside, we look for the point where the track would enter this map.
If a problem is encountered (e.g. point is outside of map and not pointing toward it) we return a value of 1.0E6
Definition at line 303 of file DMaterialMap.cc.
References sqrt().
double DMaterialMap::EstimatedDistanceToBoundarySearch |
( |
double |
r, |
|
|
double |
z, |
|
|
double |
p_hatR, |
|
|
double |
p_hatZ, |
|
|
double & |
s_to_boundary |
|
) |
| |
Estimate the distance to the nearest boundary (marked by a a change in radiation length by a factor of 2 or more) by doing an exhaustive bin-by-bin search in the direction of the momentum vector in r-z space. This should only get called for maps with an irregular density profile (i.e. one whose boundaries do not appear to be in pure r or pure z directions.
Definition at line 407 of file DMaterialMap.cc.
References Nz, rmin, and zmin.
void DMaterialMap::FindBoundaries |
( |
void |
| ) |
|
|
private |
Look for boundaries where the material density changes and record them for faster checking during swimming
Definition at line 134 of file DMaterialMap.cc.
References Nr, and Nz.
jerror_t DMaterialMap::FindMat |
( |
DVector3 & |
pos, |
|
|
double & |
rhoZ_overA, |
|
|
double & |
rhoZ_overA_logI, |
|
|
double & |
RadLen |
|
) |
| const |
jerror_t DMaterialMap::FindMat |
( |
DVector3 & |
pos, |
|
|
double & |
density, |
|
|
double & |
A, |
|
|
double & |
Z, |
|
|
double & |
RadLen |
|
) |
| const |
jerror_t DMaterialMap::FindMatALT1 |
( |
DVector3 & |
pos, |
|
|
double & |
KrhoZ_overA, |
|
|
double & |
rhoZ_overA, |
|
|
double & |
logI, |
|
|
double & |
RadLen |
|
) |
| const |
jerror_t DMaterialMap::FindMatKalman |
( |
const DVector3 & |
pos, |
|
|
double & |
K_rho_Z_over_A, |
|
|
double & |
rho_Z_over_A, |
|
|
double & |
LogI, |
|
|
double & |
chi2c_factor, |
|
|
double & |
chi2a_factor, |
|
|
double & |
chi2a_corr, |
|
|
double & |
Z |
|
) |
| const |
double DMaterialMap::Getdr |
( |
void |
| ) |
const |
|
inline |
double DMaterialMap::Getdz |
( |
void |
| ) |
const |
|
inline |
string DMaterialMap::GetNamepath |
( |
void |
| ) |
const |
|
inline |
double DMaterialMap::GetNr |
( |
void |
| ) |
const |
|
inline |
double DMaterialMap::GetNz |
( |
void |
| ) |
const |
|
inline |
double DMaterialMap::GetRmax |
( |
void |
| ) |
const |
|
inline |
double DMaterialMap::GetRmin |
( |
void |
| ) |
const |
|
inline |
double DMaterialMap::GetZmax |
( |
void |
| ) |
const |
|
inline |
double DMaterialMap::GetZmin |
( |
void |
| ) |
const |
|
inline |
bool DMaterialMap::IsInMap |
( |
const DVector3 & |
pos | ) |
const |
bool DMaterialMap::ENABLE_BOUNDARY_CHECK |
|
private |
bool DMaterialMap::irregular_density_profile |
|
private |
bool DMaterialMap::IS_VALID |
JCalibration* DMaterialMap::jcalib |
|
private |
int DMaterialMap::MAX_BOUNDARY_SEARCH_STEPS |
|
private |
double DMaterialMap::one_over_dr |
|
private |
double DMaterialMap::one_over_dz |
|
private |
vector<double> DMaterialMap::r_boundaries |
|
private |
double DMaterialMap::rmax |
|
private |
double DMaterialMap::rmin |
|
private |
vector<double> DMaterialMap::z_boundaries |
|
private |
double DMaterialMap::zmax |
|
private |
double DMaterialMap::zmin |
|
private |
The documentation for this class was generated from the following files: