Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Magnetic Field optimization #29556

Merged
merged 10 commits into from May 1, 2020
Expand Up @@ -38,7 +38,6 @@
version = cms.string('grid_160812_3_8t'),
geometryVersion = cms.int32(160812),
debugBuilder = cms.untracked.bool(False),
cacheLastVolume = cms.untracked.bool(True),
scalingVolumes = cms.vint32(),
scalingFactors = cms.vdouble(),

Expand Down
Expand Up @@ -34,7 +34,6 @@
version = cms.string('grid_1103l_071212_2t'),
geometryVersion = cms.int32(71212),
debugBuilder = cms.untracked.bool(False),
cacheLastVolume = cms.untracked.bool(True),
scalingVolumes = cms.vint32(),
scalingFactors = cms.vdouble(),
gridFiles = cms.VPSet(
Expand Down
4 changes: 0 additions & 4 deletions MagneticField/Engine/test/MakePlots.sh

This file was deleted.

18 changes: 0 additions & 18 deletions MagneticField/Engine/test/README

This file was deleted.

14 changes: 0 additions & 14 deletions MagneticField/Engine/test/plot3d.gnuplot

This file was deleted.

9 changes: 5 additions & 4 deletions MagneticField/Engine/test/testMagneticField.cc
Expand Up @@ -53,8 +53,6 @@ using namespace edm;
using namespace Geom;
using namespace std;

// #include "MagneticField/Layers/interface/MagVerbosity.h"

class testMagneticField : public edm::EDAnalyzer {
public:
testMagneticField(const edm::ParameterSet& pset) {
Expand Down Expand Up @@ -91,6 +89,7 @@ class testMagneticField : public edm::EDAnalyzer {

if (outputFile != "") {
writeValidationTable(numberOfPoints, outputFile);
return;
}

if (inputFileType == "TOSCA") {
Expand Down Expand Up @@ -147,7 +146,8 @@ class testMagneticField : public edm::EDAnalyzer {
void testMagneticField::writeValidationTable(int npoints, string filename) {
GlobalPointProvider p(InnerRadius, OuterRadius, -Geom::pi(), Geom::pi(), -HalfLength, HalfLength);

if (filename.substr(filename.rfind(".")) == ".txt") {
std::string::size_type ps = filename.rfind(".");
if (ps != std::string::npos && filename.substr(ps) == ".txt") {
ofstream file(filename.c_str());

for (int i = 0; i < npoints; ++i) {
Expand Down Expand Up @@ -188,7 +188,8 @@ void testMagneticField::validate(string filename, string type) {
edm::FileInPath mydata(filename);
fullPath = mydata.fullPath();

if (filename.substr(filename.rfind(".")) == ".txt") {
std::string::size_type ps = filename.rfind(".");
if (ps != std::string::npos && filename.substr(filename.rfind(".")) == ".txt") {
binary = false;
file.open(fullPath.c_str());
} else {
Expand Down
2 changes: 0 additions & 2 deletions MagneticField/GeomBuilder/src/BaseVolumeHandle.cc
Expand Up @@ -11,8 +11,6 @@
#include "DataFormats/GeometrySurface/interface/Cone.h"
#include "DataFormats/GeometryVector/interface/CoordinateSets.h"

#include "MagneticField/Layers/interface/MagVerbosity.h"

#include <cassert>
#include <string>
#include <iterator>
Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.cc
Expand Up @@ -23,7 +23,6 @@

#include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"
#include "MagneticField/VolumeGeometry/interface/MagExceptions.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"

#include "DataFormats/Math/interface/deltaPhi.h"

Expand Down
2 changes: 0 additions & 2 deletions MagneticField/GeomBuilder/src/DD4hep_volumeHandle.cc
Expand Up @@ -16,8 +16,6 @@

#include "DetectorDescription/DDCMS/interface/DDShapes.h"

#include "MagneticField/Layers/interface/MagVerbosity.h"

#include <string>
#include <iterator>

Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/MagGeoBuilderFromDDD.cc
Expand Up @@ -31,7 +31,6 @@

#include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"
#include "MagneticField/VolumeGeometry/interface/MagExceptions.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"

#include "DataFormats/GeometryVector/interface/Pi.h"
#include "DataFormats/Math/interface/GeantUnits.h"
Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/bLayer.cc
Expand Up @@ -8,7 +8,6 @@
#include "printUniqueNames.h"
#include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"
#include "MagneticField/Layers/interface/MagBLayer.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"

#include "Utilities/General/interface/precomputed_value_sort.h"

Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/bRod.cc
Expand Up @@ -8,7 +8,6 @@
#include "printUniqueNames.h"
#include "Utilities/BinningTools/interface/ClusterizingHistogram.h"
#include "MagneticField/Layers/interface/MagBRod.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "Utilities/General/interface/precomputed_value_sort.h"

#include <iostream>
Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/bSector.cc
Expand Up @@ -9,7 +9,6 @@
#include "DataFormats/GeometrySurface/interface/Surface.h"
#include "Utilities/BinningTools/interface/ClusterizingHistogram.h"
#include "MagneticField/Layers/interface/MagBSector.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "Utilities/General/interface/precomputed_value_sort.h"

#include <algorithm>
Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/bSlab.cc
Expand Up @@ -7,7 +7,6 @@
#include "bSlab.h"
#include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"
#include "MagneticField/Layers/interface/MagBSlab.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"

#include "Utilities/General/interface/precomputed_value_sort.h"

Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/bSlab.h
Expand Up @@ -15,7 +15,6 @@

#include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"
#include "MagneticField/Layers/interface/MagBSlab.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"

class MagBSlab;

Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/src/eSector.cc
Expand Up @@ -8,7 +8,6 @@
#include "printUniqueNames.h"
#include "Utilities/BinningTools/interface/ClusterizingHistogram.h"
#include "MagneticField/Layers/interface/MagESector.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "Utilities/General/interface/precomputed_value_sort.h"

#include <algorithm>
Expand Down
2 changes: 0 additions & 2 deletions MagneticField/GeomBuilder/src/volumeHandle.cc
Expand Up @@ -18,8 +18,6 @@

#include "CLHEP/Units/GlobalSystemOfUnits.h"

#include "MagneticField/Layers/interface/MagVerbosity.h"

#include <string>
#include <iterator>
#include <iomanip>
Expand Down
1 change: 0 additions & 1 deletion MagneticField/GeomBuilder/test/python/testMagGeometry.py
Expand Up @@ -46,7 +46,6 @@
version = cms.string('fake'),
geometryVersion = cms.int32(160812),
debugBuilder = cms.untracked.bool(False), # Set to True to activate full debug output
cacheLastVolume = cms.untracked.bool(True),
scalingVolumes = cms.vint32(),
scalingFactors = cms.vdouble(),

Expand Down
Expand Up @@ -64,7 +64,6 @@
version = cms.string('fake'),
geometryVersion = cms.int32(160812),
debugBuilder = cms.untracked.bool(False), # Set to True to activate full debug
cacheLastVolume = cms.untracked.bool(True),
scalingVolumes = cms.vint32(),
scalingFactors = cms.vdouble(),

Expand Down
Expand Up @@ -12,7 +12,6 @@
#include "MagneticField/GeomBuilder/test/stubs/MagGeometryExerciser.h"
#include "MagneticField/Engine/interface/MagneticField.h"
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "MagneticField/GeomBuilder/src/MagGeoBuilderFromDDD.h"
#include "MagneticField/VolumeBasedEngine/interface/VolumeBasedMagneticField.h"

Expand Down
21 changes: 0 additions & 21 deletions MagneticField/Layers/interface/MagVerbosity.h

This file was deleted.

31 changes: 10 additions & 21 deletions MagneticField/Layers/src/MagBLayer.cc
Expand Up @@ -12,25 +12,23 @@
#include "Utilities/BinningTools/interface/PeriodicBinFinderInPhi.h"
#include "DataFormats/GeometryVector/interface/Phi.h"

#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include <iostream>

using namespace std;

MagBLayer::MagBLayer(vector<MagBSector*>& sectors, double rMin)
: theSectors(sectors), theSingleVolume(nullptr), theRMin(rMin), theBinFinder(nullptr) {
// TOFIX
// if (verbose.debugOut) cout << "Building MagBLayer with " << theSectors.size()
// LogTrace("MagGeometry") << "Building MagBLayer with " << theSectors.size()
// << " sectors, minR " << theRMin << endl;
//FIXME: PeriodicBinFinderInPhi gets *center* of first bin
theBinFinder = new PeriodicBinFinderInPhi<float>(theSectors.front()->minPhi() + Geom::pi() / 12., 12);
}

/// Constructor for a trivial layer consisting of one single volume.
MagBLayer::MagBLayer(MagVolume* aVolume, double rMin) : theSingleVolume(nullptr), theRMin(rMin), theBinFinder(nullptr) {
// TOFIX
// if (verbose.debugOut) cout << "Building MagBLayer with " << 0
// LogTrace("MagGeometry") << "Building MagBLayer with " << 0
// << " sectors, minR " << theRMin << endl;
}

Expand All @@ -49,12 +47,10 @@ const MagVolume* MagBLayer::findVolume(const GlobalPoint& gp, double tolerance)

//In case the layer is composed of a single volume...
if (theSingleVolume) {
// TOFIX
// if (verbose.debugOut) cout << " Trying the unique volume " << endl;
// LogTrace("MagGeometry") << " Trying the unique volume " << endl;
if (theSingleVolume->inside(gp, tolerance)) {
result = theSingleVolume;
// TOFIX
// if (verbose.debugOut) cout << "***In unique bsector"
// LogTrace("MagGeometry") << "***In unique bsector"
// << (result==0? " failed " : " OK ") <<endl;
}
return result;
Expand All @@ -66,23 +62,16 @@ const MagVolume* MagBLayer::findVolume(const GlobalPoint& gp, double tolerance)

// FIXME assume sectors are sorted in phi!
int bin = theBinFinder->binIndex(phi);
// TOFIX
if (verbose::debugOut)
cout << " Trying sector at phi " << theSectors[bin]->minPhi() << " " << phi << endl;
LogTrace("MagGeometry") << " Trying sector at phi " << theSectors[bin]->minPhi() << " " << phi << endl;
result = theSectors[bin]->findVolume(gp, tolerance);
// TOFIX
if (verbose::debugOut)
cout << "***In guessed bsector" << (result == nullptr ? " failed " : " OK ") << endl;
LogTrace("MagGeometry") << "***In guessed bsector" << (result == nullptr ? " failed " : " OK ") << endl;

if (result == nullptr) { // If fails, can be in previous bin.
// TOFIX
if (verbose::debugOut)
cout << " Trying sector at phi " << theSectors[theBinFinder->binIndex(bin - 1)]->minPhi() << " " << phi << endl;
LogTrace("MagGeometry") << " Trying sector at phi " << theSectors[theBinFinder->binIndex(bin - 1)]->minPhi()
<< " " << phi << endl;

result = theSectors[theBinFinder->binIndex(bin - 1)]->findVolume(gp, tolerance);
// TOFIX
if (verbose::debugOut)
cout << "***In previous bsector" << (result == nullptr ? " failed " : " OK ") << endl;
LogTrace("MagGeometry") << "***In previous bsector" << (result == nullptr ? " failed " : " OK ") << endl;
}
return result;
}
17 changes: 5 additions & 12 deletions MagneticField/Layers/src/MagBRod.cc
Expand Up @@ -9,24 +9,21 @@
#include "MagneticField/Layers/interface/MagBRod.h"
#include "MagneticField/Layers/interface/MagBSlab.h"

#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include <iostream>

using namespace std;

MagBRod::MagBRod(vector<MagBSlab *> &slabs, Geom::Phi<float> phiMin)
: theSlabs(slabs), thePhiMin(phiMin), theBinFinder(nullptr) {
// TOFIX
// if (verbose.debugOut) cout << "Building MagBRod with " << theSlabs.size()
// LogTrace("MagGeometry") << "Building MagBRod with " << theSlabs.size()
// << " slabs, minPhi " << thePhiMin << endl;

if (theSlabs.size() > 1) { // Set the binfinder
vector<double> zBorders;
for (vector<MagBSlab *>::const_iterator islab = theSlabs.begin(); islab != theSlabs.end(); ++islab) {
// TOFIX
if (verbose::debugOut)
cout << (*islab)->minZ() << endl;
LogTrace("MagGeometry") << (*islab)->minZ() << endl;
//FIXME assume layers are already sorted in Z
zBorders.push_back((*islab)->minZ());
}
Expand All @@ -51,13 +48,9 @@ const MagVolume *MagBRod::findVolume(const GlobalPoint &gp, double tolerance) co
bin = theBinFinder->binIndex(Z);
}

// TOFIX
if (verbose::debugOut)
cout << " Trying slab at Z " << theSlabs[bin]->minZ() << " " << Z << endl;
LogTrace("MagGeometry") << " Trying slab at Z " << theSlabs[bin]->minZ() << " " << Z << endl;
result = theSlabs[bin]->findVolume(gp, tolerance);
// TOFIX
if (verbose::debugOut)
cout << "***In guessed bslab" << (result == nullptr ? " failed " : " OK ") << endl;
LogTrace("MagGeometry") << "***In guessed bslab" << (result == nullptr ? " failed " : " OK ") << endl;

return result;
}
6 changes: 2 additions & 4 deletions MagneticField/Layers/src/MagBSector.cc
Expand Up @@ -9,7 +9,7 @@
#include "MagneticField/Layers/interface/MagBSector.h"
#include "MagneticField/Layers/interface/MagBRod.h"

#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include <iostream>

Expand All @@ -29,9 +29,7 @@ const MagVolume* MagBSector::findVolume(const GlobalPoint& gp, double tolerance)

// FIXME : use a binfinder
for (vector<MagBRod*>::const_iterator irod = theRods.begin(); irod != theRods.end(); ++irod) {
// TOFIX
if (verbose::debugOut)
cout << " Trying rod at phi " << (*irod)->minPhi() << " " << phi << endl;
LogTrace("MagGeometry") << " Trying rod at phi " << (*irod)->minPhi() << " " << phi << endl;
result = (*irod)->findVolume(gp, tolerance);
if (result != nullptr)
return result;
Expand Down
6 changes: 2 additions & 4 deletions MagneticField/Layers/src/MagBSlab.cc
Expand Up @@ -10,7 +10,7 @@
#include "MagneticField/VolumeGeometry/interface/MagVolume.h"
#include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"

#include "MagneticField/Layers/interface/MagVerbosity.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include <iostream>

using namespace std;
Expand All @@ -26,9 +26,7 @@ MagBSlab::~MagBSlab() {
const MagVolume* MagBSlab::findVolume(const GlobalPoint& gp, double tolerance) const {
for (vector<MagVolume*>::const_iterator ivol = theVolumes.begin(); ivol != theVolumes.end(); ++ivol) {
// FIXME : use a binfinder
// TOFIX
if (verbose::debugOut)
cout << " Trying volume " << (static_cast<MagVolume6Faces*>(*ivol))->volumeNo << endl;
LogTrace("MagGeometry") << " Trying volume " << (static_cast<MagVolume6Faces*>(*ivol))->volumeNo << endl;
if ((*ivol)->inside(gp, tolerance))
return (*ivol);
}
Expand Down
4 changes: 2 additions & 2 deletions MagneticField/Layers/src/MagELayer.cc
Expand Up @@ -27,10 +27,10 @@ MagELayer::~MagELayer() {
const MagVolume* MagELayer::findVolume(const GlobalPoint& gp, double tolerance) const {
for (vector<MagVolume*>::const_iterator ivol = theVolumes.begin(); ivol != theVolumes.end(); ++ivol) {
// FIXME : use a binfinder
#ifdef MF_DEBUG
#ifdef EDM_ML_DEBUG
{
MagVolume6Faces* mv = static_cast<MagVolume6Faces*>(*ivol);
cout << " Trying volume " << mv->volumeNo << " " << int(mv->copyno) << endl;
LogTrace("MagGeometry") << " Trying volume " << mv->volumeNo << " " << int(mv->copyno) << endl;
}
#endif
if ((*ivol)->inside(gp, tolerance))
Expand Down