CMS 3D CMS Logo

Public Member Functions | Private Attributes

GsfMaterialEffectsESProducer Class Reference

#include <GsfMaterialEffectsESProducer.h>

Inheritance diagram for GsfMaterialEffectsESProducer:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Member Functions

 GsfMaterialEffectsESProducer (const edm::ParameterSet &p)
boost::shared_ptr
< GsfMaterialEffectsUpdator
produce (const TrackingComponentsRecord &)
virtual ~GsfMaterialEffectsESProducer ()

Private Attributes

edm::ParameterSet pset_

Detailed Description

Provides algorithms for estimating material effects (GSF compatible). Multiple scattering estimates can be provided according to a single (== "KF") or two-component model. Energy loss estimates can be provided according to a single component ionization- or radiation model (== "KF") or a multi-component Bethe-Heitler model.

Definition at line 16 of file GsfMaterialEffectsESProducer.h.


Constructor & Destructor Documentation

GsfMaterialEffectsESProducer::GsfMaterialEffectsESProducer ( const edm::ParameterSet p)
GsfMaterialEffectsESProducer::~GsfMaterialEffectsESProducer ( ) [virtual]

Definition at line 27 of file GsfMaterialEffectsESProducer.cc.

{}

Member Function Documentation

boost::shared_ptr< GsfMaterialEffectsUpdator > GsfMaterialEffectsESProducer::produce ( const TrackingComponentsRecord iRecord)

Definition at line 30 of file GsfMaterialEffectsESProducer.cc.

References convertXMLtoSQLite_cfg::fileName, and AlCaHLTBitMon_QueryRunRegistry::string.

                                                                             { 
  double mass = pset_.getParameter<double>("Mass");
  std::string msName = pset_.getParameter<std::string>("MultipleScatteringUpdator");
  std::string elName = pset_.getParameter<std::string>("EnergyLossUpdator");

  GsfMaterialEffectsUpdator* msUpdator;
  if ( msName == "GsfMultipleScatteringUpdator" ) {
    msUpdator = new GsfMultipleScatteringUpdator(mass);
  }
  else {
    msUpdator = new GsfMaterialEffectsAdapter(MultipleScatteringUpdator(mass));
  }
  
  GsfMaterialEffectsUpdator* elUpdator;
  if ( elName == "GsfBetheHeitlerUpdator" ) {
    std::string fileName = pset_.getParameter<std::string>("BetheHeitlerParametrization");
    int correction = pset_.getParameter<int>("BetheHeitlerCorrection");
    elUpdator = new GsfBetheHeitlerUpdator(fileName,correction);
  }
  else {
    elUpdator = new GsfMaterialEffectsAdapter(EnergyLossUpdator(mass));
  }

  boost::shared_ptr<GsfMaterialEffectsUpdator> updator =
    boost::shared_ptr<GsfMaterialEffectsUpdator>(new GsfCombinedMaterialEffectsUpdator(*msUpdator,
                                                                                       *elUpdator));
  delete msUpdator;
  delete elUpdator;

  return updator;
}

Member Data Documentation

Definition at line 22 of file GsfMaterialEffectsESProducer.h.