Import Geant4 1.0.0 source tree
This commit is contained in:
@@ -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
|
||||
//
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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_
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#ifndef _G4MAKEVOL_
|
||||
#define _G4MAKEVOL_ 1
|
||||
|
||||
void
|
||||
G4makevol(G4String& vname, G4String& shape, G4int nmed,
|
||||
G4double* Rpar, G4int npar);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user