CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MaterialEffectsUpdator.h
Go to the documentation of this file.
1 #ifndef _CR_MATERIALEFFECTSUPDATOR_H_
2 #define _CR_MATERIALEFFECTSUPDATOR_H_
3 
19 {
20 public:
23  MaterialEffectsUpdator ( double mass );
24  virtual ~MaterialEffectsUpdator ();
25 
30  const PropagationDirection propDir) const;
31 
38  virtual bool updateStateInPlace (TrajectoryStateOnSurface& TSoS,
39  const PropagationDirection propDir) const;
40 
41 
44  virtual double deltaP (const TrajectoryStateOnSurface& TSoS, const PropagationDirection propDir) const;
45 
46 
50  const PropagationDirection propDir) const;
51 
54  inline double mass () const {
55  return theMass;
56  }
57 
58  virtual MaterialEffectsUpdator* clone() const = 0;
59 
60  private:
61  // here comes the actual computation of the values
62  virtual void compute (const TrajectoryStateOnSurface&, const PropagationDirection) const = 0;
63 
64  // check of arguments for use with cached values
65  bool newArguments (const TrajectoryStateOnSurface & TSoS, PropagationDirection propDir) const;
66 
67  private:
68  double theMass;
69 
70  // chache previous call state
71  mutable double theLastOverP;
72  mutable double theLastDxdz;
73  mutable float theLastRL;
75 
76 
77 protected:
78  mutable double theDeltaP;
81 };
82 
83 #endif
bool newArguments(const TrajectoryStateOnSurface &TSoS, PropagationDirection propDir) const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
virtual bool updateStateInPlace(TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const
PropagationDirection
virtual TrajectoryStateOnSurface updateState(const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const
PropagationDirection theLastPropDir
virtual const AlgebraicSymMatrix55 & deltaLocalError(const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const
virtual double deltaP(const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const
static AlgebraicSymMatrix55 theNullMatrix
virtual MaterialEffectsUpdator * clone() const =0
AlgebraicSymMatrix55 theDeltaCov
virtual void compute(const TrajectoryStateOnSurface &, const PropagationDirection) const =0