Import Geant4 4.0.0 source tree
This commit is contained in:
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3DetTable.cc,v 1.9.4.1 2001/06/28 19:08:03 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3DetTable.cc,v 1.10 2001/07/11 09:58:58 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G3DetTable.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3DetTableEntry.cc,v 1.3.4.1 2001/06/28 19:08:03 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3DetTableEntry.cc,v 1.4 2001/07/11 09:58:58 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G3DetTableEntry.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3Division.cc,v 1.10.2.1 2001/06/28 19:08:03 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3Division.cc,v 1.14 2001/11/21 14:25:30 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi 13.10.99
|
||||
|
||||
@@ -35,7 +35,9 @@
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
|
||||
#ifndef G3G4_NO_REFLECTION
|
||||
#include "G4ReflectionFactory.hh"
|
||||
#endif
|
||||
|
||||
G3VolTableEntry* G4CreateVTE(G4String vname, G4String shape, G4int nmed,
|
||||
G4double Rpar[], G4int npar);
|
||||
@@ -118,7 +120,7 @@ void G3Division::UpdateVTE()
|
||||
}
|
||||
}
|
||||
|
||||
G4VPhysicalVolume* G3Division::CreatePVReplica()
|
||||
void G3Division::CreatePVReplica()
|
||||
{
|
||||
G4String name = fVTE->GetName();
|
||||
G4LogicalVolume* lv = fVTE->GetLV();
|
||||
@@ -137,16 +139,20 @@ G4VPhysicalVolume* G3Division::CreatePVReplica()
|
||||
if (position.y()!=0.)
|
||||
position.setX(position.y()*((G4Para*)lv->GetSolid())->GetTanAlpha());
|
||||
|
||||
#ifndef G3G4_NO_REFLECTION
|
||||
G4ReflectionFactory::Instance()
|
||||
->Place(G4Translate3D(position), name, lv, mlv, 0, i);
|
||||
|
||||
#else
|
||||
new G4PVPlacement(0, position, lv, name, mlv, 0, i);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
// no G4PVReplica was created - return 0
|
||||
return 0;
|
||||
// G4PVReplica cannot be created
|
||||
return;
|
||||
}
|
||||
|
||||
G4PVReplica* pvol
|
||||
= new G4PVReplica(name, lv, mlv, fAxis, fNofDivisions, fWidth, fOffset);
|
||||
|
||||
#ifdef G3G4DEBUG
|
||||
G4cout << "Create G4PVReplica name " << name << " logical volume name "
|
||||
<< lv->GetName() << " mother logical volme name "
|
||||
@@ -155,7 +161,14 @@ G4VPhysicalVolume* G3Division::CreatePVReplica()
|
||||
<< fOffset << G4endl;
|
||||
#endif
|
||||
|
||||
return pvol;
|
||||
#ifndef G3G4_NO_REFLECTION
|
||||
G4ReflectionFactory::Instance()
|
||||
->Replicate(name, lv, mlv, fAxis, fNofDivisions, fWidth, fOffset);
|
||||
|
||||
#else
|
||||
new G4PVReplica(name, lv, mlv, fAxis, fNofDivisions, fWidth, fOffset);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
// private methods
|
||||
@@ -306,7 +319,7 @@ void G3Division::SetRangeAndAxis()
|
||||
}
|
||||
else if ( shape == "PGON" ) {
|
||||
G4int i;
|
||||
G4int nz = int(Rpar[3]);
|
||||
G4int nz = G4int(Rpar[3]);
|
||||
|
||||
G4double pPhi1 = Rpar[0]*deg;
|
||||
G4double dPhi = Rpar[1]*deg;
|
||||
@@ -322,9 +335,9 @@ void G3Division::SetRangeAndAxis()
|
||||
|
||||
for(i=0; i<nz; i++)
|
||||
{
|
||||
int i4=3*i+4;
|
||||
int i5=i4+1;
|
||||
int i6=i4+2;
|
||||
G4int i4=3*i+4;
|
||||
G4int i5=i4+1;
|
||||
G4int i6=i4+2;
|
||||
|
||||
DzArray[i] = Rpar[i4]*cm;
|
||||
Rmin[i] = Rpar[i5]*cm;
|
||||
@@ -355,7 +368,7 @@ void G3Division::SetRangeAndAxis()
|
||||
G4int i;
|
||||
G4double pPhi1 = Rpar[0]*deg;
|
||||
G4double dPhi = Rpar[1]*deg;
|
||||
G4int nz = int(Rpar[2]);
|
||||
G4int nz = G4int(Rpar[2]);
|
||||
|
||||
G4double *DzArray = new G4double[nz];
|
||||
G4double *Rmax = new G4double[nz];
|
||||
@@ -368,9 +381,9 @@ void G3Division::SetRangeAndAxis()
|
||||
rangelo[2] = kInfinity ;
|
||||
|
||||
for(i=0; i<nz; i++){
|
||||
int i4=3*i+3;
|
||||
int i5=i4+1;
|
||||
int i6=i4+2;
|
||||
G4int i4=3*i+3;
|
||||
G4int i5=i4+1;
|
||||
G4int i6=i4+2;
|
||||
|
||||
DzArray[i] = Rpar[i4]*cm;
|
||||
Rmin[i] = Rpar[i5]*cm;
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3EleTable.cc,v 1.9.4.1 2001/06/28 19:08:03 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3EleTable.cc,v 1.11 2001/07/16 15:38:20 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
|
||||
#include "G4strstreambuf.hh"
|
||||
@@ -57,9 +57,9 @@ G3EleTable::GetEle(G4double Z){
|
||||
return _Ele[index];
|
||||
}
|
||||
|
||||
int
|
||||
G4int
|
||||
G3EleTable::parse(G4double& Z, char* name, char* sym, G4double& A){
|
||||
int rc = 0;
|
||||
G4int rc = 0;
|
||||
if (Z>0 && Z <=_MaxEle){
|
||||
G4int z = (G4int) Z-1;
|
||||
G4std::istrstream in(_EleNames[z]);
|
||||
@@ -72,7 +72,7 @@ G3EleTable::parse(G4double& Z, char* name, char* sym, G4double& A){
|
||||
|
||||
void
|
||||
G3EleTable::LoadUp(){
|
||||
int i=0;
|
||||
G4int i=0;
|
||||
_EleNames[i]=(char *)"Hydrogen H 1.00794"; i++;
|
||||
_EleNames[i]=(char *)"Helium He 4.0026"; i++;
|
||||
_EleNames[i]=(char *)"Lithium Li 6.941"; i++;
|
||||
@@ -194,7 +194,7 @@ G3EleTable::LoadUp(){
|
||||
_EleNames[i]=(char *)"Meitnerium Mt 266.1378"; i++;
|
||||
|
||||
// initialize element pointers to 0
|
||||
for (int j=0; j<i; j++) {
|
||||
for (G4int j=0; j<i; j++) {
|
||||
_Ele[j]=0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3MatTable.cc,v 1.13.2.1 2001/06/28 19:08:03 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3MatTable.cc,v 1.15 2001/07/16 15:38:20 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -35,13 +35,13 @@ G3MatTable::G3MatTable()
|
||||
|
||||
G3MatTable::~G3MatTable()
|
||||
{
|
||||
fMatVector->clearAndDestroy();
|
||||
Clear();
|
||||
delete fMatVector;
|
||||
}
|
||||
|
||||
G4Material* G3MatTable::get(G4int id) const
|
||||
{
|
||||
for (size_t i=0; i< fMatVector->entries(); i++) {
|
||||
for (size_t i=0; i< fMatVector->size(); i++) {
|
||||
G3MatTableEntry* mte = (*fMatVector)[i];
|
||||
if (id == mte->GetID()) return mte->GetMaterial();
|
||||
}
|
||||
@@ -51,10 +51,22 @@ G4Material* G3MatTable::get(G4int id) const
|
||||
void G3MatTable::put(G4int id, G4Material* material)
|
||||
{
|
||||
G3MatTableEntry* mte = new G3MatTableEntry(id, material);
|
||||
fMatVector->insert(mte);
|
||||
fMatVector->push_back(mte);
|
||||
}
|
||||
|
||||
void G3MatTable::Clear()
|
||||
{
|
||||
fMatVector->clearAndDestroy();
|
||||
G3MatTableEntry* a;
|
||||
while (fMatVector->size()>0) {
|
||||
a = fMatVector->back();
|
||||
fMatVector->pop_back();
|
||||
for (G3MaterialVector::iterator i=fMatVector->begin();
|
||||
i!=fMatVector->end(); i++){
|
||||
if (*i==a) {
|
||||
fMatVector->erase(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
if ( a ) delete a;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3MatTableEntry.cc,v 1.2.8.1 2001/06/28 19:08:03 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3MatTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3MedTable.cc,v 1.11.2.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3MedTable.cc,v 1.13 2001/07/16 15:38:20 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -35,13 +35,13 @@ G3MedTable::G3MedTable()
|
||||
|
||||
G3MedTable::~G3MedTable()
|
||||
{
|
||||
fMedVector->clearAndDestroy();
|
||||
Clear();
|
||||
delete fMedVector;
|
||||
}
|
||||
|
||||
G3MedTableEntry* G3MedTable::get(G4int id) const
|
||||
{
|
||||
for (size_t i=0; i< fMedVector->entries(); i++) {
|
||||
for (size_t i=0; i< fMedVector->size(); i++) {
|
||||
G3MedTableEntry* mte = (*fMedVector)[i];
|
||||
if (id == mte->GetID()) return mte;
|
||||
}
|
||||
@@ -53,10 +53,22 @@ void G3MedTable::put(G4int id, G4Material* material, G4MagneticField* field,
|
||||
{
|
||||
G3MedTableEntry* mte
|
||||
= new G3MedTableEntry(id, material, field, limits, isvol);
|
||||
fMedVector->insert(mte);
|
||||
fMedVector->push_back(mte);
|
||||
}
|
||||
|
||||
void G3MedTable::Clear()
|
||||
{
|
||||
fMedVector->clearAndDestroy();
|
||||
G3MedTableEntry* a;
|
||||
while (fMedVector->size()>0) {
|
||||
a = fMedVector->back();
|
||||
fMedVector->pop_back();
|
||||
for (G3MediumVector::iterator i=fMedVector->begin();
|
||||
i!=fMedVector->end(); i++){
|
||||
if (*i==a) {
|
||||
fMedVector->erase(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
if ( a ) delete a;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3MedTableEntry.cc,v 1.2.8.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3MedTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3NegVolPars.cc,v 1.8.2.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3NegVolPars.cc,v 1.9 2001/07/11 09:58:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I. Hrivnacova, 13.10.99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3PartTable.cc,v 1.9.4.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3PartTable.cc,v 1.10 2001/07/11 09:58:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
|
||||
#include "g4std/strstream"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3Pos.cc,v 1.7.4.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3Pos.cc,v 1.8 2001/07/11 09:58:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3RotTable.cc,v 1.13.2.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3RotTable.cc,v 1.15 2001/07/16 15:38:21 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
@@ -36,13 +36,12 @@ G3RotTable::G3RotTable()
|
||||
G3RotTable::~G3RotTable()
|
||||
{
|
||||
fRotVector->clear();
|
||||
//fRotVector->clearAndDestroy();
|
||||
delete fRotVector;
|
||||
}
|
||||
|
||||
G4RotationMatrix* G3RotTable::Get(G4int id) const
|
||||
{
|
||||
for (size_t i=0; i<fRotVector->entries(); i++) {
|
||||
for (size_t i=0; i<fRotVector->size(); i++) {
|
||||
G3RotTableEntry* rte = (*fRotVector)[i];
|
||||
if (id == rte->GetID()) return rte->GetMatrix();
|
||||
}
|
||||
@@ -52,10 +51,22 @@ G4RotationMatrix* G3RotTable::Get(G4int id) const
|
||||
void G3RotTable::Put(G4int id, G4RotationMatrix* matrix)
|
||||
{
|
||||
G3RotTableEntry* rte = new G3RotTableEntry(id, matrix);
|
||||
fRotVector->insert(rte);
|
||||
fRotVector->push_back(rte);
|
||||
}
|
||||
|
||||
void G3RotTable::Clear()
|
||||
{
|
||||
fRotVector->clearAndDestroy();
|
||||
G3RotTableEntry* a;
|
||||
while (fRotVector->size()>0) {
|
||||
a = fRotVector->back();
|
||||
fRotVector->pop_back();
|
||||
for (G3RotMatrixVector::iterator i=fRotVector->begin();
|
||||
i!=fRotVector->end(); i++){
|
||||
if (*i==a) {
|
||||
fRotVector->erase(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
if ( a ) delete a;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3RotTableEntry.cc,v 1.2.8.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3RotTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3VolTable.cc,v 1.19.4.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3VolTable.cc,v 1.20 2001/07/11 09:58:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
|
||||
@@ -21,29 +21,32 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3VolTableEntry.cc,v 1.7.2.1 2001/06/28 19:08:04 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3VolTableEntry.cc,v 1.10 2001/11/08 16:08:00 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G3VolTableEntry.hh"
|
||||
#include "G3VolTable.hh"
|
||||
#include "G3RotTable.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4SubtractionSolid.hh"
|
||||
#include "G3Pos.hh"
|
||||
#include "G3toG4.hh"
|
||||
|
||||
G3VolTableEntry::G3VolTableEntry(G4String& vname, G4String& shape,
|
||||
G4double* rpar, G4int npar, G4int nmed,
|
||||
G4VSolid* solid, G4bool hasNegPars)
|
||||
G4double* rpar, G4int npar, G4int nmed,
|
||||
G4VSolid* solid, G4bool hasNegPars)
|
||||
: fVname(vname), fShape(shape), fRpar(0), fNpar(npar), fNmed(nmed),
|
||||
fSolid(solid), fLV(0), fHasNegPars(hasNegPars), fDivision(0)
|
||||
fSolid(solid), fLV(0), fHasNegPars(hasNegPars), fHasMANY(false),
|
||||
fDivision(0)
|
||||
{
|
||||
if (npar>0 && rpar!=0) {
|
||||
fRpar = new G4double[npar];
|
||||
for (G4int i=0; i<npar; i++) fRpar[i] = rpar[i];
|
||||
}
|
||||
fClones.insert(this);
|
||||
fClones.push_back(this);
|
||||
}
|
||||
|
||||
G3VolTableEntry::~G3VolTableEntry(){
|
||||
@@ -58,31 +61,42 @@ G3VolTableEntry::operator == ( const G3VolTableEntry& lv) const {
|
||||
|
||||
void
|
||||
G3VolTableEntry::AddG3Pos(G3Pos* aG3Pos){
|
||||
|
||||
// insert this position to the vector
|
||||
G3Vol.CountG3Pos();
|
||||
fG3Pos.insert(aG3Pos);
|
||||
fG3Pos.push_back(aG3Pos);
|
||||
|
||||
// pass MANY info
|
||||
G4String vonly = aG3Pos->GetOnly();
|
||||
if (vonly == "MANY") SetHasMANY(true);
|
||||
}
|
||||
|
||||
void
|
||||
G3VolTableEntry::AddDaughter(G3VolTableEntry* aDaughter){
|
||||
if (FindDaughter(aDaughter->GetName()) == 0) {
|
||||
fDaughters.insert(aDaughter);
|
||||
fDaughters.push_back(aDaughter);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
G3VolTableEntry::AddMother(G3VolTableEntry* itsMother){
|
||||
if (FindMother(itsMother->GetName()) == 0) {
|
||||
fMothers.insert(itsMother);
|
||||
fMothers.push_back(itsMother);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
G3VolTableEntry::AddClone(G3VolTableEntry* itsClone){
|
||||
if (FindClone(itsClone->GetName()) == 0) {
|
||||
fClones.insert(itsClone);
|
||||
fClones.push_back(itsClone);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
G3VolTableEntry::AddOverlap(G3VolTableEntry* overlap){
|
||||
fOverlaps.push_back(overlap);
|
||||
}
|
||||
|
||||
void
|
||||
G3VolTableEntry::ReplaceDaughter(G3VolTableEntry* vteOld,
|
||||
G3VolTableEntry* vteNew)
|
||||
@@ -117,7 +131,7 @@ G3VolTableEntry::ReplaceMother(G3VolTableEntry* vteOld,
|
||||
|
||||
G3VolTableEntry*
|
||||
G3VolTableEntry::FindDaughter(const G4String& Dname){
|
||||
for (int idau=0; idau<GetNoDaughters(); idau++){
|
||||
for (G4int idau=0; idau<GetNoDaughters(); idau++){
|
||||
if (GetDaughter(idau)->GetName() == Dname) return GetDaughter(idau);
|
||||
}
|
||||
return 0;
|
||||
@@ -150,6 +164,7 @@ void G3VolTableEntry::PrintSolidInfo() {
|
||||
for (G4int i=0; i<fNpar; i++) G4cout << fRpar[i] << " ";
|
||||
G4cout << G4endl;
|
||||
G4cout << "HasNegPars: " << fHasNegPars << G4endl;
|
||||
G4cout << "HasMANY: " << fHasMANY << G4endl;
|
||||
G4cout << "================================= " << G4endl;
|
||||
}
|
||||
|
||||
@@ -185,9 +200,20 @@ void G3VolTableEntry::SetHasNegPars(G4bool hasNegPars) {
|
||||
fHasNegPars = hasNegPars;
|
||||
}
|
||||
|
||||
void G3VolTableEntry::SetHasMANY(G4bool hasMANY) {
|
||||
fHasMANY = hasMANY;
|
||||
}
|
||||
|
||||
void G3VolTableEntry::ClearG3PosCopy(G4int copy) {
|
||||
if (fG3Pos.entries()>0 && copy>=0 && copy<G4int(fG3Pos.entries()))
|
||||
fG3Pos.removeAt(copy);
|
||||
if (fG3Pos.size()>0 && copy>=0 && copy<G4int(fG3Pos.size())) {
|
||||
G3Pos* tmp=0;
|
||||
G4std::vector<G3Pos*>::iterator it=fG3Pos.begin();
|
||||
for(G4int j=0;j<copy;j++) it++;
|
||||
if(it!=fG3Pos.end()) {
|
||||
tmp = fG3Pos[copy];
|
||||
fG3Pos.erase(it);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void G3VolTableEntry::ClearDivision() {
|
||||
@@ -222,12 +248,12 @@ G3VolTableEntry::GetRpar() {
|
||||
|
||||
G4int
|
||||
G3VolTableEntry::NPCopies() {
|
||||
return fG3Pos.entries();
|
||||
return fG3Pos.size();
|
||||
}
|
||||
|
||||
G3Pos*
|
||||
G3VolTableEntry::GetG3PosCopy(G4int copy) {
|
||||
if (fG3Pos.entries()>0 && copy>=0)
|
||||
if (fG3Pos.size()>0 && copy>=0)
|
||||
return fG3Pos[copy];
|
||||
else
|
||||
return 0;
|
||||
@@ -238,6 +264,11 @@ G3VolTableEntry::HasNegPars(){
|
||||
return fHasNegPars;
|
||||
}
|
||||
|
||||
G4bool
|
||||
G3VolTableEntry::HasMANY(){
|
||||
return fHasMANY;
|
||||
}
|
||||
|
||||
G4VSolid*
|
||||
G3VolTableEntry::GetSolid() {
|
||||
return fSolid;
|
||||
@@ -250,22 +281,27 @@ G3VolTableEntry::GetLV() {
|
||||
|
||||
G4int
|
||||
G3VolTableEntry::GetNoDaughters() {
|
||||
return fDaughters.entries();
|
||||
return fDaughters.size();
|
||||
}
|
||||
|
||||
G4int
|
||||
G3VolTableEntry::GetNoMothers() {
|
||||
return fMothers.entries();
|
||||
return fMothers.size();
|
||||
}
|
||||
|
||||
G4int
|
||||
G3VolTableEntry::GetNoClones() {
|
||||
return fClones.entries();
|
||||
return fClones.size();
|
||||
}
|
||||
|
||||
G4int
|
||||
G3VolTableEntry::GetNoOverlaps() {
|
||||
return fOverlaps.size();
|
||||
}
|
||||
|
||||
G3VolTableEntry*
|
||||
G3VolTableEntry::GetDaughter(G4int i) {
|
||||
if (i<G4int(fDaughters.entries()) && i>=0)
|
||||
if (i<G4int(fDaughters.size()) && i>=0)
|
||||
return fDaughters[i];
|
||||
else
|
||||
return 0;
|
||||
@@ -273,7 +309,7 @@ G3VolTableEntry::GetDaughter(G4int i) {
|
||||
|
||||
G3VolTableEntry*
|
||||
G3VolTableEntry::GetMother(G4int i){
|
||||
if (i<G4int(fMothers.entries()) && i>=0)
|
||||
if (i<G4int(fMothers.size()) && i>=0)
|
||||
return fMothers[i];
|
||||
else
|
||||
return 0;
|
||||
@@ -282,7 +318,7 @@ G3VolTableEntry::GetMother(G4int i){
|
||||
// to be removed
|
||||
G3VolTableEntry*
|
||||
G3VolTableEntry::GetMother(){
|
||||
if (fMothers.entries()>0)
|
||||
if (fMothers.size()>0)
|
||||
return fMothers[0];
|
||||
else
|
||||
return 0;
|
||||
@@ -290,7 +326,7 @@ G3VolTableEntry::GetMother(){
|
||||
|
||||
G3VolTableEntry*
|
||||
G3VolTableEntry::GetClone(G4int i){
|
||||
if (i<G4int(fClones.entries()) && i>=0)
|
||||
if (i<G4int(fClones.size()) && i>=0)
|
||||
return fClones[i];
|
||||
else
|
||||
return 0;
|
||||
@@ -309,3 +345,8 @@ G3VolTableEntry::GetMasterClone(){
|
||||
|
||||
return master;
|
||||
}
|
||||
|
||||
G4std::vector<G3VolTableEntry*>*
|
||||
G3VolTableEntry::GetOverlaps(){
|
||||
return &fOverlaps;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G3fillParams.cc.archive,v 1.1 1999/12/06 19:19:57 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00-ref-08 $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// extracted from clparse.cc by I. Hrivnacova, 30.7.99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3toG4BuildTree.cc,v 1.14.2.1 2001/06/28 19:08:05 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3toG4BuildTree.cc,v 1.18 2001/11/21 14:25:30 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I. Hrivnacova, 2.8.99
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#include "G3Pos.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4ReflectionFactory.hh"
|
||||
#include "G4Transform3D.hh"
|
||||
|
||||
void G3toG4BuildTree(G3VolTableEntry* curVTE, G3VolTableEntry* motherVTE)
|
||||
{
|
||||
@@ -66,7 +68,7 @@ void G3toG4BuildLVTree(G3VolTableEntry* curVTE, G3VolTableEntry* motherVTE)
|
||||
|
||||
// insert logical volume to G3SensVol vector
|
||||
// in case it is sensitive
|
||||
if (mte->GetISVOL()) G3SensVol.insert(curLog);
|
||||
if (mte->GetISVOL()) G3SensVol.push_back(curLog);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -119,25 +121,44 @@ void G3toG4BuildPVTree(G3VolTableEntry* curVTE)
|
||||
mothLV = 0;
|
||||
}
|
||||
|
||||
// rotation matrix
|
||||
G4int irot = theG3Pos->GetIrot();
|
||||
G4RotationMatrix* theMatrix = 0;
|
||||
if (irot>0) theMatrix = G3Rot.Get(irot);
|
||||
|
||||
// copy number
|
||||
// (in G3 numbering starts from 1 but in G4 from 0)
|
||||
G4int copyNo = theG3Pos->GetCopy() - 1;
|
||||
|
||||
// position it if not top-level volume
|
||||
|
||||
if (mothLV != 0) {
|
||||
new G4PVPlacement(theMatrix, // rotation matrix
|
||||
*(theG3Pos->GetPos()), // its position
|
||||
curLog, // its LogicalVolume
|
||||
curVTE->GetName(), // PV name
|
||||
mothLV, // Mother LV
|
||||
0, // only
|
||||
copyNo); // copy
|
||||
|
||||
|
||||
// transformation
|
||||
G4int irot = theG3Pos->GetIrot();
|
||||
G4RotationMatrix* theMatrix = 0;
|
||||
if (irot>0) theMatrix = G3Rot.Get(irot);
|
||||
G4Rotate3D rotation;
|
||||
if (theMatrix) {
|
||||
rotation = G4Rotate3D(*theMatrix);
|
||||
}
|
||||
|
||||
#ifndef G3G4_NO_REFLECTION
|
||||
G4Translate3D translation(*(theG3Pos->GetPos()));
|
||||
G4Transform3D transform3D = translation * (rotation.inverse());
|
||||
|
||||
G4ReflectionFactory::Instance()
|
||||
->Place(transform3D, // transformation
|
||||
curVTE->GetName(), // PV name
|
||||
curLog, // its logical volume
|
||||
mothLV, // mother logical volume
|
||||
false, // only
|
||||
copyNo); // copy
|
||||
#else
|
||||
new G4PVPlacement(theMatrix, // rotation matrix
|
||||
*(theG3Pos->GetPos()), // its position
|
||||
curLog, // its LogicalVolume
|
||||
curVTE->GetName(), // PV name
|
||||
mothLV, // Mother LV
|
||||
0, // only
|
||||
copyNo); // copy
|
||||
#endif
|
||||
|
||||
// verbose
|
||||
#ifdef G3G4DEBUG
|
||||
G4cout << "PV: " << i << "th copy of " << curVTE->GetName()
|
||||
@@ -145,7 +166,7 @@ void G3toG4BuildPVTree(G3VolTableEntry* curVTE)
|
||||
<< copyNo << " irot: " << irot << " pos: "
|
||||
<< *(theG3Pos->GetPos()) << G4endl;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// clear this position
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * 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: G3toG4MANY.cc,v 1.1 2001/11/08 16:08:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// By I. Hrivnacova, 22.10.01
|
||||
|
||||
//#define G3G4DEBUG 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G3toG4MANY.hh"
|
||||
#include "G3Pos.hh"
|
||||
#include "G3RotTable.hh"
|
||||
#include "G4SubtractionSolid.hh"
|
||||
|
||||
void G3toG4MANY(G3VolTableEntry* curVTE)
|
||||
{
|
||||
if (curVTE->GetNoOverlaps() > 0) {
|
||||
|
||||
// check consistency
|
||||
if (!curVTE->HasMANY()) {
|
||||
G4String text = "G3toG4MANY: volume ";
|
||||
text = text + curVTE->GetName() + " has specified overlaps \n";
|
||||
text = text + " but is not defined as MANY.";
|
||||
G4Exception(text);
|
||||
}
|
||||
|
||||
// only MANY volumes with one position are supported
|
||||
if (curVTE->NPCopies() != 1) {
|
||||
G4String text = "G3toG4MANY: volume ";
|
||||
text = text + curVTE->GetName() + " which has MANY has not just one position.";
|
||||
G4Exception(text);
|
||||
}
|
||||
|
||||
#ifdef G3G4DEBUG
|
||||
G4cout << "G3toG4MANY " << curVTE->GetName() << " boolean" << G4endl;
|
||||
#endif
|
||||
|
||||
G4Transform3D transform = GetTransform3D(curVTE->GetG3PosCopy(0));
|
||||
|
||||
MakeBooleanSolids(curVTE, curVTE->GetOverlaps(), transform.inverse());
|
||||
}
|
||||
|
||||
// process daughters
|
||||
for (G4int i=0; i<curVTE->GetNoDaughters(); i++)
|
||||
G3toG4MANY(curVTE->GetDaughter(i));
|
||||
}
|
||||
|
||||
void MakeBooleanSolids(G3VolTableEntry* curVTE, G3VolTableEntryVector* overlaps,
|
||||
const G4Transform3D& transform)
|
||||
{
|
||||
// loop over overlap VTEs
|
||||
for (size_t i=0; i<overlaps->size(); i++){
|
||||
|
||||
G3VolTableEntry* overlapVTE = (*overlaps)[i];
|
||||
|
||||
// loop over clone VTEs
|
||||
for (G4int ij=0; ij<overlapVTE->GetMasterClone()->GetNoClones(); ij++){
|
||||
|
||||
G3VolTableEntry* cloneVTE = overlapVTE->GetMasterClone()->GetClone(ij);
|
||||
|
||||
// loop over clone positions
|
||||
for (G4int j=0; j<cloneVTE->NPCopies(); j++){
|
||||
|
||||
#ifdef G3G4DEBUG
|
||||
G4cout << "From '" << curVTE->GetName() << "' "
|
||||
<< "cut '" << cloneVTE->GetName() << "' :"
|
||||
<< i << "th overlap (from " << overlaps->size() << ") "
|
||||
<< ij << "th clone (from " << overlapVTE->GetMasterClone()->GetNoClones() << ") "
|
||||
<< j << "th copy (from " << cloneVTE->NPCopies() << ") "
|
||||
<< G4endl;
|
||||
#endif
|
||||
|
||||
SubstractSolids(curVTE, cloneVTE, j, transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SubstractSolids(G3VolTableEntry* vte1, G3VolTableEntry* vte2,
|
||||
G4int copy, const G4Transform3D& transform)
|
||||
{
|
||||
// vte2 transformation
|
||||
G4Transform3D transform2 = GetTransform3D(vte2->GetG3PosCopy(copy));
|
||||
|
||||
// compose new name
|
||||
G4String newName = vte1->GetSolid()->GetName();
|
||||
newName = newName + "-" + vte2->GetSolid()->GetName();
|
||||
|
||||
#ifdef G3G4DEBUG
|
||||
G4cout << " " << newName << G4endl;
|
||||
#endif
|
||||
|
||||
G4VSolid* newSolid
|
||||
= new G4SubtractionSolid(newName, vte1->GetSolid(), vte2->GetSolid(),
|
||||
transform*transform2);
|
||||
|
||||
// update vte1
|
||||
vte1->SetSolid(newSolid);
|
||||
|
||||
// process daughters
|
||||
for (G4int k=0; k<vte1->GetNoDaughters(); k++){
|
||||
|
||||
G3VolTableEntry* dVTE = vte1->GetDaughter(k);
|
||||
|
||||
if (dVTE->NPCopies() != 1) {
|
||||
G4String text = "G3toG4MANY: volume ";
|
||||
text = text + dVTE->GetName() + " which has MANY has not just one position.";
|
||||
G4Exception(text);
|
||||
}
|
||||
|
||||
G4Transform3D dt = GetTransform3D(dVTE->GetG3PosCopy(0));
|
||||
SubstractSolids(dVTE, vte2, copy, dt.inverse()*transform);
|
||||
}
|
||||
}
|
||||
|
||||
G4Transform3D GetTransform3D(G3Pos* g3pos)
|
||||
{
|
||||
G4int irot = g3pos->GetIrot();
|
||||
G4RotationMatrix* theMatrix = 0;
|
||||
if (irot>0) theMatrix = G3Rot.Get(irot);
|
||||
|
||||
G4Rotate3D rotation;
|
||||
if (theMatrix) {
|
||||
rotation = G4Rotate3D(*theMatrix);
|
||||
}
|
||||
|
||||
G4Translate3D translation(*(g3pos->GetPos()));
|
||||
G4Transform3D transform3D = translation * (rotation.inverse());
|
||||
|
||||
return transform3D;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3toG4MakeSolid.cc,v 1.7.2.1 2001/06/28 19:08:05 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3toG4MakeSolid.cc,v 1.9 2001/07/16 15:38:21 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, V.Berejnoi 27 Sep 99
|
||||
|
||||
@@ -56,7 +56,7 @@ G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
|
||||
// modified
|
||||
if (Deferred) return solid;
|
||||
|
||||
for (int i=0;i<3;i++){
|
||||
for (G4int i=0;i<3;i++){
|
||||
OKAxis[i]=false;
|
||||
};
|
||||
|
||||
@@ -237,8 +237,8 @@ G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
|
||||
|
||||
} else if ( shape == "PGON" ) {
|
||||
G4int i;
|
||||
G4int npdv = int(Rpar[2]);
|
||||
G4int nz = int(Rpar[3]);
|
||||
G4int npdv = G4int(Rpar[2]);
|
||||
G4int nz = G4int(Rpar[3]);
|
||||
G4double pPhi1 = Rpar[0]*deg;
|
||||
G4double dPhi = Rpar[1]*deg;
|
||||
G4double *DzArray = new G4double[nz];
|
||||
@@ -250,9 +250,9 @@ G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
|
||||
NegVolPars = 0;
|
||||
|
||||
for(i=0; i<nz; i++) {
|
||||
int i4=3*i+4;
|
||||
int i5=i4+1;
|
||||
int i6=i4+2;
|
||||
G4int i4=3*i+4;
|
||||
G4int i5=i4+1;
|
||||
G4int i6=i4+2;
|
||||
DzArray[i] = Rpar[i4]*cm;
|
||||
Rmin[i] = Rpar[i5]*cm;
|
||||
Rmax[i] = Rpar[i6]*cm;
|
||||
@@ -266,7 +266,7 @@ G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
|
||||
G4int i;
|
||||
G4double pPhi1 = Rpar[0]*deg;
|
||||
G4double dPhi = Rpar[1]*deg;
|
||||
G4int nz = int(Rpar[2]);
|
||||
G4int nz = G4int(Rpar[2]);
|
||||
G4double *DzArray = new G4double[nz];
|
||||
G4double *Rmax = new G4double[nz];
|
||||
G4double *Rmin = new G4double[nz];
|
||||
@@ -276,9 +276,9 @@ G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
|
||||
NegVolPars = 0;
|
||||
|
||||
for(i=0; i<nz; i++){
|
||||
int i4=3*i+3;
|
||||
int i5=i4+1;
|
||||
int i6=i4+2;
|
||||
G4int i4=3*i+3;
|
||||
G4int i5=i4+1;
|
||||
G4int i6=i4+2;
|
||||
DzArray[i] = Rpar[i4]*cm;
|
||||
Rmin[i] = Rpar[i5]*cm;
|
||||
Rmax[i] = Rpar[i6]*cm;
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G3toG4RotationMatrix.cc,v 1.2.8.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G3toG4RotationMatrix.cc,v 1.3 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "G3toG4RotationMatrix.hh"
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4BuildGeom.cc,v 1.13.4.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4BuildGeom.cc,v 1.15 2001/07/16 15:38:21 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I. Hrivnacova, 13.10.99
|
||||
|
||||
@@ -61,7 +61,7 @@ G4LogicalVolume* G4BuildGeom(G4String& inFile){
|
||||
|
||||
G4cout << "Reading the call List file " << inFile << "..." << G4endl;
|
||||
|
||||
G3CLRead(inFile, NULL);
|
||||
G3CLRead(inFile, 0);
|
||||
|
||||
G3Part.PrintAll();
|
||||
|
||||
@@ -123,7 +123,7 @@ void checkVol(G4LogicalVolume* _lvol, G4int level)
|
||||
|
||||
G4cout << "G44LogicalVolume " << _lvol->GetName() << " at level " << level
|
||||
<< " contains " << ndau << " daughters." << G4endl;
|
||||
for (int idau=0; idau<ndau; idau++){
|
||||
for (G4int idau=0; idau<ndau; idau++){
|
||||
_pdvol = _lvol-> GetDaughter(idau);
|
||||
_ldvol = _pdvol -> GetLogicalVolume();
|
||||
G4cout << "G4VPhysical volume " << G4std::setw(5) << _pdvol -> GetName()
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ggclos.cc,v 1.6.4.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4ggclos.cc,v 1.7 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "G3toG4.hh"
|
||||
#include "G3VolTable.hh"
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsatt.cc,v 1.9.2.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsatt.cc,v 1.11 2001/07/16 15:38:22 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "g4rw/cstring.h"
|
||||
#include "globals.hh"
|
||||
#include "G3toG4.hh"
|
||||
#include "G3VolTable.hh"
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * 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: G4gsbool.cc,v 1.1 2001/11/08 16:08:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 13.10.01
|
||||
|
||||
#include "G3G4Interface.hh"
|
||||
#include "G3VolTable.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
void G4gsbool(G4String volName, G4String manyVolName)
|
||||
{
|
||||
// find VTEs
|
||||
G3VolTableEntry* vte = G3Vol.GetVTE(volName);
|
||||
G3VolTableEntry* manyVTE = G3Vol.GetVTE(manyVolName);
|
||||
|
||||
if (vte == 0) {
|
||||
G4Exception("G4gsbool: '" + volName + "' has no VolTableEntry");
|
||||
}
|
||||
else if (manyVTE == 0) {
|
||||
// warning
|
||||
G4cerr << "G4gsbool: '" << manyVolName << "' has no VolTableEntry."
|
||||
<< G4endl
|
||||
<< " Specified overlap will be ignored."
|
||||
<< G4endl;
|
||||
return;
|
||||
}
|
||||
else {
|
||||
manyVTE->AddOverlap(vte);
|
||||
}
|
||||
}
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdet.cc,v 1.3.8.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdet.cc,v 1.4 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G3toG4.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdeta.cc,v 1.4.8.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdeta.cc,v 1.5 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
//
|
||||
// modified by I.Hrivnacova, 6 Oct 99
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdetd.cc,v 1.5.2.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdetd.cc,v 1.6 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "G3toG4.hh"
|
||||
#include "G3DetTable.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdeth.cc,v 1.5.2.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdeth.cc,v 1.6 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "G3toG4.hh"
|
||||
#include "G3DetTable.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdetu.cc,v 1.3.8.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdetu.cc,v 1.4 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "G3toG4.hh"
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdetv.cc,v 1.6.4.1 2001/06/28 19:08:06 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdetv.cc,v 1.8 2001/07/16 15:38:22 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "G3toG4.hh"
|
||||
@@ -53,7 +53,7 @@ void G4gsdetv(G4String chset, G4String chdet, G4int idtyp, G4int,
|
||||
/*
|
||||
// get lvol for detector chdet
|
||||
G4LogicalVolume *lvol = G3Vol.GetLV(chdet);
|
||||
if (lvol == NULL) {
|
||||
if (lvol == 0) {
|
||||
G4cout << "G4gsdetv: Logical volume " << chdet << " not available. Skip." << G4endl;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdk.cc,v 1.4.2.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdk.cc,v 1.5 2001/07/11 09:59:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
|
||||
#include "G4Decay.hh"
|
||||
#include "G3toG4.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdvn.cc,v 1.6.2.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdvn.cc,v 1.7 2001/07/11 09:59:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi, 29 Oct 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdvn2.cc,v 1.6.8.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdvn2.cc,v 1.7 2001/07/11 09:59:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi, 29 Oct 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdvt.cc,v 1.5.8.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdvt.cc,v 1.6 2001/07/11 09:59:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi, 29 Oct 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdvt2.cc,v 1.5.8.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdvt2.cc,v 1.6 2001/07/11 09:59:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi, 29 Oct 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsdvx.cc,v 1.3.8.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsdvx.cc,v 1.4 2001/07/11 09:59:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi, 27 Sep 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsmate.cc,v 1.7.2.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsmate.cc,v 1.8 2001/07/11 09:59:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsmixt.cc,v 1.7.4.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsmixt.cc,v 1.8 2001/07/11 09:59:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gspart.cc,v 1.3.8.1 2001/06/28 19:08:07 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gspart.cc,v 1.5 2001/07/16 15:38:23 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G3toG4.hh"
|
||||
@@ -56,7 +56,7 @@ void G4gspart(G4int ipart, G4String chnpar, G4int itrtyp, G4double amass,
|
||||
G4double charge, G4double tlife, G4double*, G4int)
|
||||
{
|
||||
// Handle conversion of itrtyp into an appropriate ProcessManager
|
||||
G4ProcessManager *mgr = NULL;
|
||||
G4ProcessManager *mgr = 0;
|
||||
switch (itrtyp) {
|
||||
case 1:
|
||||
// gamma
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gspos.cc,v 1.11.8.1 2001/06/28 19:08:08 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gspos.cc,v 1.12 2001/07/11 09:59:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 13.10.99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsposp.cc,v 1.13.4.1 2001/06/28 19:08:08 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsposp.cc,v 1.14 2001/07/11 09:59:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 13.10.99
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsrotm.cc,v 1.8.4.1 2001/06/28 19:08:08 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsrotm.cc,v 1.9 2001/07/11 09:59:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
#include "G3toG4.hh"
|
||||
#include "G3RotTable.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gstmed.cc,v 1.4.8.1 2001/06/28 19:08:08 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gstmed.cc,v 1.5 2001/07/11 09:59:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// The last G4int argument of G4gstmed(..) is used for sending
|
||||
// info whether the Geant3 tracking medium parameters should
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gstpar.cc,v 1.5.4.1 2001/06/28 19:08:08 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gstpar.cc,v 1.6 2001/07/11 09:59:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
#include "G3toG4.hh"
|
||||
#include "G3VolTable.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4gsvolu.cc,v 1.7.4.1 2001/06/28 19:08:08 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: G4gsvolu.cc,v 1.8 2001/07/11 09:59:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 13.10.99
|
||||
|
||||
|
||||
@@ -21,16 +21,15 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: clparse.cc,v 1.11.4.1 2001/06/28 19:08:08 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// $Id: clparse.cc,v 1.14 2001/10/11 12:36:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova
|
||||
// added G3SensVol
|
||||
|
||||
#include "globals.hh"
|
||||
#include "g4std/fstream"
|
||||
#include "g4rw/rstream.h"
|
||||
#include "g4rw/ctoken.h"
|
||||
#include "G4Tokenizer.hh"
|
||||
#include "G3toG4.hh"
|
||||
#include "G3EleTable.hh"
|
||||
#include "G3VolTable.hh"
|
||||
@@ -92,7 +91,7 @@ void PG4gsdetd(G4String *tokens);
|
||||
void PG4gsdetu(G4String *tokens);
|
||||
void PG4ggclos();
|
||||
|
||||
void G3CLRead(G4String & fname, char *select = NULL){
|
||||
void G3CLRead(G4String & fname, char *select = 0){
|
||||
//
|
||||
// G3CLRead
|
||||
// Read the call List file, parse the tokens, and pass the token
|
||||
@@ -167,7 +166,7 @@ void G3CLEval(G4String tokens[], char *select)
|
||||
const char* routine = tokens[1];
|
||||
|
||||
// If context is selected, return unless context matches.
|
||||
if (select != NULL && select != "*") if ( strcmp(select,context) ) return;
|
||||
if (select != 0 && select != "*") if ( strcmp(select,context) ) return;
|
||||
|
||||
// Branch on Geant3 routine name
|
||||
ofile << "Do routine " << routine << " in context " << context << G4endl;
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
* ********************************************************************
|
||||
*
|
||||
*
|
||||
* $Id: g3routines.F,v 1.3.8.1 2001/06/28 19:08:08 gunter Exp $
|
||||
* GEANT4 tag $Name: $
|
||||
* $Id: g3routines.F,v 1.4 2001/07/11 09:59:02 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-04-00 $
|
||||
*
|
||||
#define CALL_GEANT
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* and all its terms.
|
||||
*
|
||||
* $Id: g3test.F.main,v 1.2 1999/12/05 17:50:16 gcosmo Exp $
|
||||
* GEANT4 tag $Name: $
|
||||
* GEANT4 tag $Name: geant4-04-00 $
|
||||
*
|
||||
*
|
||||
* g3test
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
* ********************************************************************
|
||||
*
|
||||
*
|
||||
* $Id: g3tog4.F,v 1.3.8.1 2001/06/28 19:08:09 gunter Exp $
|
||||
* GEANT4 tag $Name: $
|
||||
* $Id: g3tog4.F,v 1.4 2001/07/11 09:59:02 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-04-00 $
|
||||
*
|
||||
*
|
||||
* G3toG4
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: g4geom.cc.main,v 1.2 1999/12/05 17:50:17 gcosmo Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
//
|
||||
// g4geom
|
||||
//
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
* ********************************************************************
|
||||
*
|
||||
*
|
||||
* $Id: jshape.F,v 1.2.8.1 2001/06/28 19:08:09 gunter Exp $
|
||||
* GEANT4 tag $Name: $
|
||||
* $Id: jshape.F,v 1.3 2001/07/11 09:59:03 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-04-00 $
|
||||
*
|
||||
*
|
||||
*-- Author : Jouko Vuoskoski, CERN, Jouko.Vuoskoski@cern.ch
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
* ********************************************************************
|
||||
*
|
||||
*
|
||||
* $Id: mztog4.F,v 1.2.8.1 2001/06/28 19:08:09 gunter Exp $
|
||||
* GEANT4 tag $Name: $
|
||||
* $Id: mztog4.F,v 1.3 2001/07/11 09:59:03 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-04-00 $
|
||||
*
|
||||
subroutine mztog4
|
||||
************************************************************************
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
* ********************************************************************
|
||||
*
|
||||
*
|
||||
* $Id: rztog4.F,v 1.2.8.1 2001/06/28 19:08:09 gunter Exp $
|
||||
* GEANT4 tag $Name: $
|
||||
* $Id: rztog4.F,v 1.3 2001/07/11 09:59:03 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-04-00 $
|
||||
*
|
||||
program rztog4
|
||||
************************************************************************
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
* ********************************************************************
|
||||
*
|
||||
*
|
||||
* $Id: tog4.F,v 1.3.8.1 2001/06/28 19:08:09 gunter Exp $
|
||||
* GEANT4 tag $Name: $
|
||||
* $Id: tog4.F,v 1.4 2001/07/11 09:59:03 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-04-00 $
|
||||
*
|
||||
subroutine tog4
|
||||
************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user