Import Geant4 5.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:57:27 +02:00
parent 330b82b769
commit 37fff30d2e
5733 changed files with 263867 additions and 74574 deletions
@@ -21,12 +21,10 @@
// ********************************************************************
//
//
// $Id: G4LogicalBorderSurface.hh,v 1.7 2001/07/11 10:00:28 gunter Exp $
// GEANT4 tag $Name: geant4-04-01 $
// $Id: G4LogicalBorderSurface.hh,v 1.8 2002/07/23 08:50:34 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
////////////////////////////////////////////////////////////////////////
// class G4LogicalBorderSurface
////////////////////////////////////////////////////////////////////////
//
// Class description:
//
@@ -36,100 +34,73 @@
// History:
// -------
// Created: 1997-06-17
// Author: John Apostolakis
// mail: John.Apostolakis@cern.ch
// Modified: 1997-06-16 John Apostolakis
// Author: John Apostolakis (John.Apostolakis@cern.ch)
//
////////////////////////////////////////////////////////////////////////
// ********************************************************************
#ifndef G4LogicalBorderSurface_h
#define G4LogicalBorderSurface_h 1
/////////////
// Includes
/////////////
#include "G4LogicalSurface.hh"
#include "G4VPhysicalVolume.hh"
#include "g4std/vector"
class G4Event;
class G4VPhysicalVolume;
/////////////////////
// Class Definition
/////////////////////
class G4LogicalBorderSurface: public G4LogicalSurface
class G4LogicalBorderSurface : public G4LogicalSurface
{
////////////////////////////////
// Constructors and Destructor
////////////////////////////////
public:
G4LogicalBorderSurface(const G4String& name,
G4VPhysicalVolume* vol1,
G4VPhysicalVolume* vol2,
G4OpticalSurface* opticsSurface);
public: // with description
~G4LogicalBorderSurface();
G4LogicalBorderSurface( const G4String& name,
G4VPhysicalVolume* vol1,
G4VPhysicalVolume* vol2,
G4OpticalSurface* opticsSurface );
~G4LogicalBorderSurface();
// Constructor and destructor
////////////
// Methods
////////////
static G4LogicalBorderSurface* GetSurface( const G4VPhysicalVolume* vol1,
const G4VPhysicalVolume* vol2 );
inline void SetPhysicalVolumes( G4VPhysicalVolume* vol1,
G4VPhysicalVolume* vol2 );
inline const G4VPhysicalVolume* GetVolume1() const;
inline const G4VPhysicalVolume* GetVolume2() const;
// Generic accessors.
public:
inline void SetVolume1( G4VPhysicalVolume* vol1 );
inline void SetVolume2( G4VPhysicalVolume* vol2 );
// To use with care!
static G4LogicalBorderSurface* GetSurface(const G4VPhysicalVolume* vol1,
const G4VPhysicalVolume* vol2);
static const G4std::vector<G4LogicalBorderSurface*> * GetSurfaceTable();
static size_t GetNumberOfBorderSurfaces();
static void DumpInfo();
// To handle the table of surfaces.
inline void SetPhysicalVolumes(G4VPhysicalVolume* vol1,
G4VPhysicalVolume* vol2);
inline const G4VPhysicalVolume* GetVolume1() const;
inline const G4VPhysicalVolume* GetVolume2() const;
inline void SetVolume1(G4VPhysicalVolume* vol1);
inline void SetVolume2(G4VPhysicalVolume* vol2);
// These are potentially dangerous.
static const G4std::vector<G4LogicalBorderSurface*> *GetSurfaceTable();
static size_t GetNumberOfBorderSurfaces();
static void DumpInfo();
// Methods dealing with the table of surfaces.
//////////////
// Operators
//////////////
G4int operator==(const G4LogicalBorderSurface &right) const;
G4int operator!=(const G4LogicalBorderSurface &right) const;
G4int operator==( const G4LogicalBorderSurface &right ) const;
G4int operator!=( const G4LogicalBorderSurface &right ) const;
// Operators.
private:
G4LogicalBorderSurface(const G4LogicalBorderSurface &right);
const G4LogicalBorderSurface & operator=(const G4LogicalBorderSurface &right);
// ------------------
// Basic data members ( To define a 'logical' surface)
// ------------------
G4LogicalBorderSurface(const G4LogicalBorderSurface &right);
const G4LogicalBorderSurface& operator=(const G4LogicalBorderSurface &right);
private:
G4VPhysicalVolume* Volume1; // Physical Volume pointer on side 1
G4VPhysicalVolume* Volume2; // Physical Volume pointer on side 2
G4VPhysicalVolume* Volume1; // Physical Volume pointer on side 1
G4VPhysicalVolume* Volume2; // Physical Volume pointer on side 2
static G4std::vector<G4LogicalBorderSurface*> theBorderSurfaceTable;
// The static Table of Surfaces
static G4std::vector<G4LogicalBorderSurface*> theBorderSurfaceTable;
// The static Table of Surfaces.
};
typedef G4std::vector<G4LogicalBorderSurface*> G4LogicalBorderSurfaceTable;
////////////////////
// ********************************************************************
// Inline methods
////////////////////
// ********************************************************************
#include "G4LogicalBorderSurface.icc"