CMS 3D CMS Logo

TrajectoryFactoryBase.h
Go to the documentation of this file.
1 #ifndef Alignment_ReferenceTrajectories_TrajectoryFactoryBase_h
2 #define Alignment_ReferenceTrajectories_TrajectoryFactoryBase_h
3 
6 
8 
10 
12 
16 
17 namespace reco {
18  class BeamSpot;
19 }
20 
22 public:
27  typedef std::vector<ReferenceTrajectoryPtr> ReferenceTrajectoryCollection;
28  typedef std::pair<TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer> TrajectoryInput;
29  typedef std::vector<TrajectoryStateOnSurface> ExternalPredictionCollection;
30 
33  unsigned int tracksPerTrajectory,
34  const edm::ConsumesCollector& iC);
35  virtual ~TrajectoryFactoryBase(void);
36 
39  const reco::BeamSpot& beamSpot) const = 0;
40 
44  const reco::BeamSpot& beamSpot) const = 0;
45 
46  virtual TrajectoryFactoryBase* clone(void) const = 0;
47 
48  inline MaterialEffects materialEffects(void) const { return materialEffects_; }
49  inline PropagationDirection propagationDirection(void) const { return propDir_; }
50  inline const edm::ParameterSet& configuration() const { return cfg_; }
51  inline unsigned int tracksPerTrajectory() const { return tracksPerTrajectory_; }
52 
53 protected:
55  virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory& trajectory) const;
56  bool sameSurface(const Surface& s1, const Surface& s2) const;
58 
59 private:
60  MaterialEffects materialEffects(const std::string& strME) const;
62 
63  const edm::ParameterSet cfg_; // need to keep for possible re-use after constructor... :-(
64  const unsigned int tracksPerTrajectory_;
67 
68  const bool useWithoutDet_;
69  const bool useInvalidHits_;
70  const bool useProjectedHits_;
71 
72 protected:
73  const bool useBeamSpot_;
74  const bool includeAPEs_;
75  const bool allowZeroMaterial_;
76 };
77 
78 #endif
unsigned int tracksPerTrajectory() const
const MaterialEffects materialEffects_
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
Definition: config.py:1
bool sameSurface(const Surface &s1, const Surface &s2) const
PropagationDirection
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
MaterialEffects materialEffects(void) const
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
const unsigned int tracksPerTrajectory_
virtual TrajectoryFactoryBase * clone(void) const =0
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:40
const edm::ParameterSet & configuration() const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory &trajectory) const
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
TrajectoryFactoryBase(const edm::ParameterSet &config, const edm::ConsumesCollector &iC)
auto const & tracks
cannot be loose
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
const PropagationDirection propDir_
const edm::ParameterSet cfg_
fixed size matrix
virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const =0
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
PropagationDirection propagationDirection(void) const
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
ReferenceTrajectoryBase::MaterialEffects MaterialEffects
virtual ~TrajectoryFactoryBase(void)
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection