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
ReferenceTrajectoryBase::recHits
const TransientTrackingRecHit::ConstRecHitContainer & recHits() const
Definition: ReferenceTrajectoryBase.h:215
anyDirection
Definition: PropagationDirection.h:4
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
align::BeamSpot
Definition: StructureType.h:95
DualReferenceTrajectory::materialEffects_
const MaterialEffects materialEffects_
Definition: DualReferenceTrajectory.h:77
DualReferenceTrajectory
Definition: DualReferenceTrajectory.h:37
ReferenceTrajectoryBase
Definition: ReferenceTrajectoryBase.h:105
oppositeToMomentum
Definition: PropagationDirection.h:4
DualReferenceTrajectory::useBeamSpot_
const bool useBeamSpot_
Definition: DualReferenceTrajectory.h:79
ReferenceTrajectoryBase::Config
Definition: ReferenceTrajectoryBase.h:121
DualReferenceTrajectory::oppositeDirection
const PropagationDirection oppositeDirection(const PropagationDirection propDir) const
Definition: DualReferenceTrajectory.h:71
MaterialEffects
Definition: MaterialEffects.h:51
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
ReferenceTrajectoryBase.h
DualReferenceTrajectory::ConstRecHitContainer
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
Definition: DualReferenceTrajectory.h:39
DualReferenceTrajectory::~DualReferenceTrajectory
~DualReferenceTrajectory() override
Definition: DualReferenceTrajectory.h:48
HcalResponse_cfi.nPar
nPar
Definition: HcalResponse_cfi.py:33
config
Definition: config.py:1
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
AlgebraicVector
CLHEP::HepVector AlgebraicVector
Definition: AlgebraicObjects.h:13
nHits
const caConstants::TupleMultiplicity *__restrict__ const HitsOnGPU *__restrict__ double *__restrict__ float *__restrict__ double *__restrict__ uint32_t nHits
Definition: BrokenLineFitOnGPU.h:27
DualReferenceTrajectory::DualReferenceTrajectory
DualReferenceTrajectory(const TrajectoryStateOnSurface &tsos, const ConstRecHitContainer &forwardRecHits, const ConstRecHitContainer &backwardRecHits, const MagneticField *magField, const reco::BeamSpot &beamSpot, const ReferenceTrajectoryBase::Config &config)
Definition: DualReferenceTrajectory.cc:11
reco::BeamSpot
Definition: BeamSpot.h:21
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
DualReferenceTrajectory::clone
DualReferenceTrajectory * clone() const override
Definition: DualReferenceTrajectory.h:50
DualReferenceTrajectory::extractParameters
virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const
Definition: DualReferenceTrajectory.cc:138
PropagationDirection.h
ConstRecHitContainer
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
Definition: MillePedeAlignmentAlgorithm.cc:74
DualReferenceTrajectory::construct
virtual bool construct(const TrajectoryStateOnSurface &referenceTsos, const ConstRecHitContainer &forwardRecHits, const ConstRecHitContainer &backwardRecHits, const MagneticField *magField, const reco::BeamSpot &beamSpot)
Definition: DualReferenceTrajectory.cc:37
ReferenceTrajectory
Definition: ReferenceTrajectory.h:55
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
DualReferenceTrajectory::mass_
const double mass_
Definition: DualReferenceTrajectory.h:76
MagneticField
Definition: MagneticField.h:19
alongMomentum
Definition: PropagationDirection.h:4
DualReferenceTrajectory::propDir_
const PropagationDirection propDir_
Definition: DualReferenceTrajectory.h:78