#include <ReferenceTrajectory.h>
Public Types | |
typedef SurfaceSideDefinition::SurfaceSide | SurfaceSide |
Public Types inherited from ReferenceTrajectoryBase | |
enum | MaterialEffects { none, multipleScattering, energyLoss, combined, breakPoints, brokenLinesCoarse, brokenLinesFine, localGBL, curvlinGBL } |
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 | addMaterialEffectsCurvlinGbl (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 | addMaterialEffectsLocalGbl (const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvatureChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParameterCovs) |
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 Plane &previousSurface, const TrajectoryStateOnSurface &previousTsos, const Plane &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 |
Private Member Functions | |
void | clhep2root (const AlgebraicVector &in, TVectorD &out) |
void | clhep2root (const AlgebraicMatrix &in, TMatrixD &out) |
void | clhep2root (const AlgebraicSymMatrix &in, TMatrixDSym &out) |
Additional Inherited Members | |
Protected Attributes inherited from ReferenceTrajectoryBase | |
AlgebraicMatrix | theDerivatives |
TMatrixD | theGblExtDerivatives |
TVectorD | theGblExtMeasurements |
TVectorD | theGblExtPrecisions |
std::vector< std::pair < std::vector< GblPoint > , TMatrixD > > | theGblInput |
AlgebraicMatrix | theInnerLocalToTrajectory |
AlgebraicMatrix | theInnerTrajectoryToCurvilinear |
AlgebraicVector | theMeasurements |
AlgebraicSymMatrix | theMeasurementsCov |
int | theNomField |
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 56 of file ReferenceTrajectory.h.
Definition at line 61 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 48 of file ReferenceTrajectory.cc.
References construct(), TrajectoryStateOnSurface::localParameters(), LocalTrajectoryParameters::mixedFormatVector(), ReferenceTrajectoryBase::theParameters, and ReferenceTrajectoryBase::theValidityFlag.
Referenced by clone().
|
inlinevirtual |
Definition at line 79 of file ReferenceTrajectory.h.
|
protected |
Definition at line 89 of file ReferenceTrajectory.cc.
|
protectedvirtual |
internal method to add material effects using break points
Definition at line 551 of file ReferenceTrajectory.cc.
References relval_steps::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 616 of file ReferenceTrajectory.cc.
References relval_steps::k, prof2calltree::l, GlobalTrajectoryParameters::momentum(), gen::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 787 of file ReferenceTrajectory.cc.
References delta, plotBeamSpotDB::first, i, relval_steps::k, prof2calltree::l, prof2calltree::last, mag(), GlobalTrajectoryParameters::magneticFieldInInverseGeV(), GlobalTrajectoryParameters::momentum(), gen::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 483 of file ReferenceTrajectory.cc.
References relval_steps::k, prof2calltree::l, ReferenceTrajectoryBase::nMeasPerHit, and ReferenceTrajectoryBase::theMeasurementsCov.
Referenced by construct().
|
protectedvirtual |
internal methods to add material effects using broken lines (fine version, curvilinear system)
Definition at line 1012 of file ReferenceTrajectory.cc.
References gbl::GblPoint::addMeasurement(), gbl::GblPoint::addScatterer(), clhep2root(), relval_steps::k, ReferenceTrajectoryBase::theGblInput, ReferenceTrajectoryBase::theMeasurements, ReferenceTrajectoryBase::theMeasurementsCov, and ReferenceTrajectoryBase::theTrajectoryPositions.
Referenced by construct().
|
protectedvirtual |
internal methods to add material effects using broken lines (fine version, local system)
Definition at line 934 of file ReferenceTrajectory.cc.
References gbl::GblPoint::addMeasurement(), gbl::GblPoint::addScatterer(), clhep2root(), relval_steps::k, ReferenceTrajectoryBase::theGblInput, ReferenceTrajectoryBase::theMeasurements, ReferenceTrajectoryBase::theMeasurementsCov, and ReferenceTrajectoryBase::theTrajectoryPositions.
Referenced by construct().
|
private |
Definition at line 1099 of file ReferenceTrajectory.cc.
Referenced by addMaterialEffectsCurvlinGbl(), and addMaterialEffectsLocalGbl().
|
private |
Definition at line 1106 of file ReferenceTrajectory.cc.
References cuy::col.
|
private |
Definition at line 1115 of file ReferenceTrajectory.cc.
References cuy::col.
|
inlinevirtual |
Implements ReferenceTrajectoryBase.
Reimplemented in BzeroReferenceTrajectory.
Definition at line 81 of file ReferenceTrajectory.h.
References ReferenceTrajectory().
|
protectedvirtual |
internal method to calculate members
Definition at line 101 of file ReferenceTrajectory.cc.
References addMaterialEffectsBp(), addMaterialEffectsBrl(), addMaterialEffectsCov(), addMaterialEffectsCurvlinGbl(), addMaterialEffectsLocalGbl(), alongMomentum, AnalyticalPropagator_cfi::AnalyticalPropagator, ReferenceTrajectoryBase::breakPoints, ReferenceTrajectoryBase::brokenLinesCoarse, ReferenceTrajectoryBase::brokenLinesFine, newFWLiteAna::build, ReferenceTrajectoryBase::combined, createUpdator(), Vector3DBase< T, FrameTag >::cross(), ReferenceTrajectoryBase::curvlinGBL, reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), ReferenceTrajectoryBase::energyLoss, fillDerivatives(), fillMeasurementAndError(), fillTrajectoryPositions(), TrajectoryStateOnSurface::freeState(), getHitProjectionMatrix(), TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::hasError(), TrajectoryStateOnSurface::localError(), ReferenceTrajectoryBase::localGBL, TrajectoryStateOnSurface::localParameters(), LocalTrajectoryError::matrix(), FreeTrajectoryState::momentum(), ReferenceTrajectoryBase::multipleScattering, ReferenceTrajectoryBase::nMeasPerHit, MagneticField::nominalValue(), ReferenceTrajectoryBase::none, PV3DBase< T, PVType, FrameType >::phi(), propagate(), HLT_25ns14e33_v1_cff::propagator, idealTransformation::rotation, LocalTrajectoryParameters::signedInverseMomentum(), GeomDet::surface(), TrajectoryStateOnSurface::surface(), surfaceSide(), ReferenceTrajectoryBase::theDerivatives, ReferenceTrajectoryBase::theInnerLocalToTrajectory, ReferenceTrajectoryBase::theInnerTrajectoryToCurvilinear, ReferenceTrajectoryBase::theNomField, 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 339 of file ReferenceTrajectory.cc.
References ReferenceTrajectoryBase::breakPoints, ReferenceTrajectoryBase::brokenLinesCoarse, ReferenceTrajectoryBase::brokenLinesFine, ReferenceTrajectoryBase::combined, ReferenceTrajectoryBase::curvlinGBL, ReferenceTrajectoryBase::energyLoss, HLT_25ns14e33_v1_cff::EnergyLossUpdator, ReferenceTrajectoryBase::localGBL, ReferenceTrajectoryBase::multipleScattering, HLT_25ns14e33_v1_cff::MultipleScatteringUpdator, and ReferenceTrajectoryBase::none.
Referenced by construct().
|
protectedvirtual |
internal method to fill derivatives for hit iRow/2
Definition at line 449 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 414 of file ReferenceTrajectory.cc.
References ReferenceTrajectoryBase::theMeasurements, ReferenceTrajectoryBase::theMeasurementsCov, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), LocalError::xy(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().
Referenced by construct().
|
protectedvirtual |
internal method to fill the trajectory positions for hit iRow/2
Definition at line 467 of file ReferenceTrajectory.cc.
References ReferenceTrajectoryBase::theTrajectoryPositions.
Referenced by construct().
|
protected |
first (generic) helper to get the projection matrix
Definition at line 1128 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 1157 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 365 of file ReferenceTrajectory.cc.
References TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::localParameters(), Propagator::propagateWithPath(), and defaultRKPropagator::Product::propagator.
Referenced by construct().
|
inlineprotected |
Don't care for propagation direction 'anyDirection' - in that case the material effects are anyway not updated ...
Definition at line 173 of file ReferenceTrajectory.h.
References SurfaceSideDefinition::afterSurface, alongMomentum, and SurfaceSideDefinition::beforeSurface.
Referenced by BzeroReferenceTrajectory::BzeroReferenceTrajectory(), and construct().