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 
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 
34  unsigned int tracksPerTrajectory);
35  virtual ~TrajectoryFactoryBase( void );
36 
37  virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup,
38  const ConstTrajTrackPairCollection &tracks,
39  const reco::BeamSpot &beamSpot) const = 0;
40 
41  virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup,
42  const ConstTrajTrackPairCollection &tracks,
43  const ExternalPredictionCollection &external,
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:
54 
55  virtual const TrajectoryInput innermostStateAndRecHits( const ConstTrajTrackPair & track ) const;
56  virtual const Trajectory::DataContainer orderedTrajectoryMeasurements( const Trajectory & trajectory ) const;
57  bool sameSurface( const Surface& s1, const Surface& s2 ) const;
58  bool useRecHit( const TransientTrackingRecHit::ConstRecHitPointer& hitPtr ) const;
59 
60 private:
61 
62  MaterialEffects materialEffects( const std::string & strME ) const;
63  PropagationDirection propagationDirection( const std::string & strPD ) const;
64 
65  const edm::ParameterSet cfg_; // need to keep for possible re-use after constructor... :-(
66  const unsigned int tracksPerTrajectory_;
67  const MaterialEffects materialEffects_;
69 
70  const bool useWithoutDet_;
71  const bool useInvalidHits_;
72  const bool useProjectedHits_;
73 
74 protected:
75 
76  const bool useBeamSpot_;
77  const bool includeAPEs_;
78  const bool allowZeroMaterial_;
79 };
80 
81 
82 #endif
MaterialEffects materialEffects(void) const
const MaterialEffects materialEffects_
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
Definition: config.py:1
PropagationDirection
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
const unsigned int tracksPerTrajectory_
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:44
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const edm::ParameterSet & configuration() const
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
const PropagationDirection propDir_
const edm::ParameterSet cfg_
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
fixed size matrix
PropagationDirection propagationDirection(void) const
unsigned int tracksPerTrajectory() const
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
ReferenceTrajectoryBase::MaterialEffects MaterialEffects
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection