Import Geant4 9.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:37:50 +02:00
parent a8e9364cea
commit 96c8bcd0af
6923 changed files with 198390 additions and 41849 deletions
+22
View File
@@ -0,0 +1,22 @@
$Id: History,v 1.1 2007/11/17 00:28:33 asaim Exp $
-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
examples/extended/runAndEvent History file
------------------------------------------
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
Nov. 16, 07 M.Asai (example_RandE-V09-00-00)
- Introducing RE03.
- README updated.
+2 -2
View File
@@ -1,11 +1,11 @@
$Id: History,v 1.3 2007/02/05 11:47:46 gcosmo Exp $
$Id: History,v 1.4 2007/11/13 20:33:28 asaim Exp $
-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
Example RE02 History file
Example RE01 History file
------------------------
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
+1 -1
View File
@@ -25,7 +25,7 @@
//
//
// $Id: RE01.cc,v 1.3 2006/06/29 17:42:25 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
// --------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: RE01BosonPhysics.hh,v 1.2 2006/06/29 17:42:27 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01BosonPhysics_h
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01CalorimeterHit.hh,v 1.3 2006/06/29 17:42:29 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01CalorimeterParametrisation.hh,v 1.2 2006/06/29 17:42:31 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01CalorimeterROGeometry.hh,v 1.2 2006/06/29 17:42:33 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01CalorimeterSD.hh,v 1.2 2006/06/29 17:42:35 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01DecayPhysics.hh,v 1.2 2006/06/29 17:42:37 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01DetectorConstruction.hh,v 1.2 2006/06/29 17:42:39 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01DetectorParameterDef.hh,v 1.2 2006/06/29 17:42:41 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
G4double expHall_x;
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01DummySD.hh,v 1.2 2006/06/29 17:42:44 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01EventAction.hh,v 1.2 2006/06/29 17:42:46 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01Field.hh,v 1.2 2006/06/29 17:42:48 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01HadronPhysics.hh,v 1.2 2006/06/29 17:42:50 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01HadronPhysics_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE01IonPhysics.hh,v 1.2 2006/06/29 17:42:53 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01IonPhysics_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE01LeptonPhysics.hh,v 1.2 2006/06/29 17:42:58 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01PhysicsList.hh,v 1.2 2006/06/29 17:43:01 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01PrimaryGeneratorAction.hh,v 1.2 2006/06/29 17:43:03 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01PrimaryGeneratorMessenger.hh,v 1.2 2006/06/29 17:43:05 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01RegionInformation.hh,v 1.2 2006/06/29 17:43:08 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01RegionInformation_H
@@ -25,7 +25,7 @@
//
//
// $Id: RE01RunAction.hh,v 1.2 2006/06/29 17:43:11 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01RunAction_h
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01StackingAction.hh,v 1.2 2006/06/29 17:43:14 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01SteppingAction.hh,v 1.2 2006/06/29 17:43:17 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01TrackInformation.hh,v 1.2 2006/06/29 17:43:19 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01TrackInformation_h
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackerHit.hh,v 1.3 2006/06/29 17:43:21 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackerParametrisation.hh,v 1.2 2006/06/29 17:43:24 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackerSD.hh,v 1.2 2006/06/29 17:43:26 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackingAction.hh,v 1.2 2006/06/29 17:43:28 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01TrackingAction_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE01Trajectory.hh,v 1.3 2006/06/29 17:43:31 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE01Trajectory_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE01BosonPhysics.cc,v 1.2 2006/06/29 17:43:33 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01CalorimeterHit.cc,v 1.5 2006/11/14 07:07:38 perl Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01CalorimeterParametrisation.cc,v 1.2 2006/06/29 17:43:37 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01CalorimeterROGeometry.cc,v 1.2 2006/06/29 17:43:39 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01CalorimeterROGeometry.hh"
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01CalorimeterSD.cc,v 1.3 2006/11/18 02:42:27 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01DecayPhysics.cc,v 1.2 2006/06/29 17:43:43 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01DecayPhysics.hh"
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01DetectorConstruction.cc,v 1.3 2006/06/29 17:43:46 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01DetectorParameterDef.icc,v 1.2 2006/06/29 17:43:49 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01DummySD.cc,v 1.2 2006/06/29 17:43:52 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
// Dummy sensitive used only to flag sensitivity
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01EventAction.cc,v 1.2 2006/06/29 17:43:55 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01Field.cc,v 1.3 2006/06/29 17:43:58 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01HadronPhysics.cc,v 1.2 2006/06/29 17:44:00 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01HadronPhysics.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE01IonPhysics.cc,v 1.2 2006/06/29 17:44:02 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01IonPhysics.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE01LeptonPhysics.cc,v 1.2 2006/06/29 17:44:04 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01LeptonPhysics.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE01PhysicsList.cc,v 1.2 2006/06/29 17:44:07 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01PhysicsList.hh"
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01PrimaryGeneratorAction.cc,v 1.2 2006/06/29 17:44:10 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01PrimaryGeneratorMessenger.cc,v 1.2 2006/06/29 17:44:12 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01RegionInformation.cc,v 1.2 2006/06/29 17:44:15 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01RegionInformation.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE01RunAction.cc,v 1.2 2006/06/29 17:44:17 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01RunAction.hh"
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01StackingAction.cc,v 1.2 2006/06/29 17:44:20 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01SteppingAction.cc,v 1.2 2006/06/29 17:44:23 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01TrackInformation.cc,v 1.2 2006/06/29 17:44:25 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE01TrackInformation.hh"
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackerHit.cc,v 1.5 2006/11/14 07:07:38 perl Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackerParametrisation.cc,v 1.2 2006/06/29 17:44:30 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackerSD.cc,v 1.2 2006/06/29 17:44:32 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RE01TrackingAction.cc,v 1.2 2006/06/29 17:44:34 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE01Trajectory.cc,v 1.3 2006/06/29 17:44:37 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
@@ -25,7 +25,7 @@
//
//
// $Id: exampleRE02.cc,v 1.3 2006/11/18 01:37:22 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE02DetectorConstruction.hh,v 1.3 2006/11/18 01:37:23 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02DetectorConstruction_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02EventAction.hh,v 1.3 2006/11/18 01:37:23 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02EventAction_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02NestedPhantomParameterisation.hh,v 1.2 2006/12/13 15:42:45 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// class G4VNestedParameterisation
//
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSCellFlux.hh,v 1.2 2006/12/13 15:42:47 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02PSCellFlux_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSEnergyDeposit.hh,v 1.2 2006/12/13 15:42:50 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02PSEnergyDeposit_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSFlatSurfaceCurrent.hh,v 1.2 2006/12/13 15:42:52 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02PSFlatSurfaceCurrent_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSFlatSurfaceFlux.hh,v 1.2 2006/12/13 15:42:54 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02PSFlatSurfaceFlux_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSNofStep.hh,v 1.2 2006/12/13 15:42:57 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02PSNofStep_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSPassageCellFlux.hh,v 1.2 2006/12/13 15:43:00 gunter Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02PSPassageCellFlux_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PrimaryGeneratorAction.hh,v 1.3 2006/11/18 01:37:23 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02PrimaryGeneratorAction_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02Run.hh,v 1.3 2006/11/18 01:37:23 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//---------------------------------------------------------------------
// (Purpose)
@@ -25,7 +25,7 @@
//
//
// $Id: RE02RunAction.hh,v 1.3 2006/11/18 01:37:23 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE02RunAction_h
@@ -25,7 +25,7 @@
//
//
// $Id: RE02DetectorConstruction.cc,v 1.3 2006/11/18 01:37:23 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE02DetectorConstruction.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02EventAction.cc,v 1.3 2006/11/18 01:37:24 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE02EventAction.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSCellFlux.cc,v 1.3 2007/05/18 18:16:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// RE02PSCellFlux
#include "RE02PSCellFlux.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSEnergyDeposit.cc,v 1.3 2007/05/18 18:16:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// RE02PSEnergyDeposit
#include "RE02PSEnergyDeposit.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSFlatSurfaceCurrent.cc,v 1.3 2007/05/18 18:16:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// RE02PSFlatSurfaceCurrent
#include "RE02PSFlatSurfaceCurrent.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSFlatSurfaceFlux.cc,v 1.3 2007/05/18 18:16:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// RE02PSFlatSurfaceFlux
#include "RE02PSFlatSurfaceFlux.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSNofStep.cc,v 1.3 2007/05/18 18:16:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// RE02PSNofStep
#include "RE02PSNofStep.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PSPassageCellFlux.cc,v 1.3 2007/05/18 18:16:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// RE02PSPassageCellFlux
#include "RE02PSPassageCellFlux.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02PrimaryGeneratorAction.cc,v 1.3 2006/11/18 01:37:24 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE02PrimaryGeneratorAction.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: RE02Run.cc,v 1.3 2006/11/18 01:37:24 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//=====================================================================
@@ -25,7 +25,7 @@
//
//
// $Id: RE02RunAction.cc,v 1.3 2006/11/18 01:37:24 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE02RunAction.hh"
#include "RE02Run.hh"
@@ -0,0 +1,22 @@
# $Id: GNUmakefile,v 1.1 2007/11/13 19:55:43 asaim Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
name := RE03
G4TARGET := $(name)
G4EXLIB := true
ifndef G4INSTALL
G4INSTALL = ../../../..
endif
.PHONY: all
all: lib bin
include $(G4INSTALL)/config/binmake.gmk
visclean:
rm -f g4*.prim g4*.eps g4*.wrl
rm -f .DAWN_*
@@ -0,0 +1,20 @@
$Id: History,v 1.1 2007/11/13 20:31:59 asaim Exp $
-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
Example RE03 History file
------------------------
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
Nov. 14, 07 M.Asai (exampleRE03-V09-00-00)
- Introducing this example.
+129
View File
@@ -0,0 +1,129 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: RE03.cc,v 1.4 2007/11/17 01:26:01 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//
#include "G4RunManager.hh"
#include "G4UImanager.hh"
#include "G4UIterminal.hh"
#include "G4UItcsh.hh"
#include "G4ScoringManager.hh"
#ifdef G4VIS_USE
#include "G4VisExecutive.hh"
#endif
#include "RE03DetectorConstruction.hh"
#include "RE03PhysicsList.hh"
#include "RE03PrimaryGeneratorAction.hh"
//====================================================================
// Un-comment this line for user defined score writer
// #include "RE03UserScoreWriter.hh"
//====================================================================
int main(int argc,char** argv)
{
// Construct the run manager
//
G4RunManager * runManager = new G4RunManager;
// Activate UI-command base scorer
G4ScoringManager * scManager = G4ScoringManager::GetScoringManager();
scManager->SetVerboseLevel(1);
//====================================================================
// Un-comment this line for user defined score writer
// scManager->SetScoreWriter(new RE03UserScoreWriter());
//====================================================================
// Set mandatory initialization classes
//
G4VUserDetectorConstruction* detector = new RE03DetectorConstruction;
runManager->SetUserInitialization(detector);
//
G4VUserPhysicsList* physics = new RE03PhysicsList;
runManager->SetUserInitialization(physics);
// Set user action classes
//
G4VUserPrimaryGeneratorAction* gen_action = new RE03PrimaryGeneratorAction;
runManager->SetUserAction(gen_action);
//
#ifdef G4VIS_USE
// Visualization manager
//
G4VisManager* visManager = new G4VisExecutive;
visManager->Initialize();
#endif
// Initialize G4 kernel
//
runManager->Initialize();
// Get the pointer to the User Interface manager
//
G4UImanager* UI = G4UImanager::GetUIpointer();
UI->ApplyCommand("/control/execute vis.mac");
if (argc==1) // Define UI session for interactive mode
{
G4UIsession* session=0;
// G4UIterminal is a (dumb) terminal
//
#ifdef G4UI_USE_TCSH
session = new G4UIterminal(new G4UItcsh);
#else
session = new G4UIterminal();
#endif
session->SessionStart();
delete session;
}
else // Batch mode
{
G4String command = "/control/execute ";
G4String fileName = argv[1];
UI->ApplyCommand(command+fileName);
}
// Job termination
// Free the store: user actions, physics_list and detector_description are
// owned and deleted by the run manager, so they should not
// be deleted in the main() program !
#ifdef G4VIS_USE
delete visManager;
#endif
delete runManager;
return 0;
}
+60
View File
@@ -0,0 +1,60 @@
RE03 - An extended example for run and event
--------------------------------------------
Contact : M.Asai (SLAC), A.Kimura (AIT), T.Aso (TNCMT)
****************************************************************
* IMPORTANT NOTICE for version 9.1 *
* This UI-command base scoring is still in alpha release and *
* functionality offered is preliminary. We do not guarantee *
* the correctness of the code. Also, we may change any of the *
* commands / methods in the near future release. *
****************************************************************
1. Introduction
This example demonstrates how to use UI-command base scoring.
It create parallel world(s) for defining scoring mesh(es).
Since this UI-command base scoring is preliminary, this
functionality is not provided by default. To get it included,
the pointer to G4ScoringManager must be accessed. The access
to the static method G4ScoringManager::GetScoringManager()
activate this functionality.
1.1 Geometry and primary particle
It has just one water box in the world volume filled by air.
No detector in the mass geometry. Particle gun shoots a gamma
into the water box.
1.2 Physics
The physics list is mostly identical to exampleN03. It does not
have hadronics.
2. Macro files
"run1.mac" through "run3.mac" macro files should be used
independently. Each macro file create its own scoring parallel
world(s). "vis.mac" and "drawSlics.mac" are used internally.
Each macro should work for both interactively and batch, but
interactive mode is advised for better visualization.
3. RE03UserScoreWriter
G4ScoringManager has a default score writer which dumps every
entry of one quantity of a mesh for all quantities of the mesh
one by one in CSV format. To alternate the file format the user
can implement his/her own score writer deriving from G4VUserScoreWriter
base class and set it to G4ScoringManager. To demonstrate this,
RE03UserScoreWriter is included in this example. To use this
alternative writer, un-comment its instantiation in RE03.cc.
@@ -0,0 +1 @@
/score/drawColumn boxMesh_1 nOfStepGamma 0 {iColumn}
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: RE03DetectorConstruction.hh,v 1.1 2007/11/13 19:55:43 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//
#ifndef RE03DetectorConstruction_h
#define RE03DetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
class G4VPhysicalVolume;
class G4Material;
class RE03DetectorConstruction : public G4VUserDetectorConstruction
{
public:
RE03DetectorConstruction();
virtual ~RE03DetectorConstruction();
public:
virtual G4VPhysicalVolume* Construct();
private:
void DefineMaterials();
void SetupGeometry();
private:
G4Material* air;
G4Material* water;
G4VPhysicalVolume* worldPhys;
G4VPhysicalVolume* phantomPhys;
G4bool constructed;
};
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: RE03PhysicsList.hh,v 1.1 2007/11/13 19:55:43 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//
#ifndef RE03PhysicsList_h
#define RE03PhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
class RE03PhysicsList: public G4VUserPhysicsList
{
public:
RE03PhysicsList();
virtual ~RE03PhysicsList();
// Construct particle and physics
void ConstructParticle();
void ConstructProcess();
void SetCuts();
private:
// these methods Construct particles
void ConstructBosons();
void ConstructLeptons();
void ConstructMesons();
void ConstructBaryons();
// these methods Construct physics processes and register them
void ConstructDecay();
void ConstructEM();
};
#endif
@@ -0,0 +1,57 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: RE03PrimaryGeneratorAction.hh,v 1.1 2007/11/13 19:55:43 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef RE03PrimaryGeneratorAction_h
#define RE03PrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
class G4ParticleGun;
class G4Event;
class RE03PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
RE03PrimaryGeneratorAction();
virtual ~RE03PrimaryGeneratorAction();
public:
virtual void GeneratePrimaries(G4Event*);
private:
G4ParticleGun* particleGun;
};
#endif
@@ -0,0 +1,54 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
#ifndef RE03UserScoreWriter_h
#define RE03UserScoreWriter_h 1
#include "globals.hh"
#include "G4VScoreWriter.hh"
// class description:
//
// This class represents storing the scored quantity into a file.
//
class RE03UserScoreWriter : public G4VScoreWriter {
public:
RE03UserScoreWriter();
virtual ~RE03UserScoreWriter();
public:
// store a quantity into a file
void DumpQuantityToFile(G4String & psName, G4String & fileName, G4String & option);
};
#endif
@@ -0,0 +1,50 @@
########################################
#
# define scoring mesh
#
/score/create/boxMesh boxMesh_1
#
/score/mesh/boxSize 100. 100. 100. cm
/score/mesh/nBin 30 30 30
#
/score/quantity/energyDeposit eDep
/score/quantity/nOfStep nOfStepGamma
/score/filter/particle gammaFilter gamma
/score/quantity/nOfStep nOfStepEMinus
/score/filter/particle eMinusFilter e-
/score/quantity/nOfStep nOfStepEPlus
/score/filter/particle ePlusFilter e+
#
/score/close
#
/score/list
#
########################################
#
/run/beamOn 100
#
########################################
#
# drawing projections
#
/score/drawProjection boxMesh_1 eDep
/score/drawProjection boxMesh_1 nOfStepGamma
/score/drawProjection boxMesh_1 nOfStepEMinus
/score/drawProjection boxMesh_1 nOfStepEPlus
#
########################################
#
# drawing slices
#
/vis/scene/create
/vis/sceneHandler/attach scene-2
/score/colorMap/setMinMax ! 0. 800.
/control/loop drawSlice.mac iColumn 0 29 7
#
########################################
#
# Dump scores to a file
#
/score/dumpQuantityToFile boxMesh_1 nOfStepGamma nOfStepGamma.txt
#
#
@@ -0,0 +1,51 @@
########################################
#
/score/create/boxMesh boxMesh_2a
#
/score/mesh/boxSize 30. 30. 20. cm
/score/mesh/translate/xyz 0. 0. -80. cm
/score/mesh/nBin 20 20 20
#
/score/quantity/nOfStep nOfStepGamma
/score/filter/particle gammaFilter gamma
#
/score/close
#
########################################
#
/score/create/boxMesh boxMesh_2b
#
/score/mesh/boxSize 60. 60. 30. cm
/score/mesh/translate/xyz 0. 0. -30. cm
/score/mesh/nBin 50 50 25
#
/score/quantity/nOfStep nOfStepGamma
/score/filter/particle gammaFilter gamma
#
/score/close
#
########################################
#
/score/create/boxMesh boxMesh_2c
#
/score/mesh/boxSize 100. 100. 50. cm
/score/mesh/translate/xyz 0. 0. 50. cm
/score/mesh/nBin 50 50 25
#
/score/quantity/nOfStep nOfStepGamma
/score/filter/particle gammaFilter gamma
#
/score/close
#
########################################
#
/score/list
#
/run/beamOn 100
#
########################################
#
/score/drawProjection boxMesh_2c nOfStepGamma
/score/drawProjection boxMesh_2b nOfStepGamma
/score/drawProjection boxMesh_2a nOfStepGamma
#
@@ -0,0 +1,35 @@
########################################
#
/score/create/boxMesh boxMesh_3a
#
/score/mesh/boxSize 1. 1. 1. m
/score/mesh/nBin 10 10 10
#
/score/quantity/nOfStep nOfStepGamma
/score/filter/particle gammaFilter gamma
#
/score/close
#
########################################
#
/score/create/boxMesh boxMesh_3b
#
/score/mesh/boxSize 100. 100. 20. cm
/score/mesh/nBin 50 50 20
#
/score/quantity/nOfStep nOfStepGamma
/score/filter/particle gammaFilter gamma
#
/score/close
#
########################################
#
/score/list
#
/run/beamOn 100
#
########################################
#
/score/drawProjection boxMesh_3a nOfStepGamma
/score/drawProjection boxMesh_3b nOfStepGamma ! 11
#
@@ -0,0 +1,136 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: RE03DetectorConstruction.cc,v 1.1 2007/11/13 19:55:43 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//
#include "RE03DetectorConstruction.hh"
#include "G4Material.hh"
#include "G4Box.hh"
#include "G4LogicalVolume.hh"
#include "G4PVPlacement.hh"
#include "G4VisAttributes.hh"
#include "G4Colour.hh"
#include "G4SDManager.hh"
#include "G4MultiFunctionalDetector.hh"
#include "G4VPrimitiveScorer.hh"
#include "G4PSEnergyDeposit.hh"
#include "G4PSTrackLength.hh"
#include "G4PSNofStep.hh"
#include "G4SDParticleFilter.hh"
#include "G4ios.hh"
RE03DetectorConstruction::RE03DetectorConstruction()
:constructed(false)
{;}
RE03DetectorConstruction::~RE03DetectorConstruction()
{;}
G4VPhysicalVolume* RE03DetectorConstruction::Construct()
{
if(!constructed)
{
constructed = true;
DefineMaterials();
SetupGeometry();
}
return worldPhys;
}
void RE03DetectorConstruction::DefineMaterials()
{
G4String name, symbol; //a=mass of a mole;
G4double a, z, density; //z=mean number of protons;
G4int ncomponents, natoms;
G4double fractionmass;
//
// define Elements
//
a = 1.01*g/mole;
G4Element* H = new G4Element(name="Hydrogen",symbol="H" , z= 1., a);
a = 14.01*g/mole;
G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a);
a = 16.00*g/mole;
G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a);
//
// define a material from elements. case 1: chemical molecule
//
density = 1.000*g/cm3;
water = new G4Material(name="Water", density, ncomponents=2);
water->AddElement(H, natoms=2);
water->AddElement(O, natoms=1);
//
// define a material from elements. case 2: mixture by fractional mass
//
density = 1.290*mg/cm3;
air = new G4Material(name="Air" , density, ncomponents=2);
air->AddElement(N, fractionmass=0.7);
air->AddElement(O, fractionmass=0.3);
}
void RE03DetectorConstruction::SetupGeometry()
{
//
// World
//
G4VSolid* worldSolid = new G4Box("World",2.*m,2.*m,2.*m);
G4LogicalVolume* worldLogical = new G4LogicalVolume(worldSolid,air,"World");
worldPhys = new G4PVPlacement(0,G4ThreeVector(),worldLogical,"World",
0,false,0);
//
// Phantom
//
G4VSolid* phantomSolid = new G4Box("Calor",1.*m,1.*m,1.*m);
G4LogicalVolume* phantomLogical = new G4LogicalVolume(phantomSolid,water,"Phantom");
phantomPhys = new G4PVPlacement(0,G4ThreeVector(),phantomLogical,"Phantom",
worldLogical,false,0);
//
// Visualization attributes
//
// worldLogical->SetVisAttributes(G4VisAttributes::Invisible);
G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0));
simpleBoxVisAtt->SetVisibility(true);
phantomLogical->SetVisAttributes(simpleBoxVisAtt);
}
@@ -0,0 +1,216 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: RE03PhysicsList.cc,v 1.1 2007/11/13 19:55:43 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//
#include "RE03PhysicsList.hh"
#include "G4ProcessManager.hh"
#include "G4ParticleTypes.hh"
RE03PhysicsList::RE03PhysicsList(): G4VUserPhysicsList()
{
defaultCutValue = 1.0*mm;
SetVerboseLevel(1);
}
RE03PhysicsList::~RE03PhysicsList()
{;}
void RE03PhysicsList::ConstructParticle()
{
// In this method, static member functions should be called
// for all particles which you want to use.
// This ensures that objects of these particle types will be
// created in the program.
ConstructBosons();
ConstructLeptons();
ConstructMesons();
ConstructBaryons();
}
void RE03PhysicsList::ConstructBosons()
{
// pseudo-particles
G4Geantino::GeantinoDefinition();
G4ChargedGeantino::ChargedGeantinoDefinition();
// gamma
G4Gamma::GammaDefinition();
// optical photon
G4OpticalPhoton::OpticalPhotonDefinition();
}
void RE03PhysicsList::ConstructLeptons()
{
// leptons
G4Electron::ElectronDefinition();
G4Positron::PositronDefinition();
G4MuonPlus::MuonPlusDefinition();
G4MuonMinus::MuonMinusDefinition();
G4NeutrinoE::NeutrinoEDefinition();
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
G4NeutrinoMu::NeutrinoMuDefinition();
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
}
void RE03PhysicsList::ConstructMesons()
{
// mesons
G4PionPlus::PionPlusDefinition();
G4PionMinus::PionMinusDefinition();
G4PionZero::PionZeroDefinition();
G4Eta::EtaDefinition();
G4EtaPrime::EtaPrimeDefinition();
G4KaonPlus::KaonPlusDefinition();
G4KaonMinus::KaonMinusDefinition();
G4KaonZero::KaonZeroDefinition();
G4AntiKaonZero::AntiKaonZeroDefinition();
G4KaonZeroLong::KaonZeroLongDefinition();
G4KaonZeroShort::KaonZeroShortDefinition();
}
void RE03PhysicsList::ConstructBaryons()
{
// barions
G4Proton::ProtonDefinition();
G4AntiProton::AntiProtonDefinition();
G4Neutron::NeutronDefinition();
G4AntiNeutron::AntiNeutronDefinition();
}
void RE03PhysicsList::ConstructProcess()
{
AddTransportation();
ConstructEM();
ConstructDecay();
}
#include "G4ComptonScattering.hh"
#include "G4GammaConversion.hh"
#include "G4PhotoElectricEffect.hh"
#include "G4MultipleScattering.hh"
#include "G4eIonisation.hh"
#include "G4eBremsstrahlung.hh"
#include "G4eplusAnnihilation.hh"
#include "G4MuIonisation.hh"
#include "G4MuBremsstrahlung.hh"
#include "G4MuPairProduction.hh"
#include "G4hIonisation.hh"
void RE03PhysicsList::ConstructEM()
{
theParticleIterator->reset();
while( (*theParticleIterator)() ){
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
G4String particleName = particle->GetParticleName();
if (particleName == "gamma") {
// gamma
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
pmanager->AddDiscreteProcess(new G4ComptonScattering);
pmanager->AddDiscreteProcess(new G4GammaConversion);
} else if (particleName == "e-") {
//electron
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3);
} else if (particleName == "e+") {
//positron
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3);
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4);
} else if( particleName == "mu+" ||
particleName == "mu-" ) {
//muon
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(new G4MuIonisation, -1, 2,2);
pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3);
pmanager->AddProcess(new G4MuPairProduction, -1, 4,4);
} else if ((!particle->IsShortLived()) &&
(particle->GetPDGCharge() != 0.0) &&
(particle->GetParticleName() != "chargedgeantino")) {
//all others charged particles except geantino
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(new G4hIonisation, -1, 2,2);
}
}
}
#include "G4Decay.hh"
void RE03PhysicsList::ConstructDecay()
{
// Add Decay Process
G4Decay* theDecayProcess = new G4Decay();
theParticleIterator->reset();
while( (*theParticleIterator)() ){
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
if (theDecayProcess->IsApplicable(*particle)) {
pmanager ->AddProcess(theDecayProcess);
// set ordering for PostStepDoIt and AtRestDoIt
pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
}
}
}
void RE03PhysicsList::SetCuts()
{
if (verboseLevel >0){
G4cout << "RE03PhysicsList::SetCuts:";
G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
}
// set cut values for gamma at first and for e- second and next for e+,
// because some processes for e+/e- need cut values for gamma
//
SetCutValue(defaultCutValue, "gamma");
SetCutValue(defaultCutValue, "e-");
SetCutValue(defaultCutValue, "e+");
if (verboseLevel>0) DumpCutValuesTable();
}
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: RE03PrimaryGeneratorAction.cc,v 1.1 2007/11/13 19:55:43 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#include "RE03PrimaryGeneratorAction.hh"
#include "G4Event.hh"
#include "G4ParticleGun.hh"
#include "G4ParticleTable.hh"
#include "G4ParticleDefinition.hh"
RE03PrimaryGeneratorAction::RE03PrimaryGeneratorAction()
{
G4int n_particle = 1;
particleGun = new G4ParticleGun(n_particle);
// default particle kinematic
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
G4String particleName;
G4ParticleDefinition* particle
= particleTable->FindParticle(particleName="e-");
particleGun->SetParticleDefinition(particle);
particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.));
particleGun->SetParticlePosition(G4ThreeVector(0.,0.,-1.01*m));
particleGun->SetParticleEnergy(1.*GeV);
}
RE03PrimaryGeneratorAction::~RE03PrimaryGeneratorAction()
{
delete particleGun;
}
void RE03PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
{
particleGun->GeneratePrimaryVertex(anEvent);
}
@@ -0,0 +1,128 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
#include "RE03UserScoreWriter.hh"
#include "G4MultiFunctionalDetector.hh"
#include "G4SDParticleFilter.hh"
#include "G4VPrimitiveScorer.hh"
#include "G4VScoringMesh.hh"
#include <map>
#include <fstream>
RE03UserScoreWriter::RE03UserScoreWriter()
: G4VScoreWriter() {
;
}
RE03UserScoreWriter::~RE03UserScoreWriter() {
;
}
void RE03UserScoreWriter::DumpQuantityToFile(G4String & psName, G4String & fileName, G4String & option) {
//
if(verboseLevel > 0) {
G4cout << "User-defined DumpQuantityToFile() method is invoked."
<< G4endl;
G4cout << " -- to obtain a projection of the quantity <"
<< psName
<< "> onto the x-y plane --" << G4endl;
}
// change the option string into lowercase to the case-insensitive.
G4String opt = option;
std::transform(opt.begin(), opt.end(), opt.begin(), (int (*)(int))(tolower));
// confirm the option
if(opt.size() == 0) opt = "csv";
// open the file
std::ofstream ofile(fileName);
if(!ofile) {
G4cerr << "ERROR : DumpToFile : File open error -> "
<< fileName << G4endl;
return;
}
ofile << "# mesh name: " << fScoringMesh->GetWorldName() << G4endl;
// retrieve the map
MeshScoreMap fSMap = fScoringMesh->GetScoreMap();
MeshScoreMap::const_iterator msMapItr = fSMap.find(psName);
if(msMapItr == fSMap.end()) {
G4cerr << "ERROR : DumpToFile : Unknown quantity, \""
<< psName << "\"." << G4endl;
return;
}
std::map<G4int, G4double*> * score = msMapItr->second->GetMap();
ofile << "# primitive scorer name: " << msMapItr->first << G4endl;
// write header info
ofile << "# xy projection" << G4endl;
ofile << fNMeshSegments[0] << " " << fNMeshSegments[1] << " " << G4endl;
// declare xy array
std::vector<double> projy;
for(int y = 0; y < fNMeshSegments[1]; y++) projy.push_back(0.);
std::vector<std::vector<double> > projxy;
for(int x = 0; x < fNMeshSegments[0]; x++) projxy.push_back(projy);
// accumulate
ofile << std::setprecision(16); // for double value with 8 bytes
for(int x = 0; x < fNMeshSegments[0]; x++) {
for(int y = 0; y < fNMeshSegments[1]; y++) {
for(int z = 0; z < fNMeshSegments[2]; z++) {
G4int idx = GetIndex(x, y, z);
std::map<G4int, G4double*>::iterator value = score->find(idx);
if(value != score->end()) projxy[x][y] += *(value->second);
} // z
} // y
} // x
// write quantity
ofile << std::setprecision(16); // for double value with 8 bytes
for(int x = 0; x < fNMeshSegments[0]; x++) {
for(int y = 0; y < fNMeshSegments[1]; y++) {
ofile << x << "," << y << ",";
ofile << projxy[x][y] << G4endl;
} // y
} // x
ofile << std::setprecision(6);
// close the file
ofile.close();
}
@@ -0,0 +1,27 @@
#
# create empty scene
#
/vis/scene/create
#
# Create a scene handler for a specific graphics system
# (Edit the next line(s) to choose another graphic system)
#
/vis/open OGLIX
#
# draw scene
#
/vis/drawVolume worlds
/vis/viewer/set/viewpointThetaPhi 105 165 deg
# Set specific colur for identification
###/vis/geometry/set/colour Calor-AP_LayerLog ! yellow
###/vis/geometry/set/colour Calor-BP_LayerLog ! yellow
###/vis/geometry/set/colour Calor-CP_LayerLog ! yellow
/vis/viewer/zoom 2.0
##############/vis/viewer/flush
#
# for drawing the tracks
# (if too many tracks cause core dump => storeTrajectory 0)
/tracking/storeTrajectory 1
/vis/scene/endOfEventAction accumulate
/vis/scene/add/trajectories
+14
View File
@@ -23,3 +23,17 @@ RE02
such as energy deposition and dose for a run. It also demonstrates
the use of primitive scorers.
RE03
----
This example demonstrates how to use UI-command base scoring.
It create parallel world(s) for defining scoring mesh(es).
****************************************************************
* IMPORTANT NOTICE for version 9.1 release *
* This UI-command base scoring is still in alpha release and *
* functionality offered is preliminary. We do not guarantee *
* the correctness of the code. Also, we may change any of the *
* commands / methods in the near future release. *
****************************************************************