Inheritance diagram for DetDesc::CheckOverlap:
Public Member Functions | |
virtual StatusCode | initialize () |
standard algorithm initialization | |
virtual StatusCode | execute () |
standard execution of algorithm | |
virtual StatusCode | finalize () |
standard finalization of algorithm | |
virtual StatusCode | sysExecute () |
void | put (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const |
void | put (DataObject *object, const std::string &address, const bool useRootInTES=true) const |
Gaudi::Utils::GetData< TYPE >::return_type | get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const |
Gaudi::Utils::GetData< TYPE >::return_type | get (const std::string &location, const bool useRootInTES=true) const |
TYPE * | getDet (IDataProviderSvc *svc, const std::string &location) const |
TYPE * | getDet (const std::string &location) const |
bool | exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const |
bool | exist (const std::string &location, const bool useRootInTES=true) const |
bool | existDet (IDataProviderSvc *svc, const std::string &location) const |
bool | existDet (const std::string &location) const |
TYPE * | getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const |
TYPE * | getOrCreate (const std::string &location, const bool useRootInTES=true) const |
bool | registerContext () const |
INTupleSvc * | evtColSvc () const |
IAlgContextSvc * | contextSvc () const |
TOOL * | tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const |
TOOL * | tool (const std::string &type, const IInterface *parent=0, bool create=true) const |
SERVICE * | svc (const std::string &name, const bool create=true) const |
IUpdateManagerSvc * | updMgrSvc () const |
IDataProviderSvc * | fastContainersSvc () const |
StatusCode | Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const |
StatusCode | Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const |
StatusCode | Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const |
StatusCode | Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const |
StatusCode | Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const |
StatusCode | Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const |
StatusCode | Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const |
StatusCode | Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const |
MsgStream & | msgStream (const MSG::Level level) const |
MsgStream & | always () const |
MsgStream & | fatal () const |
MsgStream & | err () const |
MsgStream & | error () const |
MsgStream & | warning () const |
MsgStream & | info () const |
MsgStream & | debug () const |
MsgStream & | verbose () const |
MsgStream & | msg () const |
const Statistics & | counters () const |
StatEntity & | counter (const std::string &tag) const |
MSG::Level | msgLevel () const |
bool | msgLevel (const MSG::Level level) const |
void | resetMsgStream () const |
bool | typePrint () const |
bool | propsPrint () const |
bool | statPrint () const |
bool | errorsPrint () const |
long | printStat (const MSG::Level level=MSG::ALWAYS) const |
long | printErrors (const MSG::Level level=MSG::ALWAYS) const |
long | printProps (const MSG::Level level=MSG::ALWAYS) const |
void | registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL) |
void | registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL) |
void | registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL) |
void | registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL) |
StatusCode | runUpdate () |
TransientFastContainer< T > * | getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0) |
StatusCode | release (const IInterface *interface) const |
unsigned long | release () |
const std::string & | context () const |
const std::string & | rootInTES () const |
double | globalTimeOffset () const |
virtual StatusCode | sysStart () |
virtual StatusCode | sysInitialize () |
virtual StatusCode | sysReinitialize () |
virtual StatusCode | sysRestart () |
virtual StatusCode | sysStop () |
virtual StatusCode | sysFinalize () |
virtual StatusCode | sysBeginRun () |
virtual StatusCode | sysEndRun () |
virtual const std::string & | name () const |
virtual const std::string & | version () const |
virtual StatusCode | configure () |
virtual StatusCode | terminate () |
virtual StatusCode | start () |
virtual StatusCode | stop () |
virtual StatusCode | reinitialize () |
virtual StatusCode | restart () |
virtual bool | isExecuted () const |
virtual void | setExecuted (bool state) |
virtual void | resetExecuted () |
virtual StatusCode | beginRun () |
virtual StatusCode | endRun () |
virtual Gaudi::StateMachine::State | FSMState () const |
virtual Gaudi::StateMachine::State | targetFSMState () const |
virtual bool | isEnabled () const |
virtual bool | filterPassed () const |
virtual void | setFilterPassed (bool state) |
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const |
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const |
void | setOutputLevel (int level) |
IAuditorSvc * | auditorSvc () const |
IChronoStatSvc * | chronoSvc () const |
IChronoStatSvc * | chronoStatService () const |
IDataProviderSvc * | detSvc () const |
IDataProviderSvc * | detDataService () const |
IConversionSvc * | detCnvSvc () const |
IConversionSvc * | detDataCnvService () const |
IDataProviderSvc * | eventSvc () const |
IDataProviderSvc * | evtSvc () const |
IDataProviderSvc * | eventDataService () const |
IConversionSvc * | eventCnvSvc () const |
IConversionSvc * | eventDataCnvService () const |
IHistogramSvc * | histoSvc () const |
IHistogramSvc * | histogramDataService () const |
IMessageSvc * | msgSvc () const |
IMessageSvc * | messageService () const |
INTupleSvc * | ntupleSvc () const |
INTupleSvc * | ntupleService () const |
IRndmGenSvc * | randSvc () const |
IToolSvc * | toolSvc () const |
IExceptionSvc * | exceptionSvc () const |
ISvcLocator * | serviceLocator () const |
ISvcLocator * | svcLoc () const |
StatusCode | createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg) |
std::vector< Algorithm * > * | subAlgorithms () const |
virtual StatusCode | setProperty (const Property &p) |
virtual StatusCode | setProperty (const std::string &s) |
virtual StatusCode | setProperty (const std::string &n, const std::string &v) |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
virtual StatusCode | getProperty (Property *p) const |
virtual const Property & | getProperty (const std::string &name) const |
virtual StatusCode | getProperty (const std::string &n, std::string &v) const |
virtual const std::vector< Property * > & | getProperties () const |
StatusCode | setProperties () |
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const |
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const |
IMonitorSvc * | monitorSvc () const |
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const |
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const |
unsigned long | addRef () |
StatusCode | queryInterface (const InterfaceID &riid, void **) |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
static const InterfaceID & | interfaceID () |
static const InterfaceID & | interfaceID () |
Public Attributes | |
SUCCESS | |
NO_INTERFACE | |
VERSMISMATCH | |
LAST_ERROR | |
Protected Types | |
typedef std::map< std::string, StatEntity > | Statistics |
typedef std::map< std::string, unsigned int > | Counter |
typedef std::vector< IAlgTool * > | AlgTools |
typedef std::pair< IInterface *, std::string > | ServiceEntry |
typedef std::vector< ServiceEntry > | Services |
Protected Member Functions | |
CheckOverlap (const std::string &name, ISvcLocator *svcloc) | |
Standard constructor. | |
virtual | ~CheckOverlap () |
destructor (protected and virtual) | |
StatusCode | releaseTool (const IAlgTool *tool) const |
StatusCode | releaseSvc (const IInterface *svc) const |
bool | isInitialized () const |
bool | isFinalized () const |
int | outputLevel () const |
IntegerProperty & | outputLevelProperty () |
void | initOutputLevel (Property &prop) |
Static Protected Attributes | |
static const bool | IgnoreRootInTES |
static const bool | UseRootInTES |
Private Member Functions | |
StatusCode | checkVolume (const ILVolume *volume, const unsigned int level) const |
check one volume | |
StatusCode | makeShots (const ILVolume *volume) const |
make all shoots | |
Private Attributes | |
std::string | m_volumeName |
the logical volume name | |
const ILVolume * | m_volume |
volume itself | |
double | m_minx |
double | m_maxx |
double | m_miny |
double | m_maxy |
double | m_minz |
double | m_maxz |
int | m_shots |
std::vector< double > | m_vrtx |
Gaudi::XYZPoint | m_vertex |
std::set< const ILVolume * > | m_checked |
Friends | |
class | AlgFactory< DetDesc::CheckOverlap > |
the friend factory to instantiate the algorithm |
Definition at line 109 of file CheckGeometryOverlaps.cpp.
DetDesc::CheckOverlap::CheckOverlap | ( | const std::string & | name, | |
ISvcLocator * | svcloc | |||
) | [protected] |
Standard constructor.
name | name of the algorithm | |
svcloc | pointer to Service Locator |
Definition at line 181 of file CheckGeometryOverlaps.cpp.
00183 : GaudiAlgorithm( name , svcloc ) 00184 , m_volumeName ( "Undefined Volume" ) 00185 , m_volume ( 0 ) 00186 , m_minx ( -10 * Gaudi::Units::m ) 00187 , m_maxx ( 10 * Gaudi::Units::m ) 00188 , m_miny ( -10 * Gaudi::Units::m ) 00189 , m_maxy ( 10 * Gaudi::Units::m ) 00190 , m_minz ( -10 * Gaudi::Units::m ) 00191 , m_maxz ( 10 * Gaudi::Units::m ) 00192 , m_shots ( 10000 ) 00193 , m_vrtx ( 3 , 0 ) 00194 , m_vertex ( ) 00195 , m_checked () 00196 { 00197 declareProperty ( "Volume" , m_volumeName ) ; 00198 declareProperty ( "MinX" , m_minx ) ; 00199 declareProperty ( "MinY" , m_miny ) ; 00200 declareProperty ( "MinZ" , m_minz ) ; 00201 declareProperty ( "MaxX" , m_maxx ) ; 00202 declareProperty ( "MaxY" , m_maxy ) ; 00203 declareProperty ( "MaxZ" , m_maxz ) ; 00204 declareProperty ( "Shots" , m_shots ) ; 00205 declareProperty ( "Null" , m_vrtx ) ; 00206 }
virtual DetDesc::CheckOverlap::~CheckOverlap | ( | ) | [inline, protected, virtual] |
StatusCode DetDesc::CheckOverlap::initialize | ( | ) | [virtual] |
standard algorithm initialization
check for Transport Service
Reimplemented from GaudiAlgorithm.
Definition at line 213 of file CheckGeometryOverlaps.cpp.
00214 { 00215 StatusCode sc = GaudiAlgorithm::initialize() ; 00216 if ( sc.isFailure() ) { return sc ; } 00217 00218 Assert ( 0 != randSvc () , "randSvc() points to NULL!" ) ; 00219 Assert ( 0 != detSvc () , "detSvc() points to NULL!" ) ; 00220 00221 if ( !exist<ILVolume> ( detSvc() , m_volumeName ) && 00222 exist<ILVolume> ( detSvc() , "/dd/Geometry/"+ m_volumeName ) ) 00223 { 00224 m_volumeName = "/dd/Geometry/" + m_volumeName ; 00225 } 00226 00227 m_volume = getDet<ILVolume> ( m_volumeName ) ; 00228 00229 // activate the vertex 00230 if ( m_vrtx.size() <= 3 ) 00231 { while ( 3 != m_vrtx.size() ) { m_vrtx.push_back( 0.0 ); } } 00232 else 00233 { 00234 warning() << " Ignore extra fields in 'ShootingPoint' "<< endreq ; 00235 } 00236 m_vertex.SetXYZ( m_vrtx[0], m_vrtx[1], m_vrtx[2] ) ; 00237 00238 if ( !m_volume->isAssembly() && 0 != m_volume->solid() ) 00239 { 00240 const ISolid* top = m_volume->solid()->coverTop(); 00241 if( 0 == top ) 00242 { return Error( "CoverTop* points to NULL!" ) ; } 00243 const SolidBox* box = dynamic_cast<const SolidBox*> ( top ); 00244 if( 0 == box ) 00245 { return Error("SolidBox* points to NULL!"); } 00246 00247 m_minx = -1 * box->xHalfLength() * 1.05 ; 00248 m_maxx = box->xHalfLength() * 1.05 ; 00249 m_miny = -1 * box->yHalfLength() * 1.05 ; 00250 m_maxy = box->yHalfLength() * 1.05 ; 00251 m_minz = -1 * box->zHalfLength() * 1.05 ; 00252 m_maxz = box->zHalfLength() * 1.05 ; 00253 } 00254 00256 svc<ITransportSvc> ( "TransportSvc" , true ) ; 00257 00258 always() << " ATTENTION! THIS ALGORITHM DOES DESTROY THE GEOMETRY TREE" << endreq ; 00259 always() << " ATTENTION! NEVER USED IT IN THE REAL JOB OR RELY ON THE " << endreq ; 00260 always() << " ATTENTION! RESULT OF ANY OTHER 'GEOMETRY' TOOL/ALGORITHM" << endreq ; 00261 00262 return StatusCode::SUCCESS ; 00263 }
StatusCode DetDesc::CheckOverlap::execute | ( | ) | [virtual] |
standard execution of algorithm
Reimplemented from GaudiAlgorithm.
Definition at line 270 of file CheckGeometryOverlaps.cpp.
00271 { 00272 StatusCode sc = checkVolume ( m_volume , 0 ) ; 00273 00274 always() << " ATTENTION! THIS ALGORITHM DOES DESTROY THE GEOMETRY TREE" << endreq ; 00275 always() << " ATTENTION! NEVER USED IT IN THE REAL JOB OR RELY ON THE " << endreq ; 00276 always() << " ATTENTION! RESULT OF ANY OTHER 'GEOMETRY' TOOL/ALGORITHM" << endreq ; 00277 00278 return sc ; 00279 }
StatusCode DetDesc::CheckOverlap::finalize | ( | ) | [virtual] |
standard finalization of algorithm
Reimplemented from GaudiAlgorithm.
Definition at line 488 of file CheckGeometryOverlaps.cpp.
00489 { 00490 always () << " ATTENTION! THIS ALGORITHM DOES DESTROY THE GEOMETRY TREE" << endreq ; 00491 always () << " ATTENTION! NEVER USED IT IN THE REAL JOB OR RELY ON THE " << endreq ; 00492 always () << " ATTENTION! RESULT OF ANY OTHER 'GEOMETRY' TOOL/ALGORITHM" << endreq ; 00493 00494 return GaudiAlgorithm::finalize () ; 00495 }
StatusCode DetDesc::CheckOverlap::checkVolume | ( | const ILVolume * | volume, | |
const unsigned int | level | |||
) | const [private] |
check one volume
Definition at line 284 of file CheckGeometryOverlaps.cpp.
00286 { 00287 if ( 0 == volume ) { return Error ( "Invalid pointer to ILVolume!" ) ; } 00288 00289 boost::format fmt ( "%-3d") ; 00290 const std::string lev = ( fmt % level ).str() ; 00291 00292 // not checked yet ? 00293 if ( m_checked.end() != m_checked.find ( volume ) ) 00294 { return StatusCode::SUCCESS ; } 00295 00296 00297 always() 00298 << lev << std::string ( 2*level , ' ' ) 00299 << "Checking: " << volume -> name () << endreq ; 00300 00301 // ========================================================================== 00302 // loop over all daughter volumes and 00303 const ILVolume::PVolumes& pvs = volume->pvolumes() ; 00304 for ( ILVolume::PVolumes::const_iterator ipv = 00305 pvs.begin() ; pvs.end() != ipv ; ++ipv ) 00306 { 00307 const IPVolume* pv = *ipv ; 00308 if ( 0 == pv ) { return Error ( "IPVolume* points to NULL!" ) ; } // RETURN 00309 const ILVolume* lv = pv->lvolume () ; 00310 if ( 0 == lv ) { return Error ( "ILVolume* points to NULL!" ) ; } // RETURN 00311 // check the daughter volume 00312 StatusCode sc = checkVolume ( lv , level + 1) ; 00313 if ( sc.isFailure() ) { return sc ; } // RETURN 00314 } 00315 // ========================================================================== 00316 /* here all daughter volumes are OK and are CLEARED! 00317 * and one can start to make the own shoots (MUST be efficient!) 00318 */ 00319 const StatusCode result = makeShots ( volume ) ; 00320 // 00321 { 00322 // ATTENTION!!! 00323 // clear daugher volumes : 00324 ILVolume* vol = const_cast<ILVolume*>( volume ) ; 00325 vol -> pvolumes().clear() ; 00326 } 00327 00328 // ========================================================================== 00329 always() 00330 << lev << std::string ( 2*level , ' ' ) 00331 << "Checked: " << volume -> name () << endreq ; 00332 00333 counter ("#volumes") += 1 ; 00334 if ( volume->isAssembly() ) { counter ("#assembly") += 1 ; } 00335 00336 m_checked.insert ( volume ) ; 00337 00338 return result ; 00339 }
StatusCode DetDesc::CheckOverlap::makeShots | ( | const ILVolume * | volume | ) | const [private] |
make all shoots
Definition at line 344 of file CheckGeometryOverlaps.cpp.
00345 { 00346 00347 if ( 0 == volume ) 00348 { return Error ( "Invalid pointer to ILVolume!" ) ; } 00349 00350 // reset the counter of errors 00351 DetDesc::IntersectionErrors::setCode ( StatusCode::SUCCESS , volume ) ; 00352 00353 typedef std::vector<Gaudi::XYZVector> Vectors ; 00354 Vectors vcts ; 00355 00356 // 00357 vcts.push_back ( Gaudi::XYZVector ( 0 , 0 , 1 ) ) ; 00358 vcts.push_back ( Gaudi::XYZVector ( 0 , 1 , 0 ) ) ; 00359 vcts.push_back ( Gaudi::XYZVector ( 1 , 0 , 0 ) ) ; 00360 00361 vcts.push_back ( Gaudi::XYZVector ( 1 , 1 , 0 ) ) ; 00362 vcts.push_back ( Gaudi::XYZVector ( 1 , -1 , 0 ) ) ; 00363 vcts.push_back ( Gaudi::XYZVector ( 0 , 1 , 1 ) ) ; 00364 vcts.push_back ( Gaudi::XYZVector ( 0 , -1 , 1 ) ) ; 00365 00366 00367 double xmin = m_minx ; 00368 double xmax = m_maxx ; 00369 double ymin = m_miny ; 00370 double ymax = m_maxy ; 00371 double zmin = m_minz ; 00372 double zmax = m_maxz ; 00373 00374 if ( !volume->isAssembly() && 0 != volume->solid() ) 00375 { 00376 const ISolid* top = volume->solid()->coverTop(); 00377 if( 0 == top ) { return Error ( "CoverTop* points to NULL!" ) ; } 00378 const SolidBox* box = dynamic_cast<const SolidBox*> ( top ); 00379 if( 0 == box ) { return Error ("SolidBox* points to NULL!" ) ; } 00380 00381 xmin = -1 * box -> xHalfLength () * 1.01 ; 00382 xmax = box -> xHalfLength () * 1.01 ; 00383 ymin = -1 * box -> yHalfLength () * 1.01 ; 00384 ymax = box -> yHalfLength () * 1.01 ; 00385 zmin = -1 * box -> zHalfLength () * 1.01 ; 00386 zmax = box -> zHalfLength () * 1.01 ; 00387 } 00388 00389 // get the number of shoots 00390 int nShots = m_shots ; 00391 00392 // check the simplest cases 00393 if ( !volume ->isAssembly() && volume -> pvolumes().empty() ) 00394 { 00395 const ISolid* solid = volume->solid() ; 00396 if ( 0 != solid && 0 != dynamic_cast<const SolidBox*> ( solid ) ) 00397 { 00398 // nothing to check, the case is just trivial 00399 nShots = 0 ; 00400 return StatusCode::SUCCESS ; // RETURN 00401 } 00402 } 00403 00404 { // 00405 boost::format fmt ( "Shooting #%8d:") ; 00406 info () << ( fmt % nShots ).str() 00407 << volume -> name () 00408 << " #pv=" << volume->pvolumes().size() 00409 << endreq ; 00410 } 00411 00412 // display the progress 00413 boost::progress_display progress ( nShots ) ; 00414 00415 // get the random number generator 00416 Rndm::Numbers flat ( randSvc() , Rndm::Flat ( 0.0 , 1.0 ) ); 00417 Rndm::Numbers flat1 ( randSvc() , Rndm::Flat ( -1.0 , 1.0 ) ); 00418 00419 for ( int iShoot = 0 ; iShoot < nShots ; ++iShoot ) 00420 { 00421 00422 const double x1 = xmin + flat.shoot() * ( xmax - xmin ) ; 00423 const double y1 = ymin + flat.shoot() * ( ymax - ymin ) ; 00424 const double z1 = zmin + flat.shoot() * ( zmax - zmin ) ; 00425 00426 const double x2 = xmin + flat.shoot() * ( xmax - xmin ) ; 00427 const double y2 = ymin + flat.shoot() * ( ymax - ymin ) ; 00428 const double z2 = zmin + flat.shoot() * ( zmax - zmin ) ; 00429 00430 Gaudi::XYZPoint point ( x1 , y1 , z1 ) ; 00431 Gaudi::XYZPoint p2 ( x2 , y2 , z2 ) ; 00432 00433 vcts.push_back ( p2 - point ) ; 00434 vcts.push_back ( m_vertex - point ) ; 00435 vcts.push_back ( m_vertex - point ) ; 00436 00437 vcts.push_back ( Gaudi::XYZVector ( flat1() , flat1() , flat1() ) ) ; 00438 vcts.push_back ( Gaudi::XYZVector ( flat1() , flat1() , flat1() ) ) ; 00439 vcts.push_back ( Gaudi::XYZVector ( flat1() , flat1() , flat1() ) ) ; 00440 00441 vcts.push_back ( Gaudi::XYZVector ( 0 , 0 , 1 + 0.1 * flat1() ) ) ; 00442 vcts.push_back ( Gaudi::XYZVector ( 0 , 1 + 0.1 * flat1() , 0 ) ) ; 00443 vcts.push_back ( Gaudi::XYZVector ( 1 + 0.1 * flat1() , 0 , 0 ) ) ; 00444 00445 vcts.push_back ( Gaudi::XYZVector ( 0 , 0 , 1 + 0.1 * flat1() ) ) ; 00446 vcts.push_back ( Gaudi::XYZVector ( 0 , 1 + 0.1 * flat1() , 0 ) ) ; 00447 vcts.push_back ( Gaudi::XYZVector ( 1 + 0.1 * flat1() , 0 , 0 ) ) ; 00448 00449 for ( Vectors::const_iterator iv = vcts.begin() ; vcts.end() != iv ; ++iv ) 00450 { 00451 // reset the counter of errors 00452 DetDesc::IntersectionErrors::setCode ( StatusCode::SUCCESS , volume ) ; 00453 00454 ILVolume::Intersections intersections; 00455 volume -> intersectLine ( point , *iv , intersections , 0 ); 00456 00457 // get the status 00458 StatusCode sc = DetDesc::IntersectionErrors::code() ; 00459 00460 if ( sc.isFailure() ) 00461 { 00462 00463 error() << "Problem is detected with volume " 00464 << volume->name () 00465 << " With P/V=" 00466 << point << "/" << (*iv) << endreq ; 00467 00468 DetDesc::IntersectionErrors::inspect 00469 ( volume , point , *iv , intersections ) ; 00470 00471 return Error ( "Intersection problems with " + volume->name() , sc ) ; 00472 } 00473 } // vectors 00474 // remove last vectors 00475 while ( 7 < vcts.size() ) { vcts.pop_back() ; } 00476 // show the progress 00477 ++progress ; 00478 } // shoots 00479 00480 return StatusCode::SUCCESS ; 00481 }
friend class AlgFactory< DetDesc::CheckOverlap > [friend] |
the friend factory to instantiate the algorithm
Definition at line 112 of file CheckGeometryOverlaps.cpp.
std::string DetDesc::CheckOverlap::m_volumeName [private] |
const ILVolume* DetDesc::CheckOverlap::m_volume [private] |
double DetDesc::CheckOverlap::m_minx [private] |
Definition at line 158 of file CheckGeometryOverlaps.cpp.
double DetDesc::CheckOverlap::m_maxx [private] |
Definition at line 159 of file CheckGeometryOverlaps.cpp.
double DetDesc::CheckOverlap::m_miny [private] |
Definition at line 160 of file CheckGeometryOverlaps.cpp.
double DetDesc::CheckOverlap::m_maxy [private] |
Definition at line 161 of file CheckGeometryOverlaps.cpp.
double DetDesc::CheckOverlap::m_minz [private] |
Definition at line 162 of file CheckGeometryOverlaps.cpp.
double DetDesc::CheckOverlap::m_maxz [private] |
Definition at line 163 of file CheckGeometryOverlaps.cpp.
int DetDesc::CheckOverlap::m_shots [private] |
Definition at line 166 of file CheckGeometryOverlaps.cpp.
std::vector<double> DetDesc::CheckOverlap::m_vrtx [private] |
Definition at line 169 of file CheckGeometryOverlaps.cpp.
Definition at line 170 of file CheckGeometryOverlaps.cpp.
std::set<const ILVolume*> DetDesc::CheckOverlap::m_checked [mutable, private] |
Definition at line 171 of file CheckGeometryOverlaps.cpp.