CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
magneticfield::VolumeBasedMagneticFieldESProducer Class Reference

#include <VolumeBasedMagneticFieldESProducer.h>

Inheritance diagram for magneticfield::VolumeBasedMagneticFieldESProducer:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Public Member Functions

std::auto_ptr< MagneticFieldproduce (const IdealMagneticFieldRecord &iRecord)
 
 VolumeBasedMagneticFieldESProducer (const edm::ParameterSet &iConfig)
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer ()
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider ()
 

Private Member Functions

std::vector< unsigned > expandList (const std::string &list)
 
const
VolumeBasedMagneticFieldESProducer
operator= (const VolumeBasedMagneticFieldESProducer &)
 
 VolumeBasedMagneticFieldESProducer (const VolumeBasedMagneticFieldESProducer &)
 

Private Attributes

edm::ParameterSet pset
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair
< DataKey, boost::shared_ptr
< DataProxy > > > 
KeyedProxies
 
typedef std::vector
< EventSetupRecordKey
Keys
 
typedef std::map
< EventSetupRecordKey,
KeyedProxies
RecordProxies
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::auto_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::auto_ptr< eventsetup::ProxyFactoryBase > &iFactory, const std::string &iLabel=std::string())
 
virtual void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList)
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 

Detailed Description

Definition at line 23 of file VolumeBasedMagneticFieldESProducer.h.

Constructor & Destructor Documentation

VolumeBasedMagneticFieldESProducer::VolumeBasedMagneticFieldESProducer ( const edm::ParameterSet iConfig)

Definition at line 31 of file VolumeBasedMagneticFieldESProducer.cc.

References edm::ParameterSet::getUntrackedParameter(), pset, edm::ESProducer::setWhatProduced(), and AlCaHLTBitMon_QueryRunRegistry::string.

31  : pset(iConfig)
32 {
34 }
T getUntrackedParameter(std::string const &, T const &) const
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
magneticfield::VolumeBasedMagneticFieldESProducer::VolumeBasedMagneticFieldESProducer ( const VolumeBasedMagneticFieldESProducer )
private

Member Function Documentation

vector< unsigned > VolumeBasedMagneticFieldESProducer::expandList ( const std::string &  list)
private

Definition at line 110 of file VolumeBasedMagneticFieldESProducer.cc.

References end, i, gen::k, split, dqm_diff::start, and makeHLTPrescaleTable::values.

Referenced by produce().

110  {
111  typedef vector<string> vstring;
112  vector<unsigned> values;
113  vstring v1;
114  boost::split(v1, list, boost::is_any_of(","));
115  for (vstring::const_iterator i= v1.begin(); i!=v1.end(); ++i){
116  vstring v2;
117  boost::split(v2, *i, boost::is_any_of("-"));
118  unsigned start = boost::lexical_cast<unsigned>(v2.front());
119  unsigned end = boost::lexical_cast<unsigned>(v2.back());
120  if ((v2.size()>2) || (start>end)) {
121  edm::LogError("BADconfiguration") << "VolumeBasedMagneticFieldESProducer: malformed configuration" << list << endl;
122  abort();
123  }
124  for (unsigned k = start; k<=end; ++k){
125  values.push_back(k);
126  }
127  }
128  return values;
129 }
int i
Definition: DBlmapReader.cc:9
tuple start
Check for commandline option errors.
Definition: dqm_diff.py:58
vector< string > vstring
Definition: ExoticaDQM.cc:75
#define end
Definition: vmac.h:38
int k[5][pyjets_maxn]
double split
Definition: MVATrainer.cc:139
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
const VolumeBasedMagneticFieldESProducer& magneticfield::VolumeBasedMagneticFieldESProducer::operator= ( const VolumeBasedMagneticFieldESProducer )
private
std::auto_ptr< MagneticField > VolumeBasedMagneticFieldESProducer::produce ( const IdealMagneticFieldRecord iRecord)

Definition at line 37 of file VolumeBasedMagneticFieldESProducer.cc.

