CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MagELayer.cc
Go to the documentation of this file.
1 // #include "Utilities/Configuration/interface/Architecture.h"
2 
3 /*
4  * See header file for a description of this class.
5  *
6  * \author N. Amapane - INFN Torino
7  */
8 
12 
14 #include <iostream>
15 
16 using namespace std;
17 
18 MagELayer::MagELayer(const vector<MagVolume*>& volumes, double zMin, double zMax)
19  : theVolumes(volumes), theZMin(zMin), theZMax(zMax) {}
20 
22  for (vector<MagVolume*>::const_iterator ivol = theVolumes.begin(); ivol != theVolumes.end(); ++ivol) {
23  delete (*ivol);
24  }
25 }
26 
27 const MagVolume* MagELayer::findVolume(const GlobalPoint& gp, double tolerance) const {
28  for (vector<MagVolume*>::const_iterator ivol = theVolumes.begin(); ivol != theVolumes.end(); ++ivol) {
29  // FIXME : use a binfinder
30 #ifdef EDM_ML_DEBUG
31  {
32  MagVolume6Faces* mv = static_cast<MagVolume6Faces*>(*ivol);
33  LogTrace("MagGeometry") << " Trying volume " << mv->volumeNo << " " << int(mv->copyno) << endl;
34  }
35 #endif
36  if ((*ivol)->inside(gp, tolerance))
37  return (*ivol);
38  }
39 
40  return nullptr;
41 }
MagELayer(const std::vector< MagVolume * > &volumes, double zMin, double zMax)
Constructor.
Definition: MagELayer.cc:18
const double tolerance
const MagVolume * findVolume(const GlobalPoint &gp, double tolerance) const
Find the volume containing a point, with a given tolerance.
Definition: MagELayer.cc:27
#define LogTrace(id)
std::vector< MagVolume * > theVolumes
Definition: MagELayer.h:34
virtual ~MagELayer()
Destructor.
Definition: MagELayer.cc:21