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 namespace reco {
17  class BeamSpot;
18 }
19 
21 public:
26  typedef std::vector<ReferenceTrajectoryPtr> ReferenceTrajectoryCollection;
27  typedef std::pair<TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer> TrajectoryInput;
28  typedef std::vector<TrajectoryStateOnSurface> ExternalPredictionCollection;
29 
31  TrajectoryFactoryBase(const edm::ParameterSet& config, unsigned int tracksPerTrajectory);
32  virtual ~TrajectoryFactoryBase(void);
33 
34  virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup& setup,
35  const ConstTrajTrackPairCollection& tracks,
36  const reco::BeamSpot& beamSpot) const = 0;
37 
38  virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup& setup,
39  const ConstTrajTrackPairCollection& tracks,
40  const ExternalPredictionCollection& external,
41  const reco::BeamSpot& beamSpot) const = 0;
42 
43  virtual TrajectoryFactoryBase* clone(void) const = 0;
44 
45  inline MaterialEffects materialEffects(void) const { return materialEffects_; }
46  inline PropagationDirection propagationDirection(void) const { return propDir_; }
47  inline const edm::ParameterSet& configuration() const { return cfg_; }
48  inline unsigned int tracksPerTrajectory() const { return tracksPerTrajectory_; }
49 
50 protected:
51  virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair& track) const;
52  virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory& trajectory) const;
53  bool sameSurface(const Surface& s1, const Surface& s2) const;
54  bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer& hitPtr) const;
55 
56 private:
57  MaterialEffects materialEffects(const std::string& strME) const;
58  PropagationDirection propagationDirection(const std::string& strPD) const;
59 
60  const edm::ParameterSet cfg_; // need to keep for possible re-use after constructor... :-(
61  const unsigned int tracksPerTrajectory_;
62  const MaterialEffects materialEffects_;
64 
65  const bool useWithoutDet_;
66  const bool useInvalidHits_;
67  const bool useProjectedHits_;
68 
69 protected:
70  const bool useBeamSpot_;
71  const bool includeAPEs_;
72  const bool allowZeroMaterial_;
73 };
74 
75 #endif
MaterialEffects materialEffects(void) const
const MaterialEffects materialEffects_
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:2
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
Definition: config.py:1
PropagationDirection
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
const unsigned int tracksPerTrajectory_
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:44
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const edm::ParameterSet & configuration() const
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
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::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
ReferenceTrajectoryBase::MaterialEffects MaterialEffects
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection