1 #ifndef Alignment_ReferenceTrajectories_ReferenceTrajectory_H
2 #define Alignment_ReferenceTrajectories_ReferenceTrajectory_H
44 #include <TMatrixDSym.h>
127 const std::vector<AlgebraicMatrix> &allProjections,
128 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
129 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs);
134 const std::vector<AlgebraicMatrix> &allProjections,
135 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
136 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
137 const std::vector<AlgebraicMatrix> &allLocalToCurv);
142 const std::vector<AlgebraicMatrix> &allProjections,
143 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
144 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
145 const std::vector<AlgebraicMatrix> &allLocalToCurv,
150 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
151 const std::vector<AlgebraicMatrix> &allLocalToCurv,
152 const std::vector<double> &allSteps,
154 const double minStep = 1.0);
159 const std::vector<AlgebraicMatrix> &allProjections,
160 const std::vector<AlgebraicSymMatrix> &allCurvatureChanges,
161 const std::vector<AlgebraicSymMatrix> &allDeltaParameterCovs);
166 const std::vector<AlgebraicMatrix> &allProjections,
167 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
168 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
169 const std::vector<AlgebraicMatrix> &allLocalToCurv);
187 template <
unsigned int N>
AlgebraicMatrix getHitProjectionMatrix(const TransientTrackingRecHit::ConstRecHitPointer &recHit) const
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 construct(const TrajectoryStateOnSurface &referenceTsos, const TransientTrackingRecHit::ConstRecHitContainer &recHits, double mass, MaterialEffects materialEffects, const PropagationDirection propDir, const MagneticField *magField, bool useBeamSpot, const reco::BeamSpot &beamSpot)
virtual void fillMeasurementAndError(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr, unsigned int iRow, const TrajectoryStateOnSurface &updatedTsos)
const TransientTrackingRecHit::ConstRecHitContainer & recHits() const
virtual bool addMaterialEffectsLocalGbl(const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvatureChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParameterCovs)
SurfaceSide surfaceSide(const PropagationDirection dir) const
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 ReferenceTrajectory * clone() const
virtual ~ReferenceTrajectory()
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
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)
SurfaceSideDefinition::SurfaceSide SurfaceSide
CLHEP::HepMatrix AlgebraicMatrix
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
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)
MaterialEffectsUpdator * createUpdator(MaterialEffects materialEffects, double mass) const
virtual void fillDerivatives(const AlgebraicMatrix &projection, const AlgebraicMatrix &fullJacobian, unsigned int iRow)
std::vector< ConstRecHitPointer > ConstRecHitContainer
AlgebraicMatrix getHitProjectionMatrixT(const TransientTrackingRecHit::ConstRecHitPointer &recHit) const
CLHEP::HepVector AlgebraicVector
void clhep2root(const AlgebraicVector &in, TVectorD &out)
CLHEP::HepSymMatrix AlgebraicSymMatrix
virtual bool addMaterialEffectsCov(const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs)
virtual void fillTrajectoryPositions(const AlgebraicMatrix &projection, const AlgebraicVector &mixedLocalParams, unsigned int iRow)