TGeoVoxelFinder


class description - source file - inheritance tree

class TGeoVoxelFinder : public TObject


    public:
TGeoVoxelFinder TGeoVoxelFinder() TGeoVoxelFinder TGeoVoxelFinder(TGeoVolume* vol) TGeoVoxelFinder TGeoVoxelFinder(const TGeoVoxelFinder&) virtual void ~TGeoVoxelFinder() virtual void BuildVoxelLimits() static TClass* Class() void CreateCheckList() void DaughterToMother(Int_t id, Double_t* local, Double_t* master) const virtual Double_t Efficiency() virtual void FindOverlaps(Int_t inode) const virtual Int_t* GetCheckList(Double_t* point, Int_t& nelem) Bool_t GetIndices(Double_t* point) Int_t GetNcandidates() const virtual Bool_t GetNextIndices(Double_t* point, Double_t* dir) virtual 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 ShowMembers(TMemberInspector& insp, char* parent) virtual void SortAll(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) virtual void Voxelize(Option_t* option)

Data Members


    protected:
TGeoVolume* fVolume volume to which applies Int_t fNcandidates ! number of candidates Int_t fCurrentVoxel ! index of current voxel in sorted list Int_t fIbx number of different boundaries on X axis Int_t fIby number of different boundaries on Y axis Int_t fIbz number of different boundaries on Z axis Int_t fNboxes length of boxes array Int_t fNox length of array of X offsets Int_t fNoy length of array of Y offsets Int_t fNoz length of array of Z offsets Int_t fNx length of array of X voxels Int_t fNy length of array of Y voxels Int_t fNz length of array of Z voxels Int_t fPriority[3] priority for each axis Int_t fSlices[3] ! slice indices for current voxel Double_t* fBoxes [fNboxes] list of bounding boxes Double_t* fXb [fIbx] ordered array of X box boundaries Double_t* fYb [fIby] ordered array of Y box boundaries Double_t* fZb [fIbz] ordered array of Z box boundaries Int_t* fOBx [fNox] offsets of daughter indices for slices X Int_t* fOBy [fNoy] offsets of daughter indices for slices Y Int_t* fOBz [fNoz] offsets of daughter indices for slices Z Int_t* fIndX [fNx] indices of daughters inside boundaries X Int_t* fIndY [fNy] indices of daughters inside boundaries Y Int_t* fIndZ [fNz] indices of daughters inside boundaries Z Int_t* fCheckList ! list of candidates


See also

TGeoCylVoxels

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 BuildVoxelLimits()
 build the array of bounding boxes of the nodes inside

void CreateCheckList()
 Initializes check list.

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

Double_t Efficiency()
--- Compute voxelization efficiency.

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 SortAll(Option_t *)
 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


                  Int_t GetPriority(Int_t iaxis) const
                  Int_t GetNcandidates() const
                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.11 2002/12/03 16:01:40 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.