Import Geant4 3.0.0 source tree
This commit is contained in:
@@ -1,77 +0,0 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3CalcParams.hh,v 1.3 1999/12/09 01:27:41 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
// class G3CalcParams
|
||||
//
|
||||
// Class inheriting from G4VPVParameterisation to provide GSDVN
|
||||
// functionality
|
||||
//
|
||||
// History:
|
||||
// 03.09.96 T. Wenaus Initial version
|
||||
|
||||
#ifndef G3CALCPARAMS_HH
|
||||
#define G3CALCPARAMS_HH 1
|
||||
|
||||
#include <math.h>
|
||||
#include "globals.hh"
|
||||
#include "G4VPVParameterisation.hh"
|
||||
|
||||
class G3CalcParams: public G4VPVParameterisation
|
||||
{
|
||||
public:
|
||||
G3CalcParams(G4int ndiv, G4double width, G4double offset)
|
||||
{ fNdiv = ndiv; fWidth = width; fOffset = offset;}
|
||||
|
||||
void ComputeTransformation(const G4int n,
|
||||
G4VPhysicalVolume *pRep) const;
|
||||
|
||||
void ComputeDimensions(G4Box &pBox,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *pRep) const;
|
||||
|
||||
void ComputeDimensions(G4Tubs &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
void ComputeDimensions(G4Trd &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
void ComputeDimensions(G4Trap &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
void ComputeDimensions(G4Cons &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
void ComputeDimensions(G4Sphere &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
void ComputeDimensions(G4Torus &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
void ComputeDimensions(G4Para &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
void ComputeDimensions(G4Hype &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
private:
|
||||
G4int fNdiv;
|
||||
G4double fWidth;
|
||||
G4double fOffset;
|
||||
|
||||
};
|
||||
#endif
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3DetTable.hh,v 1.6 1999/12/15 14:49:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// G3DetTable class
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3DetTableEntry.hh,v 1.3 1999/12/09 01:27:42 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// G3DetTableEntry class
|
||||
|
||||
|
||||
@@ -5,8 +5,20 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3Division.hh,v 1.3 1999/12/09 01:27:42 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3Division.hh,v 1.4 2000/11/24 09:50:09 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// This class tranforms G3 divided volumes to G4 replicated volumes.
|
||||
// UpdateVTE() method checks parameters of mother volume
|
||||
// and in case they are complete the solid that will be replicated
|
||||
// is created. In case of division with offset an additinal envelope
|
||||
// VTE (G3VolTableEntry instance) is created.
|
||||
// CreatePVReplica() methods creates the G4PVReplica instance.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi, 27 Sep 99
|
||||
|
||||
@@ -24,7 +36,8 @@ enum G3DivType { kDvn, kDvn2, kDvt, kDvt2 };
|
||||
|
||||
class G3Division
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G3Division(G3DivType type, G3VolTableEntry* vte, G3VolTableEntry* mvte,
|
||||
G4int nofDivision, G4int iaxis, G4int nmed, G4double c0,
|
||||
G4double step);
|
||||
@@ -37,6 +50,7 @@ class G3Division
|
||||
G4VPhysicalVolume* CreatePVReplica();
|
||||
|
||||
private:
|
||||
|
||||
// methods
|
||||
void SetRangeAndAxis();
|
||||
void CreateSolid(G4String shape, G4double par[], G4int npar);
|
||||
|
||||
@@ -5,9 +5,20 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3EleTable.hh,v 1.4 1999/12/09 01:27:42 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3EleTable.hh,v 1.5 2000/11/24 09:50:09 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// The table of elements.
|
||||
// In the constructor an array of strings with element name,
|
||||
// symbol and A are created.
|
||||
// The G4Element instances of given Z are created when
|
||||
// GetEle(G4double Z) is called using the string array.
|
||||
// For each Z the G4Element is created only once.
|
||||
|
||||
// ----------------------
|
||||
|
||||
#ifndef G4ELETABLE_HH
|
||||
#define G4ELETABLE_HH 1
|
||||
@@ -17,18 +28,22 @@
|
||||
#include "globals.hh"
|
||||
#include "G4Element.hh"
|
||||
|
||||
class G3EleTable{
|
||||
class G3EleTable
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
public:
|
||||
G3EleTable();
|
||||
virtual ~G3EleTable();
|
||||
G4Element* GetEle(G4double Z);
|
||||
|
||||
private:
|
||||
|
||||
void LoadUp();
|
||||
int parse(G4double& Z, char* name, char* sym, G4double& A);
|
||||
|
||||
private:
|
||||
|
||||
char** _EleNames;
|
||||
G4Element** _Ele;
|
||||
int _MaxEle;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3G4Interface.hh,v 1.7 1999/12/09 01:27:42 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// Interfaces for G3 equivalent routines
|
||||
//
|
||||
|
||||
@@ -5,8 +5,16 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3MatTable.hh,v 1.8 1999/12/09 01:27:42 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3MatTable.hh,v 1.9 2000/11/24 09:50:09 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// G3 materials table.
|
||||
// Maps G3 material indices to their G4Material object counterparts.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -25,17 +33,18 @@ typedef G4RWTPtrOrderedVector<G3MatTableEntry> G3MaterialVector;
|
||||
|
||||
class G3MatTable
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G3MatTable();
|
||||
virtual ~G3MatTable();
|
||||
|
||||
// methods
|
||||
// keep the same names of methods as in G4 g3tog4
|
||||
G4Material* get(G4int id) const;
|
||||
void put(G4int id, G4Material* material);
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
|
||||
G3MaterialVector* fMatVector;
|
||||
};
|
||||
|
||||
|
||||
@@ -5,8 +5,16 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3MatTableEntry.hh,v 1.3 1999/12/09 01:27:43 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3MatTableEntry.hh,v 1.4 2000/11/24 09:50:09 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// The class associates the G3 material index with the
|
||||
// corresponding G4Material object.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -19,7 +27,8 @@ class G4Material;
|
||||
|
||||
class G3MatTableEntry
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G3MatTableEntry(G4int id, G4Material* material);
|
||||
G3MatTableEntry(const G3MatTableEntry& right);
|
||||
virtual ~G3MatTableEntry();
|
||||
@@ -34,6 +43,7 @@ class G3MatTableEntry
|
||||
G4Material* GetMaterial() const;
|
||||
|
||||
private:
|
||||
|
||||
// data members
|
||||
G4int fID;
|
||||
G4Material* fMaterial;
|
||||
|
||||
@@ -5,8 +5,18 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3MedTable.hh,v 1.7 1999/12/09 01:27:43 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3MedTable.hh,v 1.8 2000/11/24 09:50:09 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// G3 tracking medium table.
|
||||
// Maps G3 tracking medium indices to their corresponding
|
||||
// G4 objects (G4Material, G4MagneticField, G4UserLimits)
|
||||
// and the sensitivity flag (isvol).
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -27,17 +37,19 @@ typedef G4RWTPtrOrderedVector<G3MedTableEntry> G3MediumVector;
|
||||
|
||||
class G3MedTable
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G3MedTable();
|
||||
virtual ~G3MedTable();
|
||||
|
||||
// methods
|
||||
G3MedTableEntry* get(G4int id) const;
|
||||
void put(G4int id, G4Material* material, G4MagneticField* field,
|
||||
G4UserLimits* limits, G4int isvol);
|
||||
G4UserLimits* limits, G4int isvol);
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
|
||||
G3MediumVector* fMedVector;
|
||||
};
|
||||
|
||||
|
||||
@@ -5,8 +5,17 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3MedTableEntry.hh,v 1.3 1999/12/09 01:27:43 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3MedTableEntry.hh,v 1.4 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// The class associates the G3 tracking medium index
|
||||
// with the corresponding G4Material, G4MagneticField, G4UserLimits
|
||||
// instances and sensitivity flag (isvol).
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -21,7 +30,8 @@ class G4UserLimits;
|
||||
|
||||
class G3MedTableEntry
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G3MedTableEntry(G4int id, G4Material* material, G4MagneticField* field,
|
||||
G4UserLimits* limits, G4int isvol);
|
||||
G3MedTableEntry(const G3MedTableEntry& right);
|
||||
@@ -46,6 +56,7 @@ class G3MedTableEntry
|
||||
G4int GetISVOL() const;
|
||||
|
||||
private:
|
||||
|
||||
// data members
|
||||
G4int fID;
|
||||
G4Material* fMaterial;
|
||||
|
||||
@@ -5,30 +5,40 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3PartTable.hh,v 1.6 1999/12/15 14:49:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3PartTable.hh,v 1.7 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// G3 materials table.
|
||||
// Maps G3 material indices to their G4 material object counterparts.
|
||||
// Maintains a linked List of G3 material index/G4 material pointer pairs.
|
||||
// G3 particles table.
|
||||
// Maps G3 particles indices to their G4 particle object counterparts.
|
||||
|
||||
// ----------------------
|
||||
|
||||
#ifndef G3PARTTABLE_HH
|
||||
#define G3PARTTABLE_HH 1
|
||||
#include "g4std/map"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
class G3PartTable {
|
||||
private:
|
||||
G4std::map<G4String, G4ParticleDefinition*, G4std::less<G4String> > PTD;
|
||||
void HashID(G4int partid, G4String* _HID);
|
||||
void HashID(G4int partid, G4String& _HID);
|
||||
public:
|
||||
class G3PartTable
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G3PartTable();
|
||||
virtual ~G3PartTable();
|
||||
G4ParticleDefinition* Get(G4int partid);
|
||||
void Put(G4int partid, G4ParticleDefinition* partpt);
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
|
||||
G4std::map<G4String, G4ParticleDefinition*, G4std::less<G4String> > PTD;
|
||||
void HashID(G4int partid, G4String* _HID);
|
||||
void HashID(G4int partid, G4String& _HID);
|
||||
};
|
||||
|
||||
extern G3PartTable G3Part;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,15 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3Pos.hh,v 1.8 2000/03/02 17:54:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3Pos.hh,v 1.9 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// G3 volume position
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
@@ -15,14 +22,11 @@
|
||||
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class G3Pos{
|
||||
private:
|
||||
G4String _MotherName;
|
||||
G4int _Copy;
|
||||
G4ThreeVector* _Position;
|
||||
G4int _Irot;
|
||||
G4String _Only;
|
||||
public:
|
||||
class G3Pos
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G3Pos(){;}
|
||||
|
||||
G3Pos(G4String M, G4int C, G4ThreeVector* T, G4int R, G4String O);
|
||||
@@ -40,6 +44,14 @@ public:
|
||||
G4int GetCopy();
|
||||
|
||||
G4String& GetOnly();
|
||||
};
|
||||
#endif
|
||||
|
||||
private:
|
||||
|
||||
G4String _MotherName;
|
||||
G4int _Copy;
|
||||
G4ThreeVector* _Position;
|
||||
G4int _Irot;
|
||||
G4String _Only;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,16 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3RotTable.hh,v 1.10 1999/12/09 01:27:46 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3RotTable.hh,v 1.11 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// G3 rotations table.
|
||||
// Maps G3 rotations indices to their G4RotationMatrix object counterparts.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -25,19 +33,19 @@ typedef G4RWTPtrOrderedVector<G3RotTableEntry> G3RotMatrixVector;
|
||||
|
||||
class G3RotTable
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G3RotTable();
|
||||
virtual ~G3RotTable();
|
||||
|
||||
// methods
|
||||
// keep the same names of methods as in G4 g3tog4
|
||||
// G3toG4RotationMatrix type changed to G4RotationMatrix)
|
||||
//
|
||||
|
||||
G4RotationMatrix* Get(G4int id) const;
|
||||
void Put(G4int id, G4RotationMatrix* matrix);
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
|
||||
G3RotMatrixVector* fRotVector;
|
||||
};
|
||||
|
||||
|
||||
@@ -5,8 +5,16 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3RotTableEntry.hh,v 1.3 1999/12/09 01:27:46 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3RotTableEntry.hh,v 1.4 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// The class associates the G3 rotation matrix index to its
|
||||
// corresponding G4RotationMatrix object.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -20,7 +28,8 @@ class G3toG4RotationMatrix;
|
||||
|
||||
class G3RotTableEntry
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G3RotTableEntry(G4int id, G4RotationMatrix* matrix);
|
||||
G3RotTableEntry(const G3RotTableEntry& right);
|
||||
virtual ~G3RotTableEntry();
|
||||
@@ -35,6 +44,7 @@ class G3RotTableEntry
|
||||
G4RotationMatrix* GetMatrix() const;
|
||||
|
||||
private:
|
||||
|
||||
// data members
|
||||
G4int fID;
|
||||
G4RotationMatrix* fMatrix;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3SensVolVector.hh,v 1.3 1999/12/09 01:27:46 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// vector of logical volumes that were defined with
|
||||
// tracking medium with ISVOL=1
|
||||
|
||||
@@ -5,8 +5,26 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3VolTable.hh,v 1.14 2000/03/02 17:54:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3VolTable.hh,v 1.15 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// G3 volumes table.
|
||||
// The G3 volumes are represented with the G3VolTableEntry objects
|
||||
// that are stored in the map (sorted by names).
|
||||
// In the phase of filling the G3 tables (defining G3 geometry,
|
||||
// eg. by parsing the G3 input via clparse.cc)
|
||||
// a G3 volume can be defined with incomplete parameters
|
||||
// (negative or none) that have to be retrieved from its mother
|
||||
// which may be defined later. These parameters are being resolved
|
||||
// subsequently in the phase of filling G3 tables.
|
||||
// That's why the G4 object counterparts (solids, logical volumes
|
||||
// and physical volumes) can be created only after filling the G3 tables
|
||||
// is finished and all incomplete parameters are resolved.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
@@ -20,14 +38,11 @@ class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class G4VSolid;
|
||||
|
||||
class G3VolTable{
|
||||
private:
|
||||
G3VolTableEntry* G3toG4TopVTE;
|
||||
G4String _FirstKey;
|
||||
G4std::map<G4String, G3VolTableEntry*, G4std::less<G4String> > VTD;
|
||||
G4int _NG3Pos;
|
||||
class G3VolTable
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
public:
|
||||
G3VolTableEntry* PutVTE(G3VolTableEntry* aVTE);
|
||||
G3VolTableEntry* GetVTE(const G4String& Vname);
|
||||
void PrintAll();
|
||||
@@ -39,6 +54,15 @@ public:
|
||||
void VTEStat();
|
||||
void CountG3Pos();
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
|
||||
G3VolTableEntry* G3toG4TopVTE;
|
||||
G4String _FirstKey;
|
||||
G4std::map<G4String, G3VolTableEntry*, G4std::less<G4String> > VTD;
|
||||
G4int _NG3Pos;
|
||||
};
|
||||
|
||||
extern G3VolTable G3Vol;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,45 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3VolTableEntry.hh,v 1.3 1999/12/09 01:27:46 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3VolTableEntry.hh,v 1.4 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// This class is a temporary representation of G3 volume.
|
||||
// Its methods enables successive updating of its instances
|
||||
// during the phase of filling the G3 tables (defining G3 geometry,
|
||||
// eg. by parsing the G3 input via clparse.cc).
|
||||
// See G3VolTable class description, too.
|
||||
//
|
||||
// Data members:
|
||||
// fVname volume name;
|
||||
// fShape G3 shape name;
|
||||
// fRpar array of G3 volumes parameters;
|
||||
// fNpar number of G3 volumes parameters;
|
||||
// fNmed G3 tracking medium number;
|
||||
// fSolid the G4VSolid of this volume;
|
||||
// fLV the G4LogicalVolume;
|
||||
// fHasNegPars true if G3 volume was defined with incomplete
|
||||
// parameters;
|
||||
// fDaughters vector of daughter VTEs (VTEs of volumes placed inside
|
||||
// this volume);
|
||||
// fMothers vector of mother VTEs (VTEs of volumes inside which this
|
||||
// volume is placed);
|
||||
// fClones vector of clone VTEs (see explanation below);
|
||||
// fG3Pos vector of G3 positions (G3Pos objects)
|
||||
// fDivision G3Division object created in case the G4 volume
|
||||
// was defined as division;
|
||||
//
|
||||
// Clone volumes:
|
||||
// In case a G3 volume (e.g. XYZ) has changed its solid parameters
|
||||
// with its new position (placement with GSPOSP) a new G3VolTableEntry
|
||||
// (associated with this new solid) with a new name (XYZ_N)
|
||||
// is created and registered as a clone volume in the fClones vector
|
||||
// data member of its master G3VolTableEntry object.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// by I.Hrivnacova, 13.10.99
|
||||
|
||||
@@ -22,8 +59,10 @@ class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class G4VSolid;
|
||||
|
||||
class G3VolTableEntry {
|
||||
public:
|
||||
class G3VolTableEntry
|
||||
{
|
||||
public: // with description
|
||||
|
||||
G3VolTableEntry(G4String& vname, G4String& shape, G4double* rpar,
|
||||
G4int npar, G4int nmed, G4VSolid* solid,
|
||||
G4bool hasNegPars);
|
||||
@@ -52,6 +91,8 @@ class G3VolTableEntry {
|
||||
void SetNRpar(G4int npar, G4double* Rpar);
|
||||
void SetDivision(G3Division* division);
|
||||
void SetHasNegPars(G4bool hasNegPars);
|
||||
void ClearG3PosCopy(G4int copy);
|
||||
void ClearDivision();
|
||||
|
||||
// get methods
|
||||
G4String GetName();
|
||||
@@ -76,6 +117,7 @@ class G3VolTableEntry {
|
||||
G3VolTableEntry* GetMasterClone();
|
||||
|
||||
private:
|
||||
|
||||
G4String fVname;
|
||||
G4String fShape;
|
||||
G4double* fRpar;
|
||||
@@ -100,14 +142,3 @@ inline G3Division* G3VolTableEntry::GetDivision()
|
||||
{ return fDivision; }
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3toG4.hh,v 1.6 2000/03/07 10:51:40 stesting Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* and all its terms.
|
||||
*
|
||||
* $Id: G3toG4.inc,v 1.2 1999/12/05 17:50:04 gcosmo Exp $
|
||||
* GEANT4 tag $Name: geant4-02-00 $
|
||||
* GEANT4 tag $Name: geant4-03-00 $
|
||||
*
|
||||
integer maxlines
|
||||
parameter (maxlines = 750) ! max no. of cmd lines per C++ source file
|
||||
|
||||
@@ -5,8 +5,26 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3toG4BuildTree.hh,v 1.4 1999/12/09 01:27:47 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3toG4BuildTree.hh,v 1.5 2000/11/24 09:50:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class Description:
|
||||
//
|
||||
// Definition of a global method:
|
||||
//
|
||||
// void G3toG4BuildTree(G3VolTableEntry* curVTE,
|
||||
// G3VolTableEntry* motherVTE)
|
||||
//
|
||||
// which processes the G3 volumes table (G3VolTable) and creates
|
||||
// remaining G4 objects that could not be created during the phase of
|
||||
// filling the G3 tables (defining G3 geometry, eg. by parsing the G3
|
||||
// input via clparse.cc):
|
||||
// G4LogicalVolume, G4PVPlacement and G4PVReplica objects.
|
||||
// After processing of this method the G4 geometry is completely
|
||||
// created and the G3 tables can be deleted.
|
||||
|
||||
// ----------------------
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#ifndef G3TOG4DEBUG_HH
|
||||
#define G3TOG4DEBUG_HH 1
|
||||
#include "globals.hh"
|
||||
G4int G3toG4Debug();
|
||||
#endif
|
||||
@@ -5,9 +5,29 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3toG4MakeSolid.hh,v 1.4 1999/12/09 01:27:47 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3toG4MakeSolid.hh,v 1.5 2000/11/24 09:50:11 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// ----------------------
|
||||
// Class Description:
|
||||
//
|
||||
// Definition of a global method:
|
||||
//
|
||||
// G4VSolid* G3toG4MakeSolid(const G4String& vname,
|
||||
// const G4String& shape,
|
||||
// const G4double* Rpar,
|
||||
// const G4int npar,
|
||||
// G4bool& NegVolPars,
|
||||
// G4bool& Deferred,
|
||||
// G4bool* OKAxis);
|
||||
//
|
||||
// which checks the volume parameters and creates the G4VSolid
|
||||
// subclass object corresponding to the specified shape.
|
||||
// If volume parameters are incomplete (negative or none)
|
||||
// it returns 0.
|
||||
|
||||
// ----------------------
|
||||
|
||||
#ifndef G3TOG4MAKESOLID_HH
|
||||
#define G3TOG4MAKESOLID_HH 1
|
||||
|
||||
|
||||
@@ -5,9 +5,21 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3toG4RotationMatrix.hh,v 1.3 1999/12/09 01:27:47 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G3toG4RotationMatrix.hh,v 1.4 2000/11/24 09:50:11 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// ----------------------
|
||||
// Class description:
|
||||
//
|
||||
// An "extended" rotation matrix class.
|
||||
// The SetRotationMatrixByCol/Row() methods enables
|
||||
// to define the rotation matrix by column/row vectors.
|
||||
// The result matrix may be a matrix that does not
|
||||
// represent a rotation transformation (!) as
|
||||
// G3 "rotation" matrices can be a composition of
|
||||
// rotation and reflection.
|
||||
|
||||
// ----------------------
|
||||
|
||||
#ifndef G3TOG4ROTATION_HH
|
||||
#define G3TOG4ROTATION_HH 1
|
||||
|
||||
@@ -16,7 +28,9 @@
|
||||
|
||||
class G3toG4RotationMatrix : public G4RotationMatrix
|
||||
{
|
||||
public:
|
||||
|
||||
public: // with description
|
||||
|
||||
G3toG4RotationMatrix();
|
||||
|
||||
void SetRotationMatrixByCol(const G4ThreeVector& Col1,
|
||||
@@ -27,6 +41,8 @@ public:
|
||||
const G4ThreeVector& Row2,
|
||||
const G4ThreeVector& Row3);
|
||||
|
||||
~G3toG4RotationMatrix();
|
||||
~G3toG4RotationMatrix();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* and all its terms.
|
||||
*
|
||||
* $Id: gcbank.inc,v 1.2 1999/12/05 17:50:05 gcosmo Exp $
|
||||
* GEANT4 tag $Name: geant4-02-00 $
|
||||
* GEANT4 tag $Name: geant4-03-00 $
|
||||
*
|
||||
INTEGER IQ,LQ,NZEBRA,IXSTOR,IXDIV,IXCONS,LMAIN,LR1,JCG
|
||||
INTEGER KWBANK,KWWORK,IWS
|
||||
|
||||
Reference in New Issue
Block a user