CMS 3D CMS Logo

SteppingHelixStateInfo Class Reference

Holder of SteppingHelixState information. More...

#include <TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixStateInfo.h>

List of all members.

Public Types

typedef Hep3Vector Point
enum  Result {
  OK = 0, FAULT, APPROX, RANGEOUT,
  INACC, NOT_IMPLEMENTED, WRONG_VOLUME, UNDEFINED,
  MAX_RESULT
}
typedef Hep3Vector Vector

Public Member Functions

int charge () const
void getFreeState (FreeTrajectoryState &fts) const
 convert internal structure into the fts
TrajectoryStateOnSurface getStateOnSurface (const Surface &surf, bool returnTangentPlane=false) const
bool hasErrorPropagated () const
bool isValid () const
GlobalVector momentum () const
double path () const
GlobalPoint position () const
double radPath () const
Result status () const
 SteppingHelixStateInfo (const FreeTrajectoryState &fts)
 SteppingHelixStateInfo ()

Static Public Attributes

static const std::string ResultName [MAX_RESULT]

Protected Attributes

Vector bf
Vector bfGradLoc
AlgebraicSymMatrix66 cov
double dEdx
double dEdXPrime
double dir
const MagneticFieldfield
bool hasErrorPropagated_
bool isComplete
bool isValid_
bool isYokeVol
const MagVolumemagVol
AlgebraicSymMatrix66 matDCov
Vector p3
double path_
int q
Point r3
double radPath_
double radX0
VolumeBounds rzLims
Result status_

Friends

class SteppingHelixPropagator

Classes

struct  VolumeBounds


Detailed Description

Holder of SteppingHelixState information.

Implementation part of the stepping helix propagator state data structure.

Date
2007/10/09 01:33:09
Revision
1.14
Author:
Vyacheslav Krutelyov (slava77)
Date
2008/12/04 00:27:03
Revision
1.12
Author:
Vyacheslav Krutelyov (slava77)

Definition at line 35 of file SteppingHelixStateInfo.h.


Member Typedef Documentation

typedef Hep3Vector SteppingHelixStateInfo::Point

Definition at line 39 of file SteppingHelixStateInfo.h.

typedef Hep3Vector SteppingHelixStateInfo::Vector

Definition at line 38 of file SteppingHelixStateInfo.h.


Member Enumeration Documentation

enum SteppingHelixStateInfo::Result

Enumerator:
OK 
FAULT 
APPROX 
RANGEOUT 
INACC 
NOT_IMPLEMENTED 
WRONG_VOLUME 
UNDEFINED 
MAX_RESULT 

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   };


Constructor & Destructor Documentation

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 }


Member Function Documentation

int SteppingHelixStateInfo::charge ( void   )  const [inline]

Definition at line 67 of file SteppingHelixStateInfo.h.

References q.

00067 {return q;}

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_;}

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().

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().

00068 {return isValid_ ? path_ : 0;}

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().

00069 {return isValid_ ? radPath_ : 0;}

Result SteppingHelixStateInfo::status ( void   )  const [inline]

Definition at line 74 of file SteppingHelixStateInfo.h.

References status_.

00074 {return status_;}


Friends And Related Function Documentation

friend class SteppingHelixPropagator [friend]

Definition at line 36 of file SteppingHelixStateInfo.h.


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:32:49 2009 for CMSSW by  doxygen 1.5.4