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