Import Geant4 1.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:28:20 +02:00
parent aaa409b6ee
commit ca1c8cb059
2995 changed files with 106830 additions and 299600 deletions
@@ -0,0 +1,42 @@
// Persistent base class for solids created by boolean operations
// between other solids
//
// History:
// 10.11.99 Y.Morita, Initial Creation
#ifndef G4PBOOLEANSOLID_DDL
#define G4PBOOLEANSOLID_DDL
#include "G4PVSolid.hh"
#include "G4PersistentSchema.hh"
class G4PBooleanSolid
: public G4PVSolid
{
public:
G4PBooleanSolid( const G4String& pName,
HepRef(G4PVSolid) persSolidA,
HepRef(G4PVSolid) persSolidB );
virtual ~G4PBooleanSolid();
virtual G4VSolid* MakeTransientBooleanSolid(
G4VSolid* aSolidA,
G4VSolid* aSolidB ) const = 0;
public: // With Description
// If Solid is made up from a Boolean operation of two solids,
// return the corresponding solid (for no=0 and 1)
// If the solid is not a "Boolean", return 0
virtual const HepRef(G4PVSolid) GetConstituentSolid(G4int no) const;
virtual HepRef(G4PVSolid) GetConstituentSolid(G4int no);
protected:
d_Ref<G4PVSolid> fPtrSolidA;
d_Ref<G4PVSolid> fPtrSolidB;
private:
G4bool createdDisplacedSolid;
};
#endif
@@ -0,0 +1,41 @@
// Persistent class describing solid placements for boolean operations
//
// History:
// 10.11.99 Y.Morita, Initial creation
#ifndef G4PDisplacedSolid_DDL
#define G4PDisplacedSolid_DDL
#include "G4PersistentSchema.hh"
#include "G4PVSolid.hh"
#include "G4PAffineTransform.hh"
class G4VSolid;
class G4PDisplacedSolid
: public G4PVSolid
{
public:
G4PDisplacedSolid ( HepRef(G4PVSolid) persCostituentSolid,
HepRef(G4PAffineTransform) pDirectTransform );
virtual ~G4PDisplacedSolid();
G4VSolid* MakeTransientObject() const;
G4VSolid* MakeTransientDisplacedSolid(G4VSolid* aSolid) const;
virtual G4GeometryType GetEntityType() const
{ return G4String("G4DisplacedSolid"); }
HepRef(G4PVSolid) GetConstituentMovedSolid();
protected:
d_Ref<G4PVSolid> fPtrSolid;
// fPtrTransform can be created by fDirectTransform.Inverse()
d_Ref<G4PAffineTransform> fDirectTransform;
private:
};
#endif
@@ -0,0 +1,38 @@
// Persistent class for description of intersection of two CSG solids
//
// History:
// 10.11.99 Y.Morita, Initial creation
#ifndef G4PINTERSECTIONSOLID_DDL
#define G4PINTERSECTIONSOLID_DDL
#include "G4PersistentSchema.hh"
#include "G4PBooleanSolid.hh"
class G4VSolid;
class G4PIntersectionSolid: public G4PBooleanSolid
{
public:
G4PIntersectionSolid( const G4String& pName,
HepRef(G4PVSolid) persSolidA,
HepRef(G4PVSolid) persSolidB );
virtual ~G4PIntersectionSolid() ;
G4VSolid* MakeTransientObject() const;
G4VSolid* MakeTransientBooleanSolid(
G4VSolid* aSolidA,
G4VSolid* aSolidB ) const;
virtual G4GeometryType GetEntityType() const
{ return G4String("G4IntersectionSolid"); }
protected:
private:
};
#endif
@@ -0,0 +1,40 @@
// Persistent class for description of subtraction of two CSG solids: A - B
//
// History:
// 10.11.99 Y.Morita, Initial creation
//
#ifndef G4PSUBTRACTIONSOLID_DDL
#define G4PSUBTRACTIONSOLID_DDL
#include "G4PersistentSchema.hh"
#include "G4PBooleanSolid.hh"
class G4VSolid;
class G4PSubtractionSolid
: public G4PBooleanSolid
{
public:
G4PSubtractionSolid( const G4String& pName,
HepRef(G4PVSolid) persSolidA,
HepRef(G4PVSolid) persSolidB );
virtual ~G4PSubtractionSolid() ;
G4VSolid* MakeTransientObject() const;
G4VSolid* MakeTransientBooleanSolid(
G4VSolid* aSolidA,
G4VSolid* aSolidB ) const;
virtual G4GeometryType GetEntityType() const
{ return G4String("G4SubtractionSolid"); }
protected:
private:
};
#endif
@@ -0,0 +1,40 @@
// Persistent class for description of intersection of two CSG solids
//
// History:
// 10.11.99 Y.Morita, Initial creation
//
#ifndef G4PUNIONSOLID_DDL
#define G4PUNIONSOLID_DDL
#include "G4PersistentSchema.hh"
#include "G4PBooleanSolid.hh"
class G4VSolid;
class G4PUnionSolid
: public G4PBooleanSolid
{
public:
G4PUnionSolid( const G4String& pName,
HepRef(G4PVSolid) persSolidA,
HepRef(G4PVSolid) persSolidB );
virtual ~G4PUnionSolid() ;
G4VSolid* MakeTransientObject() const;
G4VSolid* MakeTransientBooleanSolid(
G4VSolid* aSolidA,
G4VSolid* aSolidB ) const;
virtual G4GeometryType GetEntityType() const
{ return G4String("G4UnionSolid"); }
protected:
private:
};
#endif