File indexing completed on 2024-04-06 12:31:31
0001 #ifndef GsfMaterialEffectsUpdator_h_
0002 #define GsfMaterialEffectsUpdator_h_
0003
0004 #include "TrackingTools/MaterialEffects/interface/MaterialEffectsUpdator.h"
0005 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0006 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
0007 #include "DataFormats/GeometrySurface/interface/Surface.h"
0008 #include <cstdint>
0009
0010
0011
0012
0013
0014
0015 class GsfMaterialEffectsUpdator {
0016 public:
0017 typedef materialEffect::Covariance Covariance;
0018 typedef materialEffect::Effect Effect;
0019 typedef materialEffect::CovIndex CovIndex;
0020
0021
0022
0023 GsfMaterialEffectsUpdator(float mass, uint32_t is) : theMass(mass), m_size(is) {}
0024
0025 virtual ~GsfMaterialEffectsUpdator() {}
0026
0027
0028
0029
0030 virtual TrajectoryStateOnSurface updateState(const TrajectoryStateOnSurface& TSoS,
0031 const PropagationDirection propDir) const;
0032
0033
0034
0035 inline float mass() const { return theMass; }
0036
0037 virtual GsfMaterialEffectsUpdator* clone() const = 0;
0038
0039
0040 virtual void compute(const TrajectoryStateOnSurface&, const PropagationDirection, Effect effects[]) const = 0;
0041
0042 size_t size() const { return m_size; }
0043
0044 protected:
0045 void resize(size_t is) { m_size = is; }
0046
0047 private:
0048 float theMass;
0049 uint32_t m_size;
0050 };
0051
0052 #endif