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
+3 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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.1 1999/01/07 16:06:42 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3CalcParams.hh,v 1.2 1999/12/05 17:50:00 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G3CalcParams
//
+14 -34
View File
@@ -1,54 +1,34 @@
#ifndef G3DETTABLE
#define G3DETTABLE 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3DetTable.hh,v 1.2 1999/05/07 04:15:57 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3DetTable.hh,v 1.4 1999/12/05 17:50:01 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// 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.
#include <rw/tphdict.h>
// G3DetTable class
#include "g4std/map"
#include "globals.hh"
class G4VSensitiveDetector;
class DetTableEntry {
private:
G4String _set;
G4String _det;
G4int _id;
G4VSensitiveDetector* _detpt;
public:
DetTableEntry(G4String& set, G4String& det, G4int id,
G4VSensitiveDetector* D);
~DetTableEntry();
G4VSensitiveDetector* getSD();
G4String getset();
G4String getdet();
G4int getid();
};
#include "G3DetTableEntry.hh"
class G3DetTable {
private:
RWTPtrHashDictionary<G4String, DetTableEntry>* _Det;
G4std::map<G4String, G3DetTableEntry*, less<G4String> > DTD;
G4String MakeHash(G4String& set, G4String& det);
DetTableEntry* _DTE;
public:
G3DetTable();
~G3DetTable();
G4VSensitiveDetector* getSD(G4String& set, G4String& det);
virtual ~G3DetTable();
G4int GetID(G4String& set, G4String& det);
void put(G4String& set, G4String& det, G4int id, G4VSensitiveDetector* D);
void Put(G4String& set, G4String& det, G4int id, G4VSensitiveDetector* D);
G4VSensitiveDetector* GetSD(G4String& set, G4String& det);
void PrintAll();
};
extern G3DetTable G3Det;
#endif
+35
View File
@@ -0,0 +1,35 @@
#ifndef DETTABLEENTRY
#define DETTABLEENTRY 1
// 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: G3DetTableEntry.hh,v 1.2 1999/12/05 17:50:01 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G3DetTableEntry class
#include "g4std/map"
#include "globals.hh"
#include "G4VSensitiveDetector.hh"
class G3DetTableEntry {
private:
G4String _set;
G4String _det;
G4int _id;
G4VSensitiveDetector* _detpt;
public:
G3DetTableEntry(G4String& set, G4String& det, G4int id,
G4VSensitiveDetector* D);
~G3DetTableEntry();
G4VSensitiveDetector* GetSD();
G4String GetSet();
G4String GetDet();
G4int GetID();
};
#endif
+67
View File
@@ -0,0 +1,67 @@
// 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: G3Division.hh,v 1.2 1999/12/05 17:50:01 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// by I.Hrivnacova, V.Berejnoi, 27 Sep 99
#ifndef G3_DIVISION_H
#define G3_DIVISION_H
#include "globals.hh"
#include "geomdefs.hh"
class G3VolTableEntry;
class G4VPhysicalVolume;
class G4LogicalVolume;
enum G3DivType { kDvn, kDvn2, kDvt, kDvt2 };
class G3Division
{
public:
G3Division(G3DivType type, G3VolTableEntry* vte, G3VolTableEntry* mvte,
G4int nofDivision, G4int iaxis, G4int nmed, G4double c0,
G4double step);
G3Division(G3VolTableEntry* vte, G3VolTableEntry* mvte,
const G3Division& division);
virtual ~G3Division();
// methods
void UpdateVTE();
G4VPhysicalVolume* CreatePVReplica();
private:
// methods
void SetRangeAndAxis();
void CreateSolid(G4String shape, G4double par[], G4int npar);
G3VolTableEntry* CreateEnvelope(G4String shape, G4double hi, G4double lo,
G4double par[], G4int npar);
G3VolTableEntry* Dvn ();
G3VolTableEntry* Dvn2();
G3VolTableEntry* Dvt ();
G3VolTableEntry* Dvt2();
void Exception(G4String where, G4String what);
// data members
G3DivType fType;
G3VolTableEntry* fVTE;
G3VolTableEntry* fMVTE;
G4int fNofDivisions; // ndiv/ndvmx
G4int fIAxis;
G4int fNmed;
G4double fC0;
G4double fStep;
G4double fLowRange;
G4double fHighRange;
G4double fWidth;
G4double fOffset;
EAxis fAxis;
};
#endif //G3_DIVISION_H
+5 -5
View File
@@ -1,17 +1,17 @@
#ifndef _G4ELETABLE_
#define _G4ELETABLE_ 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3EleTable.hh,v 1.1 1999/05/06 04:19:58 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3EleTable.hh,v 1.3 1999/12/05 17:50:01 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include <rw/ctoken.h>
#include <rw/tpordvec.h>
#include "g4rw/ctoken.h"
#include "g4rw/tpordvec.h"
#include "globals.hh"
#include "G4Element.hh"
+8 -7
View File
@@ -1,30 +1,31 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3G4Interface.hh,v 1.4 1999/05/26 03:46:16 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3G4Interface.hh,v 1.5 1999/12/05 17:50:01 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Interfaces for G3 equivalent routines
//
#include "globals.hh"
class G4LogicalVolume;
void G4gsvolu(G4String name, G4String shape, G4int nmed, G4double* par,
G4int npar);
void G4gspos(G4String& name, G4int num, G4String& moth,
void G4gspos(G4String name, G4int num, G4String moth,
G4double x, G4double y, G4double z, G4int irot,
G4String& only);
G4String only);
void G4gsposp(G4String& name, G4int num, G4String& moth,
void G4gsposp(G4String name, G4int num, G4String moth,
G4double x, G4double y, G4double z, G4int irot,
G4String& only, G4double* Rpar, G4int npar);
G4String only, G4double Rpar[], G4int npar);
void G4gsrotm(G4int irot, G4double theta1, G4double phi1,
G4double theta2, G4double phi2, G4double theta3, G4double phi3);
+30 -19
View File
@@ -1,33 +1,44 @@
#ifndef _G3MATTABLE_
#define _G3MATTABLE_ 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3MatTable.hh,v 1.3 1999/05/06 17:46:37 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3MatTable.hh,v 1.7 1999/12/05 17:50:01 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G3 materials table.
// Maps G3 material indices to their G4 material object counterparts.
// by I.Hrivnacova, 27 Sep 99
#include <rw/tpordvec.h>
#ifndef G3_MAT_TABLE_H
#define G3_MAT_TABLE_H
#include "G3MatTableEntry.hh"
#include "globals.hh"
#include "g4rw/tpordvec.h"
class G4Material;
class G3MatTable {
private:
RWTPtrOrderedVector<G4Material>* _Mat;
public:
G3MatTable();
~G3MatTable();
G4Material* get(G4int matid);
void put(G4int matid, G4Material* matpt);
typedef G4RWTPtrOrderedVector<G3MatTableEntry> G3MaterialVector;
class G3MatTable
{
public:
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;
};
extern G3MatTable G3Mat;
#endif
#endif //G3_MAT_TABLE_H
+50
View File
@@ -0,0 +1,50 @@
// 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: G3MatTableEntry.hh,v 1.2 1999/12/05 17:50:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// by I.Hrivnacova, 27 Sep 99
#ifndef G3_MAT_TABLE_ENTRY_H
#define G3_MAT_TABLE_ENTRY_H
#include "globals.hh"
class G4Material;
class G3MatTableEntry
{
public:
G3MatTableEntry(G4int id, G4Material* material);
G3MatTableEntry(const G3MatTableEntry& right);
virtual ~G3MatTableEntry();
// operators
const G3MatTableEntry& operator=(const G3MatTableEntry& right);
G4int operator==(const G3MatTableEntry& right) const;
G4int operator!=(const G3MatTableEntry& right) const;
// get methods
G4int GetID() const;
G4Material* GetMaterial() const;
private:
// data members
G4int fID;
G4Material* fMaterial;
};
// inline methods
inline G4int G3MatTableEntry::GetID() const
{ return fID; }
inline G4Material* G3MatTableEntry::GetMaterial() const
{ return fMaterial; }
#endif //G3_MAT_TABLE_ENTRY_H
+32 -18
View File
@@ -1,32 +1,46 @@
#ifndef _G3MEDTABLE_
#define _G3MEDTABLE_ 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3MedTable.hh,v 1.3 1999/05/06 18:01:50 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3MedTable.hh,v 1.6 1999/12/05 17:50:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Maps G3 tracking media indices to G4Material*
// by I.Hrivnacova, 27 Sep 99
#include <rw/tpordvec.h>
#ifndef G3_MED_TABLE_H
#define G3_MED_TABLE_H
#include "G3MedTableEntry.hh"
#include "globals.hh"
#include "g4rw/tpordvec.h"
class G4Material;
class G4MagneticField;
class G4UserLimits;
class G3MedTable {
private:
RWTPtrOrderedVector<G4Material>* _Med;
public:
G3MedTable();
~G3MedTable();
G4Material* get(G4int medid);
void put(G4int medid, G4Material* matpt);
typedef G4RWTPtrOrderedVector<G3MedTableEntry> G3MediumVector;
class G3MedTable
{
public:
G3MedTable();
virtual ~G3MedTable();
// methods
G3MedTableEntry* get(G4int id) const;
void put(G4int id, G4Material* material, G4MagneticField* field,
G4UserLimits* limits, G4int isvol);
void Clear();
private:
G3MediumVector* fMedVector;
};
extern G3MedTable G3Med;
#endif
#endif //G3_MED_TABLE_H
+88
View File
@@ -0,0 +1,88 @@
// 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: G3MedTableEntry.hh,v 1.2 1999/12/05 17:50:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// by I.Hrivnacova, 27 Sep 99
#ifndef G3_MED_TABLE_ENTRY_H
#define G3_MED_TABLE_ENTRY_H
#include "globals.hh"
class G4Material;
class G4MagneticField;
class G4UserLimits;
class G3MedTableEntry
{
public:
G3MedTableEntry(G4int id, G4Material* material, G4MagneticField* field,
G4UserLimits* limits, G4int isvol);
G3MedTableEntry(const G3MedTableEntry& right);
virtual ~G3MedTableEntry();
// operators
const G3MedTableEntry& operator=(const G3MedTableEntry& right);
G4int operator==(const G3MedTableEntry& right) const;
G4int operator!=(const G3MedTableEntry& right) const;
// set methods
void SetMaterial(G4Material* material);
void SetField(G4MagneticField* field);
void SetLimits(G4UserLimits* limits);
void SetISVOL(G4int isvol);
// get methods
G4int GetID() const;
G4Material* GetMaterial() const;
G4MagneticField* GetField() const;
G4UserLimits* GetLimits() const;
G4int GetISVOL() const;
private:
// data members
G4int fID;
G4Material* fMaterial;
G4MagneticField* fField;
G4UserLimits* fLimits;
G4int fISVOL;
//G4double deemax;
//G4double epsil;
};
// inline methods
inline void G3MedTableEntry::SetMaterial(G4Material* material)
{ fMaterial = material; }
inline void G3MedTableEntry::SetField(G4MagneticField* field)
{ fField = field; }
inline void G3MedTableEntry::SetLimits(G4UserLimits* limits)
{ fLimits = limits; }
inline void G3MedTableEntry::SetISVOL(G4int isvol)
{ fISVOL = isvol; }
inline G4int G3MedTableEntry::GetID() const
{ return fID; }
inline G4Material* G3MedTableEntry::GetMaterial() const
{ return fMaterial; }
inline G4MagneticField* G3MedTableEntry::GetField() const
{ return fField; }
inline G4UserLimits* G3MedTableEntry::GetLimits() const
{ return fLimits; }
inline G4int G3MedTableEntry::GetISVOL() const
{ return fISVOL; }
#endif //G3_MAT_TABLE_ENTRY_H
+10 -9
View File
@@ -1,31 +1,32 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3PartTable.hh,v 1.2 1999/05/18 03:49:01 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3PartTable.hh,v 1.4 1999/12/05 17:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// 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.
#include <rw/tphdict.h>
#include "g4std/map"
#include "G4ParticleDefinition.hh"
class G3PartTable {
private:
RWTPtrHashDictionary<G4String, G4ParticleDefinition>* _PTD;
G4std::map<G4String, G4ParticleDefinition*, less<G4String> > PTD;
void HashID(G4int partid, G4String* _HID);
void HashID(G4int partid, G4String& _HID);
public:
G3PartTable();
~G3PartTable();
G4ParticleDefinition* get(G4int partid);
void put(G4int partid, G4ParticleDefinition* partpt);
G3PartTable();
virtual ~G3PartTable();
G4ParticleDefinition* Get(G4int partid);
void Put(G4int partid, G4ParticleDefinition* partpt);
void PrintAll();
};
extern G3PartTable G3Part;
+15 -8
View File
@@ -1,30 +1,37 @@
// 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: G3Pos.hh,v 1.6 1999/12/05 17:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// modified by I.Hrivnacova, 13.10.99
#ifndef _G3POS_
#define _G3POS_ 1
#include "G4ThreeVector.hh"
class VolTableEntry;
class G3Pos{
private:
VolTableEntry* _VTE;
G4String _MotherName;
G4int _Copy;
G4String _LV;
G4ThreeVector* _Position;
G4int _Irot;
G4String _Only;
public:
G3Pos(){;}
G3Pos(G4String& LV, G4int C, G4ThreeVector* T, G4int R, G4String& O);
G3Pos(G4String M, G4int C, G4ThreeVector* T, G4int R, G4String O);
G4bool operator == (const G3Pos& g3p) const;
virtual ~G3Pos();
VolTableEntry* GetVTE();
G4String& GetName();
G4String& GetMotherName();
G4int GetIrot();
+34 -21
View File
@@ -1,33 +1,46 @@
#ifndef _G3ROTTABLE_
#define _G3ROTTABLE_ 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3RotTable.hh,v 1.5 1999/05/26 03:46:29 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3RotTable.hh,v 1.9 1999/12/05 17:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// 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.
// by I.Hrivnacova, 27 Sep 99
#include <rw/tpordvec.h>
#include "G3toG4RotationMatrix.hh"
#ifndef G3_ROT_TABLE_H
#define G3_ROT_TABLE_H
class G3RotTable {
private:
RWTPtrOrderedVector<G3toG4RotationMatrix>* _Rot;
public:
G3RotTable();
~G3RotTable();
G3toG4RotationMatrix* Get(G4int rotid);
void Put(G4int rotid, G3toG4RotationMatrix* rotpt);
#include "G3RotTableEntry.hh"
#include "globals.hh"
#include "g4rw/tpordvec.h"
class G4Material;
typedef G4RWTPtrOrderedVector<G3RotTableEntry> G3RotMatrixVector;
class G3RotTable
{
public:
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;
};
extern G3RotTable G3Rot;
#endif
#endif //G3_ROT_TABLE_H
+51
View File
@@ -0,0 +1,51 @@
// 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: G3RotTableEntry.hh,v 1.2 1999/12/05 17:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// by I.Hrivnacova, 27 Sep 99
#ifndef G3_ROT_TABLE_ENTRY_H
#define G3_ROT_TABLE_ENTRY_H
#include "globals.hh"
#include "G4RotationMatrix.hh"
class G3toG4RotationMatrix;
class G3RotTableEntry
{
public:
G3RotTableEntry(G4int id, G4RotationMatrix* matrix);
G3RotTableEntry(const G3RotTableEntry& right);
virtual ~G3RotTableEntry();
// operators
const G3RotTableEntry& operator=(const G3RotTableEntry& right);
G4int operator==(const G3RotTableEntry& right) const;
G4int operator!=(const G3RotTableEntry& right) const;
// get methods
G4int GetID() const;
G4RotationMatrix* GetMatrix() const;
private:
// data members
G4int fID;
G4RotationMatrix* fMatrix;
};
// inline methods
inline G4int G3RotTableEntry::GetID() const
{ return fID; }
inline G4RotationMatrix* G3RotTableEntry::GetMatrix() const
{ return fMatrix; }
#endif //G3_ROT_TABLE_ENTRY_H
+21
View File
@@ -0,0 +1,21 @@
// 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: G3SensVolVector.hh,v 1.2 1999/12/05 17:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// vector of logical volumes that were defined with
// tracking medium with ISVOL=1
//
// by I.Hrivnacova, 27 Sep 99
#include "g4rw/tpordvec.h"
#include "G4LogicalVolume.hh"
typedef G4RWTPtrOrderedVector<G4LogicalVolume> G3SensVolVector;
extern G3SensVolVector G3SensVol;
+20 -11
View File
@@ -1,8 +1,20 @@
// 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: G3VolTable.hh,v 1.11 1999/12/05 17:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// modified by I.Hrivnacova, 13.10.99
#ifndef _G3VOLTABLE_
#define _G3VOLTABLE_ 1
#include <rw/tphdict.h>
#include "VolTableEntry.hh"
#include "g4std/map"
#include "G3VolTableEntry.hh"
class G4LogicalVolume;
class G4Material;
@@ -10,22 +22,19 @@ class G4VSolid;
class G3VolTable{
private:
VolTableEntry* G3toG4TopVTE;
G3VolTableEntry* G3toG4TopVTE;
G4String _FirstKey;
VolTableEntry* _VTE;
RWTPtrHashDictionary <G4String, VolTableEntry>* _VTD;
G4int _NVTE;
G4std::map<G4String, G3VolTableEntry*, less<G4String> > VTD;
G4int _NG3Pos;
public:
VolTableEntry* PutVTE(VolTableEntry* aVTE);
RWTPtrHashDictionary <G4String, VolTableEntry>* GetVTD() ;
VolTableEntry* GetVTE(const G4String& Vname);
void ListVTE();
G3VolTableEntry* PutVTE(G3VolTableEntry* aVTE);
G3VolTableEntry* GetVTE(const G4String& Vname);
void PrintAll();
G3VolTable();
virtual ~G3VolTable();
G4LogicalVolume* GetG3toG4Mother();
VolTableEntry* GetFirstVTE();
G3VolTableEntry* GetFirstVTE();
void SetFirstVTE();
void VTEStat();
void CountG3Pos();
+103
View File
@@ -0,0 +1,103 @@
// 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: G3VolTableEntry.hh,v 1.2 1999/12/05 17:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// by I.Hrivnacova, 13.10.99
#ifndef G3_VOL_TABLE_ENTRY_H
#define G3_VOL_TABLE_ENTRY_H
#include "globals.hh"
#include "G3Pos.hh"
#include "G3Division.hh"
#include "g4rw/tpordvec.h"
class G4LogicalVolume;
class G4Material;
class G4VSolid;
class G3VolTableEntry {
public:
G3VolTableEntry(G4String& vname, G4String& shape, G4double* rpar,
G4int npar, G4int nmed, G4VSolid* solid,
G4bool hasNegPars);
virtual ~G3VolTableEntry();
// operators
G4bool operator == ( const G3VolTableEntry& vte) const;
// methods
void AddG3Pos(G3Pos* aG3Pos);
void AddDaughter(G3VolTableEntry* aDaughter);
void AddMother(G3VolTableEntry* aDaughter);
void AddClone(G3VolTableEntry* aDaughter);
void ReplaceDaughter(G3VolTableEntry* vteOld, G3VolTableEntry* vteNew);
void ReplaceMother(G3VolTableEntry* vteOld, G3VolTableEntry* vteNew);
G3VolTableEntry* FindDaughter(const G4String& vname);
G3VolTableEntry* FindMother(const G4String& vname);
G3VolTableEntry* FindClone(const G4String& vname);
void PrintSolidInfo();
// set methods
void SetName(G4String name);
void SetLV(G4LogicalVolume* lv);
void SetSolid(G4VSolid* solid);
void SetNmed(G4int nmed);
void SetNRpar(G4int npar, G4double* Rpar);
void SetDivision(G3Division* division);
void SetHasNegPars(G4bool hasNegPars);
// get methods
G4String GetName();
G4String GetShape();
G4int GetNmed();
G4int GetNpar();
G4double* GetRpar();
G4int NPCopies();
G3Pos* GetG3PosCopy(G4int copy=0);
G3Division* GetDivision();
G4bool HasNegPars();
G4VSolid* GetSolid();
G4LogicalVolume* GetLV();
G4int GetNoDaughters();
G4int GetNoMothers();
G4int GetNoClones();
G3VolTableEntry* GetDaughter(G4int i);
G3VolTableEntry* GetMother(G4int i);
G3VolTableEntry* GetMother();
// return the first mother - to be removed
G3VolTableEntry* GetClone(G4int i);
G3VolTableEntry* GetMasterClone();
private:
G4String fVname;
G4String fShape;
G4double* fRpar;
G4int fNpar;
G4int fNmed;
G4VSolid* fSolid;
G4LogicalVolume* fLV;
G4bool fHasNegPars;
G4RWTPtrOrderedVector<G3VolTableEntry> fDaughters;
G4RWTPtrOrderedVector<G3VolTableEntry> fMothers;
G4RWTPtrOrderedVector<G3VolTableEntry> fClones;
G4RWTPtrOrderedVector<G3Pos> fG3Pos;
G3Division* fDivision;
};
// inline methods
inline void G3VolTableEntry::SetDivision(G3Division* division)
{ fDivision = division; }
inline G3Division* G3VolTableEntry::GetDivision()
{ return fDivision; }
#endif //G3_VOL_TABLE_ENTRY_H
+11 -6
View File
@@ -1,25 +1,29 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3toG4.hh,v 1.2 1999/05/15 00:16:53 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G3toG4.hh,v 1.4 1999/12/05 17:50:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// modified by I.Hrivnacova, 27 Sep 99
#ifndef _G3TOG4_
#define _G3TOG4_
#include "globals.hh"
const char gSeparator('_');
extern G4int Ipar[1000];
extern G4double Rpar[1000];
extern RWCString Spar[1000];
extern G4String Spar[1000];
//extern G4double min(G4double, G4double);
void G3fillParams(RWCString *tokens, char *ptypes);
void G3fillParams(G4String *tokens, char *ptypes);
// G4bool G3NegVolPars(G4double pars[], G4int* np, G4String vol, G4String moth,
// char* routine);
@@ -40,7 +44,8 @@ void G3fillParams(RWCString *tokens, char *ptypes);
#define PTgsdvn2 "ssiiri"
#define PTgsdvt2 "ssririi"
#define PTgsmate "isrrrriR"
#define PTgsmixt "isriRRR"
//#define PTgsmixt "isriRRR"
#define PTgsmixt "isriQ"
#define PTgstmed "isiiirrrrrriR"
#define PTgstpar "isr"
#define PTgspart "isirrriR"
+3 -3
View File
@@ -1,12 +1,12 @@
* This code implementation is the intellectual property of
* the RD44 GEANT4 collaboration.
* 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: G3toG4.inc,v 1.1 1999/01/07 16:06:44 gunter Exp $
* GEANT4 tag $Name: geant4-00-01 $
* $Id: G3toG4.inc,v 1.2 1999/12/05 17:50:04 gcosmo Exp $
* GEANT4 tag $Name: geant4-01-00 $
*
integer maxlines
parameter (maxlines = 750) ! max no. of cmd lines per C++ source file
+17 -2
View File
@@ -1,5 +1,20 @@
// 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: G3toG4BuildTree.hh,v 1.3 1999/12/05 17:50:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// modified by I.Hrivnacova, 13.10.99
#ifndef _G3TOG4BUILDTREE_
#define _G3TOG4BUILDTREE_ 1
#include "VolTableEntry.hh"
void G3toG4BuildTree(VolTableEntry* MotherVTE);
#include "G3VolTableEntry.hh"
void G3toG4BuildTree(G3VolTableEntry* curVTE, G3VolTableEntry* motherVTE);
#endif
+10
View File
@@ -1,3 +1,13 @@
// 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: G3toG4MakeSolid.hh,v 1.3 1999/12/05 17:50:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef _G3TOG4MAKESOLID_
#define _G3TOG4MAKESOLID_ 1
G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
@@ -1,11 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G3toG4RotationMatrix.hh,v 1.1 1999/01/07 16:06:44 gunter Exp $
// $Id: G3toG4RotationMatrix.hh,v 1.2 1999/12/05 17:50:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef _G3toG4ROTATION_
#define _G3toG4ROTATION_
-11
View File
@@ -1,11 +0,0 @@
#ifndef _G4MAKEVOL_
#define _G4MAKEVOL_ 1
void
G4makevol(G4String& vname, G4String& shape, G4int nmed,
G4double* Rpar, G4int npar);
#endif
-82
View File
@@ -1,82 +0,0 @@
#ifndef _VOLTABLEENTRY_
#define _VOLTABLEENTRY_ 1
#include <rw/tphdict.h>
#include <rw/tpordvec.h>
#include "G4ThreeVector.hh"
#include "G3Pos.hh"
class G4LogicalVolume;
class G4Material;
class G4VSolid;
class VolTableEntry {
private:
G4int _Nmed;
G4String _Vname;
G4String _Shape;
G4double* _Rpar;
G4int _Npar;
G4Material* _Mat;
G4VSolid* _Solid;
G4LogicalVolume* _LV;
G4bool _Deferred;
G4bool _NegVolPars;
G4bool _OKAxis[3];
G4int _DivisionAxis;
VolTableEntry* _Mother;
RWTPtrOrderedVector <VolTableEntry> _Daughters; // VolTableEntry Daughters
RWTPtrOrderedVector <G3Pos> _G3Pos; // associated G3Pos objects
public:
VolTableEntry(G4String& v, G4String& sh, G4double* R,
G4int n, G4int nmed, G4Material* m,
G4VSolid* so, G4bool Deferred,
G4bool NegVolPars, G4bool* OKAxis);
virtual ~VolTableEntry();
void SetLV(G4LogicalVolume* ll);
G4String GetName();
G4VSolid* GetSolid();
void AddG3Pos(G3Pos* aG3Pos);
G4int NPCopies();
G3Pos* GetG3PosCopy(G4int copy=0);
G4bool HasNegVolPars();
G4bool HasDeferred();
G4String GetShape();
G4double* GetRpar();
G4int GetNpar();
G4Material* GetMaterial();
G4LogicalVolume* GetLV();
G4int GetNmed();
void AddDaughter(VolTableEntry* aDaughter);
G4int GetNoDaughters();
VolTableEntry* GetDaughter(G4int i);
VolTableEntry* GetMother();
void AddMother(VolTableEntry* itsMother);
VolTableEntry* FindDaughter(const G4String& vname);
G4bool operator == ( const VolTableEntry& vte) const;
};
#endif
+3 -3
View File
@@ -1,12 +1,12 @@
* This code implementation is the intellectual property of
* the RD44 GEANT4 collaboration.
* 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: gcbank.inc,v 1.1 1999/01/07 16:06:45 gunter Exp $
* GEANT4 tag $Name: geant4-00-01 $
* $Id: gcbank.inc,v 1.2 1999/12/05 17:50:05 gcosmo Exp $
* GEANT4 tag $Name: geant4-01-00 $
*
INTEGER IQ,LQ,NZEBRA,IXSTOR,IXDIV,IXCONS,LMAIN,LR1,JCG
INTEGER KWBANK,KWWORK,IWS