Import Geant4 3.2.0 source tree
This commit is contained in:
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4Run.hh,v 1.3 1999/12/15 14:53:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4Run.hh,v 1.3.4.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
|
||||
#ifndef G4Run_h
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4RunManager.hh,v 1.15 2001/02/08 06:07:22 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4RunManager.hh,v 1.15.2.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4RunMessenger.hh,v 1.6 2000/11/13 01:24:20 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4RunMessenger.hh,v 1.6.4.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
//
|
||||
// GEANT 4 class header file
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4UserPhysicsListMessenger.hh,v 1.6 2000/11/08 10:01:59 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4UserPhysicsListMessenger.hh,v 1.7.2.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -29,13 +45,14 @@
|
||||
// buildPhysicsTable * build physics table
|
||||
// storePhysicsTable * store physics table into files
|
||||
// retreivePhysicsTable * retreive physics table from files
|
||||
//
|
||||
// setStoredInAscii * Switch on/off ascii mode in store/retreive Physics Table
|
||||
// ------------------------------------------------------------
|
||||
// History
|
||||
// first version 09 Jan. 1998 by H.Kurashige
|
||||
// second version 24 Jan. 1998 by H.Kurashige
|
||||
// add buildPhysicsTable command 13 Apr. 1999 by H.Kurashige
|
||||
// add store/retreivePhysicsTable 08 Nov. 2000 by H.Kurashige
|
||||
// add setStoredInAscii command 12 Mar. 2001 by H.Kurashige
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef G4UserPhysicsListMessenger_h
|
||||
@@ -80,6 +97,7 @@ public: // with description
|
||||
G4UIcmdWithAString * buildPTCmd;
|
||||
G4UIcmdWithAString * storeCmd;
|
||||
G4UIcmdWithAString * retrieveCmd;
|
||||
G4UIcmdWithAnInteger * asciiCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4UserRunAction.hh,v 1.4 1999/12/15 14:53:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4UserRunAction.hh,v 1.4.4.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
|
||||
#ifndef G4UserRunAction_h
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4VModularPhysicsList.hh,v 1.1 2000/11/14 23:53:13 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4VModularPhysicsList.hh,v 1.1.4.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4VPersistencyManager.hh,v 1.3 1999/12/15 14:53:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4VPersistencyManager.hh,v 1.3.4.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
|
||||
#ifndef G4VPersistencyManager_h
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4VPhysicsConstructor.hh,v 1.1 2000/11/14 23:53:13 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4VPhysicsConstructor.hh,v 1.1.4.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4VUserDetectorConstruction.hh,v 1.3 1999/12/15 14:53:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4VUserDetectorConstruction.hh,v 1.3.4.1 2001/06/28 19:15:19 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
|
||||
#ifndef G4VUserDetectorConstruction_h
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4VUserPhysicsList.hh,v 1.8 2000/11/14 23:53:13 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4VUserPhysicsList.hh,v 1.9.2.1 2001/06/28 19:15:20 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -44,6 +60,11 @@
|
||||
// changed SetCuts method argument
|
||||
// modified 08, Nov 2000 by H.Kurashige
|
||||
// added Retrieve/StorePhysicsTable and related methods
|
||||
// modified 08, Mar 2001 by H.Kurashige
|
||||
// added binary mode for Retrieve/StorePhysicsTable
|
||||
// added RetrieveCutValues and related
|
||||
// added Set/ResetStoredInAscii() to switch on ascii mode
|
||||
// for Retrieve/StorePhysicsTable
|
||||
// ------------------------------------------------------------
|
||||
#ifndef G4VUserPhysicsList_h
|
||||
#define G4VUserPhysicsList_h 1
|
||||
@@ -69,47 +90,53 @@ class G4VUserPhysicsList
|
||||
|
||||
|
||||
protected: // with description
|
||||
// These two methods of ConstructParticle() and ConstructProcess()
|
||||
// will be invoked in the Construct() method.
|
||||
// These two methods of ConstructParticle() and ConstructProcess()
|
||||
// will be invoked in the Construct() method.
|
||||
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle() = 0;
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle() = 0;
|
||||
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess() = 0;
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess() = 0;
|
||||
|
||||
protected: // with description
|
||||
// User must invoke this method in his ConstructProcess()
|
||||
// implementation in order to insures particle transportation.
|
||||
// !! Caution: this class must not be overriden !!
|
||||
void AddTransportation();
|
||||
void AddTransportation();
|
||||
|
||||
/////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
public: // with description
|
||||
// "SetCuts" method sets a cut value for all particle types
|
||||
// in the particle table
|
||||
virtual void SetCuts() = 0;
|
||||
|
||||
protected: // with description
|
||||
// "SetCutsWithDefault" method sets a cut value with the default
|
||||
// cut values for all particle types in the particle table
|
||||
void SetCutsWithDefault();
|
||||
public: // with description
|
||||
// set/get the default cut value
|
||||
// Calling SetDefaultCutValue causes re-calcuration of cut values
|
||||
// and physics tables just before the next event loop
|
||||
void SetDefaultCutValue(G4double newCutValue);
|
||||
G4double GetDefaultCutValue() const;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
public: // with description
|
||||
// Invoke BuildPhysicsTable for all processes for each particle
|
||||
// Invoke BuildPhysicsTable for all processes for specified particle
|
||||
// In case of "Retrieve" flag is ON, PhysicsTable will be
|
||||
// retrieved from files
|
||||
void BuildPhysicsTable(G4ParticleDefinition* );
|
||||
|
||||
|
||||
// Store PhysicsTable together with both material and cut value
|
||||
// information in files under the specified directory.
|
||||
// (return true if files are sucessfully created)
|
||||
G4bool StorePhysicsTable(const G4String& directory = ".");
|
||||
|
||||
|
||||
// Return true if "Retrieve" flag is ON.
|
||||
// (i.e. PhysicsTable will be retrieved from files)
|
||||
G4bool IsPhysicsTableRetrieved() const;
|
||||
G4bool IsStoredInAscii() const;
|
||||
|
||||
// Get directory path for physics table files.
|
||||
const G4String& GetPhysicsTableDirectory() const;
|
||||
|
||||
@@ -118,90 +145,114 @@ class G4VUserPhysicsList
|
||||
// Null string (default) means directory is not changed
|
||||
// from the current value
|
||||
void SetPhysicsTableRetrieved(const G4String& directory = "");
|
||||
|
||||
void SetStoredInAscii();
|
||||
|
||||
// Reset "Retrieve" flag
|
||||
void ResetPhysicsTableRetrieved();
|
||||
|
||||
protected: // with description
|
||||
// do BuildPhysicsTable for make the integral schema
|
||||
void BuildIntegralPhysicsTable(G4VProcess* ,G4ParticleDefinition* );
|
||||
void ResetStoredInAscii();
|
||||
|
||||
protected: // with description
|
||||
// Retrieve PhysicsTable from files for proccess belongng the particle.
|
||||
// Normal BuildPhysics procedure of processes will be invoked,
|
||||
// if it fails (in case of Process's RetrievePhysicsTable returns false)
|
||||
virtual void RetrievePhysicsTable(G4ParticleDefinition* );
|
||||
|
||||
// Store material information in files under the specified directory.
|
||||
virtual G4bool StoreMaterialInfo(const G4String& directory);
|
||||
// Store cut values information in files under the specified directory.
|
||||
virtual G4bool StoreCutValues(const G4String& directory);
|
||||
|
||||
// check stored material and cut values
|
||||
virtual G4bool CheckForRetrievePhysicsTable(const G4String& directory);
|
||||
// check stored material is consistent with the current detector setup.
|
||||
virtual G4bool CheckMaterialInfo(const G4String& directory);
|
||||
// check stored cuvalue is consistent with the current detector setup.
|
||||
virtual G4bool CheckCutValues(const G4String& directory);
|
||||
|
||||
protected: // with description
|
||||
// Following are utility methods for SetCuts/reCalcCuts
|
||||
|
||||
// Reset cut values in energy for all particle types
|
||||
// By calling this methods, the run manager will invoke
|
||||
// SetCuts() just before event loop
|
||||
void ResetCuts();
|
||||
|
||||
// SetCutValue sets a cut value for a particle type
|
||||
void SetCutValue(G4double aCut, const G4String& name);
|
||||
void ReCalcCutValue(const G4String& name);
|
||||
|
||||
// "setCutsForOthers" method sets a cut value to all particle types
|
||||
// which have not be called SetCuts() methods yet.
|
||||
// (i.e. particles which have no definit cut values)
|
||||
void SetCutValueForOthers(G4double cutValue);
|
||||
|
||||
// "setCutsForOtherThan" sets a cut value to all particle types
|
||||
// other than particle types specified in arguments
|
||||
void SetCutValueForOtherThan(G4double cutValue,
|
||||
G4ParticleDefinition* first,
|
||||
G4ParticleDefinition* second = NULL,
|
||||
G4ParticleDefinition* third = NULL,
|
||||
G4ParticleDefinition* fourth = NULL,
|
||||
G4ParticleDefinition* fifth = NULL,
|
||||
G4ParticleDefinition* sixth = NULL,
|
||||
G4ParticleDefinition* seventh = NULL,
|
||||
G4ParticleDefinition* eighth = NULL,
|
||||
G4ParticleDefinition* nineth = NULL,
|
||||
G4ParticleDefinition* tenth = NULL );
|
||||
|
||||
// "reCalcCutsForOthers" method re-calculates a cut value
|
||||
// to all particle types which have not be called SetCuts() methods yet.
|
||||
void ReCalcCutValueForOthers();
|
||||
|
||||
public: // with description
|
||||
// set/get the default cut value
|
||||
// Calling SetDefaultCutValue causes re-calcuration of cut values
|
||||
// and physics tables just before the next event loop
|
||||
void SetDefaultCutValue(G4double newCutValue);
|
||||
G4double GetDefaultCutValue() const;
|
||||
|
||||
protected:
|
||||
// this is the default cut value for all particles
|
||||
G4double defaultCutValue;
|
||||
|
||||
/////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
public: // with description
|
||||
// Print out the List of registered particles types
|
||||
void DumpList() const;
|
||||
|
||||
public: // with description
|
||||
// Print out information of cut values
|
||||
// Print out information of cut values
|
||||
void DumpCutValuesTable() const;
|
||||
void DumpCutValues(const G4String &particle_name = "ALL") const;
|
||||
void DumpCutValues(G4ParticleDefinition* ) const;
|
||||
|
||||
public: // with description
|
||||
void SetVerboseLevel(G4int value);
|
||||
G4int GetVerboseLevel() const;
|
||||
// set/get controle flag for output message
|
||||
// 0: Silent
|
||||
// 1: Warning message
|
||||
// 2: More
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
protected: // with description
|
||||
// "SetCutsWithDefault" method sets a cut value with the default
|
||||
// cut values for all particle types in the particle table
|
||||
void SetCutsWithDefault();
|
||||
|
||||
|
||||
// Following are utility methods for SetCuts/reCalcCuts
|
||||
|
||||
// Reset cut values in energy for all particle types
|
||||
// By calling this methods, the run manager will invoke
|
||||
// SetCuts() just before event loop
|
||||
void ResetCuts();
|
||||
|
||||
// SetCutValue sets a cut value for a particle type
|
||||
void SetCutValue(G4double aCut, const G4String& name);
|
||||
void ReCalcCutValue(const G4String& name);
|
||||
|
||||
// "setCutsForOthers" method sets a cut value to all particle types
|
||||
// which have not be called SetCuts() methods yet.
|
||||
// (i.e. particles which have no definit cut values)
|
||||
void SetCutValueForOthers(G4double cutValue);
|
||||
|
||||
// "setCutsForOtherThan" sets a cut value to all particle types
|
||||
// other than particle types specified in arguments
|
||||
void SetCutValueForOtherThan(G4double cutValue,
|
||||
G4ParticleDefinition* first,
|
||||
G4ParticleDefinition* second = NULL,
|
||||
G4ParticleDefinition* third = NULL,
|
||||
G4ParticleDefinition* fourth = NULL,
|
||||
G4ParticleDefinition* fifth = NULL,
|
||||
G4ParticleDefinition* sixth = NULL,
|
||||
G4ParticleDefinition* seventh = NULL,
|
||||
G4ParticleDefinition* eighth = NULL,
|
||||
G4ParticleDefinition* nineth = NULL,
|
||||
G4ParticleDefinition* tenth = NULL );
|
||||
|
||||
// "reCalcCutsForOthers" method re-calculates a cut value
|
||||
// to all particle types which have not be called SetCuts() methods yet.
|
||||
void ReCalcCutValueForOthers();
|
||||
|
||||
// Invoke SetCuts for specified particle
|
||||
// In case of "Retrieve" flag is ON,
|
||||
// Cut values will be retrieved from files
|
||||
void SetParticleCuts( G4double cut, G4ParticleDefinition* );
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
protected:
|
||||
// do BuildPhysicsTable for make the integral schema
|
||||
void BuildIntegralPhysicsTable(G4VProcess* ,G4ParticleDefinition* );
|
||||
|
||||
protected:
|
||||
// Retrieve PhysicsTable from files for proccess belongng the particle.
|
||||
// Normal BuildPhysics procedure of processes will be invoked,
|
||||
// if it fails (in case of Process's RetrievePhysicsTable returns false)
|
||||
virtual void RetrievePhysicsTable(G4ParticleDefinition* ,
|
||||
const G4String& directory,
|
||||
G4bool ascii = false);
|
||||
|
||||
// Store material information in files under the specified directory.
|
||||
virtual G4bool StoreMaterialInfo(const G4String& directory,
|
||||
G4bool ascii = false);
|
||||
// Store cut values information in files under the specified directory.
|
||||
virtual G4bool StoreCutValues(const G4String& directory,
|
||||
G4bool ascii = false);
|
||||
|
||||
// Retrieve cut values information in files under the specified directory.
|
||||
virtual G4bool RetrieveCutValues(const G4String& directory,
|
||||
G4bool ascii = false);
|
||||
|
||||
|
||||
// check stored material and cut values
|
||||
virtual G4bool CheckForRetrievePhysicsTable(const G4String& directory,
|
||||
G4bool ascii = false);
|
||||
// check stored material is consistent with the current detector setup.
|
||||
virtual G4bool CheckMaterialInfo(const G4String& directory,
|
||||
G4bool ascii = false);
|
||||
// check stored cut value is consistent with the current detector setup.
|
||||
virtual G4bool CheckCutValues(const G4String& directory,
|
||||
G4bool ascii = false);
|
||||
/////////////////////////////////////////////////////////////////
|
||||
protected:
|
||||
// adds new ProcessManager to all particles in the Particle Table
|
||||
// this routine is used in Construct()
|
||||
void InitializeProcessManager();
|
||||
@@ -216,6 +267,8 @@ class G4VUserPhysicsList
|
||||
void AddProcessManager(G4ParticleDefinition* newParticle,
|
||||
G4ProcessManager* newManager = NULL );
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
protected:
|
||||
// the particle table has the complete List of existing particle types
|
||||
G4ParticleTable* theParticleTable;
|
||||
@@ -225,29 +278,31 @@ class G4VUserPhysicsList
|
||||
// pointer to G4UserPhysicsListMessenger
|
||||
G4UserPhysicsListMessenger* theMessenger;
|
||||
|
||||
public: // with description
|
||||
void SetVerboseLevel(G4int value);
|
||||
G4int GetVerboseLevel() const;
|
||||
// set/get controle flag for output message
|
||||
// 0: Silent
|
||||
// 1: Warning message
|
||||
// 2: More
|
||||
|
||||
protected:
|
||||
protected:
|
||||
G4int verboseLevel;
|
||||
|
||||
protected:
|
||||
protected:
|
||||
// this is the default cut value for all particles
|
||||
G4double defaultCutValue;
|
||||
|
||||
protected:
|
||||
// flag to determine physics table will be build from file or not
|
||||
G4bool fRetrievePhysicsTable;
|
||||
G4bool fStoredInAscii;
|
||||
|
||||
G4bool fIsCheckedForRetrievePhysicsTable;
|
||||
|
||||
G4bool fIsRestoredCutValues;
|
||||
|
||||
// directory name for physics table files
|
||||
G4String directoryPhysicsTable;
|
||||
|
||||
// number of materials in G4MaterialTable
|
||||
// (this member is used by store/restore physics table)
|
||||
G4int numberOfMaterial;
|
||||
|
||||
private:
|
||||
enum { FixedStringLengthForStore = 32 };
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -295,6 +350,12 @@ inline
|
||||
return fRetrievePhysicsTable;
|
||||
}
|
||||
|
||||
inline
|
||||
G4bool G4VUserPhysicsList::IsStoredInAscii() const
|
||||
{
|
||||
return fStoredInAscii;
|
||||
}
|
||||
|
||||
inline
|
||||
const G4String& G4VUserPhysicsList::GetPhysicsTableDirectory() const
|
||||
{
|
||||
@@ -302,21 +363,26 @@ inline
|
||||
}
|
||||
|
||||
inline
|
||||
void G4VUserPhysicsList::SetPhysicsTableRetrieved(const G4String& directory)
|
||||
void G4VUserPhysicsList::SetStoredInAscii()
|
||||
{
|
||||
fRetrievePhysicsTable = true;
|
||||
if(!directory.isNull()) {
|
||||
directoryPhysicsTable = directory;
|
||||
}
|
||||
fIsCheckedForRetrievePhysicsTable=false;
|
||||
fStoredInAscii = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
inline
|
||||
void G4VUserPhysicsList::ResetPhysicsTableRetrieved()
|
||||
{
|
||||
fRetrievePhysicsTable = false;
|
||||
fIsRestoredCutValues = false;
|
||||
fIsCheckedForRetrievePhysicsTable=false;
|
||||
}
|
||||
|
||||
|
||||
inline
|
||||
void G4VUserPhysicsList::ResetStoredInAscii()
|
||||
{
|
||||
fStoredInAscii = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
// 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.
|
||||
// ********************************************************************
|
||||
// * 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: G4VUserPrimaryGeneratorAction.hh,v 1.3 1999/12/15 14:53:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4VUserPrimaryGeneratorAction.hh,v 1.3.4.1 2001/06/28 19:15:20 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
|
||||
#ifndef G4VUserPrimaryGeneratorAction_h
|
||||
|
||||
Reference in New Issue
Block a user