Import Geant4 0.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:09:25 +02:00
parent b97f8d0df7
commit aaa409b6ee
2922 changed files with 55107 additions and 81674 deletions
+2 -2
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3CalcParams.hh,v 2.3 1998/10/05 15:26:05 lockman Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3CalcParams.hh,v 1.1 1999/01/07 16:06:42 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
// class G3CalcParams
//
+28 -15
View File
@@ -5,37 +5,50 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3DetTable.hh,v 2.1 1998/07/12 02:54:11 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3DetTable.hh,v 1.2 1999/05/07 04:15:57 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
// 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/gdlist.h>
#include <rw/tphdict.h>
#include "globals.hh"
class G4VSensitiveDetector;
struct DetTableEntry {
G4String name;
G4int detid;
G4VSensitiveDetector* detpt;
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();
};
declare (RWGDlist, DetTableEntry)
class G3DetTable {
private:
RWGDlist(DetTableEntry) DetT;
RWGDlist(DetTableEntry)* DetTable;
RWTPtrHashDictionary<G4String, DetTableEntry>* _Det;
G4String MakeHash(G4String& set, G4String& det);
DetTableEntry* _DTE;
public:
G3DetTable();
~G3DetTable();
G4VSensitiveDetector* get(G4String name);
G4int GetID(G4String name);
void put(G4String name, G4int detid, G4VSensitiveDetector* detpt);
G3DetTable();
~G3DetTable();
G4VSensitiveDetector* getSD(G4String& set, G4String& det);
G4int GetID(G4String& set, G4String& det);
void put(G4String& set, G4String& det, G4int id, G4VSensitiveDetector* D);
};
extern G3DetTable G3Det;
+37
View File
@@ -0,0 +1,37 @@
#ifndef _G4ELETABLE_
#define _G4ELETABLE_ 1
// This code implementation is the intellectual property of
// the RD44 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 $
//
#include <rw/ctoken.h>
#include <rw/tpordvec.h>
#include "globals.hh"
#include "G4Element.hh"
class G3EleTable{
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;
};
extern G3EleTable G3Ele;
#endif
+8 -7
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3G4Interface.hh,v 2.1 1998/07/12 02:54:11 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3G4Interface.hh,v 1.4 1999/05/26 03:46:16 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
// Interfaces for G3 equivalent routines
@@ -18,12 +18,13 @@ class G4LogicalVolume;
void G4gsvolu(G4String name, G4String shape, G4int nmed, G4double* par,
G4int npar);
void G4gspos(G4String name, G4int num, G4String moth, G4double x,
G4double y, G4double z, G4int irot, G4String only);
void G4gspos(G4String& name, G4int num, G4String& moth,
G4double x, G4double y, G4double z, G4int irot,
G4String& only);
void G4gsposp(G4String name, G4int num, G4String moth, G4double x,
G4double y, G4double z, G4int irot, G4String only,
G4double* Rpar, G4int npar);
void G4gsposp(G4String& name, G4int num, G4String& moth,
G4double x, G4double y, G4double z, G4int irot,
G4String& only, G4double* Rpar, G4int npar);
void G4gsrotm(G4int irot, G4double theta1, G4double phi1,
G4double theta2, G4double phi2, G4double theta3, G4double phi3);
+13 -18
View File
@@ -1,3 +1,6 @@
#ifndef _G3MATTABLE_
#define _G3MATTABLE_ 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
@@ -5,34 +8,26 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3MatTable.hh,v 2.1 1998/07/12 02:54:12 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3MatTable.hh,v 1.3 1999/05/06 17:46:37 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
// 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/gdlist.h>
#include <rw/tpordvec.h>
#include "globals.hh"
#include "G4Material.hh"
struct MatTableEntry {
G4int matid;
G4Material* matpt;
};
declare (RWGDlist, MatTableEntry)
class G4Material;
class G3MatTable {
private:
RWGDlist(MatTableEntry) MatT;
RWGDlist(MatTableEntry)* MatTable;
RWTPtrOrderedVector<G4Material>* _Mat;
public:
G3MatTable();
~G3MatTable();
G4Material* get(G4int matid);
void put(G4int* matid, G4Material* matpt);
G3MatTable();
~G3MatTable();
G4Material* get(G4int matid);
void put(G4int matid, G4Material* matpt);
};
extern G3MatTable G3Mat;
#endif
+14 -32
View File
@@ -1,3 +1,6 @@
#ifndef _G3MEDTABLE_
#define _G3MEDTABLE_ 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
@@ -5,46 +8,25 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3MedTable.hh,v 2.1 1998/07/12 02:54:13 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3MedTable.hh,v 1.3 1999/05/06 18:01:50 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
// 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.
// Maps G3 tracking media indices to G4Material*
#include <rw/gdlist.h>
#include <rw/tpordvec.h>
#include "globals.hh"
#include "G4Material.hh"
class G4MagneticField;
class G4UserLimits;
struct MedTableEntry {
G4int medid;
G4Material* matpt;
G4MagneticField* magpt;
G4UserLimits* limpt;
G4int isvol;
G4double deemax;
G4double epsil;
};
declare (RWGDlist, MedTableEntry)
class G4Material;
class G3MedTable {
private:
RWGDlist(MedTableEntry) MedT;
RWGDlist(MedTableEntry)* MedTable;
RWTPtrOrderedVector<G4Material>* _Med;
public:
G3MedTable();
~G3MedTable();
G4Material* GetMat(G4int medid); // get associated material
G4MagneticField* GetMag(G4int medid);
G4UserLimits* GetLim(G4int medid);
void put(G4int medid, G4Material* matpt, G4MagneticField* field,
G4UserLimits* limits, G4int isvol,
G4double deemax, G4double epsil);
G3MedTable();
~G3MedTable();
G4Material* get(G4int medid);
void put(G4int medid, G4Material* matpt);
};
extern G3MedTable G3Med;
#endif
+7 -14
View File
@@ -5,34 +5,27 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3PartTable.hh,v 2.1 1998/07/12 02:54:13 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3PartTable.hh,v 1.2 1999/05/18 03:49:01 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
// 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/gdlist.h>
#include "globals.hh"
#include <rw/tphdict.h>
#include "G4ParticleDefinition.hh"
struct PartTableEntry {
G4int partid;
G4ParticleDefinition* partpt;
};
declare (RWGDlist, PartTableEntry)
class G3PartTable {
private:
RWGDlist(PartTableEntry) PartT;
RWGDlist(PartTableEntry)* PartTable;
RWTPtrHashDictionary<G4String, G4ParticleDefinition>* _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);
void put(G4int partid, G4ParticleDefinition* partpt);
};
extern G3PartTable G3Part;
+36
View File
@@ -0,0 +1,36 @@
#ifndef _G3POS_
#define _G3POS_ 1
#include "G4ThreeVector.hh"
class VolTableEntry;
class G3Pos{
private:
VolTableEntry* _VTE;
G4int _Copy;
G4String _LV;
G4ThreeVector* _Position;
G4int _Irot;
G4String _Only;
public:
G3Pos(){;}
G3Pos(G4String& LV, G4int C, G4ThreeVector* T, G4int R, G4String& O);
G4bool operator == (const G3Pos& g3p) const;
virtual ~G3Pos();
VolTableEntry* GetVTE();
G4String& GetName();
G4int GetIrot();
G4ThreeVector* GetPos();
G4int GetCopy();
};
#endif
+13 -18
View File
@@ -1,3 +1,6 @@
#ifndef _G3ROTTABLE_
#define _G3ROTTABLE_ 1
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
@@ -5,34 +8,26 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3RotTable.hh,v 2.1 1998/07/12 02:54:14 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3RotTable.hh,v 1.5 1999/05/26 03:46:29 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
// 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/gdlist.h>
#include "globals.hh"
#include "G4RotationMatrix.hh"
struct RotTableEntry {
G4int rotid;
G4RotationMatrix* rotpt;
};
declare (RWGDlist, RotTableEntry)
#include <rw/tpordvec.h>
#include "G3toG4RotationMatrix.hh"
class G3RotTable {
private:
RWGDlist(RotTableEntry) RotT;
RWGDlist(RotTableEntry)* RotTable;
RWTPtrOrderedVector<G3toG4RotationMatrix>* _Rot;
public:
G3RotTable();
~G3RotTable();
G4RotationMatrix* get(G4int rotid);
void put(G4int* rotid, G4RotationMatrix* rotpt);
G3RotTable();
~G3RotTable();
G3toG4RotationMatrix* Get(G4int rotid);
void Put(G4int rotid, G3toG4RotationMatrix* rotpt);
};
extern G3RotTable G3Rot;
#endif
+38 -92
View File
@@ -1,100 +1,46 @@
// This code implementation is the intellectual property of
// the RD44 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 2.1 1998/07/12 02:54:15 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// G3 logical volume table.
// Maps G3 logical volume names to their G4 logical volume object
// counterparts.
// Maintains a linked List of G3 volume names//G4 logical volume pointer
// pairs.
#ifndef _G3VOLTABLE_
#define _G3VOLTABLE_ 1
#include <rw/gdlist.h>
#include <rw/tpordvec.h>
#include <rw/tphdict.h>
#include "VolTableEntry.hh"
#include "globals.hh"
#include "geomdefs.hh"
#include "G4VSolid.hh"
#include "G4LogicalVolume.hh"
class G4LogicalVolume;
class G4Material;
class G4VSolid;
struct VolTableEntry {
G4String vname;
G4VSolid* solid;
G4LogicalVolume* lvpt;
G4VPhysicalVolume* pvpt;
G4double rangehi[3]; // ranges
G4double rangelo[3]; // ranges
EAxis *axiscode; // axis codes
G4int tmed;
G4String shape;
G4double* par;
G4int npar;
G4int count; // number of instantiations for vols indexed due to -ve pars
RWTPtrOrderedVector<G4LogicalVolume> lVols; // vector of instantiated volumes
RWTPtrOrderedVector<G4VPhysicalVolume> pVols; // vector of instantiated phys volumes
};
declare (RWGDlist, VolTableEntry)
class G3VolTable {
class G3VolTable{
private:
RWGDlist(VolTableEntry) VolT;
RWGDlist(VolTableEntry)* VolTable;
VolTableEntry* curEntry;
G4int ScanTmed;
G4int nEntry;
EAxis Rect[3];
EAxis Polar[3];
static G4VPhysicalVolume* mothPV; // mother of all mothers
static G4LogicalVolume* mothLV; // mother of all mothers logical volume
RWTPtrOrderedVector<G4VPhysicalVolume>* pVolsPtr;
VolTableEntry* G3toG4TopVTE;
G4String _FirstKey;
VolTableEntry* _VTE;
RWTPtrHashDictionary <G4String, VolTableEntry>* _VTD;
G4int _NVTE;
G4int _NG3Pos;
public:
G3VolTable();
~G3VolTable();
G4LogicalVolume* GetLV();
G4LogicalVolume* GetLVx(G4String &);
G4LogicalVolume* GetLV(G4String* vname);
G4VPhysicalVolume* GetPV(); // simply return the mother of all volumes
G4VPhysicalVolume* GetPV(G4int npv); // Use pVols table of last retrieved phys vol
// FindPV : look up PV in table to use in placement; if no associated PV, use
// global mother
void FindPV(G4int* npv, G4String* vname);
// MatchPV: look up PV only
void MatchPV(G4int* npv, G4String* vname);
void GetLVPars(G4String* vname, G4int iaxis, G4double* rangehi,
G4double* rangelo, EAxis*,
G4String* shape, G4int* nmed, G4double* par[],
G4int* npar, G4VSolid* solid);
void GetLVInfo(G4String* vname, G4String* shape, G4int* nmed);
void AddConstituentLVol(G4String* vname, G4LogicalVolume* lvol);
void PutLV(G4String* vname, G4LogicalVolume* lvpt, G4int tmed,
G4double rnghi[], G4double rnglo[],
EAxis axis, G4String shape,
G4double par[], G4int npar, G4VSolid* solid);
// For case where nothing is known about the volume; it doesn't
// come from g3tog4 (eg. externally specified global mother)
void PutLV(G4String* vname, G4LogicalVolume* lvpt);
// Builds List of all physical volume instantiations of a Indexed volume implemented
// as individual logical volumes (so when daughters are added, they must be added
// to the logical volumes of all the physical volumes in this List)
void PutPV(G4String* vname, G4VPhysicalVolume* lvpt);
// For non-Indexed volumes, builds a List of one element only
void PutPV1(G4String* vname, G4VPhysicalVolume* lvpt);
void MatchTmed(G4int tmed);
G4LogicalVolume* NextTmed();
G4int GetEntryCount() { return VolTable->entries();};
void SetMother(G4VPhysicalVolume* mpv); // set mother-of-all
void SetMother(G4LogicalVolume* mlv); // set mother-of-all
void SetMother(); // set mother of all pointers to null
VolTableEntry* find(G4String* vname); // find entry from vol name
G4int Increment(G4String* vname); // Increment instantiation counter
VolTableEntry* PutVTE(VolTableEntry* aVTE);
RWTPtrHashDictionary <G4String, VolTableEntry>* GetVTD() ;
VolTableEntry* GetVTE(const G4String& Vname);
void ListVTE();
G3VolTable();
virtual ~G3VolTable();
G4LogicalVolume* GetG3toG4Mother();
VolTableEntry* GetFirstVTE();
void SetFirstVTE();
void VTEStat();
void CountG3Pos();
};
extern G3VolTable G3Vol; // logical volumes
extern G3VolTable G3Vol;
#endif
+4 -4
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3toG4.hh,v 2.0 1998/07/02 16:15:57 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3toG4.hh,v 1.2 1999/05/15 00:16:53 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
#ifndef _G3TOG4_
#define _G3TOG4_
@@ -20,8 +20,8 @@ extern RWCString Spar[1000];
//extern G4double min(G4double, G4double);
void G3fillParams(RWCString *tokens, char *ptypes);
G4bool G3NegVolPars(G4double pars[], G4int* np, G4String vol, G4String moth,
char* routine);
// G4bool G3NegVolPars(G4double pars[], G4int* np, G4String vol, G4String moth,
// char* routine);
#include "G3G4Interface.hh"
+2 -2
View File
@@ -5,8 +5,8 @@
* based on the Program) you indicate your acceptance of this statement,
* and all its terms.
*
* $Id: G3toG4.inc,v 2.1 1998/09/18 08:54:55 lockman Exp $
* GEANT4 tag $Name: geant4-00 $
* $Id: G3toG4.inc,v 1.1 1999/01/07 16:06:44 gunter Exp $
* GEANT4 tag $Name: geant4-00-01 $
*
integer maxlines
parameter (maxlines = 750) ! max no. of cmd lines per C++ source file
+5
View File
@@ -0,0 +1,5 @@
#ifndef _G3TOG4BUILDTREE_
#define _G3TOG4BUILDTREE_ 1
#include "VolTableEntry.hh"
void G3toG4BuildTree(VolTableEntry* MotherVTE);
#endif
+9
View File
@@ -0,0 +1,9 @@
#ifndef _G3TOG4MAKESOLID_
#define _G3TOG4MAKESOLID_ 1
G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
const G4double* Rpar, const G4int npar,
G4bool& NegVolPars, G4bool& Deferred,
G4bool* OKAxis);
#endif
@@ -5,7 +5,7 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3toG4RotationMatrix.hh,v 2.1 1998/11/07 04:11:44 lockman Exp $
// $Id: G3toG4RotationMatrix.hh,v 1.1 1999/01/07 16:06:44 gunter Exp $
//
#ifndef _G3toG4ROTATION_
#define _G3toG4ROTATION_
@@ -1,56 +0,0 @@
// This code implementation is the intellectual property of
// the RD44 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: G3toG4SetRotation.hh,v 2.1 1998/09/18 08:55:18 lockman Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef _G3TOG4ROTATION_
#define _G3TOG4ROTATION_
#include "G4RotationMatrix.hh"
#include "globals.hh"
class G3toG4SetRotation : public G4RotationMatrix
{
public:
G3toG4SetRotation();
G3toG4SetRotation(const G4ThreeVector& col1,
const G4ThreeVector& col2,
const G4ThreeVector& col3);
~G3toG4SetRotation(){;}
inline void Setxx(const G4double axx) {rxx = axx;
}
inline void Setxy(const G4double axy) {rxy = axy;
}
inline void Setxz(const G4double axz) {rxz = axz;
}
inline void Setyx(const G4double ayx) {ryx = ayx;
}
inline void Setyy(const G4double ayy) {ryy = ayy;
}
inline void Setyz(const G4double ayz) {ryz = ayz;
}
inline void Setzx(const G4double azx) {rzx = azx;
}
inline void Setzy(const G4double azy) {rzy = azy;
}
inline void Setzz(const G4double azz) {rzz = azz;
}
};
#endif
+11
View File
@@ -0,0 +1,11 @@
#ifndef _G4MAKEVOL_
#define _G4MAKEVOL_ 1
void
G4makevol(G4String& vname, G4String& shape, G4int nmed,
G4double* Rpar, G4int npar);
#endif
+82
View File
@@ -0,0 +1,82 @@
#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
+2 -2
View File
@@ -5,8 +5,8 @@
* based on the Program) you indicate your acceptance of this statement,
* and all its terms.
*
* $Id: gcbank.inc,v 2.0 1998/07/02 16:16:01 gunter Exp $
* GEANT4 tag $Name: geant4-00 $
* $Id: gcbank.inc,v 1.1 1999/01/07 16:06:45 gunter Exp $
* GEANT4 tag $Name: geant4-00-01 $
*
INTEGER IQ,LQ,NZEBRA,IXSTOR,IXDIV,IXCONS,LMAIN,LR1,JCG
INTEGER KWBANK,KWWORK,IWS