test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
15 
16 
17 namespace reco { class BeamSpot;}
18 
20 {
21 
22 public:
23 
28  typedef std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection;
29  typedef std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput;
30  typedef std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection;
31 
33  virtual ~TrajectoryFactoryBase( void );
34 
37  const reco::BeamSpot &beamSpot) const = 0;
38 
41  const ExternalPredictionCollection &external,
42  const reco::BeamSpot &beamSpot) const = 0;
43 
44  virtual TrajectoryFactoryBase* clone( void ) const = 0;
45 
46  inline MaterialEffects materialEffects( void ) const { return materialEffects_; }
47  inline PropagationDirection propagationDirection( void ) const { return propDir_; }
48  inline const edm::ParameterSet& configuration() const { return cfg_; }
49 
50 protected:
51 
52  virtual const TrajectoryInput innermostStateAndRecHits( const ConstTrajTrackPair & track ) const;
53  virtual const Trajectory::DataContainer orderedTrajectoryMeasurements( const Trajectory & trajectory ) const;
54  bool sameSurface( const Surface& s1, const Surface& s2 ) const;
55  bool useRecHit( const TransientTrackingRecHit::ConstRecHitPointer& hitPtr ) const;
56 
57 private:
58 
59  MaterialEffects materialEffects( const std::string & strME ) const;
61 
62  const edm::ParameterSet cfg_; // need to keep for possible re-use after constructor... :-(
65 
66  const bool useWithoutDet_;
67  const bool useInvalidHits_;
68  const bool useProjectedHits_;
69 
70 protected:
71 
72  const bool useBeamSpot_;
73  const bool includeAPEs_;
74 };
75 
76 
77 #endif
MaterialEffects materialEffects(void) const
const MaterialEffects materialEffects_
virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory &trajectory) const
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
PropagationDirection
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
tuple s2
Definition: indexGen.py:106
virtual TrajectoryFactoryBase * clone(void) const =0
TrajectoryFactoryBase(const edm::ParameterSet &config)
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:44
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
bool sameSurface(const Surface &s1, const Surface &s2) const
const edm::ParameterSet & configuration() const
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
tuple tracks
Definition: testEve_cfg.py:39
const PropagationDirection propDir_
const edm::ParameterSet cfg_
virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const =0
PropagationDirection propagationDirection(void) const
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
ReferenceTrajectoryBase::MaterialEffects MaterialEffects
virtual ~TrajectoryFactoryBase(void)
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection