Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:11:54

0001 // @(#):$Id$
0002 // Author: Andrei Gheata   07/02/2012
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TGeoStateInfo
0013 #define ROOT_TGeoStateInfo
0014 
0015 #include "TGeoMatrix.h"
0016 
0017 class TGeoNode;
0018 class TGeoPolygon;
0019 struct TGeoStateInfo;
0020 
0021 struct TGeoStateInfo {
0022    TGeoNode *fNode; // Node to which applies
0023    // Assembly data
0024    Int_t fAsmCurrent; // Index for current entered node (assemblies)
0025    Int_t fAsmNext;    // Index for next entered node (assemblies)
0026    // Divisions data
0027    Int_t fDivCurrent;         // Index for the current division node
0028    Int_t fDivNext;            // Index for the next division node
0029    TGeoTranslation fDivTrans; // Translation used by current division node
0030    TGeoRotation fDivRot;      // Rotation used by current division node
0031    TGeoCombiTrans fDivCombi;  // Combi transformation used by current division
0032    // Voxels data
0033    Int_t fVoxNcandidates;  // Number of candidates
0034    Int_t fVoxCurrent;      // Index of current voxel in sorted list
0035    Int_t *fVoxCheckList;   // List of candidates
0036    UChar_t *fVoxBits1;     // Bits used for list intersection
0037    Int_t fVoxSlices[3];    // Slice indices for current voxel
0038    Int_t fVoxInc[3];       // Slice index increment
0039    Double_t fVoxInvdir[3]; // 1/current director cosines
0040    Double_t fVoxLimits[3]; // Limits on X,Y,Z
0041    // Composite shape data
0042    Int_t fBoolSelected; // Selected Boolean node
0043    // Xtru shape data
0044    Int_t fXtruSeg;         // current segment [0,fNvert-1]
0045    Int_t fXtruIz;          // current z plane [0,fNz-1]
0046    Double_t *fXtruXc;      // [fNvert] current X positions for polygon vertices
0047    Double_t *fXtruYc;      // [fNvert] current Y positions for polygon vertices
0048    TGeoPolygon *fXtruPoly; // polygon defining section shape
0049 
0050    TGeoStateInfo(Int_t maxdaughters = 0);
0051    TGeoStateInfo(const TGeoStateInfo &other) = delete;
0052    TGeoStateInfo &operator=(const TGeoStateInfo &other) = delete;
0053    virtual ~TGeoStateInfo();
0054 
0055    ClassDef(TGeoStateInfo, 0) // No I/O for this structure
0056 };
0057 
0058 #endif