Logo ROOT   6.12/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 #include "TGeoMatrix.h"
16 
17 class TGeoNode;
18 class TGeoPolygon;
19 struct TGeoStateInfo;
20 
21 struct TGeoStateInfo {
22  TGeoNode *fNode; // Node to which applies
23  // Assembly data
24  Int_t fAsmCurrent; // Index for current entered node (assemblies)
25  Int_t fAsmNext; // Index for next entered node (assemblies)
26  // Divisions data
27  Int_t fDivCurrent; // Index for the current division node
28  Int_t fDivNext; // Index for the next division node
29  TGeoTranslation fDivTrans; // Translation used by current division node
30  TGeoRotation fDivRot; // Rotation used by current division node
31  TGeoCombiTrans fDivCombi; // Combi transformation used by current division
32  // Voxels data
33  Int_t fVoxNcandidates; // Number of candidates
34  Int_t fVoxCurrent; // Index of current voxel in sorted list
35  Int_t *fVoxCheckList; // List of candidates
36  UChar_t *fVoxBits1; // Bits used for list intersection
37  Int_t fVoxSlices[3]; // Slice indices for current voxel
38  Int_t fVoxInc[3]; // Slice index increment
39  Double_t fVoxInvdir[3]; // 1/current director cosines
40  Double_t fVoxLimits[3]; // Limits on X,Y,Z
41  // Composite shape data
42  Int_t fBoolSelected; // Selected Boolean node
43  // Xtru shape data
44  Int_t fXtruSeg; // current segment [0,fNvert-1]
45  Int_t fXtruIz; // current z plane [0,fNz-1]
46  Double_t *fXtruXc; // [fNvert] current X positions for polygon vertices
47  Double_t *fXtruYc; // [fNvert] current Y positions for polygon vertices
48  TGeoPolygon *fXtruPoly; // polygon defining section shape
49 
50  TGeoStateInfo(Int_t maxdaughters=0);
51  TGeoStateInfo(const TGeoStateInfo &other);
52  TGeoStateInfo & operator=(const TGeoStateInfo &other);
53  virtual ~TGeoStateInfo();
54 
55  ClassDef(TGeoStateInfo, 0) // No I/O for this structure
56 };
57 
58 #endif
Statefull info for the current geometry level.
Definition: TGeoStateInfo.h:21
Int_t fVoxSlices[3]
Definition: TGeoStateInfo.h:37
Double_t * fXtruYc
Definition: TGeoStateInfo.h:47
Int_t fBoolSelected
Definition: TGeoStateInfo.h:42
virtual ~TGeoStateInfo()
Destructor.
Class describing translations.
Definition: TGeoMatrix.h:121
An arbitrary polygon defined by vertices.
Definition: TGeoPolygon.h:19
int Int_t
Definition: RtypesCore.h:41
UChar_t * fVoxBits1
Definition: TGeoStateInfo.h:36
TGeoCombiTrans fDivCombi
Definition: TGeoStateInfo.h:31
#define ClassDef(name, id)
Definition: Rtypes.h:320
TGeoTranslation fDivTrans
Definition: TGeoStateInfo.h:29
Class describing rotation + translation.
Definition: TGeoMatrix.h:291
Double_t fVoxLimits[3]
Definition: TGeoStateInfo.h:40
Double_t fVoxInvdir[3]
Definition: TGeoStateInfo.h:39
TGeoNode * fNode
Definition: TGeoStateInfo.h:22
Class describing rotations.
Definition: TGeoMatrix.h:174
Double_t * fXtruXc
Definition: TGeoStateInfo.h:46
Int_t fVoxInc[3]
Definition: TGeoStateInfo.h:38
TGeoRotation fDivRot
Definition: TGeoStateInfo.h:30
double Double_t
Definition: RtypesCore.h:55
Int_t * fVoxCheckList
Definition: TGeoStateInfo.h:35
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
Definition: TGeoNode.h:39
unsigned char UChar_t
Definition: RtypesCore.h:34
Int_t fVoxNcandidates
Definition: TGeoStateInfo.h:33
TGeoStateInfo & operator=(const TGeoStateInfo &other)
Assignment.
TGeoPolygon * fXtruPoly
Definition: TGeoStateInfo.h:48
TGeoStateInfo(Int_t maxdaughters=0)
Constructor.