1 #ifndef Alignment_ReferenceTrajectories_DualKalmanTrajectory_H
2 #define Alignment_ReferenceTrajectories_DualKalmanTrajectory_H
41 const std::vector<unsigned int> &forwardRecHitNums,
42 const std::vector<unsigned int> &backwardRecHitNums,
62 const std::vector<unsigned int> &forwardRecHitNums,
63 const std::vector<unsigned int> &backwardRecHitNums,
72 const std::vector<unsigned int> &
recHits,
80 const std::vector<unsigned int> &recHitNums,
bool startFirst,
81 unsigned int iNextHit,
int residualMethod);
const PropagationDirection oppositeDirection(const PropagationDirection propDir) const
void fillTrajectoryPositions(const AlgebraicMatrix &projection, const TrajectoryStateOnSurface &tsos, unsigned int iHit)
fill trajectoryPositions
TrajectoryStateOnSurface fillMeasurementAndError1(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr, unsigned int iHit, const TrajectoryMeasurement &trajMeasurement)
helper for 'unbiased residual' method (i.e. returns merged fwd/bwd states)
bool fillKalmanPart(const Trajectory::DataContainer &trajMeasurements, const std::vector< unsigned int > &recHitNums, bool startFirst, unsigned int iNextHit, int residualMethod)
Fill that part of data members that is different from DualReferenceTrajectory.
virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const
const TransientTrackingRecHit::ConstRecHitContainer & recHits() const
TrajectoryStateOnSurface fillMeasurementAndError2(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr, unsigned int iHit, const TrajectoryMeasurement &trajMeasurement, bool doPull)
std::vector< TrajectoryMeasurement > DataContainer
CLHEP::HepMatrix AlgebraicMatrix
virtual DualKalmanTrajectory * clone() const
LocalError hitErrorWithAPE(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
local error including APE if APE is on
CLHEP::HepVector AlgebraicVector
virtual bool construct(const Trajectory::DataContainer &trajMeasurements, const TrajectoryStateOnSurface &referenceTsos, const std::vector< unsigned int > &forwardRecHitNums, const std::vector< unsigned int > &backwardRecHitNums, double mass, MaterialEffects materialEffects, const PropagationDirection propDir, const MagneticField *magField, bool useBeamSpot, const reco::BeamSpot &beamSpot, int residualMethod)
calculate members
virtual ~DualKalmanTrajectory()
DualKalmanTrajectory(const Trajectory::DataContainer &trajMeasurements, const TrajectoryStateOnSurface &referenceTsos, const std::vector< unsigned int > &forwardRecHitNums, const std::vector< unsigned int > &backwardRecHitNums, const MagneticField *magField, MaterialEffects materialEffects, PropagationDirection propDir, double mass, bool useBeamSpot, const reco::BeamSpot &beamSpot, int residualMethod)