[ROOT] TGeoArb8::Safety

From: Sue Kasahara (schubert@hep.umn.edu)
Date: Mon Dec 01 2003 - 03:40:23 MET


Hi roottalk,
I've noticed that the TGeoArb8::Safety() has a dummy implementation:
//_____________________________________________________________________________
Double_t TGeoArb8::Safety(Double_t * /*point*/, Bool_t /*in*/) const
{
// computes the closest distance from given point to this shape, according
// to option. The matching point on the shape is stored in spoint.
   return kBig;
}

I have a TGeoCompositeShape built from 3 TGeoArb8 shapes connected
together using the bool union (+) operator.
When using a TGeoManager geometry created from volumes using this
TGeoCompositeShape with the geant3 vmc implementation, I am finding that
the TGeoManager::FindNextBoundary method incorrectly calculates the
distance to the TGeoCompositeShape volume boundary.  This is because
TGeoUnion::Safety depends on being able to call the Safety method of the simple
shapes that make up the composite shape.
  On the other hand, TGeoManager::RandomRays correctly marks the
boundaries of the TGeoCompositeShape volumes because it only calls
DistToIn and not Safety of the simple shapes that make up the composite
shape.
  Do you have plans to implement TGeoArb8::Safety soon?  Do you
recommend a work around in the meantime?
  Also, I notice that the geant4_vmc implementation does not yet support
TGeoCompositeShapes.
  I am using root from cvs last updated Nov. 8.
Thanks,
-Sue



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:17 MET