CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GsfMaterialEffectsESProducer.cc
Go to the documentation of this file.
2 
9 
14 
15 #include <string>
16 #include <memory>
17 
18 using namespace edm;
19 
21 {
22  std::string myname = p.getParameter<std::string>("ComponentName");
23  pset_ = p;
24  setWhatProduced(this,myname);
25 }
26 
28 
29 boost::shared_ptr<GsfMaterialEffectsUpdator>
31  double mass = pset_.getParameter<double>("Mass");
32  std::string msName = pset_.getParameter<std::string>("MultipleScatteringUpdator");
33  std::string elName = pset_.getParameter<std::string>("EnergyLossUpdator");
34 
35  GsfMaterialEffectsUpdator* msUpdator;
36  if ( msName == "GsfMultipleScatteringUpdator" ) {
37  msUpdator = new GsfMultipleScatteringUpdator(mass);
38  }
39  else {
40  msUpdator = new GsfMaterialEffectsAdapter(MultipleScatteringUpdator(mass));
41  }
42 
43  GsfMaterialEffectsUpdator* elUpdator;
44  if ( elName == "GsfBetheHeitlerUpdator" ) {
45  std::string fileName = pset_.getParameter<std::string>("BetheHeitlerParametrization");
46  int correction = pset_.getParameter<int>("BetheHeitlerCorrection");
47  elUpdator = new GsfBetheHeitlerUpdator(fileName,correction);
48  }
49  else {
50  elUpdator = new GsfMaterialEffectsAdapter(EnergyLossUpdator(mass));
51  }
52 
53  boost::shared_ptr<GsfMaterialEffectsUpdator> updator =
54  boost::shared_ptr<GsfMaterialEffectsUpdator>(new GsfCombinedMaterialEffectsUpdator(*msUpdator,
55  *elUpdator));
56  delete msUpdator;
57  delete elUpdator;
58 
59  return updator;
60 }
61 
62 
T getParameter(std::string const &) const
boost::shared_ptr< GsfMaterialEffectsUpdator > produce(const TrackingComponentsRecord &)
GsfMaterialEffectsESProducer(const edm::ParameterSet &p)