TGeoVoxelFinder
class description - source file - inheritance tree
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)
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
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.