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 theMaterialEffects; }
47  inline PropagationDirection propagationDirection( void ) const { return thePropDir; }
48  inline const edm::ParameterSet &configuration() const { return theConfig; }
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 
64  const edm::ParameterSet theConfig; // need to keep for possible re-use after constructor... :-(
65 
69 
70 protected:
71 
73 };
74 
75 
76 #endif
MaterialEffects theMaterialEffects
PropagationDirection thePropDir
MaterialEffects materialEffects(void) const
virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory &trajectory) const
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
PropagationDirection
const edm::ParameterSet theConfig
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
tuple s2
Definition: indexGen.py:106
virtual TrajectoryFactoryBase * clone(void) const =0
TrajectoryFactoryBase(const edm::ParameterSet &config)
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:42
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
bool sameSurface(const Surface &s1, const Surface &s2) const
const edm::ParameterSet & configuration() const
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
tuple tracks
Definition: testEve_cfg.py:39
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
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection