CMS 3D CMS Logo

TwoBodyDecayTrajectoryState.h

Go to the documentation of this file.
00001 #ifndef Alignment_ReferenceTrajectories_TwoBodyDecayTrajectoryState_h
00002 #define Alignment_ReferenceTrajectories_TwoBodyDecayTrajectoryState_h
00003 
00004 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00005 #include "Alignment/TwoBodyDecay/interface/TwoBodyDecay.h"
00006 
00010 class GlobalTrajectoryParameters;
00011 
00012 
00013 class TwoBodyDecayTrajectoryState
00014 {
00015 
00016 public:
00017 
00018   typedef std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer;
00019   typedef std::pair< AlgebraicMatrix, AlgebraicMatrix > Derivatives;
00020 
00024   TwoBodyDecayTrajectoryState( const TsosContainer & tsos,
00025                                const TwoBodyDecay & tbd,
00026                                double particleMass,
00027                                const MagneticField* magField );
00028 
00032   TwoBodyDecayTrajectoryState( const TsosContainer & tsos,
00033                                const TwoBodyDecayParameters & param,
00034                                double particleMass,
00035                                const MagneticField* magField );
00036 
00037   ~TwoBodyDecayTrajectoryState( void ) {}
00038 
00039   inline bool isValid( void ) const { return theValidityFlag; }
00040 
00041   inline double particleMass( void ) const { return theParticleMass; }
00042   inline const TwoBodyDecayParameters & decayParameters( void ) const { return theParameters; }
00043   inline const TsosContainer& trajectoryStates( bool useRefittedState = true ) const { return useRefittedState ? theRefittedTsos : theOriginalTsos; }
00044   inline const Derivatives& derivatives( void ) const { return theDerivatives; }
00045 
00046 private:
00047 
00048   void construct( const MagneticField* magField );
00049 
00050   bool propagateSingleState( const GlobalTrajectoryParameters & gtp,
00051                              const AlgebraicMatrix & startDeriv,
00052                              const Surface & surface,
00053                              const MagneticField* magField,
00054                              TrajectoryStateOnSurface & tsos,
00055                              AlgebraicMatrix & endDeriv );
00056 
00057   bool theValidityFlag;
00058 
00059   double theParticleMass;
00060 
00061   TwoBodyDecayParameters theParameters;
00062   Derivatives theDerivatives;
00063   TsosContainer theOriginalTsos;
00064   TsosContainer theRefittedTsos;
00065 
00066 
00067   static const unsigned int nLocalParam = 5;
00068   static const unsigned int nDecayParam = TwoBodyDecayParameters::dimension;
00069 };
00070 
00071 
00072 #endif

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