References MagGeoBuilderFromDDD::barrelLayers(), MagGeoBuilderFromDDD::barrelVolumes(), MagGeoBuilderFromDDD::build(), filterCSVwithJSON::copy, gather_cfg::cout, debug, MagGeoBuilderFromDDD::endcapSectors(), MagGeoBuilderFromDDD::endcapVolumes(), expandList(), edm::eventsetup::EventSetupRecord::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), i, j, relativeConstraints::keys, autoMagneticFieldProducer_cfi::master, MagGeoBuilderFromDDD::maxR(), MagGeoBuilderFromDDD::maxZ(), getHLTPrescaleColumns::path, edm::ESHandle< class >::product(), pset, alignCSCRings::s, mergeVDriftHistosByStation::sectors, MagGeoBuilderFromDDD::setGridFiles(), MagGeoBuilderFromDDD::setScaling(), AlCaHLTBitMon_QueryRunRegistry::string, makeHLTPrescaleTable::values, and autoMagneticFieldProducer_cfi::volumes.

38 {
39  bool debug = pset.getUntrackedParameter<bool>("debugBuilder", false);
40  if (debug) {
41  cout << "VolumeBasedMagneticFieldESProducer::produce() " << pset.getParameter<std::string>("version") << endl;
42  }
43 
45  iRecord.get("magfield",cpv );
47  pset.getParameter<int>("geometryVersion"),
48  debug);
49 
50  // Get scaling factors
51  vector<int> keys = pset.getParameter<vector<int> >("scalingVolumes");
52  vector<double> values = pset.getParameter<vector<double> >("scalingFactors");
53 
54  if (keys.size() != 0) {
55  builder.setScaling(keys, values);
56  }
57 
58  // Get specification for the grid tables to be used.
59  typedef vector<edm::ParameterSet> VPSet;
60  {
61  VPSet fileSpec = pset.getParameter<VPSet>("gridFiles");
62  if (fileSpec.size()!=0) {
63  auto_ptr<TableFileMap> gridFiles(new TableFileMap);
64  for(VPSet::const_iterator rule = fileSpec.begin(); rule != fileSpec.end(); ++rule){
65  string s_volumes = rule->getParameter<string>("volumes");
66  string s_sectors = rule->getParameter<string>("sectors"); // 0 means all volumes
67  int master = rule->getParameter<int>("master");
68  string path = rule->getParameter<string>("path");
69 
70  vector<unsigned> volumes = expandList(s_volumes);
71  vector<unsigned> sectors = expandList(s_sectors);
72 
73  if (debug) {
74  cout << s_volumes << endl;
75  copy(volumes.begin(), volumes.end(), ostream_iterator<unsigned>(cout, " "));
76  cout << endl;
77  cout << s_sectors << endl;
78  copy(sectors.begin(), sectors.end(), ostream_iterator<unsigned>(cout, " "));
79  cout << endl;
80  }
81 
82  for (vector<unsigned>::iterator i = volumes.begin(); i!=volumes.end(); ++i){
83  for (vector<unsigned>::iterator j = sectors.begin(); j!=sectors.end(); ++j){
84  unsigned vpacked = (*i)*100+(*j);
85  if (gridFiles->find(vpacked)==gridFiles->end()) {
86  (*gridFiles)[vpacked] = make_pair(path, master);
87  } else {
88  edm::LogError("BADconfiguration") << "ERROR: VolumeBasedMagneticFieldESProducer: malformed gridFiles config parameter";
89  abort();
90  }
91  }
92  }
93  }
94  builder.setGridFiles(gridFiles); // gridFiles passed by reference, which is required to exist until
95  }
96  }
97 
98  builder.build(*cpv);
99 
100 
101  // Get slave field
102  edm::ESHandle<MagneticField> paramField;
103  if (pset.getParameter<bool>("useParametrizedTrackerField")) {;
104  iRecord.get(pset.getParameter<string>("paramLabel"),paramField);
105  }
106  std::auto_ptr<MagneticField> s(new VolumeBasedMagneticField(pset,builder.barrelLayers(), builder.endcapSectors(), builder.barrelVolumes(), builder.endcapVolumes(), builder.maxR(), builder.maxZ(), paramField.product(), false));
107  return s;
108 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
void get(HolderT &iHolder) const
int j
Definition: DBlmapReader.cc:9
std::vector< unsigned > expandList(const std::string &list)
T const * product() const
Definition: ESHandle.h:62
tuple cout
Definition: gather_cfg.py:121
#define debug
Definition: MEtoEDMFormat.h:34
std::map< unsigned, std::pair< std::string, int > > TableFileMap

Member Data Documentation

edm::ParameterSet magneticfield::VolumeBasedMagneticFieldESProducer::pset
private