Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:31

0001 #ifndef GsfMultipleScatteringUpdator_h_
0002 #define GsfMultipleScatteringUpdator_h_
0003 
0004 #include "TrackingTools/GsfTracking/interface/GsfMaterialEffectsUpdator.h"
0005 
0006 /** \class GsfMultipleScatteringUpdator
0007  *  Description of multiple scattering with two Gaussian
0008  *  components as described in HEPHY-PUB 724-99.
0009  *  Gaussians as a function of x/X0 are parametrized as polynomials.
0010  *  The mixture is parametrized as a function of the thickness,
0011  *  velocity and Xs=X0*h(Z).
0012  */
0013 
0014 class GsfMultipleScatteringUpdator final : public GsfMaterialEffectsUpdator {
0015 public:
0016   /// constructor with explicit mass
0017   GsfMultipleScatteringUpdator(float mass) : GsfMaterialEffectsUpdator(mass, 2) {}
0018 
0019   GsfMultipleScatteringUpdator* clone() const override { return new GsfMultipleScatteringUpdator(*this); }
0020 
0021   /// Computation: generates vectors of weights, means and standard deviations
0022   void compute(const TrajectoryStateOnSurface&, const PropagationDirection, Effect[]) const override;
0023 
0024   virtual size_t size() const { return 2; }
0025 };
0026 
0027 #endif