CMS 3D CMS Logo

TrajectoryFactoryBase.h

Go to the documentation of this file.
00001 #ifndef Alignment_ReferenceTrajectories_TrajectoryFactoryBase_h
00002 #define Alignment_ReferenceTrajectories_TrajectoryFactoryBase_h
00003 
00004 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentAlgorithmBase.h"
00005 #include "Alignment/ReferenceTrajectories/interface/ReferenceTrajectoryBase.h"
00006 
00007 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00008 
00009 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
00010 
00013 
00014 
00015 class TrajectoryFactoryBase
00016 {
00017 
00018 public:
00019 
00020   typedef ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr;
00021   typedef ReferenceTrajectoryBase::MaterialEffects MaterialEffects;
00022   typedef AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair;
00023   typedef AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection;
00024   typedef std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection;
00025   typedef std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput;
00026   typedef std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection;
00027 
00028   TrajectoryFactoryBase( const edm::ParameterSet & config );
00029   virtual ~TrajectoryFactoryBase( void );
00030 
00031   virtual const ReferenceTrajectoryCollection trajectories( const edm::EventSetup & setup,
00032                                                             const ConstTrajTrackPairCollection & tracks ) const = 0;
00033 
00034   virtual const ReferenceTrajectoryCollection trajectories( const edm::EventSetup& setup,
00035                                                             const ConstTrajTrackPairCollection& tracks,
00036                                                             const ExternalPredictionCollection& external ) const = 0;
00037 
00038   virtual TrajectoryFactoryBase* clone( void ) const = 0;
00039 
00040   inline const MaterialEffects materialEffects( void ) const { return theMaterialEffects; }
00041   inline const PropagationDirection propagationDirection( void ) const { return thePropDir; }
00042 
00043 protected:
00044 
00045   virtual const TrajectoryInput innermostStateAndRecHits( const ConstTrajTrackPair & track ) const;
00046   virtual const Trajectory::DataContainer orderedTrajectoryMeasurements( const Trajectory & trajectory ) const;
00047   bool sameSurface( const Surface& s1, const Surface& s2 ) const;
00048   bool useRecHit( const TransientTrackingRecHit::ConstRecHitPointer& hitPtr ) const;
00049 
00050 private:
00051 
00052   const MaterialEffects materialEffects( const std::string & strME ) const;
00053   const PropagationDirection propagationDirection( const std::string & strPD ) const;
00054 
00055   MaterialEffects theMaterialEffects;
00056   PropagationDirection thePropDir;
00057 
00058   bool theUseWithoutDet;
00059   bool theUseInvalidHits;
00060   bool theUseProjectedHits;
00061 
00062 };
00063 
00064 
00065 #endif

Generated on Tue Jun 9 17:24:58 2009 for CMSSW by  doxygen 1.5.4