#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, const MagneticField *magField, 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 MagneticField *magField) const |
ReferenceTrajectory (unsigned int nPar, unsigned int nHits, const ReferenceTrajectoryBase::Config &config) | |
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 | |
template<typename Derived > | |
void | clhep2eigen (const AlgebraicVector &in, Eigen::MatrixBase< Derived > &out) |
template<typename Derived > | |
void | clhep2eigen (const AlgebraicMatrix &in, Eigen::MatrixBase< Derived > &out) |
template<typename Derived > | |
void | clhep2eigen (const AlgebraicSymMatrix &in, Eigen::MatrixBase< Derived > &out) |
Private Attributes | |
const bool | allowZeroMaterial_ |
const bool | includeAPEs_ |
const double | mass_ |
const MaterialEffects | materialEffects_ |
const PropagationDirection | propDir_ |
const bool | useBeamSpot_ |
Definition at line 53 of file ReferenceTrajectory.h.
Definition at line 58 of file ReferenceTrajectory.h.
ReferenceTrajectory::ReferenceTrajectory | ( | const TrajectoryStateOnSurface & | referenceTsos, |
const TransientTrackingRecHit::ConstRecHitContainer & | recHits, | ||
const MagneticField * | magField, | ||
const reco::BeamSpot & | beamSpot, | ||
const ReferenceTrajectoryBase::Config & | config | ||
) |
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 53 of file ReferenceTrajectory.cc.
References construct(), ReferenceTrajectoryBase::Config::hitsAreReverse, TrajectoryStateOnSurface::localParameters(), LocalTrajectoryParameters::mixedFormatVector(), ReferenceTrajectoryBase::theParameters, and ReferenceTrajectoryBase::theValidityFlag.
|
inlinevirtual |
Definition at line 73 of file ReferenceTrajectory.h.
|
protected |
Definition at line 93 of file ReferenceTrajectory.cc.
|
protectedvirtual |
internal method to add material effects using break points
Definition at line 556 of file ReferenceTrajectory.cc.
References gen::k, checklumidiff::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 621 of file ReferenceTrajectory.cc.
References gen::k, checklumidiff::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 792 of file ReferenceTrajectory.cc.
References delta, plotBeamSpotDB::first, mps_fire::i, gen::k, checklumidiff::l, plotBeamSpotDB::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 488 of file ReferenceTrajectory.cc.
References gen::k, checklumidiff::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 1023 of file ReferenceTrajectory.cc.
References funct::abs(), gbl::GblPoint::addMeasurement(), gbl::GblPoint::addScatterer(), allowZeroMaterial_, clhep2eigen(), geometryDiff::epsilon, Exception, infinity, gen::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 939 of file ReferenceTrajectory.cc.
References funct::abs(), gbl::GblPoint::addMeasurement(), gbl::GblPoint::addScatterer(), allowZeroMaterial_, clhep2eigen(), geometryDiff::epsilon, Exception, gen::k, ReferenceTrajectoryBase::theGblInput, ReferenceTrajectoryBase::theMeasurements, ReferenceTrajectoryBase::theMeasurementsCov, and ReferenceTrajectoryBase::theTrajectoryPositions.
Referenced by construct().
|
private |
Definition at line 1124 of file ReferenceTrajectory.cc.
References MillePedeFileConverter_cfg::out.
Referenced by addMaterialEffectsCurvlinGbl(), and addMaterialEffectsLocalGbl().
|
private |
Definition at line 1134 of file ReferenceTrajectory.cc.
References cuy::col, and MillePedeFileConverter_cfg::out.
|
private |
Definition at line 1144 of file ReferenceTrajectory.cc.
References cuy::col, getHitProjectionMatrix(), and MillePedeFileConverter_cfg::out.
|
inlinevirtual |
Implements ReferenceTrajectoryBase.
Reimplemented in BzeroReferenceTrajectory.
Definition at line 75 of file ReferenceTrajectory.h.
References ecalDrivenElectronSeedsParameters_cff::beamSpot, and ResonanceBuilder::mass.
|
protectedvirtual |
internal method to calculate members
Definition at line 111 of file ReferenceTrajectory.cc.
References addMaterialEffectsBp(), addMaterialEffectsBrl(), addMaterialEffectsCov(), addMaterialEffectsCurvlinGbl(), addMaterialEffectsLocalGbl(), alongMomentum, AnalyticalPropagator_cfi::AnalyticalPropagator, ReferenceTrajectoryBase::breakPoints, ReferenceTrajectoryBase::brokenLinesCoarse, ReferenceTrajectoryBase::brokenLinesFine, Plane::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(), mass_, materialEffects_, LocalTrajectoryError::matrix(), FreeTrajectoryState::momentum(), ReferenceTrajectoryBase::multipleScattering, ReferenceTrajectoryBase::nMeasPerHit, MagneticField::nominalValue(), ReferenceTrajectoryBase::none, PV3DBase< T, PVType, FrameType >::phi(), propagate(), PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi::propagator, propDir_, 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, useBeamSpot_, 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 346 of file ReferenceTrajectory.cc.
References ReferenceTrajectoryBase::breakPoints, ReferenceTrajectoryBase::brokenLinesCoarse, ReferenceTrajectoryBase::brokenLinesFine, ReferenceTrajectoryBase::combined, ReferenceTrajectoryBase::curvlinGBL, ReferenceTrajectoryBase::energyLoss, GsfElectronMaterialEffects_cfi::EnergyLossUpdator, ReferenceTrajectoryBase::localGBL, ReferenceTrajectoryBase::multipleScattering, GsfElectronMaterialEffects_cfi::MultipleScatteringUpdator, and ReferenceTrajectoryBase::none.
Referenced by construct().
|
protectedvirtual |
internal method to fill derivatives for hit iRow/2
Definition at line 460 of file ReferenceTrajectory.cc.
References mps_fire::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 421 of file ReferenceTrajectory.cc.
References includeAPEs_, TrackerGeomDet::localAlignmentError(), 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 475 of file ReferenceTrajectory.cc.
References mps_fire::i, and ReferenceTrajectoryBase::theTrajectoryPositions.
Referenced by construct().
|
protected |
first (generic) helper to get the projection matrix
Definition at line 1157 of file ReferenceTrajectory.cc.
References Exception, getHitProjectionMatrixT(), and ReferenceTrajectoryBase::useRecHit().
Referenced by clhep2eigen(), and construct().
|
protected |
second helper (templated on the dimension) to get the projection matrix
Definition at line 1186 of file ReferenceTrajectory.cc.
References N, packedPFCandidateRefMixer_cfi::pf, KfComponentsHolder::projection(), alignCSCRings::r, and KfComponentsHolder::setup().
Referenced by getHitProjectionMatrix().
|
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 372 of file ReferenceTrajectory.cc.
References TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::localParameters(), Propagator::propagateWithPath(), defaultRKPropagator::Product::propagator, and propDir_.
Referenced by construct().
|
inlineprotected |
Don't care for propagation direction 'anyDirection' - in that case the material effects are anyway not updated ...
Definition at line 167 of file ReferenceTrajectory.h.
References SurfaceSideDefinition::afterSurface, alongMomentum, SurfaceSideDefinition::beforeSurface, recoMuon::in, MillePedeFileConverter_cfg::out, and rpcPointValidation_cfi::recHit.
Referenced by BzeroReferenceTrajectory::BzeroReferenceTrajectory(), and construct().
|
private |
Definition at line 197 of file ReferenceTrajectory.h.
Referenced by addMaterialEffectsCurvlinGbl(), and addMaterialEffectsLocalGbl().
|
private |
Definition at line 196 of file ReferenceTrajectory.h.
Referenced by fillMeasurementAndError().
|
private |
Definition at line 192 of file ReferenceTrajectory.h.
Referenced by construct().
|
private |
Definition at line 193 of file ReferenceTrajectory.h.
Referenced by construct().
|
private |
Definition at line 194 of file ReferenceTrajectory.h.
Referenced by construct(), and propagate().
|
private |
Definition at line 195 of file ReferenceTrajectory.h.
Referenced by construct().