1 #ifndef Alignment_ReferenceTrajectories_ReferenceTrajectory_H 2 #define Alignment_ReferenceTrajectories_ReferenceTrajectory_H 43 #include "GblTrajectory.h" 93 virtual bool propagate(
const Plane &previousSurface,
95 const Plane &newSurface,
116 virtual void fillTrajectoryPositions(
const AlgebraicMatrix &projection,
122 virtual bool addMaterialEffectsCov(
const std::vector<AlgebraicMatrix> &allJacobians,
123 const std::vector<AlgebraicMatrix> &allProjections,
124 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
125 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs);
129 virtual bool addMaterialEffectsBp(
const std::vector<AlgebraicMatrix> &allJacobians,
130 const std::vector<AlgebraicMatrix> &allProjections,
131 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
132 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
133 const std::vector<AlgebraicMatrix> &allLocalToCurv);
137 virtual bool addMaterialEffectsBrl(
const std::vector<AlgebraicMatrix> &allJacobians,
138 const std::vector<AlgebraicMatrix> &allProjections,
139 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
140 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
141 const std::vector<AlgebraicMatrix> &allLocalToCurv,
145 virtual bool addMaterialEffectsBrl(
const std::vector<AlgebraicMatrix> &allProjections,
146 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
147 const std::vector<AlgebraicMatrix> &allLocalToCurv,
148 const std::vector<double> &allSteps,
150 const double minStep = 1.0);
154 virtual bool addMaterialEffectsLocalGbl(
const std::vector<AlgebraicMatrix> &allJacobians,
155 const std::vector<AlgebraicMatrix> &allProjections,
156 const std::vector<AlgebraicSymMatrix> &allCurvatureChanges,
157 const std::vector<AlgebraicSymMatrix> &allDeltaParameterCovs);
161 virtual bool addMaterialEffectsCurvlinGbl(
const std::vector<AlgebraicMatrix> &allJacobians,
162 const std::vector<AlgebraicMatrix> &allProjections,
163 const std::vector<AlgebraicSymMatrix> &allCurvChanges,
164 const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
165 const std::vector<AlgebraicMatrix> &allLocalToCurv);
179 template <
unsigned int N>
183 template <
typename Derived>
185 template <
typename Derived>
186 void clhep2eigen(
const AlgebraicMatrix &in, Eigen::MatrixBase<Derived> &out);
187 template <
typename Derived>
const bool allowZeroMaterial_
SurfaceSide surfaceSide(const PropagationDirection dir) const
const PropagationDirection propDir_
SurfaceSideDefinition::SurfaceSide SurfaceSide
CLHEP::HepMatrix AlgebraicMatrix
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
~ReferenceTrajectory() override
const MaterialEffects materialEffects_
std::vector< ConstRecHitPointer > ConstRecHitContainer
ReferenceTrajectory * clone() const override
CLHEP::HepVector AlgebraicVector
CLHEP::HepSymMatrix AlgebraicSymMatrix