Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef GsfCombinedMaterialEffectsUpdator_h_
0002 #define GsfCombinedMaterialEffectsUpdator_h_
0003 
0004 #include "TrackingTools/GsfTracking/interface/GsfMaterialEffectsUpdator.h"
0005 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
0006 
0007 /** Combines two GsfMaterialEffectsUpdators (for multiple scattering
0008  *  and energy loss).
0009  */
0010 class GsfCombinedMaterialEffectsUpdator final : public GsfMaterialEffectsUpdator {
0011 public:
0012   GsfCombinedMaterialEffectsUpdator* clone() const override { return new GsfCombinedMaterialEffectsUpdator(*this); }
0013 
0014 public:
0015   /// Constructor from multiple scattering and energy loss updator
0016   GsfCombinedMaterialEffectsUpdator(GsfMaterialEffectsUpdator& msUpdator, GsfMaterialEffectsUpdator& elUpdator);
0017 
0018   // here comes the actual computation of the values
0019   void compute(const TrajectoryStateOnSurface&, const PropagationDirection, Effect[]) const override;
0020 
0021 private:
0022   // objects used for calculations of multiple scattering and energy loss
0023   DeepCopyPointerByClone<GsfMaterialEffectsUpdator> theMSUpdator;
0024   DeepCopyPointerByClone<GsfMaterialEffectsUpdator> theELUpdator;
0025 };
0026 
0027 #endif