Geometry and configuration of Magnetic Field from DB

Infrastructure to take the MF geometry and configuration from DB instead than from python cfg. 
Changes include:
-Specific record for MF geometry (MFGeometryFileRcd), do not use GeometryFileRcd anymore. 
-New DB payload for MF configuration (MagFieldConfig); incl. record, tools to create it, etc.
-Prototype of new ESProducer to use the above (no change in behaviour for existing producers)
-Some refactoring in MagneticField to allow construction of parametrized fields at runtime
-removal of one large reference file as reuested by Slava (cf #5269)

This PR introduces no change in standard configurations (regression tested). Plan to switch to the new mechanism in a future PR, once the DB is populated with the new payloads.

Relevant Discussion:
https://indico.cern.ch/event/328166/session/1/contribution/24

Hi Chris,

This check is there to find problems when I develop new configurations, 
not to catch a runtime problem, since standard configurations
are fixed and are not intended to be changed.

So this is not a possible runtime failure; and to tell the truth, I have 
plenty of similar checks in this subsystem, which has run happily over 
billions of HLT, offline, and MC events without even issuing a single 
abort() in the history of CMSSW. Now I can change this one if you 
insist, but...

Cheers
	Nicola


On 15-Oct-14 17:44, Chris Jones wrote:
> In CondFormats/MFObjects/src/MagFieldConfig.cc:
>
>> +	cout << " Expanded volumes: ";
>> +	copy(volumes.begin(), volumes.end(), ostream_iterator<unsigned>(cout, " "));
>> +	cout << endl;
>> +	cout << " Expanded sectors: ";
>> +	copy(sectors.begin(), sectors.end(), ostream_iterator<unsigned>(cout, " "));
>> +	cout << endl;
>> +      }
>> +	
>> +      for (vector<unsigned>::iterator i = volumes.begin(); i!=volumes.end(); ++i){
>> +	for (vector<unsigned>::iterator j = sectors.begin(); j!=sectors.end(); ++j){
>> +	  unsigned vpacked = (*i)*100+(*j);
>> +	  if (gridFiles.find(vpacked)==gridFiles.end()) {
>> +	    gridFiles[vpacked] = make_pair(path, master);
>> +	  } else {
>> +	    edm::LogError("BADconfiguration") << "ERROR: VolumeBasedMagneticFieldESProducer: malformed gridFiles config parameter";
>> +	    abort();
>
> Only the framework should ever issue an abort(). All other failures
> should be handled via an exception.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/cms-sw/cmssw/pull/5785/files#r18901998>.
>