|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   12 #include "GaudiKernel/Bootstrap.h" 
   13 #include "GaudiKernel/ISvcLocator.h" 
   23 #include "geomdefs.hh" 
   24 #include "G4Polycone.hh" 
   25 #include "G4UnionSolid.hh" 
   60           ATH_MSG_ERROR(
"Unable to create volume representation for geoID="<<geoID);
 
   69   return StatusCode::SUCCESS;
 
   79   G4VSolid *curVol = m_volume[geoID];
 
   82       G4ThreeVector posG4( 
pos.x(), 
pos.y(), 
pos.z() );
 
   83       EInside g4Where = curVol->Inside( posG4 );
 
   86       where = m_typeConverter[g4Where];
 
  139                 << 
"' (GeoID="<< geoID << 
").");
 
  145   const double phimin    = 0.;
 
  151     const RZPairVector &rz = m_envDefSvc->getRZBoundary( geoID );
 
  154     size_t curVolNumPoints = rz.size();
 
  155     if ( !curVolNumPoints)
 
  159         return StatusCode::FAILURE;
 
  163     double *
z = 
new double[curVolNumPoints];
 
  164     double *
r = 
new double[curVolNumPoints];
 
  167     RZPairVector::const_iterator rzIt = rz.begin();
 
  168     for ( 
size_t i=0; 
i<curVolNumPoints; ++
i)
 
  177     std::stringstream curName;
 
  178     curName << volumeName;
 
  180     m_volume[geoID] = 
new G4Polycone( curName.str(), phimin, deltaphi, curVolNumPoints, 
r, 
z);
 
  182     m_volume[geoID]->SetName( volumeName);
 
  189   return StatusCode::SUCCESS;
 
  
AtlasDetDescr::AtlasRegion identifyNextGeoID(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
Find the AtlasRegion that the particle will enter with its next infinitesimal step along the given di...
~G4PolyconeGeoIDSvc()
Destructor.
StatusCode createVolume(AtlasDetDescr::AtlasRegion geoID)
Retrieve and fill in the dimensions for the different AtlasRegion.
AtlasDetDescr::AtlasRegion identifyGeoID(const Amg::Vector3D &pos) const
A static filter that returns the AtlasRegion of the given position.
std::vector< RZPair > RZPairVector
G4PolyconeGeoIDSvc(const std::string &name, ISvcLocator *svc)
Constructor with parameters.
#define ATH_MSG_VERBOSE(x)
static const char * getName(int region)
::StatusCode StatusCode
StatusCode definition for legacy code.
AthROOTErrorHandlerSvc * svc
ISF::InsideType inside(const Amg::Vector3D &pos, AtlasDetDescr::AtlasRegion geoID) const
Checks if the given position (ISFParticle) is inside a given AtlasRegion.
Eigen::Matrix< double, 3, 1 > Vector3D
bool validAtlasRegion(AtlasDetDescr::AtlasRegion region)
Check a given AtlasRegion for its validity.