CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Alignment/ReferenceTrajectories/interface/TwoBodyDecayTrajectory.h

Go to the documentation of this file.
00001 #ifndef Alignment_ReferenceTrajectories_TwoBodyDecayTrajectory_h
00002 #define Alignment_ReferenceTrajectories_TwoBodyDecayTrajectory_h
00003 
00004 #include "Alignment/ReferenceTrajectories/interface/ReferenceTrajectory.h"
00005 #include "Alignment/ReferenceTrajectories/interface/TwoBodyDecayTrajectoryState.h"
00006 
00007 
00012 namespace reco { class BeamSpot; }
00013 
00014 class TwoBodyDecayTrajectory : public ReferenceTrajectoryBase
00015 {
00016 
00017 public:
00018 
00019   typedef TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer;
00020   typedef std::pair< ConstRecHitContainer, ConstRecHitContainer > ConstRecHitCollection;
00021 
00022   TwoBodyDecayTrajectory( const TwoBodyDecayTrajectoryState & trajectoryState,
00023                           const ConstRecHitCollection & recHits,
00024                           const MagneticField* magField,
00025                           MaterialEffects materialEffects,
00026                           PropagationDirection propDir,
00027                           bool hitsAreReverse,
00028                           const reco::BeamSpot &beamSpot,
00029                           bool useRefittedState,
00030                           bool constructTsosWithErrors );
00031 
00032   TwoBodyDecayTrajectory( void );
00033 
00034   ~TwoBodyDecayTrajectory( void ) {}
00035 
00036   virtual TwoBodyDecayTrajectory* clone( void ) const
00037     { return new TwoBodyDecayTrajectory( *this ); }
00038 
00041   inline const std::pair< int, int > numberOfRecHits( void ) { return theNumberOfRecHits; }
00042 
00043 private:
00044 
00045   bool construct( const TwoBodyDecayTrajectoryState & state,
00046                   const ConstRecHitCollection & recHits,
00047                   const MagneticField* field,
00048                   MaterialEffects materialEffects,
00049                   PropagationDirection propDir,
00050                   const reco::BeamSpot &beamSpot,
00051                   bool useRefittedState,
00052                   bool constructTsosWithErrors );
00053 
00054   void constructTsosVecWithErrors( const ReferenceTrajectory& traj1,
00055                                    const ReferenceTrajectory& traj2,
00056                                    const MagneticField* field );
00057 
00058   void constructSingleTsosWithErrors( const TrajectoryStateOnSurface & tsos,
00059                                       int iTsos,
00060                                       const MagneticField* field );
00061 
00062   std::pair< int, int > theNumberOfRecHits;
00063 
00064 };
00065 
00066 #endif