#include <TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixStateInfo.h>
Implementation part of the stepping helix propagator state data structure.
Definition at line 35 of file SteppingHelixStateInfo.h.
typedef Hep3Vector SteppingHelixStateInfo::Point |
Definition at line 39 of file SteppingHelixStateInfo.h.
typedef Hep3Vector SteppingHelixStateInfo::Vector |
Definition at line 38 of file SteppingHelixStateInfo.h.
Definition at line 41 of file SteppingHelixStateInfo.h.
00041 { 00042 OK=0, 00043 FAULT, 00044 APPROX, 00045 RANGEOUT, 00046 INACC, 00047 NOT_IMPLEMENTED, 00048 WRONG_VOLUME, 00049 UNDEFINED, 00050 MAX_RESULT 00051 };
SteppingHelixStateInfo::SteppingHelixStateInfo | ( | ) | [inline] |
Definition at line 55 of file SteppingHelixStateInfo.h.
00055 : 00056 path_(0), radPath_(0), dir(0), magVol(0), field(0), dEdx(0), dEdXPrime(0), radX0(1e12), 00057 isComplete(0), isValid_(0), hasErrorPropagated_(0), status_(UNDEFINED) {}
SteppingHelixStateInfo::SteppingHelixStateInfo | ( | const FreeTrajectoryState & | fts | ) |
Definition at line 34 of file SteppingHelixStateInfo.cc.
References FreeTrajectoryState::cartesianError(), FreeTrajectoryState::charge(), cov, FreeTrajectoryState::hasError(), hasErrorPropagated_, isComplete, isValid_, CartesianTrajectoryError::matrix(), FreeTrajectoryState::momentum(), p3, FreeTrajectoryState::position(), q, r3, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
00034 : 00035 path_(0), radPath_(0), dir(0), magVol(0), field(0), dEdx(0), dEdXPrime(0), radX0(1e12), 00036 status_(UNDEFINED) 00037 { 00038 p3.set(fts.momentum().x(), fts.momentum().y(), fts.momentum().z()); 00039 r3.set(fts.position().x(), fts.position().y(), fts.position().z()); 00040 q = fts.charge(); 00041 00042 if (fts.hasError()){ 00043 cov = fts.cartesianError().matrix(); 00044 hasErrorPropagated_ = true; 00045 } else { 00046 cov = AlgebraicSymMatrix66(); 00047 hasErrorPropagated_ = false; 00048 } 00049 00050 isComplete = false; 00051 isValid_ = true; 00052 }
void SteppingHelixStateInfo::getFreeState | ( | FreeTrajectoryState & | fts | ) | const |
convert internal structure into the fts
Definition at line 74 of file SteppingHelixStateInfo.cc.
References cov, FreeTrajectoryState::curvilinearError(), field, FreeTrajectoryState::hasError(), hasErrorPropagated_, isValid(), p3, q, and r3.
Referenced by CachedTrajectory::propagateForward(), and SteppingHelixPropagator::propagateWithPath().
00074 { 00075 if (isValid()){ 00076 GlobalVector p3GV(p3.x(), p3.y(), p3.z()); 00077 GlobalPoint r3GP(r3.x(), r3.y(), r3.z()); 00078 GlobalTrajectoryParameters tPars(r3GP, p3GV, q, field); 00079 CartesianTrajectoryError tCov(cov); 00080 00081 fts = (hasErrorPropagated_ ) 00082 ? FreeTrajectoryState(tPars, tCov) : FreeTrajectoryState(tPars); 00083 if (fts.hasError()) fts.curvilinearError(); //call it so it gets created 00084 } 00085 }
TrajectoryStateOnSurface SteppingHelixStateInfo::getStateOnSurface | ( | const Surface & | surf, | |
bool | returnTangentPlane = false | |||
) | const |
Definition at line 54 of file SteppingHelixStateInfo.cc.
References SurfaceSideDefinition::afterSurface, SurfaceSideDefinition::atCenterOfSurface, SurfaceSideDefinition::beforeSurface, cov, dir, field, hasErrorPropagated_, isValid(), p3, FreeTrajectoryState::position(), q, r3, and Surface::tangentPlane().
Referenced by MuonSimHitProducer::produce(), CachedTrajectory::propagate(), and SteppingHelixPropagator::propagateWithPath().
00054 { 00055 if (! isValid()) return TrajectoryStateOnSurface(); 00056 GlobalVector p3GV(p3.x(), p3.y(), p3.z()); 00057 GlobalPoint r3GP(r3.x(), r3.y(), r3.z()); 00058 GlobalTrajectoryParameters tPars(r3GP, p3GV, q, field); 00059 CartesianTrajectoryError tCov(cov); 00060 00061 CurvilinearTrajectoryError tCCov(ROOT::Math::Similarity(JacobianCartesianToCurvilinear(tPars).jacobian(), cov)); 00062 00063 FreeTrajectoryState fts(tPars, tCov, tCCov); 00064 if (! hasErrorPropagated_) fts = FreeTrajectoryState(tPars); 00065 00066 00067 SurfaceSideDefinition::SurfaceSide side = SurfaceSideDefinition::atCenterOfSurface; 00068 if ( dir > 0 ) side = SurfaceSideDefinition::beforeSurface; 00069 if ( dir < 0 ) side = SurfaceSideDefinition::afterSurface; 00070 return TrajectoryStateOnSurface(fts, returnTangentPlane ? *surf.tangentPlane(fts.position()) : surf, side); 00071 }
bool SteppingHelixStateInfo::hasErrorPropagated | ( | ) | const [inline] |
Definition at line 72 of file SteppingHelixStateInfo.h.
References hasErrorPropagated_.
00072 {return hasErrorPropagated_;}
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().
00071 {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().
00066 {return GlobalVector(p3.x(), p3.y(), p3.z());}
double SteppingHelixStateInfo::path | ( | void | ) | 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::associate(), TrackDetectorAssociator::getTAMuonChamberMatches(), CachedTrajectory::getTrajectory(), AlCaHOCalibProducer::produce(), CachedTrajectory::propagateAll(), and CachedTrajectory::propagateForward().
00065 {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().
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(), and SteppingHelixPropagator::refToDest().
Vector SteppingHelixStateInfo::bfGradLoc [protected] |
Definition at line 101 of file SteppingHelixStateInfo.h.
AlgebraicSymMatrix66 SteppingHelixStateInfo::cov [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().
AlgebraicSymMatrix66 SteppingHelixStateInfo::matDCov [protected] |
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(), 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(), 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] |
Initial value:
{ "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().