Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "MagneticField/Layers/interface/MagBSlab.h"
00012 #include "MagneticField/VolumeGeometry/interface/MagVolume.h"
00013 #include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"
00014
00015 #include "MagneticField/Layers/interface/MagVerbosity.h"
00016 #include <iostream>
00017
00018 using namespace std;
00019
00020 MagBSlab::MagBSlab(vector<MagVolume*> volumes, double zMin) :
00021 theVolumes(volumes),
00022 theZMin(zMin)
00023 {}
00024
00025 MagBSlab::~MagBSlab(){
00026 for (vector<MagVolume *>::const_iterator ivol = theVolumes.begin();
00027 ivol != theVolumes.end(); ++ivol) {
00028 delete (*ivol);
00029 }
00030 }
00031
00032
00033 MagVolume* MagBSlab::findVolume(const GlobalPoint & gp, double tolerance) const {
00034 for(vector<MagVolume*>::const_iterator ivol = theVolumes.begin();
00035 ivol != theVolumes.end(); ++ivol) {
00036
00037
00038 if (verbose::debugOut) cout << " Trying volume "
00039 << (static_cast<MagVolume6Faces*>(*ivol))->name << endl;
00040 if ( (*ivol)->inside(gp,tolerance) ) return (*ivol);
00041 }
00042
00043 return 0;
00044 }