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 
13 public:
14  typedef std::pair<TrajectoryStateOnSurface, TrajectoryStateOnSurface> TsosContainer;
15  typedef std::pair<AlgebraicMatrix, AlgebraicMatrix> Derivatives;
16 
20  TwoBodyDecayTrajectoryState(const TsosContainer& tsos,
21  const TwoBodyDecay& tbd,
22  double particleMass,
23  const MagneticField* magField,
24  bool propagateErrors = false);
25 
27 
28  inline bool isValid(void) const { return theValidityFlag; }
29 
30  inline double particleMass(void) const { return theParticleMass; }
31  inline const TwoBodyDecayParameters& decayParameters(void) const { return theParameters; }
32  inline const TsosContainer& trajectoryStates(bool useRefittedState = true) const {
33  return useRefittedState ? theRefittedTsos : theOriginalTsos;
34  }
35  inline const Derivatives& derivatives(void) const { return theDerivatives; }
36 
37  void rescaleError(double scale);
38 
39  inline double primaryMass(void) const { return thePrimaryMass; }
40  inline double primaryWidth(void) const { return thePrimaryWidth; }
41 
42 private:
43  void construct(const MagneticField* magField, bool propagateErrors);
44 
46  const GlobalTrajectoryParameters& gtp,
47  const AlgebraicMatrix& startDeriv,
48  const Surface& surface,
49  const MagneticField* magField,
51  AlgebraicMatrix& endDeriv) const;
52 
54 
56 
58 
60  Derivatives theDerivatives;
61  TsosContainer theOriginalTsos;
62  TsosContainer theRefittedTsos;
63 
66 
67  static const unsigned int nLocalParam = 5;
68  static const unsigned int nDecayParam = TwoBodyDecayParameters::dimension;
69 };
70 
71 #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
const TwoBodyDecayParameters & decayParameters(void) const
std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer
static const unsigned int nLocalParam
std::pair< AlgebraicMatrix, AlgebraicMatrix > Derivatives
void construct(const MagneticField *magField, bool propagateErrors)