![]() |
![]() |
#include <MagneticField/GeomBuilder/plugins/VolumeBasedMagneticFieldESProducer.h>
Public Member Functions | |
std::auto_ptr< MagneticField > | produce (const IdealMagneticFieldRecord &iRecord) |
VolumeBasedMagneticFieldESProducer (const edm::ParameterSet &iConfig) | |
Private Member Functions | |
const VolumeBasedMagneticFieldESProducer & | operator= (const VolumeBasedMagneticFieldESProducer &) |
VolumeBasedMagneticFieldESProducer (const VolumeBasedMagneticFieldESProducer &) | |
Private Attributes | |
edm::ParameterSet | pset |
Definition at line 20 of file VolumeBasedMagneticFieldESProducer.h.
VolumeBasedMagneticFieldESProducer::VolumeBasedMagneticFieldESProducer | ( | const edm::ParameterSet & | iConfig | ) |
Definition at line 26 of file VolumeBasedMagneticFieldESProducer.cc.
References edm::ParameterSet::getUntrackedParameter(), pset, and edm::ESProducer::setWhatProduced().
00026 : pset(iConfig) 00027 { 00028 setWhatProduced(this, pset.getUntrackedParameter<std::string>("label","")); 00029 }
magneticfield::VolumeBasedMagneticFieldESProducer::VolumeBasedMagneticFieldESProducer | ( | const VolumeBasedMagneticFieldESProducer & | ) | [private] |
const VolumeBasedMagneticFieldESProducer& magneticfield::VolumeBasedMagneticFieldESProducer::operator= | ( | const VolumeBasedMagneticFieldESProducer & | ) | [private] |
std::auto_ptr< MagneticField > VolumeBasedMagneticFieldESProducer::produce | ( | const IdealMagneticFieldRecord & | iRecord | ) |
Definition at line 35 of file VolumeBasedMagneticFieldESProducer.cc.
References MagGeoBuilderFromDDD::barrelLayers(), MagGeoBuilderFromDDD::barrelVolumes(), MagGeoBuilderFromDDD::build(), GenMuonPlsPt100GeV_cfg::cout, debug, MagGeoBuilderFromDDD::endcapSectors(), MagGeoBuilderFromDDD::endcapVolumes(), lat::endl(), edm::eventsetup::EventSetupRecordImplementation< T >::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), bookConverter::keys, MagGeoBuilderFromDDD::maxR(), MagGeoBuilderFromDDD::maxZ(), edm::ESHandle< T >::product(), pset, s, MagGeoBuilderFromDDD::setScaling(), and values.
00036 { 00037 bool debug = pset.getUntrackedParameter<bool>("debugBuilder", false); 00038 if (debug) { 00039 cout << "VolumeBasedMagneticFieldESProducer::produce() " << pset.getParameter<std::string>("version") << endl; 00040 } 00041 00042 edm::ESHandle<DDCompactView> cpv; 00043 iRecord.get("magfield",cpv ); 00044 MagGeoBuilderFromDDD builder(pset.getParameter<std::string>("version"), 00045 debug, 00046 pset.getParameter<bool>("overrideMasterSector")); 00047 00048 // Get scaling factors 00049 vector<int> keys = pset.getParameter<vector<int> >("scalingVolumes"); 00050 vector<double> values = pset.getParameter<vector<double> >("scalingFactors"); 00051 00052 if (keys.size() != 0) { 00053 builder.setScaling(keys, values); 00054 } 00055 00056 builder.build(*cpv); 00057 00058 00059 // Get slave field 00060 edm::ESHandle<MagneticField> paramField; 00061 if (pset.getParameter<bool>("useParametrizedTrackerField")) {; 00062 iRecord.get(pset.getParameter<string>("paramLabel"),paramField); 00063 } 00064 std::auto_ptr<MagneticField> s(new VolumeBasedMagneticField(pset,builder.barrelLayers(), builder.endcapSectors(), builder.barrelVolumes(), builder.endcapVolumes(), builder.maxR(), builder.maxZ(), paramField.product(), false)); 00065 return s; 00066 }
Definition at line 31 of file VolumeBasedMagneticFieldESProducer.h.
Referenced by produce(), and VolumeBasedMagneticFieldESProducer().