CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/Alignment/KalmanAlignmentAlgorithm/interface/KalmanAlignmentTracklet.h

Go to the documentation of this file.
00001 #ifndef Alignment_KalmanAlignmentAlgorithm_KalmanAlignmentTracklet_h
00002 #define Alignment_KalmanAlignmentAlgorithm_KalmanAlignmentTracklet_h
00003 
00004 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
00005 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentAlgorithmBase.h"
00006 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00007 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00008 
00009 #include "Alignment/KalmanAlignmentAlgorithm/interface/KalmanAlignmentSetup.h"
00010 
00013 
00014 
00015 class KalmanAlignmentTracklet : public ReferenceCounted
00016 {
00017 
00018 public:
00019 
00020   typedef std::pair<Trajectory*, reco::Track*> TrajTrackPair;
00021   typedef std::vector< TrajTrackPair > TrajTrackPairCollection;
00022   typedef AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair;
00023   typedef AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection;
00024 
00025   typedef ReferenceCountingPointer< KalmanAlignmentTracklet > TrackletPtr;
00026 
00028   KalmanAlignmentTracklet( TrajTrackPair& trajTrackPair,
00029                            const TrajectoryStateOnSurface& external,
00030                            KalmanAlignmentSetup* setup );
00031 
00032   KalmanAlignmentTracklet( TrajTrackPair& trajTrackPair,
00033                            KalmanAlignmentSetup* setup );
00034 
00036   ~KalmanAlignmentTracklet( void );
00037 
00038   inline const Trajectory* trajectory( void ) const { return theTrajTrackPair.first; }
00039   inline const reco::Track* track( void ) const { return theTrajTrackPair.second; }
00040   inline const ConstTrajTrackPair trajTrackPair( void ) const { return theTrajTrackPair; }
00041 
00042   inline const TrajectoryStateOnSurface externalPrediction( void ) const { return theExternalPrediction; }
00043   inline bool externalPredictionAvailable( void ) const { return theExternalPredictionFlag; }
00044 
00045   inline KalmanAlignmentSetup* alignmentSetup( void ) const { return theAlignmentSetup; }
00046 
00047 private:
00048 
00049   ConstTrajTrackPair theTrajTrackPair;
00050 
00051   TrajectoryStateOnSurface theExternalPrediction;
00052   bool theExternalPredictionFlag;
00053 
00054   KalmanAlignmentSetup* theAlignmentSetup;
00055 };
00056 
00057 #endif