TGeoVoxelFinder


class description - source file - inheritance tree

class TGeoVoxelFinder : public TGeoFinder


    public:
TGeoVoxelFinder TGeoVoxelFinder() TGeoVoxelFinder TGeoVoxelFinder(TGeoVolume* vol) TGeoVoxelFinder TGeoVoxelFinder(const TGeoVoxelFinder&) virtual void ~TGeoVoxelFinder() void BuildBoundingBoxes() virtual void cd(Int_t idiv) static TClass* Class() void DaughterToMother(Int_t id, Double_t* local, Double_t* master) const virtual TGeoNode* FindNode(Double_t* point) void FindOverlaps(Int_t inode) const Int_t* GetCheckList(Double_t* point, Int_t& nelem) Bool_t GetIndices(Double_t* point) virtual TGeoMatrix* GetMatrix() Int_t GetNcandidates() const Bool_t GetNextIndices(Double_t* point, Double_t* dir) Int_t* GetNextVoxel(Double_t* point, Double_t* dir, Int_t& ncheck) Int_t GetPriority(Int_t iaxis) const Bool_t Intersect(Int_t n1, Int_t* array1, Int_t n2, Int_t* array2, Int_t n3, Int_t* array3, Int_t& nf, Int_t* result) void IntersectAndStore(Int_t n1, Int_t* array1, Int_t n2, Int_t* array2, Int_t n3, Int_t* array3) virtual TClass* IsA() const virtual void Print(Option_t* option) const void PrintVoxelLimits(Double_t* point) const virtual void SetBasicVolume(TGeoVolume* vol) virtual void ShowMembers(TMemberInspector& insp, char* parent) void SortBoxes(Option_t* option) void SortCrossedVoxels(Double_t* point, Double_t* dir) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) Bool_t Union(Int_t n1, Int_t* array1, Int_t n2, Int_t* array2, Int_t n3, Int_t* array3) void Voxelize(Option_t* option)

Data Members

    private:
TGeoVolume* fVolume volume to which applies Int_t fNcandidates number of candidates Int_t fCurrentVoxel index of current voxel in sorted list Int_t fIb[3] number of different boundaries on each axis Int_t fPriority[3] priority for each axis Int_t fSlices[3] slice indices for current voxel Double_t* fBoxes list of bounding boxes Double_t* fXb ordered array of X box boundaries Double_t* fYb ordered array of Y box boundaries Double_t* fZb ordered array of Z box boundaries Int_t* fOBx offsets of daughter indices for slices X Int_t* fOBy offsets of daughter indices for slices Y Int_t* fOBz offsets of daughter indices for slices Z Int_t* fIndX indices of daughters inside boundaries X Int_t* fIndY indices of daughters inside boundaries Y Int_t* fIndZ indices of daughters inside boundaries Z Int_t* fCheckList list of candidates

Class Description

 Full description with examples and pictures





/*



*/


TGeoVoxelFinder()
 Default constructor

TGeoVoxelFinder(TGeoVolume *vol)
 Default constructor

~TGeoVoxelFinder()
 Destructor
   printf("deleting finder of %sn", fVolume->GetName());

void BuildBoundingBoxes()
 build the array of bounding boxes of the nodes inside

void DaughterToMother(Int_t id, Double_t *local, Double_t *master) const
 convert a point from the local reference system of node id to reference
 system of mother volume

TGeoNode* FindNode(Double_t *point)
 find the node containing the query point

void FindOverlaps(Int_t inode) const
 create the list of nodes for which the bboxes overlap with inode's bbox

Bool_t GetIndices(Double_t *point)
 Getindices for current slices on x, y, z

Bool_t GetNextIndices(Double_t *point, Double_t *dir)
 Get indices for next voxel

void SortCrossedVoxels(Double_t *point, Double_t *dir)
 get the list in the next voxel crossed by a ray

Int_t* GetCheckList(Double_t *point, Int_t &nelem)
 get the list of daughter indices for which point is inside their bbox

Int_t* GetNextVoxel(Double_t *point, Double_t *dir, Int_t &ncheck)
 get the list of new candidates for the next voxel crossed by current ray
   printf("### GetNextVoxeln");

Bool_t Union(Int_t n1, Int_t *array1, Int_t n2, Int_t *array2, Int_t n3, Int_t *array3)
 make the union of fCheckList with the result of the intersection of the 3 arrays
 first reset bits

void IntersectAndStore(Int_t n1, Int_t *array1, Int_t n2, Int_t *array2, Int_t n3, Int_t *array3)
 first reset bits

Bool_t Intersect(Int_t n1, Int_t *array1, Int_t n2, Int_t *array2, Int_t n3, Int_t *array3, Int_t &nf, Int_t *result)
 return the intersection of three ordered lists

void SortBoxes(Option_t *option)
 order bounding boxes along x, y, z

void Print(Option_t *) const

void PrintVoxelLimits(Double_t *point) const
 print the voxel containing point

void Voxelize(Option_t *option)
 Voxelize attached volume according to option



Inline Functions


                   void cd(Int_t idiv)
            TGeoMatrix* GetMatrix()
                  Int_t GetPriority(Int_t iaxis) const
                  Int_t GetNcandidates() const
                   void SetBasicVolume(TGeoVolume* vol)
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void Streamer(TBuffer& b)
                   void StreamerNVirtual(TBuffer& b)
        TGeoVoxelFinder TGeoVoxelFinder(const TGeoVoxelFinder&)


Author: Andrei Gheata 04/02/02
Last update: root/geom:$Name: $:$Id: TGeoVoxelFinder.cxx,v 1.6 2002/07/17 13:27:58 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Top of the page

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.