Import Geant4 5.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:28:22 +02:00
parent fbd4999cf7
commit 4aea781e80
5454 changed files with 223141 additions and 67347 deletions
@@ -41,6 +41,7 @@ ExN04CalorimeterHit::~ExN04CalorimeterHit()
{;}
ExN04CalorimeterHit::ExN04CalorimeterHit(const ExN04CalorimeterHit &right)
: G4VHit()
{
ZCellID = right.ZCellID;
PhiCellID = right.PhiCellID;
@@ -61,7 +62,7 @@ const ExN04CalorimeterHit& ExN04CalorimeterHit::operator=(const ExN04Calorimeter
return *this;
}
int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const
G4int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const
{
return ((ZCellID==right.ZCellID)&&(PhiCellID==right.PhiCellID));
}
@@ -29,24 +29,21 @@
ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation()
{
#include "ExN04DetectorParameterDef.icc"
}
ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation()
{;}
void ExN04CalorimeterParametrisation::ComputeTransformation
(const G4int copyNo,G4VPhysicalVolume *physVol) const
(const G4int,G4VPhysicalVolume *physVol) const
{
G4ThreeVector origin;
physVol->SetTranslation(origin);
}
void ExN04CalorimeterParametrisation::ComputeDimensions
(G4Tubs & calorimeterLayer, const G4int copyNo,
const G4VPhysicalVolume * physVol) const
(G4Tubs & calorimeterLayer, const G4int copyNo, const G4VPhysicalVolume*) const
{
G4double innerRad = caloTubs_rmin
+ copyNo*(absorber_thick+scinti_thick);
@@ -43,12 +43,12 @@ ExN04CalorimeterSD::ExN04CalorimeterSD(G4String name)
ExN04CalorimeterSD::~ExN04CalorimeterSD()
{;}
void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*HCE)
void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*)
{
CalCollection = new ExN04CalorimeterHitsCollection
(SensitiveDetectorName,collectionName[0]);
for(int j=0;j<numberOfCellsInZ;j++)
for(int k=0;k<numberOfCellsInPhi;k++)
for(G4int j=0;j<numberOfCellsInZ;j++)
for(G4int k=0;k<numberOfCellsInPhi;k++)
{
CellID[j][k] = -1;
}
@@ -63,8 +63,8 @@ G4bool ExN04CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist)
G4VPhysicalVolume* physVol = ROhist->GetVolume();
//ROhist->MoveUpHistory();
//G4VPhysicalVolume* mothVol = ROhist->GetVolume(1);
int copyIDinZ = ROhist->GetReplicaNumber();
int copyIDinPhi = ROhist->GetReplicaNumber(1);
G4int copyIDinZ = ROhist->GetReplicaNumber();
G4int copyIDinPhi = ROhist->GetReplicaNumber(1);
if(CellID[copyIDinZ][copyIDinPhi]==-1)
{
@@ -76,7 +76,7 @@ G4bool ExN04CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist)
calHit->SetEdep( edep );
calHit->SetPos( physVol->GetTranslation() );
calHit->SetRot( rotM );
int icell = CalCollection->insert( calHit );
G4int icell = CalCollection->insert( calHit );
CellID[copyIDinZ][copyIDinPhi] = icell - 1;
if(verboseLevel>0)
{ G4cout << " New Calorimeter Hit on CellID "
@@ -141,8 +141,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct()
trkTubs_sphi,trkTubs_dphi);
G4LogicalVolume * tracker_log
= new G4LogicalVolume(tracker_tubs,Ar,"trackerT_L",0,0,0);
G4VPhysicalVolume * tracker_phys
= new G4PVPlacement(0,G4ThreeVector(),tracker_log,"tracker_phys",
// G4VPhysicalVolume * tracker_phys =
new G4PVPlacement(0,G4ThreeVector(),tracker_log,"tracker_phys",
experimentalHall_log,false,0);
G4VisAttributes* tracker_logVisAtt
= new G4VisAttributes(G4Colour(1.0,0.0,1.0));
@@ -174,8 +174,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct()
caloTubs_dz,caloTubs_sphi,caloTubs_dphi);
G4LogicalVolume * calorimeter_log
= new G4LogicalVolume(calorimeter_tubs,Scinti,"caloT_L",0,0,0);
G4VPhysicalVolume * calorimeter_phys
= new G4PVPlacement(0,G4ThreeVector(),calorimeter_log,"caloM_P",
// G4VPhysicalVolume * calorimeter_phys =
new G4PVPlacement(0,G4ThreeVector(),calorimeter_log,"caloM_P",
experimentalHall_log,false,0);
G4VisAttributes* calorimeter_logVisATT
= new G4VisAttributes(G4Colour(1.0,1.0,0.0));
+3 -3
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: ExN04EMPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: ExN04EMPhysics.cc,v 1.4 2003/06/16 16:49:52 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
@@ -30,7 +30,7 @@
#include "globals.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
ExN04EMPhysics::ExN04EMPhysics(const G4String& name)
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: ExN04GeneralPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: ExN04GeneralPhysics.cc,v 1.4 2003/06/16 16:49:53 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
@@ -30,7 +30,7 @@
#include "globals.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
ExN04GeneralPhysics::ExN04GeneralPhysics(const G4String& name)
: G4VPhysicsConstructor(name)
@@ -21,15 +21,15 @@
// ********************************************************************
//
//
// $Id: ExN04HadronPhysics.cc,v 1.6 2003/03/28 09:35:13 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: ExN04HadronPhysics.cc,v 1.10 2003/06/16 16:49:54 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
#include "ExN04HadronPhysics.hh"
#include "globals.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
ExN04HadronPhysics::ExN04HadronPhysics(const G4String& name)
@@ -77,7 +77,8 @@ void ExN04HadronPhysics::ConstructProcess()
G4cout << "You are using the ExN04HadronPhysics" << G4endl;
G4cout << " - Note that this hadronic physics list is not optimized for any particular usage" << G4endl;
G4cout << " - If you wish to have a starting point tailored for a particular area of work," << G4endl;
G4cout << " please one of the available physics lists by use-case." << G4endl;
G4cout << " please use one of the available physics lists by use-case." << G4endl;
G4cout << " More information can also be found from the Geant4 HyperNews." << G4endl;
G4cout << "" << G4endl;
// Elastic Process
theElasticModel = new G4LElastic();
+3 -3
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: ExN04IonPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: ExN04IonPhysics.cc,v 1.4 2003/06/16 16:49:55 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
@@ -30,7 +30,7 @@
#include "globals.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
ExN04IonPhysics::ExN04IonPhysics(const G4String& name)
+3 -2
View File
@@ -37,6 +37,7 @@ ExN04MuonHit::~ExN04MuonHit()
{;}
ExN04MuonHit::ExN04MuonHit(const ExN04MuonHit &right)
: G4VHit()
{
edep = right.edep;
pos = right.pos;
@@ -49,9 +50,9 @@ const ExN04MuonHit& ExN04MuonHit::operator=(const ExN04MuonHit &right)
return *this;
}
int ExN04MuonHit::operator==(const ExN04MuonHit &right) const
G4int ExN04MuonHit::operator==(const ExN04MuonHit &right) const
{
return 0;
return (this==&right) ? 1 : 0;
}
void ExN04MuonHit::Draw()
+3 -3
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: ExN04MuonPhysics.cc,v 1.4 2002/01/09 17:24:15 ranjard Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: ExN04MuonPhysics.cc,v 1.5 2003/06/16 16:49:56 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
@@ -30,7 +30,7 @@
#include "globals.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
ExN04MuonPhysics::ExN04MuonPhysics(const G4String& name)
+2 -2
View File
@@ -49,7 +49,7 @@ void ExN04MuonSD::Initialize(G4HCofThisEvent*HCE)
HCE->AddHitsCollection(HCID,muonCollection);
}
G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist)
G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*)
{
G4double edep = aStep->GetTotalEnergyDeposit();
@@ -77,7 +77,7 @@ G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist)
return true;
}
void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*HCE)
void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*)
{;}
void ExN04MuonSD::clear()
+3 -3
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: ExN04PhysicsList.cc,v 1.12 2002/01/09 17:24:15 ranjard Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: ExN04PhysicsList.cc,v 1.13 2003/06/16 16:49:57 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
@@ -39,7 +39,7 @@
#include "G4Material.hh"
#include "G4MaterialTable.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
#include "ExN04GeneralPhysics.hh"
#include "ExN04EMPhysics.hh"
@@ -32,7 +32,8 @@
ExN04PrimaryGeneratorAction::ExN04PrimaryGeneratorAction()
{
HEPEvt = new G4HEPEvtInterface("pythia_event.data");
const char* filename = "pythia_event.data";
HEPEvt = new G4HEPEvtInterface(filename);
G4int n_particle = 1;
G4ParticleGun* fParticleGun = new G4ParticleGun(n_particle);
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: ExN04RunAction.cc,v 1.1 2002/05/02 14:18:51 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+53 -53
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: ExN04SteppingVerbose.cc,v 1.2 2003/02/10 18:58:05 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: ExN04SteppingVerbose.cc,v 1.3 2003/06/16 16:49:58 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -54,38 +54,38 @@ void ExN04SteppingVerbose::StepInfo()
if( verboseLevel >= 4 ) VerboseTrack();
if( verboseLevel >= 3 ){
G4cout << G4endl;
G4cout << G4std::setw( 5) << "#Step#" << " "
<< G4std::setw( 6) << "X" << " "
<< G4std::setw( 6) << "Y" << " "
<< G4std::setw( 6) << "Z" << " "
<< G4std::setw( 9) << "KineE" << " "
<< G4std::setw( 9) << "dEStep" << " "
<< G4std::setw(10) << "StepLeng"
<< G4std::setw(10) << "TrakLeng"
<< G4std::setw(10) << "Volume" << " "
<< G4std::setw(10) << "Process" << G4endl;
G4cout << std::setw( 5) << "#Step#" << " "
<< std::setw( 6) << "X" << " "
<< std::setw( 6) << "Y" << " "
<< std::setw( 6) << "Z" << " "
<< std::setw( 9) << "KineE" << " "
<< std::setw( 9) << "dEStep" << " "
<< std::setw(10) << "StepLeng"
<< std::setw(10) << "TrakLeng"
<< std::setw(10) << "Volume" << " "
<< std::setw(10) << "Process" << G4endl;
}
G4cout << G4std::setw(5) << fTrack->GetCurrentStepNumber() << " "
<< G4std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " "
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
<< " ";
// if( fStepStatus != fWorldBoundary){
if( fTrack->GetNextVolume() != 0 ) {
G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName();
G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
} else {
G4cout << G4std::setw(10) << "OutOfWorld";
G4cout << std::setw(10) << "OutOfWorld";
}
if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){
G4cout << " "
<< G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
<< std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
->GetProcessName();
} else {
G4cout << " UserLimit";
@@ -99,27 +99,27 @@ void ExN04SteppingVerbose::StepInfo()
fN2ndariesPostStepDoIt;
if(tN2ndariesTot>0){
G4cout << " :----- List of 2ndaries - "
<< "#SpawnInStep=" << G4std::setw(3) << tN2ndariesTot
<< "(Rest=" << G4std::setw(2) << fN2ndariesAtRestDoIt
<< ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt
<< ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt
<< "#SpawnInStep=" << std::setw(3) << tN2ndariesTot
<< "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt
<< ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt
<< ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt
<< "), "
<< "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).size()
<< "#SpawnTotal=" << std::setw(3) << (*fSecondary).size()
<< " ---------------"
<< G4endl;
for(size_t lp1=(*fSecondary).size()-tN2ndariesTot;
lp1<(*fSecondary).size(); lp1++){
G4cout << " : "
<< G4std::setw(6)
<< std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
<< G4std::setw(6)
<< std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
<< G4std::setw(6)
<< std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
<< G4std::setw(6)
<< std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
<< G4std::setw(10)
<< std::setw(10)
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
G4cout << G4endl;
}
@@ -144,31 +144,31 @@ void ExN04SteppingVerbose::TrackingStarted()
G4int prec = G4cout.precision(3);
if( verboseLevel > 0 ){
G4cout << G4std::setw( 5) << "Step#" << " "
<< G4std::setw( 6) << "X" << " "
<< G4std::setw( 6) << "Y" << " "
<< G4std::setw( 6) << "Z" << " "
<< G4std::setw( 9) << "KineE" << " "
<< G4std::setw( 9) << "dEStep" << " "
<< G4std::setw(10) << "StepLeng"
<< G4std::setw(10) << "TrakLeng"
<< G4std::setw(10) << "Volume" << " "
<< G4std::setw(10) << "Process" << G4endl;
G4cout << std::setw( 5) << "Step#" << " "
<< std::setw( 6) << "X" << " "
<< std::setw( 6) << "Y" << " "
<< std::setw( 6) << "Z" << " "
<< std::setw( 9) << "KineE" << " "
<< std::setw( 9) << "dEStep" << " "
<< std::setw(10) << "StepLeng"
<< std::setw(10) << "TrakLeng"
<< std::setw(10) << "Volume" << " "
<< std::setw(10) << "Process" << G4endl;
G4cout << G4std::setw(5) << fTrack->GetCurrentStepNumber() << " "
<< G4std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " "
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
<< " ";
if(fTrack->GetNextVolume()){
G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName();
G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
} else {
G4cout << G4std::setw(10) << "OutOfWorld";
G4cout << std::setw(10) << "OutOfWorld";
}
G4cout << " initStep" << G4endl;
}
+3 -2
View File
@@ -37,6 +37,7 @@ ExN04TrackerHit::~ExN04TrackerHit()
{;}
ExN04TrackerHit::ExN04TrackerHit(const ExN04TrackerHit &right)
: G4VHit()
{
edep = right.edep;
pos = right.pos;
@@ -49,9 +50,9 @@ const ExN04TrackerHit& ExN04TrackerHit::operator=(const ExN04TrackerHit &right)
return *this;
}
int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const
G4int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const
{
return 0;
return (this==&right) ? 1 : 0;
}
void ExN04TrackerHit::Draw()
@@ -38,15 +38,14 @@ ExN04TrackerParametrisation::~ExN04TrackerParametrisation()
{;}
void ExN04TrackerParametrisation::ComputeTransformation
(const G4int copyNo,G4VPhysicalVolume *physVol) const
(const G4int, G4VPhysicalVolume* physVol) const
{
G4ThreeVector origin;
physVol->SetTranslation(origin);
}
void ExN04TrackerParametrisation::ComputeDimensions
(G4Tubs & trackerLayer, const G4int copyNo,
const G4VPhysicalVolume * physVol) const
(G4Tubs& trackerLayer, const G4int copyNo, const G4VPhysicalVolume*) const
{
trackerLayer.SetInnerRadius(tracker_radius[copyNo]);
trackerLayer.SetOuterRadius(tracker_radius[copyNo]+tracker_thick);
+5 -5
View File
@@ -37,7 +37,7 @@ ExN04TrackerSD::ExN04TrackerSD(G4String name)
ExN04TrackerSD::~ExN04TrackerSD(){;}
void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE)
void ExN04TrackerSD::Initialize(G4HCofThisEvent* HCE)
{
static int HCID = -1;
trackerCollection = new ExN04TrackerHitsCollection
@@ -47,7 +47,7 @@ void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE)
HCE->AddHitsCollection(HCID,trackerCollection);
}
G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist)
G4bool ExN04TrackerSD::ProcessHits(G4Step* aStep, G4TouchableHistory*)
{
G4double edep = aStep->GetTotalEnergyDeposit();
if(edep==0.) return false;
@@ -60,8 +60,9 @@ G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist)
return true;
}
void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*HCE)
{;}
void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*)
{
}
void ExN04TrackerSD::clear()
{
@@ -74,4 +75,3 @@ void ExN04TrackerSD::DrawAll()
void ExN04TrackerSD::PrintAll()
{
}
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: ExN04VisManager.cc,v 1.2 2002/11/13 19:14:41 duns Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// John Allison 24th January 1998.