00001 #ifndef GsfCombinedMaterialEffectsUpdator_h_ 00002 #define GsfCombinedMaterialEffectsUpdator_h_ 00003 00004 #include "TrackingTools/GsfTracking/interface/GsfMaterialEffectsUpdator.h" 00005 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h" 00006 00010 class GsfCombinedMaterialEffectsUpdator : public GsfMaterialEffectsUpdator 00011 { 00012 public: 00013 virtual GsfCombinedMaterialEffectsUpdator* clone() const 00014 { 00015 return new GsfCombinedMaterialEffectsUpdator(*this); 00016 } 00017 00018 public: 00019 // /// Default constructor (mass from configurable) 00020 // GsfCombinedMaterialEffectsUpdator(); 00021 // /// Constructor with explicit mass hypothesis 00022 // GsfCombinedMaterialEffectsUpdator( float mass ); 00024 GsfCombinedMaterialEffectsUpdator (GsfMaterialEffectsUpdator& msUpdator, 00025 GsfMaterialEffectsUpdator& elUpdator); 00026 00027 private: 00028 // /// initialisation of individual updators 00029 // void createUpdators(const float); 00030 // here comes the actual computation of the values 00031 virtual void compute (const TrajectoryStateOnSurface&, const PropagationDirection) const; 00032 00033 private: 00034 // objects used for calculations of multiple scattering and energy loss 00035 DeepCopyPointerByClone<GsfMaterialEffectsUpdator> theMSUpdator; 00036 DeepCopyPointerByClone<GsfMaterialEffectsUpdator> theELUpdator; 00037 }; 00038 00039 #endif