13 #include "G4CSGSolid.hh"
14 #include "G4Polyhedron.hh"
39 BelleCrystal(
const G4String& pName,
int,
const G4ThreeVector*);
44 Plane_t GetSidePlane(G4int n)
const {
return fPlanes[n];}
54 const G4VPhysicalVolume* pRep);
58 const G4VoxelLimits& pVoxelLimit,
59 const G4AffineTransform& pTransform,
60 G4double& pMin, G4double& pMax)
const;
62 EInside Inside(
const G4ThreeVector& p)
const;
64 G4ThreeVector SurfaceNormal(
const G4ThreeVector& p)
const;
66 G4double DistanceToIn(
const G4ThreeVector& p,
const G4ThreeVector& v)
const;
68 G4double DistanceToIn(
const G4ThreeVector& p)
const;
70 G4double DistanceToOut(
const G4ThreeVector& p,
const G4ThreeVector& v,
71 const G4bool calcNorm =
false,
72 G4bool* validNorm = 0, G4ThreeVector* n = 0)
const;
74 G4double DistanceToOut(
const G4ThreeVector& p)
const;
76 G4GeometryType GetEntityType()
const;
78 G4ThreeVector GetPointOnSurface()
const;
80 G4VSolid* Clone()
const;
82 std::ostream& StreamInfo(std::ostream& os)
const;
86 void DescribeYourselfTo(G4VGraphicsScene& scene)
const;
87 G4Polyhedron* CreatePolyhedron()
const;
90 void BoundingLimits(G4ThreeVector& pMin, G4ThreeVector& pMax)
const;
106 G4ThreeVector vertex(
unsigned int i)
const;
110 G4bool MakePlane(
const G4ThreeVector& p1,
111 const G4ThreeVector& p2,
112 const G4ThreeVector& p3,
113 const G4ThreeVector& p4,
118 double area(
int,
double&)
const;
119 double getvolarea()
const;
120 const unsigned int*
ivertx(
unsigned int i)
const;
124 std::vector<Plane_t> fPlanes;
125 std::vector<Point_t> fx;
127 mutable std::vector<double> fareas;
a Belle crystal in Geant4
const unsigned int * ivertx(unsigned int i) const
get the ith vertex
G4ThreeVector GetPointOnTriangle(int) const
Returns a random point on the surface of one of the faces.
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const
Two vectors define an axis-parallel bounding box for the shape.
double area(int, double &) const
triangle area
G4double GetCubicVolume()
get the Cubic volume
BelleCrystal & operator=(const BelleCrystal &rhs)
assignment operator
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
calculate the extent of the volume
virtual ~BelleCrystal()
Destructor.
G4double GetSurfaceArea()
get the surface area
BelleCrystal(const G4String &pName)
Constructor for "nominal" BelleCrystal.
void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
compute the dimensions
unsigned int nsides
the number of sides
Belle crystal in polyhedron.
PolyhedronBelleCrystal(int, const G4ThreeVector *)
constructor
virtual ~PolyhedronBelleCrystal()
destructor
Abstract base class for different kinds of events.