Logo ROOT   6.08/07
Reference Guide
TGeoStateInfo.h
Go to the documentation of this file.
1 // @(#):$Id$
2 // Author: Andrei Gheata 07/02/2012
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGeoStateInfo
13 #define ROOT_TGeoStateInfo
14 
15 #ifndef ROOT_TGeoMatrix
16 #include "TGeoMatrix.h"
17 #endif
18 
19 class TGeoNode;
20 class TGeoPolygon;
21 struct TGeoStateInfo;
22 
23 struct TGeoStateInfo {
24  TGeoNode *fNode; // Node to which applies
25  // Assembly data
26  Int_t fAsmCurrent; // Index for current entered node (assemblies)
27  Int_t fAsmNext; // Index for next entered node (assemblies)
28  // Divisions data
29  Int_t fDivCurrent; // Index for the current division node
30  Int_t fDivNext; // Index for the next division node
31  TGeoTranslation fDivTrans; // Translation used by current division node
32  TGeoRotation fDivRot; // Rotation used by current division node
33  TGeoCombiTrans fDivCombi; // Combi transformation used by current division
34  // Voxels data
35  Int_t fVoxNcandidates; // Number of candidates
36  Int_t fVoxCurrent; // Index of current voxel in sorted list
37  Int_t *fVoxCheckList; // List of candidates
38  UChar_t *fVoxBits1; // Bits used for list intersection
39  Int_t fVoxSlices[3]; // Slice indices for current voxel
40  Int_t fVoxInc[3]; // Slice index increment
41  Double_t fVoxInvdir[3]; // 1/current director cosines
42  Double_t fVoxLimits[3]; // Limits on X,Y,Z
43  // Composite shape data
44  Int_t fBoolSelected; // Selected Boolean node
45  // Xtru shape data
46  Int_t fXtruSeg; // current segment [0,fNvert-1]
47  Int_t fXtruIz; // current z plane [0,fNz-1]
48  Double_t *fXtruXc; // [fNvert] current X positions for polygon vertices
49  Double_t *fXtruYc; // [fNvert] current Y positions for polygon vertices
50  TGeoPolygon *fXtruPoly; // polygon defining section shape
51 
52  TGeoStateInfo(Int_t maxdaughters=0);
53  TGeoStateInfo(const TGeoStateInfo &other);
54  TGeoStateInfo & operator=(const TGeoStateInfo &other);
55  virtual ~TGeoStateInfo();
56 
57  ClassDef(TGeoStateInfo, 0) // No I/O for this structure
58 };
59 
60 #endif
Statefull info for the current geometry level.
Definition: TGeoStateInfo.h:23
Int_t fVoxSlices[3]
Definition: TGeoStateInfo.h:39
Double_t * fXtruYc
Definition: TGeoStateInfo.h:49
Int_t fBoolSelected
Definition: TGeoStateInfo.h:44
virtual ~TGeoStateInfo()
Destructor.
Class describing translations.
Definition: TGeoMatrix.h:131
An arbitrary polygon defined by vertices.
Definition: TGeoPolygon.h:23
int Int_t
Definition: RtypesCore.h:41
UChar_t * fVoxBits1
Definition: TGeoStateInfo.h:38
TGeoCombiTrans fDivCombi
Definition: TGeoStateInfo.h:33
#define ClassDef(name, id)
Definition: Rtypes.h:254
TGeoTranslation fDivTrans
Definition: TGeoStateInfo.h:31
Class describing rotation + translation.
Definition: TGeoMatrix.h:285
Double_t fVoxLimits[3]
Definition: TGeoStateInfo.h:42
Double_t fVoxInvdir[3]
Definition: TGeoStateInfo.h:41
TGeoNode * fNode
Definition: TGeoStateInfo.h:24
Class describing rotations.
Definition: TGeoMatrix.h:180
Double_t * fXtruXc
Definition: TGeoStateInfo.h:48
Int_t fVoxInc[3]
Definition: TGeoStateInfo.h:40
TGeoRotation fDivRot
Definition: TGeoStateInfo.h:32
double Double_t
Definition: RtypesCore.h:55
Int_t * fVoxCheckList
Definition: TGeoStateInfo.h:37
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
Definition: TGeoNode.h:51
unsigned char UChar_t
Definition: RtypesCore.h:34
Int_t fVoxNcandidates
Definition: TGeoStateInfo.h:35
TGeoStateInfo & operator=(const TGeoStateInfo &other)
Assignment.
TGeoPolygon * fXtruPoly
Definition: TGeoStateInfo.h:50
TGeoStateInfo(Int_t maxdaughters=0)
Constructor.