CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/MagneticField/VolumeGeometry/src/MagVolume6Faces.cc

Go to the documentation of this file.
00001 #include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h"
00002 
00003 MagVolume6Faces::MagVolume6Faces( const PositionType& pos,
00004                                   const RotationType& rot, 
00005                                   DDSolidShape shape,
00006                                   const std::vector<VolumeSide>& faces,
00007                                   const MagneticFieldProvider<float> * mfp,
00008                                   double sf)
00009   : MagVolume(pos,rot,shape,mfp,sf),  volumeNo(0), copyno(0), theFaces(faces)
00010 {}
00011 
00012 bool MagVolume6Faces::inside( const GlobalPoint& gp, double tolerance) const 
00013 {
00014 
00015   // check if the point is on the correct side of all delimiting surfaces
00016   for (std::vector<VolumeSide>::const_iterator i=theFaces.begin(); i!=theFaces.end(); ++i) {
00017     Surface::Side side = i->surface().side( gp, tolerance);
00018     if ( side != i->surfaceSide() && side != SurfaceOrientation::onSurface) return false;
00019   }
00020   return true;
00021 }