public:

TGeoChecker TGeoChecker() TGeoChecker TGeoChecker(TGeoManager* geom) TGeoChecker TGeoChecker(const char* treename, const char* filename) TGeoChecker TGeoChecker(const TGeoChecker&) virtual void ~TGeoChecker() void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const void CheckOverlaps(const TGeoVolume* vol, Double_t ovlp = 0.1, Option_t* option) const void CheckPoint(Double_t x = 0, Double_t y = 0, Double_t z = 0, Option_t* option) Double_t CheckVoxels(TGeoVolume* vol, TGeoVoxelFinder* voxels, Double_t* xyz, Int_t npoints) static TClass* Class() void CreateTree(const char* treename, const char* filename) void Generate(UInt_t npoints = 1000000) virtual TClass* IsA() const TH2F* LegoPlot(Int_t ntheta = 60, Double_t themin = 0., Double_t themax = 180., Int_t nphi = 90, Double_t phimin = 0., Double_t phimax = 360., Double_t rmin = 0., Double_t rmax = 9999999, Option_t* option) void PrintOverlaps() const void RandomPoints(TGeoVolume* vol, Int_t npoints, Option_t* option) void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) void Raytrace(Double_t* startpoint, UInt_t npoints = 1000000) TGeoNode* SamplePoints(Int_t npoints, Double_t& dist, Double_t epsil, const char* g3path) void ShootRay(Double_t* start, Double_t dirx, Double_t diry, Double_t dirz, Double_t* array, Int_t& nelem, Int_t& dim, Double_t* enpoint = 0) const virtual void ShowMembers(TMemberInspector& insp, char* parent) void ShowPoints(Option_t* option) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void Test(Int_t npoints, Option_t* option) void TestOverlaps(const char* path) Bool_t TestVoxels(TGeoVolume* vol, Int_t npoints = 1000000) Double_t Weight(Double_t precision = 0.01, Option_t* option = "v")

private:

TGeoManager* fGeompointer to geometry managerTTree* fTreePtstree of pointsTGeoVolume* fVsafevolume to which a safety sphere node was added

A simple geometry checker. Points can be randomly generated inside the bounding box of a node. For each point the distance to the nearest surface and the corresponting point on that surface are computed. These points are stored in a tree and can be directly visualized within ROOT A second algoritm is shooting multiple rays from a given point to a geometry branch and storing the intersection points with surfaces in same tree. Rays can be traced backwords in order to find overlaps by comparing direct and inverse points. /* */

TGeoChecker()

Default constructor

TGeoChecker(TGeoManager *geom)

Constructor for a given geometry

TGeoChecker(const char * /*treename*/, const char * /*filename*/)

constructor

~TGeoChecker()

Destructor

void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const

Shoot nrays with random directions from starting point (startx, starty, startz) in the reference frame of this volume. Track each ray until exiting geometry, then shoot backwards from exiting point and compare boundary crossing points.

void CheckOverlaps(const TGeoVolume *vol, Double_t ovlp, Option_t * /*option*/) const

Check illegal overlaps for volume VOL within a limit OVLP.

void PrintOverlaps() const

Print the current list of overlaps held by the manager class.

void CheckPoint(Double_t x, Double_t y, Double_t z, Option_t *)

--- Draw point (x,y,z) over the picture of the daughers of the volume containing this point. Generates a report regarding the path to the node containing this point and the distance to the closest boundary.

TH2F* LegoPlot(Int_t ntheta, Double_t themin, Double_t themax, Int_t nphi, Double_t phimin, Double_t phimax, Double_t /*rmin*/, Double_t /*rmax*/, Option_t *option)

Generate a lego plot fot the top volume, according to option.

void RandomPoints(TGeoVolume *vol, Int_t npoints, Option_t *option)

Draw random points in the bounding box of a volume.

void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz)

Randomly shoot nrays from point (startx,starty,startz) and plot intersections with surfaces for current top node.

TGeoNode* SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char* g3path)

shoot npoints randomly in a box of 1E-5 arround current point. return minimum distance to points outside make sure that path to current node is updated get the response of tgeo

void ShootRay(Double_t *start, Double_t dirx, Double_t diry, Double_t dirz, Double_t *array, Int_t &nelem, Int_t &dim, Double_t *endpoint) const

Shoot one ray from start point with direction (dirx,diry,dirz). Fills input array with points just after boundary crossings. Int_t array_dimension = 3*dim;

void Test(Int_t npoints, Option_t *option)

Check time of finding "Where am I" for n points.

void TestOverlaps(const char* path)

--- Geometry overlap checker based on sampling.

Double_t Weight(Double_t precision, Option_t *option)

Estimate weight of top level volume with a precision SIGMA(W)/W better than PRECISION. Option can be "v" - verbose (default).

Double_t CheckVoxels(TGeoVolume *vol, TGeoVoxelFinder *voxels, Double_t *xyz, Int_t npoints)

count voxel timing

Bool_t TestVoxels(TGeoVolume *vol, Int_t npoints)

Returns optimal voxelization type for volume vol. kFALSE - cartesian kTRUE - cylindrical

void CreateTree(const char * /*treename*/, const char * /*filename*/)

These points are stored in a tree and can be directly visualized within ROOT. /* */

void Generate(UInt_t /*npoint*/)

Points are randomly generated inside the bounding box of a node. For each point the distance to the nearest surface and the corresponding point on that surface are computed. /* */

void Raytrace(Double_t * /*startpoint*/, UInt_t /*npoints*/)

A second algoritm is shooting multiple rays from a given point to a geometry branch and storing the intersection points with surfaces in same tree. Rays can be traced backwords in order to find overlaps by comparing direct and inverse points. /* */

void ShowPoints(Option_t * /*option*/)

/* */

TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) TGeoChecker TGeoChecker(const TGeoChecker&)

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.