CMS 3D CMS Logo

DualReferenceTrajectory.h
Go to the documentation of this file.
1 #ifndef Alignment_ReferenceTrajectories_DualReferenceTrajectory_H
2 #define Alignment_ReferenceTrajectories_DualReferenceTrajectory_H
3 
31 
33 namespace reco {
34  class BeamSpot;
35 }
36 
38 public:
40 
42  const ConstRecHitContainer &forwardRecHits,
43  const ConstRecHitContainer &backwardRecHits,
44  const MagneticField *magField,
45  const reco::BeamSpot &beamSpot,
47 
49 
50  DualReferenceTrajectory *clone() const override { return new DualReferenceTrajectory(*this); }
51 
52 protected:
53  DualReferenceTrajectory(unsigned int nPar, unsigned int nHits, const ReferenceTrajectoryBase::Config &config);
54 
57  virtual bool construct(const TrajectoryStateOnSurface &referenceTsos,
58  const ConstRecHitContainer &forwardRecHits,
59  const ConstRecHitContainer &backwardRecHits,
60  const MagneticField *magField,
61  const reco::BeamSpot &beamSpot);
62 
63  virtual ReferenceTrajectory *construct(const TrajectoryStateOnSurface &referenceTsos,
65  const MagneticField *magField,
66  const reco::BeamSpot &beamSpot,
67  const bool revertDirection = false) const;
68 
69  virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const;
70 
71  inline const PropagationDirection oppositeDirection(const PropagationDirection propDir) const {
72  return (propDir == anyDirection) ? anyDirection : ((propDir == alongMomentum) ? oppositeToMomentum : alongMomentum);
73  }
74 
75 private:
76  const double mass_;
79  const bool useBeamSpot_;
80 };
81 
82 #endif
const PropagationDirection propDir_
const PropagationDirection oppositeDirection(const PropagationDirection propDir) const
DualReferenceTrajectory(const TrajectoryStateOnSurface &tsos, const ConstRecHitContainer &forwardRecHits, const ConstRecHitContainer &backwardRecHits, const MagneticField *magField, const reco::BeamSpot &beamSpot, const ReferenceTrajectoryBase::Config &config)
Definition: config.py:1
PropagationDirection
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const
std::vector< ConstRecHitPointer > ConstRecHitContainer
CLHEP::HepVector AlgebraicVector
DualReferenceTrajectory * clone() const override
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
fixed size matrix
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
virtual bool construct(const TrajectoryStateOnSurface &referenceTsos, const ConstRecHitContainer &forwardRecHits, const ConstRecHitContainer &backwardRecHits, const MagneticField *magField, const reco::BeamSpot &beamSpot)
const TransientTrackingRecHit::ConstRecHitContainer & recHits() const
const MaterialEffects materialEffects_