CMS 3D CMS Logo

TwoBodyDecayTrajectoryState.h
Go to the documentation of this file.
1 #ifndef Alignment_ReferenceTrajectories_TwoBodyDecayTrajectoryState_h
2 #define Alignment_ReferenceTrajectories_TwoBodyDecayTrajectoryState_h
3 
6 
11 
12 
14 {
15 
16 public:
17 
18  typedef std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer;
19  typedef std::pair< AlgebraicMatrix, AlgebraicMatrix > Derivatives;
20 
24  TwoBodyDecayTrajectoryState( const TsosContainer & tsos,
25  const TwoBodyDecay & tbd,
26  double particleMass,
27  const MagneticField* magField,
28  bool propagateErrors = false );
29 
31 
32  inline bool isValid( void ) const { return theValidityFlag; }
33 
34  inline double particleMass( void ) const { return theParticleMass; }
35  inline const TwoBodyDecayParameters & decayParameters( void ) const { return theParameters; }
36  inline const TsosContainer& trajectoryStates( bool useRefittedState = true ) const { return useRefittedState ? theRefittedTsos : theOriginalTsos; }
37  inline const Derivatives& derivatives( void ) const { return theDerivatives; }
38 
39  void rescaleError( double scale );
40 
41  inline double primaryMass( void ) const { return thePrimaryMass; }
42  inline double primaryWidth( void ) const { return thePrimaryWidth; }
43 
44 private:
45 
46  void construct( const MagneticField* magField,
47  bool propagateErrors );
48 
49  bool propagateSingleState( const FreeTrajectoryState & fts,
50  const GlobalTrajectoryParameters & gtp,
51  const AlgebraicMatrix & startDeriv,
52  const Surface & surface,
53  const MagneticField* magField,
55  AlgebraicMatrix & endDeriv ) const;
56 
57 
58  void setError( FreeTrajectoryState& fts,
59  AlgebraicMatrix& derivative ) const;
60 
62 
64 
66  Derivatives theDerivatives;
67  TsosContainer theOriginalTsos;
68  TsosContainer theRefittedTsos;
69 
72 
73  static const unsigned int nLocalParam = 5;
74  static const unsigned int nDecayParam = TwoBodyDecayParameters::dimension;
75 };
76 
77 
78 #endif
static const unsigned int nDecayParam
Derivative< X, A >::type derivative(const A &_)
Definition: Derivative.h:18
const TsosContainer & trajectoryStates(bool useRefittedState=true) const
TwoBodyDecayTrajectoryState(const TsosContainer &tsos, const TwoBodyDecay &tbd, double particleMass, const MagneticField *magField, bool propagateErrors=false)
const Derivatives & derivatives(void) const
CLHEP::HepMatrix AlgebraicMatrix
void setError(FreeTrajectoryState &fts, AlgebraicMatrix &derivative) const
bool propagateSingleState(const FreeTrajectoryState &fts, const GlobalTrajectoryParameters &gtp, const AlgebraicMatrix &startDeriv, const Surface &surface, const MagneticField *magField, TrajectoryStateOnSurface &tsos, AlgebraicMatrix &endDeriv) const
std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer
const TwoBodyDecayParameters & decayParameters(void) const
std::pair< AlgebraicMatrix, AlgebraicMatrix > Derivatives
static const unsigned int nLocalParam
void construct(const MagneticField *magField, bool propagateErrors)