library: libGeom #include "TGeoVoxelFinder.h" |
TGeoVoxelFinder
class description - header file - source file - inheritance tree (.pdf)
protected:
TGeoVoxelFinder(const TGeoVoxelFinder&)
virtual void BuildVoxelLimits()
Int_t* GetExtraX(Int_t islice, Bool_t left, Int_t& nextra) const
Int_t* GetExtraY(Int_t islice, Bool_t left, Int_t& nextra) const
Int_t* GetExtraZ(Int_t islice, Bool_t left, Int_t& nextra) const
Bool_t GetIndices(Double_t* point)
Int_t GetNcandidates() const
Int_t GetPriority(Int_t iaxis) const
Int_t* GetValidExtra(Int_t* list, Int_t& ncheck)
Int_t* GetValidExtra(Int_t n1, UChar_t* array1, Int_t* list, Int_t& ncheck)
Int_t* GetValidExtra(Int_t n1, UChar_t* array1, Int_t n2, UChar_t* array2, Int_t* list, Int_t& ncheck)
virtual Int_t* GetVoxelCandidates(Int_t i, Int_t j, Int_t k, Int_t& ncheck)
Bool_t Intersect(Int_t n1, UChar_t* array1, Int_t& nf, Int_t* result)
Bool_t Intersect(Int_t n1, UChar_t* array1, Int_t n2, UChar_t* array2, Int_t& nf, Int_t* result)
Bool_t Intersect(Int_t n1, UChar_t* array1, Int_t n2, UChar_t* array2, Int_t n3, UChar_t* array3, Int_t& nf, Int_t* result)
Bool_t IntersectAndStore(Int_t n1, UChar_t* array1)
Bool_t IntersectAndStore(Int_t n1, UChar_t* array1, Int_t n2, UChar_t* array2)
Bool_t IntersectAndStore(Int_t n1, UChar_t* array1, Int_t n2, UChar_t* array2, Int_t n3, UChar_t* array3)
TGeoVoxelFinder& operator=(const TGeoVoxelFinder&)
virtual void SortAll(Option_t* option = "")
Bool_t Union(Int_t n1, UChar_t* array1)
Bool_t Union(Int_t n1, UChar_t* array1, Int_t n2, UChar_t* array2)
Bool_t Union(Int_t n1, UChar_t* array1, Int_t n2, UChar_t* array2, Int_t n3, UChar_t* array3)
public:
TGeoVoxelFinder()
TGeoVoxelFinder(TGeoVolume* vol)
virtual ~TGeoVoxelFinder()
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
Double_t* GetBoxes() const
virtual Int_t* GetCheckList(Double_t* point, Int_t& nelem)
Int_t* GetCheckList(Int_t& nelem) const
virtual Int_t* GetNextCandidates(Double_t* point, Int_t& ncheck)
virtual Int_t* GetNextVoxel(Double_t* point, Double_t* dir, Int_t& ncheck)
virtual TClass* IsA() const
Bool_t IsInvalid() const
Bool_t IsSafeVoxel(Double_t* point, Int_t inode, Double_t minsafe) const
Bool_t NeedRebuild() const
virtual void Print(Option_t* option = "") const
void PrintVoxelLimits(Double_t* point) const
void SetInvalid(Bool_t flag = kTRUE)
void SetNeedRebuild(Bool_t flag = kTRUE)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
void SortCrossedVoxels(Double_t* point, Double_t* dir)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
virtual void Voxelize(Option_t* option = "")
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 fNex length of array of X extra offsets
Int_t fNey length of array of Y extra offsets
Int_t fNez length of array of Z extra 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
Int_t fInc[3] ! slice index increment
Double_t fInvdir[3] ! 1/current director cosines
Double_t fLimits[3] limits on X,Y,Z
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* fOEx [fNox] offsets of extra indices for slices X
Int_t* fOEy [fNoy] offsets of extra indices for slices Y
Int_t* fOEz [fNoz] offsets of extra 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* fExtraX [fNex] indices of extra daughters in X slices
Int_t* fExtraY [fNey] indices of extra daughters in Y slices
Int_t* fExtraZ [fNez] indices of extra daughters in Z slices
Int_t* fCheckList ! list of candidates
UChar_t* fBits1 ! bits used for list intersection
public:
static const TGeoVoxelFinder::EVoxelsType kGeoInvalidVoxels
static const TGeoVoxelFinder::EVoxelsType kGeoRebuildVoxels
Full description with examples and pictures
void FindOverlaps(Int_t inode)
create the list of nodes for which the bboxes overlap with inode's bbox
Int_t * GetExtraX(Int_t islice, Bool_t left, Int_t &nextra)
--- Return the list of extra candidates in a given X slice compared to
another (left or right)
Int_t * GetExtraY(Int_t islice, Bool_t left, Int_t &nextra)
--- Return the list of extra candidates in a given Y slice compared to
another (left or right)
Int_t * GetExtraZ(Int_t islice, Bool_t left, Int_t &nextra)
--- Return the list of extra candidates in a given Z slice compared to
another (left or right)
Author: Andrei Gheata 04/02/02
Last update: root/geom:$Name: $:$Id: TGeoVoxelFinder.cxx,v 1.39 2006/07/09 05:27:54 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - 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.