#include <SteppingHelixStateInfo.h>
Holder of SteppingHelixState information
Implementation part of the stepping helix propagator state data structure
Definition at line 35 of file SteppingHelixStateInfo.h.
typedef CLHEP::Hep3Vector SteppingHelixStateInfo::Point |
Definition at line 39 of file SteppingHelixStateInfo.h.
typedef CLHEP::Hep3Vector SteppingHelixStateInfo::Vector |
Definition at line 38 of file SteppingHelixStateInfo.h.
Definition at line 41 of file SteppingHelixStateInfo.h.
{ OK=0, FAULT, APPROX, RANGEOUT, INACC, NOT_IMPLEMENTED, WRONG_VOLUME, UNDEFINED, MAX_RESULT };
SteppingHelixStateInfo::SteppingHelixStateInfo | ( | ) | [inline] |
Definition at line 55 of file SteppingHelixStateInfo.h.
SteppingHelixStateInfo::SteppingHelixStateInfo | ( | const FreeTrajectoryState & | fts | ) |
Definition at line 36 of file SteppingHelixStateInfo.cc.
References FreeTrajectoryState::charge(), covCurv, FreeTrajectoryState::curvilinearError(), FreeTrajectoryState::hasError(), hasErrorPropagated_, isComplete, isValid_, LogTrace, CurvilinearTrajectoryError::matrix(), metname, FreeTrajectoryState::momentum(), p3, FreeTrajectoryState::position(), q, r3, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
: path_(0), radPath_(0), dir(0), magVol(0), field(0), dEdx(0), dEdXPrime(0), radX0(1e12), status_(UNDEFINED) { p3.set(fts.momentum().x(), fts.momentum().y(), fts.momentum().z()); r3.set(fts.position().x(), fts.position().y(), fts.position().z()); q = fts.charge(); if (fts.hasError()){ covCurv = fts.curvilinearError().matrix(); hasErrorPropagated_ = true; } else { covCurv = AlgebraicSymMatrix55(); hasErrorPropagated_ = false; } static const std::string metname = "SteppingHelixPropagator"; if (fts.hasError()){ LogTrace(metname)<<"Created SHPStateInfo from FTS\n"<<fts; // LogTrace(metname)<<"and cartesian error of\n"<<fts.cartesianError().matrix(); } else LogTrace(metname)<<"Created SHPStateInfo from FTS without errors"; isComplete = false; isValid_ = true; }
int SteppingHelixStateInfo::charge | ( | void | ) | const [inline] |
void SteppingHelixStateInfo::getFreeState | ( | FreeTrajectoryState & | fts | ) | const |
convert internal structure into the fts
Definition at line 86 of file SteppingHelixStateInfo.cc.
References covCurv, field, hasErrorPropagated_, isValid(), p3, q, and r3.
Referenced by CachedTrajectory::propagate(), and SteppingHelixPropagator::propagateWithPath().
{ if (isValid()){ GlobalVector p3GV(p3.x(), p3.y(), p3.z()); GlobalPoint r3GP(r3.x(), r3.y(), r3.z()); GlobalTrajectoryParameters tPars(r3GP, p3GV, q, field); // CartesianTrajectoryError tCov(cov); // CurvilinearTrajectoryError tCCov(ROOT::Math::Similarity(JacobianCartesianToCurvilinear(tPars).jacobian(), cov)); CurvilinearTrajectoryError tCCov(covCurv); fts = (hasErrorPropagated_ ) ? FreeTrajectoryState(tPars, tCCov) : FreeTrajectoryState(tPars); // ? FreeTrajectoryState(tPars, tCov, tCCov) : FreeTrajectoryState(tPars); // if (fts.hasError()) fts.curvilinearError(); //call it so it gets created } }
TrajectoryStateOnSurface SteppingHelixStateInfo::getStateOnSurface | ( | const Surface & | surf, |
bool | returnTangentPlane = false |
||
) | const |
Definition at line 62 of file SteppingHelixStateInfo.cc.
References SurfaceSideDefinition::afterSurface, SurfaceSideDefinition::atCenterOfSurface, SurfaceSideDefinition::beforeSurface, covCurv, dir, field, hasErrorPropagated_, isValid(), LogTrace, metname, p3, FreeTrajectoryState::position(), q, r3, and Surface::tangentPlane().
Referenced by CaloDetIdAssociator::crossedElement(), MuonSimHitProducer::produce(), CachedTrajectory::propagate(), and SteppingHelixPropagator::propagateWithPath().
{ static const std::string metname = "SteppingHelixPropagator"; if (! isValid()) LogTrace(metname)<<"Return TSOS is invalid"; else LogTrace(metname)<<"Return TSOS is valid"; if (! isValid()) return TrajectoryStateOnSurface(); GlobalVector p3GV(p3.x(), p3.y(), p3.z()); GlobalPoint r3GP(r3.x(), r3.y(), r3.z()); GlobalTrajectoryParameters tPars(r3GP, p3GV, q, field); // CartesianTrajectoryError tCov(cov); // CurvilinearTrajectoryError tCCov(ROOT::Math::Similarity(JacobianCartesianToCurvilinear(tPars).jacobian(), cov)); CurvilinearTrajectoryError tCCov(covCurv); FreeTrajectoryState fts(tPars, tCCov); if (! hasErrorPropagated_) fts = FreeTrajectoryState(tPars); SurfaceSideDefinition::SurfaceSide side = SurfaceSideDefinition::atCenterOfSurface; if ( dir > 0 ) side = SurfaceSideDefinition::beforeSurface; if ( dir < 0 ) side = SurfaceSideDefinition::afterSurface; return TrajectoryStateOnSurface(fts, returnTangentPlane ? *surf.tangentPlane(fts.position()) : surf, side); }
bool SteppingHelixStateInfo::hasErrorPropagated | ( | ) | const [inline] |
Definition at line 72 of file SteppingHelixStateInfo.h.
References hasErrorPropagated_.
{return hasErrorPropagated_;}
bool SteppingHelixStateInfo::isValid | ( | void | ) | const [inline] |
Definition at line 71 of file SteppingHelixStateInfo.h.
References isValid_.
Referenced by getFreeState(), getStateOnSurface(), TrackDetectorAssociator::getTAMuonChamberMatches(), CachedTrajectory::getTrajectory(), AlCaHOCalibProducer::produce(), SteppingHelixPropagator::propagate(), CachedTrajectory::propagateAll(), and CachedTrajectory::trajectoryDelta().
{return isValid_;}
GlobalVector SteppingHelixStateInfo::momentum | ( | ) | const [inline] |
Definition at line 66 of file SteppingHelixStateInfo.h.
References p3.
Referenced by TrackDetectorAssociator::getTAMuonChamberMatches(), CachedTrajectory::getTrajectory(), AlCaHOCalibProducer::produce(), CachedTrajectory::propagate(), CachedTrajectory::propagateForward(), and CachedTrajectory::trajectoryDelta().
{return GlobalVector(p3.x(), p3.y(), p3.z());}
double SteppingHelixStateInfo::path | ( | ) | const [inline] |
Definition at line 68 of file SteppingHelixStateInfo.h.
References isValid_, and path_.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), MuonSimHitProducer::produce(), SteppingHelixPropagator::propagate(), SteppingHelixPropagator::propagateWithPath(), and SteppingHelixPropagator::refToDest().
GlobalPoint SteppingHelixStateInfo::position | ( | void | ) | const [inline] |
Definition at line 65 of file SteppingHelixStateInfo.h.
References r3.
Referenced by TrackDetectorAssociator::getTAMuonChamberMatches(), CachedTrajectory::getTrajectory(), AlCaHOCalibProducer::produce(), CachedTrajectory::propagateAll(), and CachedTrajectory::propagateForward().
{return GlobalPoint(r3.x(), r3.y(), r3.z());}
double SteppingHelixStateInfo::radPath | ( | ) | const [inline] |
Definition at line 69 of file SteppingHelixStateInfo.h.
References isValid_, and radPath_.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), and MuonSimHitProducer::produce().
Result SteppingHelixStateInfo::status | ( | void | ) | const [inline] |
friend class SteppingHelixPropagator [friend] |
Definition at line 36 of file SteppingHelixStateInfo.h.
Vector SteppingHelixStateInfo::bf [protected] |
Definition at line 100 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getDeDx(), SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), SteppingHelixPropagator::refToDest(), and SteppingHelixPropagator::SteppingHelixPropagator().
Vector SteppingHelixStateInfo::bfGradLoc [protected] |
Definition at line 101 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::SteppingHelixPropagator().
AlgebraicSymMatrix55 SteppingHelixStateInfo::covCurv [protected] |
Definition at line 95 of file SteppingHelixStateInfo.h.
Referenced by getFreeState(), SteppingHelixPropagator::getNextState(), getStateOnSurface(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::setIState(), SteppingHelixPropagator::SteppingHelixPropagator(), and SteppingHelixStateInfo().
double SteppingHelixStateInfo::dEdx [protected] |
Definition at line 107 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), and SteppingHelixPropagator::propagate().
double SteppingHelixStateInfo::dEdXPrime [protected] |
Definition at line 108 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), and SteppingHelixPropagator::makeAtomStep().
double SteppingHelixStateInfo::dir [protected] |
Definition at line 99 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), getStateOnSurface(), SteppingHelixPropagator::loadState(), and SteppingHelixPropagator::propagate().
const MagneticField* SteppingHelixStateInfo::field [protected] |
Definition at line 104 of file SteppingHelixStateInfo.h.
Referenced by getFreeState(), getStateOnSurface(), and SteppingHelixPropagator::propagate().
bool SteppingHelixStateInfo::hasErrorPropagated_ [protected] |
Definition at line 113 of file SteppingHelixStateInfo.h.
Referenced by getFreeState(), SteppingHelixPropagator::getNextState(), getStateOnSurface(), hasErrorPropagated(), SteppingHelixPropagator::makeAtomStep(), SteppingHelixPropagator::setIState(), SteppingHelixPropagator::SteppingHelixPropagator(), and SteppingHelixStateInfo().
bool SteppingHelixStateInfo::isComplete [protected] |
Definition at line 111 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::loadState(), SteppingHelixPropagator::setIState(), SteppingHelixPropagator::SteppingHelixPropagator(), and SteppingHelixStateInfo().
bool SteppingHelixStateInfo::isValid_ [protected] |
Definition at line 112 of file SteppingHelixStateInfo.h.
Referenced by isValid(), SteppingHelixPropagator::loadState(), path(), SteppingHelixPropagator::propagate(), radPath(), SteppingHelixPropagator::SteppingHelixPropagator(), and SteppingHelixStateInfo().
bool SteppingHelixStateInfo::isYokeVol [protected] |
Definition at line 103 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getDeDx(), SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), and SteppingHelixPropagator::makeAtomStep().
const MagVolume* SteppingHelixStateInfo::magVol [protected] |
Definition at line 102 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getDeDx(), SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), and SteppingHelixPropagator::refToMagVolume().
Definition at line 96 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::makeAtomStep(), and SteppingHelixPropagator::SteppingHelixPropagator().
Vector SteppingHelixStateInfo::p3 [protected] |
Definition at line 93 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getDeDx(), getFreeState(), SteppingHelixPropagator::getNextState(), getStateOnSurface(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), momentum(), SteppingHelixPropagator::propagate(), SteppingHelixPropagator::refToDest(), SteppingHelixPropagator::refToMagVolume(), SteppingHelixPropagator::refToMatVolume(), SteppingHelixPropagator::setIState(), SteppingHelixPropagator::SteppingHelixPropagator(), and SteppingHelixStateInfo().
double SteppingHelixStateInfo::path_ [protected] |
Definition at line 97 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), and path().
int SteppingHelixStateInfo::q [protected] |
Definition at line 92 of file SteppingHelixStateInfo.h.
Referenced by charge(), getFreeState(), SteppingHelixPropagator::getNextState(), getStateOnSurface(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), SteppingHelixPropagator::refToDest(), SteppingHelixPropagator::setIState(), and SteppingHelixStateInfo().
Point SteppingHelixStateInfo::r3 [protected] |
Definition at line 94 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getDeDx(), getFreeState(), SteppingHelixPropagator::getNextState(), getStateOnSurface(), SteppingHelixPropagator::loadState(), SteppingHelixPropagator::makeAtomStep(), position(), SteppingHelixPropagator::propagate(), SteppingHelixPropagator::refToDest(), SteppingHelixPropagator::refToMagVolume(), SteppingHelixPropagator::refToMatVolume(), SteppingHelixPropagator::setIState(), SteppingHelixPropagator::SteppingHelixPropagator(), and SteppingHelixStateInfo().
double SteppingHelixStateInfo::radPath_ [protected] |
Definition at line 98 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), and radPath().
double SteppingHelixStateInfo::radX0 [protected] |
Definition at line 109 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), and SteppingHelixPropagator::makeAtomStep().
const std::string SteppingHelixStateInfo::ResultName [static] |
{ "RESULT_OK", "RESULT_FAULT", "RESULT_RANGEOUT", "RESULT_INACC", "RESULT_NOT_IMPLEMENTED", "RESULT_UNDEFINED" }
Definition at line 53 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::propagate().
VolumeBounds SteppingHelixStateInfo::rzLims [protected] |
Definition at line 106 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), and SteppingHelixPropagator::refToMatVolume().
Result SteppingHelixStateInfo::status_ [protected] |
Definition at line 115 of file SteppingHelixStateInfo.h.
Referenced by SteppingHelixPropagator::propagate(), and status().