ROOT  6.06/09
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 ////////////////////////////////////////////////////////////////////////////
24 // //
25 // TGeoStateInfo - statefull info for the current geometry level. //
26 // //
27 ////////////////////////////////////////////////////////////////////////////
28 
29 struct TGeoStateInfo {
30  TGeoNode *fNode; // Node to which applies
31  // Assembly data
32  Int_t fAsmCurrent; // Index for current entered node (assemblies)
33  Int_t fAsmNext; // Index for next entered node (assemblies)
34  // Divisions data
35  Int_t fDivCurrent; // Index for the current division node
36  Int_t fDivNext; // Index for the next division node
37  TGeoTranslation fDivTrans; // Translation used by current division node
38  TGeoRotation fDivRot; // Rotation used by current division node
39  TGeoCombiTrans fDivCombi; // Combi transformation used by current division
40  // Voxels data
41  Int_t fVoxNcandidates; // Number of candidates
42  Int_t fVoxCurrent; // Index of current voxel in sorted list
43  Int_t *fVoxCheckList; // List of candidates
44  UChar_t *fVoxBits1; // Bits used for list intersection
45  Int_t fVoxSlices[3]; // Slice indices for current voxel
46  Int_t fVoxInc[3]; // Slice index increment
47  Double_t fVoxInvdir[3]; // 1/current director cosines
48  Double_t fVoxLimits[3]; // Limits on X,Y,Z
49  // Composite shape data
50  Int_t fBoolSelected; // Selected Boolean node
51  // Xtru shape data
52  Int_t fXtruSeg; // current segment [0,fNvert-1]
53  Int_t fXtruIz; // current z plane [0,fNz-1]
54  Double_t *fXtruXc; // [fNvert] current X positions for polygon vertices
55  Double_t *fXtruYc; // [fNvert] current Y positions for polygon vertices
56  TGeoPolygon *fXtruPoly; // polygon defining section shape
57 
58  TGeoStateInfo(Int_t maxdaughters=0);
59  TGeoStateInfo(const TGeoStateInfo &other);
60  TGeoStateInfo & operator=(const TGeoStateInfo &other);
61  virtual ~TGeoStateInfo();
62 
63  ClassDef(TGeoStateInfo, 0) // No I/O for this structure
64 };
65 
66 #endif
Int_t fVoxSlices[3]
Definition: TGeoStateInfo.h:45
Double_t * fXtruYc
Definition: TGeoStateInfo.h:55
Int_t fBoolSelected
Definition: TGeoStateInfo.h:50
virtual ~TGeoStateInfo()
Destructor.
int Int_t
Definition: RtypesCore.h:41
UChar_t * fVoxBits1
Definition: TGeoStateInfo.h:44
TGeoCombiTrans fDivCombi
Definition: TGeoStateInfo.h:39
#define ClassDef(name, id)
Definition: Rtypes.h:254
TGeoTranslation fDivTrans
Definition: TGeoStateInfo.h:37
Double_t fVoxLimits[3]
Definition: TGeoStateInfo.h:48
Double_t fVoxInvdir[3]
Definition: TGeoStateInfo.h:47
TGeoNode * fNode
Definition: TGeoStateInfo.h:30
Double_t * fXtruXc
Definition: TGeoStateInfo.h:54
Int_t fVoxInc[3]
Definition: TGeoStateInfo.h:46
TGeoRotation fDivRot
Definition: TGeoStateInfo.h:38
double Double_t
Definition: RtypesCore.h:55
Int_t * fVoxCheckList
Definition: TGeoStateInfo.h:43
unsigned char UChar_t
Definition: RtypesCore.h:34
Int_t fVoxNcandidates
Definition: TGeoStateInfo.h:41
TGeoStateInfo & operator=(const TGeoStateInfo &other)
Assignment.
TGeoPolygon * fXtruPoly
Definition: TGeoStateInfo.h:56
TGeoStateInfo(Int_t maxdaughters=0)