#include <ReferenceTrajectory.h>
Public Types | |
typedef SurfaceSideDefinition::SurfaceSide | SurfaceSide |
Public Types inherited from ReferenceTrajectoryBase | |
enum | MaterialEffects { none, multipleScattering, energyLoss, combined, breakPoints, brokenLinesCoarse, brokenLinesFine } |
typedef ReferenceCountingPointer < ReferenceTrajectoryBase > | ReferenceTrajectoryPtr |
Protected Member Functions | |
virtual bool | addMaterialEffectsBp (const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs, const std::vector< AlgebraicMatrix > &allLocalToCurv) |
virtual bool | addMaterialEffectsBrl (const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs, const std::vector< AlgebraicMatrix > &allLocalToCurv, const GlobalTrajectoryParameters >p) |
virtual bool | addMaterialEffectsBrl (const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs, const std::vector< AlgebraicMatrix > &allLocalToCurv, const std::vector< double > &allSteps, const GlobalTrajectoryParameters >p, const double minStep=1.0) |
virtual bool | addMaterialEffectsCov (const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs) |
virtual bool | construct (const TrajectoryStateOnSurface &referenceTsos, const TransientTrackingRecHit::ConstRecHitContainer &recHits, double mass, MaterialEffects materialEffects, const PropagationDirection propDir, const MagneticField *magField, bool useBeamSpot, const reco::BeamSpot &beamSpot) |
MaterialEffectsUpdator * | createUpdator (MaterialEffects materialEffects, double mass) const |
virtual void | fillDerivatives (const AlgebraicMatrix &projection, const AlgebraicMatrix &fullJacobian, unsigned int iRow) |
virtual void | fillMeasurementAndError (const TransientTrackingRecHit::ConstRecHitPointer &hitPtr, unsigned int iRow, const TrajectoryStateOnSurface &updatedTsos) |
virtual void | fillTrajectoryPositions (const AlgebraicMatrix &projection, const AlgebraicVector &mixedLocalParams, unsigned int iRow) |
AlgebraicMatrix | getHitProjectionMatrix (const TransientTrackingRecHit::ConstRecHitPointer &recHit) const |
template<unsigned int N> | |
AlgebraicMatrix | getHitProjectionMatrixT (const TransientTrackingRecHit::ConstRecHitPointer &recHit) const |
virtual bool | propagate (const BoundPlane &previousSurface, const TrajectoryStateOnSurface &previousTsos, const BoundPlane &newSurface, TrajectoryStateOnSurface &newTsos, AlgebraicMatrix &newJacobian, AlgebraicMatrix &newCurvlinJacobian, double &nextStep, const PropagationDirection propDir, const MagneticField *magField) const |
ReferenceTrajectory (unsigned int nPar, unsigned int nHits, MaterialEffects materialEffects) | |
SurfaceSide | surfaceSide (const PropagationDirection dir) const |
Protected Member Functions inherited from ReferenceTrajectoryBase | |
unsigned int | numberOfUsedRecHits (const TransientTrackingRecHit::ConstRecHitContainer &recHits) const |
ReferenceTrajectoryBase (unsigned int nPar, unsigned int nHits, unsigned int nVirtualPar, unsigned int nVirtualMeas) | |
bool | useRecHit (const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const |
Additional Inherited Members | |
Protected Attributes inherited from ReferenceTrajectoryBase | |
AlgebraicMatrix | theDerivatives |
AlgebraicMatrix | theInnerLocalToTrajectory |
AlgebraicMatrix | theInnerTrajectoryToCurvilinear |
AlgebraicVector | theMeasurements |
AlgebraicSymMatrix | theMeasurementsCov |
unsigned int | theNumberOfHits |
unsigned int | theNumberOfPars |
unsigned int | theNumberOfVirtualMeas |
unsigned int | theNumberOfVirtualPars |
bool | theParamCovFlag |
AlgebraicSymMatrix | theParameterCov |
AlgebraicVector | theParameters |
TransientTrackingRecHit::ConstRecHitContainer | theRecHits |
AlgebraicSymMatrix | theTrajectoryPositionCov |
AlgebraicVector | theTrajectoryPositions |
std::vector < TrajectoryStateOnSurface > | theTsosVec |
bool | theValidityFlag |
Static Protected Attributes inherited from ReferenceTrajectoryBase | |
static const unsigned int | nMeasPerHit = 2 |
Definition at line 51 of file ReferenceTrajectory.h.
Definition at line 56 of file ReferenceTrajectory.h.
ReferenceTrajectory::ReferenceTrajectory | ( | const TrajectoryStateOnSurface & | referenceTsos, |
const TransientTrackingRecHit::ConstRecHitContainer & | recHits, | ||
bool | hitsAreReverse, | ||
const MagneticField * | magField, | ||
MaterialEffects | materialEffects, | ||
PropagationDirection | propDir, | ||
double | mass, | ||
bool | useBeamSpot, | ||
const reco::BeamSpot & | beamSpot | ||
) |
Constructor with Tsos at first hit (in physical order) and list of hits [if (hitsAreReverse) ==> order of hits is in opposite direction compared to the flight of particle, but note that ReferenceTrajectory::recHits() returns the hits always in order of flight], the material effects to be considered and a particle mass, the magnetic field and beamSpot of the event are needed for propagations etc.
Definition at line 49 of file ReferenceTrajectory.cc.
References construct(), TrajectoryStateOnSurface::localParameters(), LocalTrajectoryParameters::mixedFormatVector(), ReferenceTrajectoryBase::theParameters, and ReferenceTrajectoryBase::theValidityFlag.
Referenced by clone().
|
inlinevirtual |
Definition at line 74 of file ReferenceTrajectory.h.
|
protected |
Definition at line 90 of file ReferenceTrajectory.cc.
|
protectedvirtual |
internal method to add material effects using break points
Definition at line 539 of file ReferenceTrajectory.cc.
References gen::k, prof2calltree::l, ReferenceTrajectoryBase::nMeasPerHit, ReferenceTrajectoryBase::theDerivatives, ReferenceTrajectoryBase::theMeasurementsCov, and ReferenceTrajectoryBase::theNumberOfPars.
Referenced by construct().
|
protectedvirtual |
internal methods to add material effects using broken lines (fine version)
Definition at line 604 of file ReferenceTrajectory.cc.
References gen::k, prof2calltree::l, GlobalTrajectoryParameters::momentum(), n, ReferenceTrajectoryBase::nMeasPerHit, AlCaHLTBitMon_ParallelJobs::p, mathSSE::sqrt(), ReferenceTrajectoryBase::theDerivatives, ReferenceTrajectoryBase::theInnerLocalToTrajectory, ReferenceTrajectoryBase::theInnerTrajectoryToCurvilinear, ReferenceTrajectoryBase::theMeasurementsCov, ReferenceTrajectoryBase::theNumberOfPars, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by construct().
|
protectedvirtual |
internal methods to add material effects using broken lines (coarse version)
Definition at line 775 of file ReferenceTrajectory.cc.
References delta, first, i, gen::k, prof2calltree::l, prof2calltree::last, mag(), GlobalTrajectoryParameters::magneticFieldInInverseGeV(), GlobalTrajectoryParameters::momentum(), n, ReferenceTrajectoryBase::nMeasPerHit, AlCaHLTBitMon_ParallelJobs::p, GlobalTrajectoryParameters::position(), mathSSE::sqrt(), ReferenceTrajectoryBase::theDerivatives, ReferenceTrajectoryBase::theInnerLocalToTrajectory, ReferenceTrajectoryBase::theInnerTrajectoryToCurvilinear, ReferenceTrajectoryBase::theMeasurementsCov, ReferenceTrajectoryBase::theNumberOfPars, ReferenceTrajectoryBase::theNumberOfVirtualMeas, ReferenceTrajectoryBase::theNumberOfVirtualPars, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
|
protectedvirtual |
internal method to add material effects to measurments covariance matrix
Definition at line 471 of file ReferenceTrajectory.cc.
References gen::k, prof2calltree::l, ReferenceTrajectoryBase::nMeasPerHit, and ReferenceTrajectoryBase::theMeasurementsCov.
Referenced by construct().
|
inlinevirtual |
Implements ReferenceTrajectoryBase.
Reimplemented in BzeroReferenceTrajectory.
Definition at line 76 of file ReferenceTrajectory.h.
References ReferenceTrajectory().
|
protectedvirtual |
internal method to calculate members
Definition at line 102 of file ReferenceTrajectory.cc.
References addMaterialEffectsBp(), addMaterialEffectsBrl(), addMaterialEffectsCov(), alongMomentum, ReferenceTrajectoryBase::breakPoints, ReferenceTrajectoryBase::brokenLinesCoarse, ReferenceTrajectoryBase::brokenLinesFine, BoundPlane::build(), ReferenceTrajectoryBase::combined, createUpdator(), Vector3DBase< T, FrameTag >::cross(), reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), ReferenceTrajectoryBase::energyLoss, fillDerivatives(), fillMeasurementAndError(), fillTrajectoryPositions(), TrajectoryStateOnSurface::freeState(), getHitProjectionMatrix(), TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::hasError(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), LocalTrajectoryError::matrix(), FreeTrajectoryState::momentum(), ReferenceTrajectoryBase::multipleScattering, ReferenceTrajectoryBase::nMeasPerHit, ReferenceTrajectoryBase::none, PV3DBase< T, PVType, FrameType >::phi(), propagate(), AnalyticalPropagator::propagateWithPath(), LargeD0_PixelPairStep_cff::propagator, idealTransformation::rotation, LocalTrajectoryParameters::signedInverseMomentum(), GeomDet::surface(), TrajectoryStateOnSurface::surface(), surfaceSide(), ReferenceTrajectoryBase::theDerivatives, ReferenceTrajectoryBase::theInnerLocalToTrajectory, ReferenceTrajectoryBase::theInnerTrajectoryToCurvilinear, ReferenceTrajectoryBase::theNumberOfHits, ReferenceTrajectoryBase::theNumberOfVirtualPars, ReferenceTrajectoryBase::theParameters, ReferenceTrajectoryBase::theRecHits, ReferenceTrajectoryBase::theTrajectoryPositionCov, ReferenceTrajectoryBase::theTsosVec, TSCBLBuilderNoMaterial_cfi::TSCBLBuilderNoMaterial, ReferenceTrajectoryBase::useRecHit(), reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().
Referenced by BzeroReferenceTrajectory::BzeroReferenceTrajectory(), and ReferenceTrajectory().
|
protected |
internal method to get apropriate updator
Definition at line 332 of file ReferenceTrajectory.cc.
References ReferenceTrajectoryBase::breakPoints, ReferenceTrajectoryBase::brokenLinesCoarse, ReferenceTrajectoryBase::brokenLinesFine, ReferenceTrajectoryBase::combined, ReferenceTrajectoryBase::energyLoss, ReferenceTrajectoryBase::multipleScattering, and ReferenceTrajectoryBase::none.
Referenced by construct().
|
protectedvirtual |
internal method to fill derivatives for hit iRow/2
Definition at line 437 of file ReferenceTrajectory.cc.
References i, ReferenceTrajectoryBase::parameters(), and ReferenceTrajectoryBase::theDerivatives.
Referenced by construct().
|
protectedvirtual |
internal method to fill measurement and error matrix for hit iRow/2
Definition at line 405 of file ReferenceTrajectory.cc.
References ReferenceTrajectoryBase::theMeasurements, ReferenceTrajectoryBase::theMeasurementsCov, LocalError::xx(), LocalError::xy(), and LocalError::yy().
Referenced by construct().
|
protectedvirtual |
internal method to fill the trajectory positions for hit iRow/2
Definition at line 455 of file ReferenceTrajectory.cc.
References ReferenceTrajectoryBase::theTrajectoryPositions.
Referenced by construct().
|
protected |
first (generic) helper to get the projection matrix
Definition at line 924 of file ReferenceTrajectory.cc.
References edm::hlt::Exception.
Referenced by construct().
|
protected |
second helper (templated on the dimension) to get the projection matrix
Definition at line 953 of file ReferenceTrajectory.cc.
References N, KfComponentsHolder::projection(), alignCSCRings::r, and KfComponentsHolder::setup().
|
protectedvirtual |
internal method to calculate jacobian
From TrackingTools/ GeomPropagators/ interface/ AnalyticalPropagator.h NB: this propagator assumes constant, non-zero magnetic field parallel to the z-axis!
Definition at line 356 of file ReferenceTrajectory.cc.
References TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::localParameters(), and Propagator::propagateWithPath().
Referenced by construct().
|
inlineprotected |
Don't care for propagation direction 'anyDirection' - in that case the material effects are anyway not updated ...
Definition at line 153 of file ReferenceTrajectory.h.
References SurfaceSideDefinition::afterSurface, alongMomentum, and SurfaceSideDefinition::beforeSurface.
Referenced by BzeroReferenceTrajectory::BzeroReferenceTrajectory(), and construct().