Import Geant4 8.0.0 source tree
This commit is contained in:
@@ -41,10 +41,10 @@ class G4BertiniNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4BertiniNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
@@ -41,13 +41,13 @@ class G4BertiniPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4BertiniPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
@@ -41,8 +41,8 @@ class G4BertiniProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4BertiniProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
@@ -41,10 +41,10 @@ class G4BinaryNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4BinaryNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
@@ -41,13 +41,13 @@ class G4BinaryPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4BinaryPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
@@ -41,8 +41,8 @@ class G4BinaryProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4BinaryProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
@@ -35,9 +35,9 @@ class G4DataQuestionaire
|
||||
public:
|
||||
G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no)
|
||||
{
|
||||
G4cout <<G4endl<<G4endl;
|
||||
G4cout << "You are using the simulation engine reuse library: PACK 2.4"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
G4cout << G4endl;
|
||||
G4cout << "<<< Geant4 Physics List engine packaging library: PACK 5.0"<<G4endl;
|
||||
// G4cout <<G4endl<<G4endl;
|
||||
// G4cout << "##### the input "<<t1<<" "<<t2<<" "<<t3<<" "<<t4<<G4endl;
|
||||
for(G4int i=0; i<4; i++)
|
||||
{
|
||||
|
||||
+27
-18
@@ -20,43 +20,52 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef GeneralPhysics_h
|
||||
#define GeneralPhysics_h 1
|
||||
// $Id: G4DecayPhysics.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4DecayPhysics
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard
|
||||
// 05.12.2005 V.Ivanchenko add controlled verbosity
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4DecayPhysics_h
|
||||
#define G4DecayPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
|
||||
#include "G4Decay.hh"
|
||||
|
||||
class GeneralPhysics : public G4VPhysicsConstructor
|
||||
class G4DecayPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
GeneralPhysics(const G4String& name = "general");
|
||||
virtual ~GeneralPhysics();
|
||||
G4DecayPhysics(const G4String& name = "decay", G4int ver = 1);
|
||||
virtual ~G4DecayPhysics();
|
||||
|
||||
public:
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
protected:
|
||||
|
||||
G4bool wasActivated;
|
||||
|
||||
private:
|
||||
G4Decay fDecayProcess;
|
||||
private:
|
||||
G4Decay* fDecayProcess;
|
||||
G4int verbose;
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4EMBuilder_h
|
||||
#define G4EMBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4MultipleScattering.hh"
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
#include "G4EMTailorer.hh"
|
||||
#include "G4SynchrotronRadiation.hh"
|
||||
#include "G4ElectroNuclearBuilder.hh"
|
||||
|
||||
class G4EMBuilder
|
||||
{
|
||||
public:
|
||||
G4EMBuilder();
|
||||
virtual ~G4EMBuilder();
|
||||
|
||||
public:
|
||||
void Build();
|
||||
|
||||
void Synch(G4String & aState);
|
||||
void GammaNuclear(G4String & aState);
|
||||
|
||||
protected:
|
||||
G4PhotoElectricEffect thePhotoEffect;
|
||||
G4ComptonScattering theComptonEffect;
|
||||
G4GammaConversion thePairProduction;
|
||||
|
||||
G4MultipleScattering theElectronMultipleScattering;
|
||||
G4eIonisation theElectronIonisation;
|
||||
G4eBremsstrahlung theElectronBremsStrahlung;
|
||||
|
||||
G4MultipleScattering thePositronMultipleScattering;
|
||||
G4eIonisation thePositronIonisation;
|
||||
G4eBremsstrahlung thePositronBremsStrahlung;
|
||||
G4eplusAnnihilation theAnnihilation;
|
||||
G4bool wasActivated;
|
||||
|
||||
G4EMTailorer * theT;
|
||||
G4SynchrotronRadiation theElectronSynch;
|
||||
G4SynchrotronRadiation thePositronSynch;
|
||||
G4bool synchOn;
|
||||
G4ElectroNuclearBuilder theGNPhysics;
|
||||
G4bool gammNucOn;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -49,16 +49,16 @@ class G4ElectroNuclearBuilder
|
||||
virtual void Build();
|
||||
|
||||
protected:
|
||||
G4PhotoNuclearProcess thePhotoNuclearProcess;
|
||||
G4ElectronNuclearProcess theElectronNuclearProcess;
|
||||
G4PositronNuclearProcess thePositronNuclearProcess;
|
||||
G4PhotoNuclearProcess * thePhotoNuclearProcess;
|
||||
G4ElectronNuclearProcess * theElectronNuclearProcess;
|
||||
G4PositronNuclearProcess * thePositronNuclearProcess;
|
||||
G4ElectroNuclearReaction * theElectroReaction;
|
||||
G4GammaNuclearReaction * theGammaReaction;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
G4QGSModel< G4GammaParticipants > theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4QGSModel< G4GammaParticipants > * theStringModel;
|
||||
G4QGSMFragmentation * theFragmentation;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
+41
-18
@@ -20,33 +20,56 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef EM_GNPhysics_h
|
||||
#define EM_GNPhysics_h 1
|
||||
// $Id: G4EmExtraPhysics.hh,v 1.2 2005/12/01 18:19:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmExtraPhysics
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4EmExtraPhysics_h
|
||||
#define G4EmExtraPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4EMBuilder.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4EmMessenger.hh"
|
||||
|
||||
#include "G4SynchrotronRadiation.hh"
|
||||
#include "G4ElectroNuclearBuilder.hh"
|
||||
|
||||
|
||||
class EM_GNPhysics : public G4VPhysicsConstructor
|
||||
class G4EmExtraPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
EM_GNPhysics(const G4String& name ="EM");
|
||||
virtual ~EM_GNPhysics();
|
||||
public:
|
||||
G4EmExtraPhysics(const G4String& name = "EM extra");
|
||||
virtual ~G4EmExtraPhysics();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4EMBuilder theEMPhysics;
|
||||
G4ElectroNuclearBuilder theGNPhysics;
|
||||
void Synch(G4String & aState);
|
||||
void GammaNuclear(G4String & aState);
|
||||
|
||||
private:
|
||||
|
||||
G4bool wasActivated;
|
||||
G4bool synchOn;
|
||||
G4bool gammNucOn;
|
||||
|
||||
G4EmMessenger* theMessenger;
|
||||
G4SynchrotronRadiation* theElectronSynch;
|
||||
G4SynchrotronRadiation* thePositronSynch;
|
||||
G4ElectroNuclearBuilder* theGNPhysics;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+31
-20
@@ -20,33 +20,44 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4EMTailorer_h
|
||||
#define G4EMTailorer_h
|
||||
// $Id: G4EmMessenger.hh,v 1.2 2005/11/30 18:28:52 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmMessenger
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 09.11.2005 V.Ivanchenko edit to provide a standard
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4EmMessenger_h
|
||||
#define G4EmMessenger_h 1
|
||||
|
||||
class G4EmExtraPhysics;
|
||||
|
||||
class G4EMBuilder;
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
|
||||
class G4EMTailorer: public G4UImessenger
|
||||
class G4EmMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
G4EMTailorer(G4EMBuilder * af);
|
||||
|
||||
virtual ~G4EMTailorer()
|
||||
{
|
||||
delete theSynch;
|
||||
delete theGN;
|
||||
}
|
||||
public:
|
||||
G4EmMessenger(G4EmExtraPhysics* af);
|
||||
virtual ~G4EmMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand* aComm, G4String aS);
|
||||
|
||||
private:
|
||||
G4EMBuilder * theB;
|
||||
G4UIcmdWithAString * theSynch;
|
||||
G4UIcmdWithAString * theGN;
|
||||
G4UIdirectory *aDir1;
|
||||
G4UIdirectory *aDir2;
|
||||
void SetNewValue(G4UIcommand* aComm, G4String aS);
|
||||
|
||||
private:
|
||||
G4EmExtraPhysics* theB;
|
||||
G4UIcmdWithAString* theSynch;
|
||||
G4UIcmdWithAString* theGN;
|
||||
G4UIdirectory* aDir1;
|
||||
G4UIdirectory* aDir2;
|
||||
};
|
||||
|
||||
#endif
|
||||
+39
-15
@@ -20,30 +20,53 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef EMPhysics_h
|
||||
#define EMPhysics_h 1
|
||||
//
|
||||
// $Id: G4EmStandardPhysics.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmStandardPhysics
|
||||
//
|
||||
// Author: V.Ivanchenko 09.11.2005
|
||||
//
|
||||
// Modified:
|
||||
// 05.12.2005 V.Ivanchenko add controlled verbosity
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4EmStandardPhysics_h
|
||||
#define G4EmStandardPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4EMBuilder.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
// for lib list detection....
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
|
||||
class EMPhysics : public G4VPhysicsConstructor
|
||||
#include "G4EmProcessOptions.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmStandardPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
EMPhysics(const G4String& name ="EM");
|
||||
virtual ~EMPhysics();
|
||||
public:
|
||||
G4EmStandardPhysics(const G4String& name = "EMstandard", G4int ver = 1,
|
||||
G4bool msc=true);
|
||||
virtual ~G4EmStandardPhysics();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4EMBuilder theEMPhysics;
|
||||
private:
|
||||
G4int verbose;
|
||||
G4bool mscStepLimit;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -51,3 +74,4 @@ class EMPhysics : public G4VPhysicsConstructor
|
||||
|
||||
|
||||
|
||||
|
||||
+40
-39
@@ -20,57 +20,58 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef MuonPhysics_h
|
||||
#define MuonPhysics_h 1
|
||||
//
|
||||
// $Id: G4EmStandardPhysics71.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmStandardPhysics71
|
||||
//
|
||||
// Author: V.Ivanchenko 09.11.2005
|
||||
//
|
||||
// Modified:
|
||||
// 05.12.2005 V.Ivanchenko add controlled verbosity
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#ifndef G4EmStandardPhysics71_h
|
||||
#define G4EmStandardPhysics71_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4MultipleScattering.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
// for lib list detection....
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4hIonisation.hh"
|
||||
|
||||
#include "G4MuonMinusCaptureAtRest.hh"
|
||||
#include "G4EmProcessOptions.hh"
|
||||
|
||||
class MuonPhysics : public G4VPhysicsConstructor
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmStandardPhysics71 : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
MuonPhysics(const G4String& name="muon");
|
||||
virtual ~MuonPhysics();
|
||||
public:
|
||||
G4EmStandardPhysics71(const G4String& name = "EMstandard71", G4int ver = 1,
|
||||
G4bool msc=true);
|
||||
virtual ~G4EmStandardPhysics71();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
|
||||
virtual void ConstructProcess();
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
protected:
|
||||
// Muon physics
|
||||
G4MultipleScattering fMuPlusMultipleScattering;
|
||||
G4MuBremsstrahlung fMuPlusBremsstrahlung ;
|
||||
G4MuPairProduction fMuPlusPairProduction;
|
||||
G4MuIonisation fMuPlusIonisation;
|
||||
|
||||
G4MultipleScattering fMuMinusMultipleScattering;
|
||||
G4MuBremsstrahlung fMuMinusBremsstrahlung ;
|
||||
G4MuPairProduction fMuMinusPairProduction;
|
||||
G4MuIonisation fMuMinusIonisation;
|
||||
|
||||
G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest;
|
||||
|
||||
// Tau physics
|
||||
G4MultipleScattering fTauPlusMultipleScattering;
|
||||
G4hIonisation fTauPlusIonisation;
|
||||
|
||||
G4MultipleScattering fTauMinusMultipleScattering;
|
||||
G4hIonisation fTauMinusIonisation;
|
||||
|
||||
G4bool wasActivated;
|
||||
private:
|
||||
G4int verbose;
|
||||
G4bool mscStepLimit;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -45,18 +45,17 @@ class G4FTFCNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4FTFCNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4FTFModel theStringModel;
|
||||
G4LundStringFragmentation theFragmentation;
|
||||
G4FTFModel * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
|
||||
@@ -46,13 +46,13 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4FTFCPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
@@ -60,8 +60,7 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4FTFModel theStringModel;
|
||||
G4LundStringFragmentation theFragmentation;
|
||||
G4FTFModel * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4double theMin;
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@ class G4FTFCProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4FTFCProtonBuilder(){};
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & ){};
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * ){};
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
|
||||
@@ -47,20 +47,18 @@ class G4FTFPNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4FTFPNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
G4FTFModel theStringModel;
|
||||
G4LundStringFragmentation theFragmentation;
|
||||
G4FTFModel * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
|
||||
@@ -48,24 +48,22 @@ class G4FTFPPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4FTFPPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
G4FTFModel theStringModel;
|
||||
G4LundStringFragmentation theFragmentation;
|
||||
G4FTFModel * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4double theMin;
|
||||
|
||||
|
||||
@@ -49,19 +49,17 @@ class G4FTFPProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4FTFPProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
G4FTFModel theStringModel;
|
||||
G4LundStringFragmentation theFragmentation;
|
||||
G4FTFModel * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4double theMin;
|
||||
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4HadronQEDBuilder_h
|
||||
#define G4HadronQEDBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4MultipleScattering.hh"
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4SigmaMinus.hh"
|
||||
#include "G4AntiSigmaMinus.hh"
|
||||
#include "G4SigmaPlus.hh"
|
||||
#include "G4AntiSigmaPlus.hh"
|
||||
#include "G4XiMinus.hh"
|
||||
#include "G4AntiXiMinus.hh"
|
||||
#include "G4OmegaMinus.hh"
|
||||
#include "G4AntiOmegaMinus.hh"
|
||||
#include "plist.tmp"
|
||||
#include "ParticleCodeMap.hh"
|
||||
|
||||
class G4HadronQEDBuilder
|
||||
{
|
||||
public:
|
||||
G4HadronQEDBuilder();
|
||||
virtual ~G4HadronQEDBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build();
|
||||
|
||||
private:
|
||||
void RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI);
|
||||
|
||||
public: // to get gcc 2.95 satisfied...
|
||||
typedef Plist<G4PionPlus, G4PionMinus, G4KaonPlus, G4KaonMinus, G4Proton, G4AntiProton, G4SigmaMinus,
|
||||
G4AntiSigmaMinus, G4SigmaPlus, G4AntiSigmaPlus, G4XiMinus, G4AntiXiMinus, G4OmegaMinus,
|
||||
G4AntiOmegaMinus> theParticles;
|
||||
|
||||
typedef std::pair<G4ParticleDefinition *, std::pair<G4MultipleScattering *, G4hIonisation *> > entryType;
|
||||
|
||||
static std::vector< entryType > & theCache()
|
||||
{
|
||||
static std::vector< entryType > cache;
|
||||
return cache;
|
||||
}
|
||||
private:
|
||||
|
||||
G4bool wasActivated;
|
||||
|
||||
struct Clear
|
||||
{ void operator () (entryType & aE)
|
||||
{
|
||||
G4ProcessManager * aP = aE.first->GetProcessManager();
|
||||
if(aP) aP->RemoveProcess(aE.second.first);
|
||||
if(aP) aP->RemoveProcess(aE.second.second);
|
||||
}
|
||||
};
|
||||
|
||||
struct Register
|
||||
{
|
||||
template <class T>
|
||||
struct Fun // to get gcc 2.95 satisfied...
|
||||
{
|
||||
void operator()()
|
||||
{
|
||||
G4ParticleDefinition * aPart =
|
||||
G4ParticleTable::GetParticleTable()->FindParticle(ParticleCodeMap<T>::PDG_CODE);
|
||||
// G4cout << aPart<<G4endl;
|
||||
// G4cout << "===== > Calling for "<<aPart->GetParticleName()<<G4endl;
|
||||
G4ProcessManager * aP = aPart->GetProcessManager();
|
||||
G4hIonisation * aI = new G4hIonisation;
|
||||
G4MultipleScattering * aM = new G4MultipleScattering;
|
||||
aP->AddProcess(aI, ordInActive,2, 2);
|
||||
aP->AddProcess(aM);
|
||||
aP->SetProcessOrdering(aM, idxAlongStep, 1);
|
||||
aP->SetProcessOrdering(aM, idxPostStep, 1);
|
||||
G4HadronQEDBuilder::theCache().push_back(std::make_pair(aPart, std::pair<G4MultipleScattering *, G4hIonisation *>(aM, aI) ) );
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4IonPhysics.hh,v 1.2 2005/12/02 12:40:04 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4IonBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 09.11.2005
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4IonPhysics_h
|
||||
#define G4IonPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
class G4LElastic;
|
||||
class G4HadronElasticProcess;
|
||||
class G4DeuteronInelasticProcess;
|
||||
class G4LEDeuteronInelastic;
|
||||
class G4TritonInelasticProcess;
|
||||
class G4LETritonInelastic;
|
||||
class G4AlphaInelasticProcess;
|
||||
class G4LEAlphaInelastic;
|
||||
|
||||
class G4IonPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4IonPhysics(const G4String& name="ions");
|
||||
virtual ~G4IonPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
// Elastic Process
|
||||
G4LElastic* theElasticModel;
|
||||
|
||||
// Generic Ion physics
|
||||
G4HadronElasticProcess* theIonElasticProcess;
|
||||
|
||||
// Deuteron physics
|
||||
G4HadronElasticProcess* theDElasticProcess;
|
||||
G4DeuteronInelasticProcess* fDeuteronProcess;
|
||||
G4LEDeuteronInelastic* fDeuteronModel;
|
||||
|
||||
// Triton physics
|
||||
G4HadronElasticProcess* theTElasticProcess;
|
||||
G4TritonInelasticProcess* fTritonProcess;
|
||||
G4LETritonInelastic* fTritonModel;
|
||||
|
||||
// Alpha physics
|
||||
G4HadronElasticProcess* theAElasticProcess;
|
||||
G4AlphaInelasticProcess* fAlphaProcess;
|
||||
G4LEAlphaInelastic* fAlphaModel;
|
||||
|
||||
// He3 physics
|
||||
G4HadronElasticProcess* theHe3ElasticProcess;
|
||||
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -41,10 +41,10 @@ class G4LEADNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4LEADNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
|
||||
@@ -41,13 +41,13 @@ class G4LEADPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4LEADPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
|
||||
@@ -41,8 +41,8 @@ class G4LEADProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4LEADProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
|
||||
@@ -43,10 +43,10 @@ class G4LEPNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4LEPNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM)
|
||||
{
|
||||
|
||||
@@ -44,13 +44,13 @@ class G4LEPPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4LEPPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM)
|
||||
{
|
||||
|
||||
@@ -39,8 +39,8 @@ class G4LEPProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4LEPProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM)
|
||||
{
|
||||
|
||||
@@ -44,10 +44,10 @@ class G4LHEPNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4LHEPNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM)
|
||||
{
|
||||
|
||||
@@ -50,13 +50,13 @@ class G4LHEPPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4LHEPPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM)
|
||||
{
|
||||
|
||||
@@ -40,8 +40,8 @@ class G4LHEPProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4LHEPProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM)
|
||||
{
|
||||
|
||||
@@ -44,10 +44,10 @@ class G4NeutronBuilder
|
||||
void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);}
|
||||
|
||||
private:
|
||||
G4HadronElasticProcess theNeutronElasticProcess;
|
||||
G4NeutronInelasticProcess theNeutronInelastic;
|
||||
G4HadronFissionProcess theNeutronFission;
|
||||
G4HadronCaptureProcess theNeutronCapture;
|
||||
G4HadronElasticProcess * theNeutronElasticProcess;
|
||||
G4NeutronInelasticProcess * theNeutronInelastic;
|
||||
G4HadronFissionProcess * theNeutronFission;
|
||||
G4HadronCaptureProcess * theNeutronCapture;
|
||||
|
||||
std::vector<G4VNeutronBuilder *> theModelCollections;
|
||||
|
||||
|
||||
@@ -47,10 +47,10 @@ class G4NeutronHPBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4NeutronHPBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
private:
|
||||
G4NeutronHPElastic * theHPElastic;
|
||||
|
||||
@@ -20,6 +20,20 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PiKBuilder.hh,v 1.2 2005/11/25 15:38:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4PiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 16.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4PiKBuilder_h
|
||||
#define G4PiKBuilder_h 1
|
||||
|
||||
@@ -42,19 +56,19 @@ class G4PiKBuilder
|
||||
void RegisterMe(G4VPiKBuilder * aB) {theModelCollections.push_back(aB);}
|
||||
|
||||
private:
|
||||
G4HadronElasticProcess thePionPlusElasticProcess;
|
||||
G4HadronElasticProcess thePionMinusElasticProcess;
|
||||
G4HadronElasticProcess theKaonPlusElasticProcess;
|
||||
G4HadronElasticProcess theKaonMinusElasticProcess;
|
||||
G4HadronElasticProcess theKaonZeroLElasticProcess;
|
||||
G4HadronElasticProcess theKaonZeroSElasticProcess;
|
||||
G4HadronElasticProcess* thePionPlusElasticProcess;
|
||||
G4HadronElasticProcess* thePionMinusElasticProcess;
|
||||
G4HadronElasticProcess* theKaonPlusElasticProcess;
|
||||
G4HadronElasticProcess* theKaonMinusElasticProcess;
|
||||
G4HadronElasticProcess* theKaonZeroLElasticProcess;
|
||||
G4HadronElasticProcess* theKaonZeroSElasticProcess;
|
||||
|
||||
G4PionPlusInelasticProcess thePionPlusInelastic;
|
||||
G4PionMinusInelasticProcess thePionMinusInelastic;
|
||||
G4KaonPlusInelasticProcess theKaonPlusInelastic;
|
||||
G4KaonMinusInelasticProcess theKaonMinusInelastic;
|
||||
G4KaonZeroLInelasticProcess theKaonZeroLInelastic;
|
||||
G4KaonZeroSInelasticProcess theKaonZeroSInelastic;
|
||||
G4PionPlusInelasticProcess* thePionPlusInelastic;
|
||||
G4PionMinusInelasticProcess* thePionMinusInelastic;
|
||||
G4KaonPlusInelasticProcess* theKaonPlusInelastic;
|
||||
G4KaonMinusInelasticProcess* theKaonMinusInelastic;
|
||||
G4KaonZeroLInelasticProcess* theKaonZeroLInelastic;
|
||||
G4KaonZeroSInelasticProcess* theKaonZeroSInelastic;
|
||||
|
||||
std::vector<G4VPiKBuilder *> theModelCollections;
|
||||
|
||||
|
||||
@@ -42,16 +42,15 @@ class G4PrecoNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4PrecoNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PreCompoundModel * theModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
@@ -42,14 +41,13 @@ class G4PrecoProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4PrecoProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
@@ -42,8 +42,8 @@ class G4ProtonBuilder
|
||||
void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);}
|
||||
|
||||
private:
|
||||
G4HadronElasticProcess theProtonElasticProcess;
|
||||
G4ProtonInelasticProcess theProtonInelastic;
|
||||
G4HadronElasticProcess * theProtonElasticProcess;
|
||||
G4ProtonInelasticProcess * theProtonInelastic;
|
||||
|
||||
std::vector<G4VProtonBuilder *> theModelCollections;
|
||||
|
||||
|
||||
@@ -46,18 +46,17 @@ class G4QGSCNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4QGSCNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & ){}
|
||||
virtual void Build(G4HadronFissionProcess & ){}
|
||||
virtual void Build(G4HadronCaptureProcess & ){}
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * ){}
|
||||
virtual void Build(G4HadronFissionProcess * ){}
|
||||
virtual void Build(G4HadronCaptureProcess * ){}
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4QGSModel< G4QGSParticipants > theStringModel;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
|
||||
@@ -47,13 +47,13 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4QGSCPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
@@ -62,7 +62,7 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > theStringModel;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4double theMin;
|
||||
|
||||
@@ -48,8 +48,8 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4QGSCProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
@@ -57,8 +57,7 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4double theMin;
|
||||
|
||||
|
||||
@@ -48,20 +48,18 @@ class G4QGSPNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual ~G4QGSPNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4HadronFissionProcess & aP);
|
||||
virtual void Build(G4HadronCaptureProcess & aP);
|
||||
virtual void Build(G4NeutronInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4HadronFissionProcess * aP);
|
||||
virtual void Build(G4HadronCaptureProcess * aP);
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
|
||||
@@ -49,24 +49,22 @@ class G4QGSPPiKBuilder : public G4VPiKBuilder
|
||||
virtual ~G4QGSPPiKBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP);
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP);
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4double theMin;
|
||||
|
||||
|
||||
@@ -50,19 +50,17 @@ class G4QGSPProtonBuilder : public G4VProtonBuilder
|
||||
virtual ~G4QGSPProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess & aP);
|
||||
virtual void Build(G4ProtonInelasticProcess & aP);
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4double theMin;
|
||||
|
||||
|
||||
@@ -20,38 +20,51 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StoppingHadronBuilder.hh,v 1.3 2005/11/25 15:38:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4StoppingHadronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard and add mu-
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4StoppingHadronBuilder_h
|
||||
#define G4StoppingHadronBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
// At rest processes
|
||||
#include "G4MuonMinusCaptureAtRest.hh"
|
||||
#include "G4AntiProtonAnnihilationAtRest.hh"
|
||||
#include "G4AntiNeutronAnnihilationAtRest.hh"
|
||||
#include "G4PionMinusAbsorptionAtRest.hh"
|
||||
#include "G4KaonMinusAbsorption.hh"
|
||||
|
||||
class G4StoppingHadronBuilder
|
||||
|
||||
class G4StoppingHadronBuilder
|
||||
{
|
||||
public:
|
||||
G4StoppingHadronBuilder();
|
||||
virtual ~G4StoppingHadronBuilder();
|
||||
public:
|
||||
G4StoppingHadronBuilder();
|
||||
virtual ~G4StoppingHadronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build();
|
||||
virtual void Build();
|
||||
|
||||
private:
|
||||
private:
|
||||
|
||||
G4PionMinusAbsorptionAtRest thePionMinusAbsorption;
|
||||
G4KaonMinusAbsorption theKaonMinusAbsorption;
|
||||
G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation;
|
||||
G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation;
|
||||
|
||||
G4bool wasActivated;
|
||||
G4MuonMinusCaptureAtRest* theMuonMinusAbsorption;
|
||||
G4PionMinusAbsorptionAtRest* thePionMinusAbsorption;
|
||||
G4KaonMinusAbsorption* theKaonMinusAbsorption;
|
||||
G4AntiProtonAnnihilationAtRest* theAntiProtonAnnihilation;
|
||||
G4AntiNeutronAnnihilationAtRest* theAntiNeutronAnnihilation;
|
||||
|
||||
G4bool wasActivated;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -33,10 +33,10 @@ class G4VNeutronBuilder
|
||||
public:
|
||||
G4VNeutronBuilder() {}
|
||||
virtual ~G4VNeutronBuilder() {}
|
||||
virtual void Build(G4HadronElasticProcess & aP) = 0;
|
||||
virtual void Build(G4HadronFissionProcess & aP) = 0;
|
||||
virtual void Build(G4HadronCaptureProcess & aP) = 0;
|
||||
virtual void Build(G4NeutronInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4HadronFissionProcess * aP) = 0;
|
||||
virtual void Build(G4HadronCaptureProcess * aP) = 0;
|
||||
virtual void Build(G4NeutronInelasticProcess * aP) = 0;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
|
||||
@@ -20,6 +20,20 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VPiKBuilder.hh,v 1.2 2005/11/25 15:38:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4VPiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 16.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4VPiKBuilder_h
|
||||
#define G4VPiKBuilder_h
|
||||
|
||||
@@ -36,13 +50,13 @@ class G4VPiKBuilder
|
||||
public:
|
||||
G4VPiKBuilder() {}
|
||||
virtual ~G4VPiKBuilder() {}
|
||||
virtual void Build(G4HadronElasticProcess & aP) = 0;
|
||||
virtual void Build(G4PionPlusInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4PionMinusInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4KaonPlusInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4KaonMinusInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4KaonZeroLInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4KaonZeroSInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP) = 0;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
|
||||
@@ -20,6 +20,20 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VProtonBuilder.hh,v 1.2 2005/11/25 15:38:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4VProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4VProtonBuilder_h
|
||||
#define G4VProtonBuilder_h
|
||||
|
||||
@@ -31,8 +45,8 @@ class G4VProtonBuilder
|
||||
public:
|
||||
G4VProtonBuilder() {}
|
||||
virtual ~G4VProtonBuilder() {}
|
||||
virtual void Build(G4HadronElasticProcess & aP) = 0;
|
||||
virtual void Build(G4ProtonInelasticProcess & aP) = 0;
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4ProtonInelasticProcess * aP) = 0;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//========================
|
||||
// taken from example N04 of G4 distribution
|
||||
//========================
|
||||
#ifndef IonPhysics_h
|
||||
#define IonPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4LElastic.hh"
|
||||
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4MultipleScattering.hh"
|
||||
|
||||
class IonPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
IonPhysics(const G4String& name="ion");
|
||||
virtual ~IonPhysics();
|
||||
|
||||
public:
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
protected:
|
||||
// Elastic Process
|
||||
G4LElastic* theElasticModel;
|
||||
|
||||
// Generic Ion physics
|
||||
G4HadronElasticProcess theIonElasticProcess;
|
||||
G4MultipleScattering fIonMultipleScattering;
|
||||
G4ionIonisation fIonIonisation;
|
||||
|
||||
// Deuteron physics
|
||||
G4HadronElasticProcess theDElasticProcess;
|
||||
G4MultipleScattering fDeuteronMultipleScattering;
|
||||
G4hIonisation fDeuteronIonisation;
|
||||
G4DeuteronInelasticProcess fDeuteronProcess;
|
||||
G4LEDeuteronInelastic* fDeuteronModel;
|
||||
|
||||
// Triton physics
|
||||
G4HadronElasticProcess theTElasticProcess;
|
||||
G4MultipleScattering fTritonMultipleScattering;
|
||||
G4hIonisation fTritonIonisation;
|
||||
G4TritonInelasticProcess fTritonProcess;
|
||||
G4LETritonInelastic* fTritonModel;
|
||||
|
||||
// Alpha physics
|
||||
G4HadronElasticProcess theAElasticProcess;
|
||||
G4MultipleScattering fAlphaMultipleScattering;
|
||||
G4hIonisation fAlphaIonisation;
|
||||
G4AlphaInelasticProcess fAlphaProcess;
|
||||
G4LEAlphaInelastic* fAlphaModel;
|
||||
|
||||
// He3 physics
|
||||
G4HadronElasticProcess theHe3ElasticProcess;
|
||||
G4MultipleScattering fHe3MultipleScattering;
|
||||
G4hIonisation fHe3Ionisation;
|
||||
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef ParticleCodeMap_hh
|
||||
#define ParticleCodeMap_hh
|
||||
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4SigmaMinus.hh"
|
||||
#include "G4AntiSigmaMinus.hh"
|
||||
#include "G4SigmaPlus.hh"
|
||||
#include "G4AntiSigmaPlus.hh"
|
||||
#include "G4XiMinus.hh"
|
||||
#include "G4AntiXiMinus.hh"
|
||||
#include "G4OmegaMinus.hh"
|
||||
#include "G4AntiOmegaMinus.hh"
|
||||
|
||||
template <class T> struct ParticleCodeMap;
|
||||
|
||||
template<> struct ParticleCodeMap<G4PionPlus> { enum {PDG_CODE = 211}; };
|
||||
template<> struct ParticleCodeMap<G4PionMinus> { enum {PDG_CODE = -211}; };
|
||||
template<> struct ParticleCodeMap<G4KaonPlus> { enum {PDG_CODE = 321}; };
|
||||
template<> struct ParticleCodeMap<G4KaonMinus> { enum {PDG_CODE = -321}; };
|
||||
template<> struct ParticleCodeMap<G4Proton> { enum {PDG_CODE = 2212}; };
|
||||
template<> struct ParticleCodeMap<G4AntiProton> { enum {PDG_CODE = -2212}; };
|
||||
template<> struct ParticleCodeMap<G4SigmaMinus> { enum {PDG_CODE = 3112}; };
|
||||
template<> struct ParticleCodeMap<G4AntiSigmaMinus>{ enum {PDG_CODE = -3112}; };
|
||||
template<> struct ParticleCodeMap<G4SigmaPlus> { enum {PDG_CODE = 3222}; };
|
||||
template<> struct ParticleCodeMap<G4AntiSigmaPlus> { enum {PDG_CODE = -3222}; };
|
||||
template<> struct ParticleCodeMap<G4XiMinus> { enum {PDG_CODE = 3312}; };
|
||||
template<> struct ParticleCodeMap<G4AntiXiMinus> { enum {PDG_CODE = -3312}; };
|
||||
template<> struct ParticleCodeMap<G4OmegaMinus> { enum {PDG_CODE = 3334}; };
|
||||
template<> struct ParticleCodeMap<G4AntiOmegaMinus>{ enum {PDG_CODE = -3334}; };
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef PortingDisclaimer_h
|
||||
#define PortingDisclaimer_h
|
||||
|
||||
class PortingDisclaimer
|
||||
{
|
||||
protected:
|
||||
PortingDisclaimer()
|
||||
{
|
||||
G4Exception("PortingDisclaimer", "007", FatalException,
|
||||
"The disclaimer is not to be instanciated" );
|
||||
}
|
||||
private:
|
||||
struct LocalDisclaimer
|
||||
{
|
||||
LocalDisclaimer()
|
||||
{
|
||||
G4cout << G4endl;
|
||||
G4cout << "========================== porting disclaimer =================================="<<G4endl;
|
||||
G4cout << "You are using a technical port of the physics lists provided"<<G4endl
|
||||
<< "for hadronic use-cases, as validated for geant4 5.2, with a "<<G4endl
|
||||
<< "later version of geant4."<<G4endl
|
||||
<< "These physics lists are made available with that geant4 districution, so users"<<G4endl
|
||||
<< "wishing to use the latest-greatest geant4 code keep having a starting point"<<G4endl
|
||||
<< "for their work with hadronics."<<G4endl<<G4endl
|
||||
<< "Please note that it is a purely technical port, without physics validation performed. "<<G4endl
|
||||
<< "Hence these physics lists do not yet come with the usual guarantees attached as to "<<G4endl
|
||||
<< "their physics performance."<< G4endl
|
||||
<< "For validated 'educated guess' physics lists for hadronic usecases, "<<G4endl
|
||||
<< "as well as updates, please see the related WWW pages."<< G4endl << G4endl
|
||||
<< "For information as to which physics list is optimized for your study,"<<G4endl
|
||||
<< "please also consult the GHAD WWW pages."<<G4endl
|
||||
<< "Geant4 hadronics is a component system, and here the physics lists main "<<G4endl
|
||||
<< "task is to configure these components in a suitable way for a concrete useage."<<G4endl
|
||||
<< "Not all physics lists are suitable for all usecases."<<G4endl;
|
||||
G4cout << "========================== porting disclaimer =================================="<<G4endl;
|
||||
G4cout << G4endl;
|
||||
}
|
||||
};
|
||||
public:
|
||||
static LocalDisclaimer * PrintLocalDisclaimer()
|
||||
{
|
||||
static LocalDisclaimer aD;
|
||||
return &aD;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,54 +0,0 @@
|
||||
class PNullType
|
||||
{
|
||||
};
|
||||
|
||||
template <class T0,
|
||||
class T1=PNullType, class T2=PNullType, class T3=PNullType, class T4=PNullType, class T5=PNullType,
|
||||
class T6=PNullType, class T7=PNullType, class T8=PNullType, class T9=PNullType, class T10=PNullType,
|
||||
class T11=PNullType, class T12=PNullType, class T13=PNullType, class T14=PNullType, class T15=PNullType,
|
||||
class T16=PNullType, class T17=PNullType, class T18=PNullType, class T19=PNullType, class T20=PNullType,
|
||||
class T21=PNullType, class T22=PNullType, class T23=PNullType, class T24=PNullType, class T25=PNullType,
|
||||
class T26=PNullType, class T27=PNullType, class T28=PNullType, class T29=PNullType, class T30=PNullType,
|
||||
class T31=PNullType, class T32=PNullType, class T33=PNullType, class T34=PNullType, class T35=PNullType,
|
||||
class T36=PNullType, class T37=PNullType, class T38=PNullType, class T39=PNullType, class T40=PNullType,
|
||||
class T41=PNullType, class T42=PNullType, class T43=PNullType, class T44=PNullType, class T45=PNullType,
|
||||
class T46=PNullType, class T47=PNullType, class T48=PNullType, class T49=PNullType, class T50=PNullType,
|
||||
class T51=PNullType, class T52=PNullType, class T53=PNullType, class T54=PNullType, class T55=PNullType,
|
||||
class T56=PNullType, class T57=PNullType, class T58=PNullType, class T59=PNullType, class T60=PNullType,
|
||||
class T61=PNullType, class T62=PNullType, class T63=PNullType
|
||||
>
|
||||
struct Plist
|
||||
{
|
||||
typedef T0 first;
|
||||
typedef Plist<
|
||||
T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,
|
||||
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
|
||||
T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,
|
||||
T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,
|
||||
T41,T42,T43,T44,T45,T46,T47,T48,T49,T50,
|
||||
T51,T52,T53,T54,T55,T56,T57,T58,T59,T60,
|
||||
T61,T62,T63
|
||||
> rest;
|
||||
};
|
||||
|
||||
template <class functor>
|
||||
struct Apply
|
||||
{
|
||||
template <class current, class Rest> struct CallBack {
|
||||
static void Call_Back() {
|
||||
typedef typename functor::template Fun<current> it;
|
||||
it aF; aF();
|
||||
typedef typename Rest::first first;
|
||||
typedef typename Rest::rest second;
|
||||
Apply<functor>::template CallBack<first, second>::Call_Back();
|
||||
}
|
||||
};
|
||||
template <class Rest> struct CallBack<PNullType, Rest > {
|
||||
static void Call_Back(){}
|
||||
};
|
||||
template <class group> static void ForEachIn() {
|
||||
CallBack<typename group::first, typename group::rest>::Call_Back();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "EMPhysics.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
|
||||
|
||||
EMPhysics::
|
||||
EMPhysics(const G4String& name) : G4VPhysicsConstructor(name) {}
|
||||
|
||||
EMPhysics::
|
||||
~EMPhysics() {}
|
||||
|
||||
void EMPhysics::
|
||||
ConstructParticle()
|
||||
{
|
||||
G4Gamma::GammaDefinition();
|
||||
G4Electron::ElectronDefinition();
|
||||
G4Positron::PositronDefinition();
|
||||
G4NeutrinoE::NeutrinoEDefinition();
|
||||
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
|
||||
}
|
||||
|
||||
void EMPhysics::
|
||||
ConstructProcess()
|
||||
{
|
||||
theEMPhysics.Build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -1,63 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "EM_GNPhysics.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
|
||||
|
||||
EM_GNPhysics::
|
||||
EM_GNPhysics(const G4String& name) : G4VPhysicsConstructor(name) {}
|
||||
|
||||
EM_GNPhysics::
|
||||
~EM_GNPhysics() {}
|
||||
|
||||
void EM_GNPhysics::
|
||||
ConstructParticle()
|
||||
{
|
||||
G4Gamma::GammaDefinition();
|
||||
G4Electron::ElectronDefinition();
|
||||
G4Positron::PositronDefinition();
|
||||
G4NeutrinoE::NeutrinoEDefinition();
|
||||
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
|
||||
}
|
||||
|
||||
void EM_GNPhysics::
|
||||
ConstructProcess()
|
||||
{
|
||||
theEMPhysics.Build();
|
||||
#ifndef NO_ELECTRO_AND_GAMMA_NUCLEAR
|
||||
theGNPhysics.Build();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -34,29 +34,29 @@ G4BertiniNeutronBuilder()
|
||||
}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4BertiniNeutronBuilder::
|
||||
~G4BertiniNeutronBuilder() {}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -39,42 +39,42 @@
|
||||
~G4BertiniPiKBuilder() {}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & )
|
||||
Build(G4KaonPlusInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & )
|
||||
Build(G4KaonMinusInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & )
|
||||
Build(G4KaonZeroLInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & )
|
||||
Build(G4KaonZeroSInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -37,17 +37,17 @@ G4BertiniProtonBuilder::
|
||||
~G4BertiniProtonBuilder() {}
|
||||
|
||||
void G4BertiniProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -34,29 +34,29 @@
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4BinaryNeutronBuilder::
|
||||
~G4BinaryNeutronBuilder() {}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -39,43 +39,43 @@ G4BinaryPiKBuilder::
|
||||
~G4BinaryPiKBuilder() {}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & )
|
||||
Build(G4KaonPlusInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & )
|
||||
Build(G4KaonMinusInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & )
|
||||
Build(G4KaonZeroLInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & )
|
||||
Build(G4KaonZeroSInelasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -34,19 +34,19 @@ G4BinaryProtonBuilder()
|
||||
}
|
||||
|
||||
void G4BinaryProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->AddDataSet(&theXSec);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
G4BinaryProtonBuilder::
|
||||
~G4BinaryProtonBuilder() {}
|
||||
|
||||
void G4BinaryProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DecayPhysics.cc,v 1.4 2005/12/05 12:55:27 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4DecayPhysics
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard
|
||||
// 05.12.2005 V.Ivanchenko add controlled verbosity
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4DecayPhysics.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4BosonConstructor.hh"
|
||||
#include "G4LeptonConstructor.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BosonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
|
||||
G4DecayPhysics::G4DecayPhysics(const G4String& name, G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{}
|
||||
|
||||
G4DecayPhysics::~G4DecayPhysics()
|
||||
{
|
||||
if(wasActivated) delete fDecayProcess;
|
||||
}
|
||||
|
||||
void G4DecayPhysics::ConstructParticle()
|
||||
{
|
||||
|
||||
// G4cout << "G4DecayPhysics::ConstructParticle" << G4endl;
|
||||
G4BosonConstructor pBosonConstructor;
|
||||
pBosonConstructor.ConstructParticle();
|
||||
|
||||
G4LeptonConstructor pLeptonConstructor;
|
||||
pLeptonConstructor.ConstructParticle();
|
||||
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4IonConstructor pIonConstructor;
|
||||
pIonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4DecayPhysics::ConstructProcess()
|
||||
{
|
||||
wasActivated = true;
|
||||
|
||||
// Add Decay Process
|
||||
fDecayProcess = new G4Decay();
|
||||
theParticleIterator->reset();
|
||||
G4ParticleDefinition* particle=0;
|
||||
G4ProcessManager* pmanager=0;
|
||||
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
particle = theParticleIterator->value();
|
||||
pmanager = particle->GetProcessManager();
|
||||
if( fDecayProcess->IsApplicable(*particle) )
|
||||
{
|
||||
if(verbose > 1)
|
||||
G4cout << "### Decays for " << particle->GetParticleName() << G4endl;
|
||||
pmanager -> AddProcess(fDecayProcess);
|
||||
pmanager -> SetProcessOrdering(fDecayProcess, idxPostStep);
|
||||
pmanager -> SetProcessOrdering(fDecayProcess, idxAtRest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,157 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4EMBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4EMBuilder::
|
||||
G4EMBuilder(): wasActivated(false), synchOn(false),
|
||||
gammNucOn(false)
|
||||
{
|
||||
theT = new G4EMTailorer(this);
|
||||
}
|
||||
|
||||
void G4EMBuilder::
|
||||
Synch (G4String & newState)
|
||||
{
|
||||
if(newState == "on")
|
||||
{
|
||||
if(synchOn)
|
||||
{
|
||||
}
|
||||
else if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Electron::ElectronDefinition()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&theElectronSynch);
|
||||
pManager = G4Positron::PositronDefinition()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&thePositronSynch);
|
||||
}
|
||||
synchOn = true;
|
||||
}
|
||||
else if(synchOn)
|
||||
{
|
||||
synchOn = false;
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Electron::ElectronDefinition()->GetProcessManager();
|
||||
pManager->RemoveProcess(&theElectronSynch);
|
||||
pManager = G4Positron::PositronDefinition()->GetProcessManager();
|
||||
pManager->RemoveProcess(&thePositronSynch);
|
||||
}
|
||||
}
|
||||
|
||||
void G4EMBuilder::
|
||||
GammaNuclear (G4String & newState)
|
||||
{
|
||||
if(newState == "on")
|
||||
{
|
||||
if(gammNucOn)
|
||||
{
|
||||
}
|
||||
else if(wasActivated)
|
||||
{
|
||||
theGNPhysics.Build();
|
||||
}
|
||||
gammNucOn = true;
|
||||
}
|
||||
else if(gammNucOn)
|
||||
{
|
||||
G4Exception("G4EMBuilder", "007", FatalException,
|
||||
"Switching off of gamma nuclear currently not supported.");
|
||||
}
|
||||
}
|
||||
|
||||
G4EMBuilder::
|
||||
~G4EMBuilder()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Gamma::Gamma()->GetProcessManager();
|
||||
if(pManager)
|
||||
{
|
||||
pManager->RemoveProcess(&thePhotoEffect);
|
||||
pManager->RemoveProcess(&theComptonEffect);
|
||||
pManager->RemoveProcess(&thePairProduction);
|
||||
}
|
||||
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
if(pManager)
|
||||
{
|
||||
pManager->RemoveProcess(&theElectronBremsStrahlung);
|
||||
pManager->RemoveProcess(&theElectronIonisation);
|
||||
pManager->RemoveProcess(&theElectronMultipleScattering);
|
||||
if(synchOn) pManager->RemoveProcess(&theElectronSynch);
|
||||
}
|
||||
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
if(pManager)
|
||||
{
|
||||
pManager->RemoveProcess(&thePositronBremsStrahlung);
|
||||
pManager->RemoveProcess(&theAnnihilation);
|
||||
pManager->RemoveProcess(&thePositronIonisation);
|
||||
pManager->RemoveProcess(&thePositronMultipleScattering);
|
||||
if(synchOn) pManager->RemoveProcess(&thePositronSynch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void G4EMBuilder::Build()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
wasActivated = true;
|
||||
|
||||
pManager = G4Gamma::Gamma()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&thePhotoEffect);
|
||||
pManager->AddDiscreteProcess(&theComptonEffect);
|
||||
pManager->AddDiscreteProcess(&thePairProduction);
|
||||
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&theElectronBremsStrahlung);
|
||||
pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2);
|
||||
pManager->AddProcess(&theElectronMultipleScattering);
|
||||
if(synchOn) pManager->AddDiscreteProcess(&theElectronSynch);
|
||||
pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1);
|
||||
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&thePositronBremsStrahlung);
|
||||
pManager->AddDiscreteProcess(&theAnnihilation);
|
||||
pManager->AddRestProcess(&theAnnihilation);
|
||||
pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2);
|
||||
pManager->AddProcess(&thePositronMultipleScattering);
|
||||
if(synchOn) pManager->AddDiscreteProcess(&thePositronSynch);
|
||||
pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1);
|
||||
if (gammNucOn) theGNPhysics.Build();
|
||||
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -34,19 +34,16 @@
|
||||
|
||||
G4ElectroNuclearBuilder::G4ElectroNuclearBuilder() : wasActivated(false)
|
||||
{
|
||||
theElectroReaction = new G4ElectroNuclearReaction;
|
||||
theGammaReaction = new G4GammaNuclearReaction;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder()
|
||||
{
|
||||
delete theFragmentation;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete thePhotoNuclearProcess;
|
||||
delete theElectronNuclearProcess;
|
||||
delete thePositronNuclearProcess;
|
||||
delete theElectroReaction;
|
||||
delete theGammaReaction;
|
||||
delete theModel;
|
||||
@@ -55,33 +52,52 @@ G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Gamma::Gamma()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&thePhotoNuclearProcess);
|
||||
if(pManager) pManager->RemoveProcess(thePhotoNuclearProcess);
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theElectronNuclearProcess);
|
||||
if(pManager) pManager->RemoveProcess(theElectronNuclearProcess);
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&thePositronNuclearProcess);
|
||||
if(pManager) pManager->RemoveProcess(thePositronNuclearProcess);
|
||||
}
|
||||
}
|
||||
|
||||
void G4ElectroNuclearBuilder::Build()
|
||||
{
|
||||
wasActivated=true;
|
||||
|
||||
thePhotoNuclearProcess = new G4PhotoNuclearProcess;
|
||||
theElectronNuclearProcess = new G4ElectronNuclearProcess;
|
||||
thePositronNuclearProcess = new G4PositronNuclearProcess;
|
||||
theElectroReaction = new G4ElectroNuclearReaction;
|
||||
theGammaReaction = new G4GammaNuclearReaction;
|
||||
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4QGSModel< G4GammaParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(theFragmentation=new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
|
||||
aProcMan = G4Gamma::Gamma()->GetProcessManager();
|
||||
theGammaReaction->SetMaxEnergy(3.5*GeV);
|
||||
thePhotoNuclearProcess.RegisterMe(theGammaReaction);
|
||||
thePhotoNuclearProcess->RegisterMe(theGammaReaction);
|
||||
theModel->SetMinEnergy(3.*GeV);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
thePhotoNuclearProcess.RegisterMe(theModel);
|
||||
aProcMan->AddDiscreteProcess(&thePhotoNuclearProcess);
|
||||
thePhotoNuclearProcess->RegisterMe(theModel);
|
||||
aProcMan->AddDiscreteProcess(thePhotoNuclearProcess);
|
||||
|
||||
aProcMan = G4Electron::Electron()->GetProcessManager();
|
||||
theElectronNuclearProcess.RegisterMe(theElectroReaction);
|
||||
aProcMan->AddDiscreteProcess(&theElectronNuclearProcess);
|
||||
theElectronNuclearProcess->RegisterMe(theElectroReaction);
|
||||
aProcMan->AddDiscreteProcess(theElectronNuclearProcess);
|
||||
|
||||
aProcMan = G4Positron::Positron()->GetProcessManager();
|
||||
thePositronNuclearProcess.RegisterMe(theElectroReaction);
|
||||
aProcMan->AddDiscreteProcess(&thePositronNuclearProcess);
|
||||
thePositronNuclearProcess->RegisterMe(theElectroReaction);
|
||||
aProcMan->AddDiscreteProcess(thePositronNuclearProcess);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4EmExtraPhysics.cc,v 1.2 2005/12/01 18:19:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmExtraPhysics
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
|
||||
#include "G4SynchrotronRadiation.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4EmExtraPhysics::G4EmExtraPhysics(const G4String& name): G4VPhysicsConstructor(name),
|
||||
wasActivated(false), synchOn(false),
|
||||
gammNucOn(true), theElectronSynch(0), thePositronSynch(0),
|
||||
theGNPhysics(0)
|
||||
{
|
||||
theMessenger = new G4EmMessenger(this);
|
||||
}
|
||||
|
||||
G4EmExtraPhysics::~G4EmExtraPhysics()
|
||||
{
|
||||
delete theMessenger;
|
||||
if(theElectronSynch) delete theElectronSynch;
|
||||
if(thePositronSynch) delete thePositronSynch;
|
||||
if(theGNPhysics) delete theGNPhysics;
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::Synch(G4String & newState)
|
||||
{
|
||||
if(newState == "on") synchOn = true;
|
||||
else synchOn = false;
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::GammaNuclear(G4String & newState)
|
||||
{
|
||||
if(newState == "on") gammNucOn = true;
|
||||
else gammNucOn = false;
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::ConstructParticle()
|
||||
{
|
||||
G4Gamma::Gamma();
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
wasActivated = true;
|
||||
|
||||
if(synchOn) {
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
theElectronSynch = new G4SynchrotronRadiation();
|
||||
pManager->AddDiscreteProcess(theElectronSynch);
|
||||
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
thePositronSynch = new G4SynchrotronRadiation();
|
||||
pManager->AddDiscreteProcess(thePositronSynch);
|
||||
}
|
||||
if (gammNucOn) {
|
||||
theGNPhysics = new G4ElectroNuclearBuilder();
|
||||
theGNPhysics->Build();
|
||||
}
|
||||
}
|
||||
+35
-21
@@ -20,45 +20,59 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4EMTailorer.hh"
|
||||
#include "G4EMBuilder.hh"
|
||||
// $Id: G4EmMessenger.cc,v 1.2 2005/11/30 18:28:52 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmMessenger
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 09.11.2005 V.Ivanchenko edit to provide a standard
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
void G4EMTailorer::SetNewValue(G4UIcommand* aComm, G4String aS)
|
||||
{
|
||||
if(aComm==theSynch)
|
||||
{
|
||||
theB->Synch(aS);
|
||||
}
|
||||
if(aComm==theGN)
|
||||
{
|
||||
theB->GammaNuclear(aS);
|
||||
}
|
||||
}
|
||||
#include "G4EmMessenger.hh"
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
|
||||
G4EMTailorer::G4EMTailorer(G4EMBuilder * ab)
|
||||
G4EmMessenger::G4EmMessenger(G4EmExtraPhysics* ab)
|
||||
{
|
||||
theB = ab;
|
||||
aDir1 = new G4UIdirectory("/physics_engine/");
|
||||
aDir1->SetGuidance("commands related to the physics simulation engine.");
|
||||
|
||||
|
||||
// general stuff.
|
||||
aDir2 = new G4UIdirectory("/physics_engine/tailor/");
|
||||
aDir2->SetGuidance("tailoring the processes");
|
||||
|
||||
|
||||
// command for synchrotron radiation.
|
||||
theSynch = new G4UIcmdWithAString("/physics_engine/tailor/SyncRadiation",this);
|
||||
theSynch->SetGuidance("Switching on/off synchrotron radiation.");
|
||||
theSynch->SetParameterName("status","off");
|
||||
theSynch->SetCandidates("on off");
|
||||
theSynch->SetDefaultValue("off");
|
||||
theSynch->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// command for gamma nuclear physics.
|
||||
theSynch->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// command for gamma nuclear physics.
|
||||
theGN = new G4UIcmdWithAString("/physics_engine/tailor/GammaNuclear",this);
|
||||
theGN->SetGuidance("Switching on gamma nuclear physics.");
|
||||
theGN->SetParameterName("status","off");
|
||||
theGN->SetCandidates("on off");
|
||||
theGN->SetDefaultValue("off");
|
||||
theGN->AvailableForStates(G4State_PreInit);
|
||||
theGN->AvailableForStates(G4State_PreInit);
|
||||
}
|
||||
|
||||
G4EmMessenger::~G4EmMessenger()
|
||||
{
|
||||
delete theSynch;
|
||||
delete theGN;
|
||||
}
|
||||
|
||||
void G4EmMessenger::SetNewValue(G4UIcommand* aComm, G4String aS)
|
||||
{
|
||||
if(aComm==theSynch) theB->Synch(aS);
|
||||
if(aComm==theGN) theB->GammaNuclear(aS);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,211 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4EmStandardPhysics.cc,v 1.7 2005/12/06 14:53:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmStandardPhysics
|
||||
//
|
||||
// Author: V.Ivanchenko 09.11.2005
|
||||
//
|
||||
// Modified:
|
||||
// 05.12.2005 V.Ivanchenko add controlled verbosity
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
|
||||
#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"
|
||||
#include "G4ionIonisation.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4Triton.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics::G4EmStandardPhysics(const G4String& name, G4int ver,
|
||||
G4bool msc): G4VPhysicsConstructor(name), verbose(ver), mscStepLimit(msc)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics::~G4EmStandardPhysics()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmStandardPhysics::ConstructParticle()
|
||||
{
|
||||
// gamma
|
||||
G4Gamma::Gamma();
|
||||
|
||||
// leptons
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
|
||||
// barions
|
||||
G4Proton::Proton();
|
||||
G4AntiProton::AntiProton();
|
||||
|
||||
// ions
|
||||
G4Deuteron::Deuteron();
|
||||
G4Triton::Triton();
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmStandardPhysics::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
|
||||
pmanager->AddDiscreteProcess(new G4ComptonScattering);
|
||||
pmanager->AddDiscreteProcess(new G4GammaConversion);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard instantiates eIoni and msc80 for "
|
||||
<< particleName << G4endl;
|
||||
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+") {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard instantiates eIoni and msc80 for "
|
||||
<< particleName << G4endl;
|
||||
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-" ) {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard instantiates muIoni and msc80 for "
|
||||
<< particleName << G4endl;
|
||||
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 (particleName == "alpha" ||
|
||||
particleName == "He3" ||
|
||||
particleName == "GenericIon") {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard instantiates ionIoni and msc80 for "
|
||||
<< particleName << G4endl;
|
||||
pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "proton" ||
|
||||
particleName == "sigma+" ||
|
||||
particleName == "sigma-" ||
|
||||
particleName == "tau+" ||
|
||||
particleName == "tau-" ||
|
||||
particleName == "triton" ||
|
||||
particleName == "xi-" ) {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard instantiates hIoni and msc80 for "
|
||||
<< particleName << G4endl;
|
||||
pmanager->AddProcess(new G4MultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
|
||||
}
|
||||
}
|
||||
G4EmProcessOptions opt;
|
||||
opt.SetVerbose(verbose);
|
||||
if(!mscStepLimit)
|
||||
opt.SetMscStepLimitation(false);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,209 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4EmStandardPhysics71.cc,v 1.8 2005/12/06 14:53:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmStandardPhysics71
|
||||
//
|
||||
// Author: V.Ivanchenko 09.11.2005
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4EmStandardPhysics71.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
|
||||
#include "G4MultipleScattering71.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4Triton.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics71::G4EmStandardPhysics71(const G4String& name, G4int ver,
|
||||
G4bool msc): G4VPhysicsConstructor(name), verbose(ver), mscStepLimit(msc)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics71::~G4EmStandardPhysics71()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmStandardPhysics71::ConstructParticle()
|
||||
{
|
||||
// gamma
|
||||
G4Gamma::Gamma();
|
||||
|
||||
// leptons
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
|
||||
// barions
|
||||
G4Proton::Proton();
|
||||
G4AntiProton::AntiProton();
|
||||
|
||||
// ions
|
||||
G4Deuteron::Deuteron();
|
||||
G4Triton::Triton();
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmStandardPhysics71::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
|
||||
pmanager->AddDiscreteProcess(new G4ComptonScattering);
|
||||
pmanager->AddDiscreteProcess(new G4GammaConversion);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard71 instantiates eIoni and msc71 for "
|
||||
<< particleName << G4endl;
|
||||
pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung(), -1, 3, 3);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard71 instantiates eIoni and msc71 for "
|
||||
<< particleName << G4endl;
|
||||
pmanager->AddProcess(new G4MultipleScattering71, -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-" ) {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard71 instantiates muIoni and msc71 for "
|
||||
<< particleName << G4endl;
|
||||
pmanager->AddProcess(new G4MultipleScattering71,-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 (particleName == "alpha" ||
|
||||
particleName == "He3" ||
|
||||
particleName == "GenericIon") {
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard71 instantiates ionIoni and msc71 for "
|
||||
<< particleName << G4endl;
|
||||
pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "proton" ||
|
||||
particleName == "sigma+" ||
|
||||
particleName == "sigma-" ||
|
||||
particleName == "tau+" ||
|
||||
particleName == "tau-" ||
|
||||
particleName == "triton" ||
|
||||
particleName == "xi-" ) {
|
||||
if(verbose > 1)
|
||||
G4cout << "### EmStandard71 instantiates hIoni and msc71 for "
|
||||
<< particleName << G4endl;
|
||||
pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
|
||||
}
|
||||
}
|
||||
G4EmProcessOptions opt;
|
||||
opt.SetVerbose(verbose);
|
||||
// if(!mscStepLimit)
|
||||
// opt.SetMscStepLimitation(false);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -30,42 +30,48 @@
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4FTFCNeutronBuilder::
|
||||
~G4FTFCNeutronBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->AddDataSet(&theXSec);
|
||||
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,70 +30,77 @@
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
}
|
||||
|
||||
G4FTFCPiKBuilder::
|
||||
~G4FTFCPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -35,12 +35,12 @@ G4FTFCProtonBuilder()
|
||||
}
|
||||
|
||||
void G4FTFCProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,43 +30,50 @@
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
}
|
||||
|
||||
G4FTFPNeutronBuilder::
|
||||
~G4FTFPNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete thePreEquilib;
|
||||
delete theCascade;
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,72 +30,79 @@
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4FTFPPiKBuilder::
|
||||
~G4FTFPPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,22 +30,26 @@
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
void G4FTFPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4FTFPProtonBuilder::
|
||||
@@ -55,7 +59,7 @@
|
||||
}
|
||||
|
||||
void G4FTFPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
G4HadronQEDBuilder::G4HadronQEDBuilder(): wasActivated(false) {}
|
||||
|
||||
G4HadronQEDBuilder::~G4HadronQEDBuilder()
|
||||
{ if(wasActivated) std::for_each(theCache().begin(), theCache().end(), Clear()); }
|
||||
|
||||
void G4HadronQEDBuilder::Build() { wasActivated = true; Apply<Register>::ForEachIn<theParticles>(); }
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,150 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4IonPhysics.cc,v 1.2 2005/12/02 12:40:04 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4IonPhysics
|
||||
//
|
||||
// Author: V.Ivanchenko 09.11.2005
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4IonPhysics.hh"
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4LElastic.hh"
|
||||
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4IonPhysics::G4IonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), wasActivated(false)
|
||||
{
|
||||
}
|
||||
|
||||
G4IonPhysics::~G4IonPhysics()
|
||||
{
|
||||
if(wasActivated) {
|
||||
|
||||
delete theElasticModel;
|
||||
delete theIonElasticProcess;
|
||||
delete theDElasticProcess;
|
||||
delete fDeuteronProcess;
|
||||
delete fDeuteronModel;
|
||||
delete theTElasticProcess;
|
||||
delete fTritonProcess;
|
||||
delete fTritonModel;
|
||||
delete theAElasticProcess;
|
||||
delete fAlphaProcess;
|
||||
delete fAlphaModel;
|
||||
delete theHe3ElasticProcess;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void G4IonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
// Elastic Process
|
||||
theElasticModel = new G4LElastic();
|
||||
|
||||
theIonElasticProcess = new G4HadronElasticProcess();
|
||||
theDElasticProcess = new G4HadronElasticProcess();
|
||||
theTElasticProcess = new G4HadronElasticProcess();
|
||||
theAElasticProcess = new G4HadronElasticProcess();
|
||||
theHe3ElasticProcess = new G4HadronElasticProcess();
|
||||
|
||||
theIonElasticProcess->RegisterMe(theElasticModel);
|
||||
theDElasticProcess->RegisterMe(theElasticModel);
|
||||
theTElasticProcess->RegisterMe(theElasticModel);
|
||||
theAElasticProcess->RegisterMe(theElasticModel);
|
||||
theHe3ElasticProcess->RegisterMe(theElasticModel);
|
||||
|
||||
// Generic Ion
|
||||
pManager = G4GenericIon::GenericIon()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(theIonElasticProcess);
|
||||
|
||||
// Deuteron
|
||||
pManager = G4Deuteron::Deuteron()->GetProcessManager();
|
||||
// add process
|
||||
fDeuteronModel = new G4LEDeuteronInelastic();
|
||||
fDeuteronProcess = new G4DeuteronInelasticProcess();
|
||||
fDeuteronProcess->RegisterMe(fDeuteronModel);
|
||||
pManager->AddDiscreteProcess(theDElasticProcess);
|
||||
pManager->AddDiscreteProcess(fDeuteronProcess);
|
||||
|
||||
// Triton
|
||||
pManager = G4Triton::Triton()->GetProcessManager();
|
||||
// add process
|
||||
fTritonModel = new G4LETritonInelastic();
|
||||
fTritonProcess = new G4TritonInelasticProcess();
|
||||
fTritonProcess->RegisterMe(fTritonModel);
|
||||
pManager->AddDiscreteProcess(theTElasticProcess);
|
||||
pManager->AddDiscreteProcess(fTritonProcess);
|
||||
|
||||
// Alpha
|
||||
pManager = G4Alpha::Alpha()->GetProcessManager();
|
||||
// add process
|
||||
fAlphaModel = new G4LEAlphaInelastic();
|
||||
fAlphaProcess = new G4AlphaInelasticProcess();
|
||||
fAlphaProcess->RegisterMe(fAlphaModel);
|
||||
pManager->AddDiscreteProcess(theAElasticProcess);
|
||||
pManager->AddDiscreteProcess(fAlphaProcess);
|
||||
|
||||
// He3
|
||||
pManager = G4He3::He3()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(theHe3ElasticProcess);
|
||||
|
||||
wasActivated = true;
|
||||
}
|
||||
|
||||
void G4IonPhysics::ConstructParticle()
|
||||
{
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -36,20 +36,20 @@
|
||||
~G4LEADNeutronBuilder() {}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->AddDataSet(&theXSec);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & ){}
|
||||
Build(G4HadronElasticProcess * ){}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & ){}
|
||||
Build(G4HadronFissionProcess * ){}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & ){}
|
||||
Build(G4HadronCaptureProcess * ){}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -36,49 +36,49 @@ G4LEADPiKBuilder::
|
||||
~G4LEADPiKBuilder() {}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,16 +36,16 @@ G4LEADProtonBuilder::
|
||||
~G4LEADProtonBuilder() {}
|
||||
|
||||
void G4LEADProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4LEADProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -38,39 +38,39 @@ G4LEPNeutronBuilder::
|
||||
~G4LEPNeutronBuilder() {}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
Build(G4HadronElasticProcess * aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
theElasticModel->SetMinEnergy(theMin);
|
||||
theElasticModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theElasticModel);
|
||||
aP->RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & aP)
|
||||
Build(G4HadronFissionProcess * aP)
|
||||
{
|
||||
theNeutronFissionModel = new G4LFission();
|
||||
theNeutronFissionModel->SetMinEnergy(theMin);
|
||||
theNeutronFissionModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theNeutronFissionModel);
|
||||
aP->RegisterMe(theNeutronFissionModel);
|
||||
}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & aP)
|
||||
Build(G4HadronCaptureProcess * aP)
|
||||
{
|
||||
theNeutronCaptureModel = new G4LCapture();
|
||||
theNeutronCaptureModel->SetMinEnergy(theMin);
|
||||
theNeutronCaptureModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theNeutronCaptureModel);
|
||||
aP->RegisterMe(theNeutronCaptureModel);
|
||||
}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theLENeutronModel = new G4LENeutronInelastic();
|
||||
theLENeutronModel->SetMinEnergy(theIMin);
|
||||
theLENeutronModel->SetMaxEnergy(theIMax);
|
||||
aP.RegisterMe(theLENeutronModel);
|
||||
aP->RegisterMe(theLENeutronModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -43,63 +43,63 @@ G4LEPPiKBuilder::
|
||||
~G4LEPPiKBuilder() {}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
Build(G4HadronElasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theElasticModel);
|
||||
aP->RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theLEPionPlusModel = new G4LEPionPlusInelastic();
|
||||
theLEPionPlusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionPlusModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEPionPlusModel);
|
||||
aP->RegisterMe(theLEPionPlusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theLEPionMinusModel = new G4LEPionMinusInelastic();
|
||||
theLEPionMinusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionMinusModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEPionMinusModel);
|
||||
aP->RegisterMe(theLEPionMinusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonPlusModel = new G4LEKaonPlusInelastic();
|
||||
theLEKaonPlusModel->SetMinEnergy(theMin);
|
||||
theLEKaonPlusModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEKaonPlusModel);
|
||||
aP->RegisterMe(theLEKaonPlusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonMinusModel = new G4LEKaonMinusInelastic();
|
||||
theLEKaonMinusModel->SetMaxEnergy(theMax);
|
||||
theLEKaonMinusModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theLEKaonMinusModel);
|
||||
aP->RegisterMe(theLEKaonMinusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonZeroLModel = new G4LEKaonZeroLInelastic();
|
||||
theLEKaonZeroLModel->SetMaxEnergy(theMax);
|
||||
theLEKaonZeroLModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theLEKaonZeroLModel);
|
||||
aP->RegisterMe(theLEKaonZeroLModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonZeroSModel = new G4LEKaonZeroSInelastic();
|
||||
theLEKaonZeroSModel->SetMaxEnergy(theMax);
|
||||
theLEKaonZeroSModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theLEKaonZeroSModel);
|
||||
aP->RegisterMe(theLEKaonZeroSModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -36,19 +36,20 @@ G4LEPProtonBuilder::
|
||||
~G4LEPProtonBuilder() {}
|
||||
|
||||
void G4LEPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
Build(G4HadronElasticProcess * aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
aP.RegisterMe(theElasticModel);
|
||||
aP->RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LEPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
// G4cout << "adding inelastic Proton in LHEP" << G4endl;
|
||||
theLEProtonModel = new G4LEProtonInelastic();
|
||||
theLEProtonModel->SetMinEnergy(theMin);
|
||||
theLEProtonModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEProtonModel);
|
||||
aP->RegisterMe(theLEProtonModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -36,39 +36,39 @@
|
||||
~G4LHEPNeutronBuilder() {}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theLENeutronModel = new G4LENeutronInelastic();
|
||||
theHENeutronModel = new G4HENeutronInelastic();
|
||||
theLENeutronModel->SetMinEnergy(theIMin);
|
||||
theLENeutronModel->SetMaxEnergy(55*GeV);
|
||||
theHENeutronModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLENeutronModel);
|
||||
aP.RegisterMe(theHENeutronModel);
|
||||
aP->RegisterMe(theLENeutronModel);
|
||||
aP->RegisterMe(theHENeutronModel);
|
||||
}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & aP)
|
||||
Build(G4HadronFissionProcess * aP)
|
||||
{
|
||||
theNeutronFissionModel = new G4LFission();
|
||||
theNeutronFissionModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theNeutronFissionModel);
|
||||
aP->RegisterMe(theNeutronFissionModel);
|
||||
}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
Build(G4HadronElasticProcess * aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
theElasticModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theElasticModel);
|
||||
aP->RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & aP)
|
||||
Build(G4HadronCaptureProcess * aP)
|
||||
{
|
||||
theNeutronCaptureModel = new G4LCapture();
|
||||
theNeutronCaptureModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theNeutronCaptureModel);
|
||||
aP->RegisterMe(theNeutronCaptureModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -42,73 +42,73 @@ G4LHEPPiKBuilder::
|
||||
~G4LHEPPiKBuilder() {}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
Build(G4HadronElasticProcess * aP)
|
||||
{
|
||||
aP.RegisterMe(theElasticModel);
|
||||
aP->RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theLEPionPlusModel = new G4LEPionPlusInelastic();
|
||||
theHEPionPlusModel = new G4HEPionPlusInelastic();
|
||||
theLEPionPlusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionPlusModel->SetMaxEnergy(55*GeV);
|
||||
theHEPionPlusModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLEPionPlusModel);
|
||||
aP.RegisterMe(theHEPionPlusModel);
|
||||
aP->RegisterMe(theLEPionPlusModel);
|
||||
aP->RegisterMe(theHEPionPlusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theLEPionMinusModel = new G4LEPionMinusInelastic();
|
||||
theHEPionMinusModel = new G4HEPionMinusInelastic();
|
||||
theLEPionMinusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionMinusModel->SetMaxEnergy(55*GeV);
|
||||
theHEPionMinusModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLEPionMinusModel);
|
||||
aP.RegisterMe(theHEPionMinusModel);
|
||||
aP->RegisterMe(theLEPionMinusModel);
|
||||
aP->RegisterMe(theHEPionMinusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonPlusModel = new G4LEKaonPlusInelastic();
|
||||
theHEKaonPlusModel = new G4HEKaonPlusInelastic();
|
||||
theLEKaonPlusModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonPlusModel);
|
||||
aP.RegisterMe(theHEKaonPlusModel);
|
||||
aP->RegisterMe(theLEKaonPlusModel);
|
||||
aP->RegisterMe(theHEKaonPlusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonMinusModel = new G4LEKaonMinusInelastic();
|
||||
theHEKaonMinusModel = new G4HEKaonMinusInelastic();
|
||||
theLEKaonMinusModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonMinusModel);
|
||||
aP.RegisterMe(theHEKaonMinusModel);
|
||||
aP->RegisterMe(theLEKaonMinusModel);
|
||||
aP->RegisterMe(theHEKaonMinusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonZeroLModel = new G4LEKaonZeroLInelastic();
|
||||
theHEKaonZeroLModel = new G4HEKaonZeroInelastic();
|
||||
theLEKaonZeroLModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonZeroLModel);
|
||||
aP.RegisterMe(theHEKaonZeroLModel);
|
||||
aP->RegisterMe(theLEKaonZeroLModel);
|
||||
aP->RegisterMe(theHEKaonZeroLModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theLEKaonZeroSModel = new G4LEKaonZeroSInelastic();
|
||||
theHEKaonZeroSModel = new G4HEKaonZeroInelastic();
|
||||
theLEKaonZeroSModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonZeroSModel);
|
||||
aP.RegisterMe(theHEKaonZeroSModel);
|
||||
aP->RegisterMe(theLEKaonZeroSModel);
|
||||
aP->RegisterMe(theHEKaonZeroSModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -35,22 +35,22 @@ G4LHEPProtonBuilder::
|
||||
~G4LHEPProtonBuilder() {}
|
||||
|
||||
void G4LHEPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
Build(G4HadronElasticProcess * aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
aP.RegisterMe(theElasticModel);
|
||||
aP->RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LHEPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theLEProtonModel = new G4LEProtonInelastic();
|
||||
theHEProtonModel = new G4HEProtonInelastic();
|
||||
theLEProtonModel->SetMinEnergy(theMin);
|
||||
theLEProtonModel->SetMaxEnergy(55*GeV);
|
||||
theHEProtonModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLEProtonModel);
|
||||
aP.RegisterMe(theHEProtonModel);
|
||||
aP->RegisterMe(theLEProtonModel);
|
||||
aP->RegisterMe(theHEProtonModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -26,7 +26,14 @@
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4NeutronBuilder::
|
||||
G4NeutronBuilder(): wasActivated(false) {}
|
||||
G4NeutronBuilder(): wasActivated(false)
|
||||
{
|
||||
theNeutronElasticProcess = new G4HadronElasticProcess;
|
||||
theNeutronInelastic = new G4NeutronInelasticProcess;
|
||||
theNeutronCapture = new G4HadronCaptureProcess;
|
||||
theNeutronFission = new G4HadronFissionProcess;
|
||||
|
||||
}
|
||||
|
||||
G4NeutronBuilder::
|
||||
~G4NeutronBuilder()
|
||||
@@ -34,11 +41,15 @@ G4NeutronBuilder::
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronCapture);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronFission);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theNeutronElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theNeutronInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theNeutronCapture);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theNeutronFission);
|
||||
}
|
||||
delete theNeutronElasticProcess;
|
||||
delete theNeutronInelastic;
|
||||
delete theNeutronCapture;
|
||||
delete theNeutronFission;
|
||||
}
|
||||
|
||||
void G4NeutronBuilder::
|
||||
@@ -54,9 +65,9 @@ Build()
|
||||
(*i)->Build(theNeutronFission);
|
||||
}
|
||||
G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theNeutronElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theNeutronInelastic);
|
||||
theProcMan->AddDiscreteProcess(&theNeutronCapture);
|
||||
theProcMan->AddDiscreteProcess(&theNeutronFission);
|
||||
theProcMan->AddDiscreteProcess(theNeutronElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(theNeutronInelastic);
|
||||
theProcMan->AddDiscreteProcess(theNeutronCapture);
|
||||
theProcMan->AddDiscreteProcess(theNeutronFission);
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -28,17 +28,17 @@
|
||||
G4NeutronHPBuilder::
|
||||
G4NeutronHPBuilder()
|
||||
{
|
||||
theHPElastic = NULL;
|
||||
theHPElasticData = NULL;
|
||||
theHPElastic = 0;
|
||||
theHPElasticData = 0;
|
||||
|
||||
theHPFission = NULL;
|
||||
theHPFissionData = NULL;
|
||||
theHPFission = 0;
|
||||
theHPFissionData = 0;
|
||||
|
||||
theHPCapture = NULL;
|
||||
theHPCaptureData = NULL;
|
||||
theHPCapture = 0;
|
||||
theHPCaptureData = 0;
|
||||
|
||||
theHPInelastic = NULL;
|
||||
theHPInelasticData = NULL;
|
||||
theHPInelastic = 0;
|
||||
theHPInelasticData = 0;
|
||||
}
|
||||
|
||||
G4NeutronHPBuilder::
|
||||
@@ -51,38 +51,38 @@ G4NeutronHPBuilder::
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
Build(G4HadronElasticProcess * aP)
|
||||
{
|
||||
if(theHPElastic==NULL) theHPElastic = new G4NeutronHPElastic;
|
||||
if(theHPElasticData == NULL) theHPElasticData = new G4NeutronHPElasticData;
|
||||
aP.AddDataSet(theHPElasticData);
|
||||
aP.RegisterMe(theHPElastic);
|
||||
if(theHPElastic==0) theHPElastic = new G4NeutronHPElastic;
|
||||
if(theHPElasticData == 0) theHPElasticData = new G4NeutronHPElasticData;
|
||||
aP->AddDataSet(theHPElasticData);
|
||||
aP->RegisterMe(theHPElastic);
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4HadronFissionProcess & aP)
|
||||
Build(G4HadronFissionProcess * aP)
|
||||
{
|
||||
if(theHPFission == NULL) theHPFission = new G4NeutronHPFission;
|
||||
if(theHPFissionData==NULL) theHPFissionData=new G4NeutronHPFissionData;
|
||||
aP.AddDataSet(theHPFissionData);
|
||||
aP.RegisterMe(theHPFission);
|
||||
if(theHPFission == 0) theHPFission = new G4NeutronHPFission;
|
||||
if(theHPFissionData==0) theHPFissionData=new G4NeutronHPFissionData;
|
||||
aP->AddDataSet(theHPFissionData);
|
||||
aP->RegisterMe(theHPFission);
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4HadronCaptureProcess & aP)
|
||||
Build(G4HadronCaptureProcess * aP)
|
||||
{
|
||||
if(theHPCapture==NULL) theHPCapture = new G4NeutronHPCapture;
|
||||
if(theHPCaptureData==NULL) theHPCaptureData = new G4NeutronHPCaptureData;
|
||||
aP.AddDataSet(theHPCaptureData);
|
||||
aP.RegisterMe(theHPCapture);
|
||||
if(theHPCapture==0) theHPCapture = new G4NeutronHPCapture;
|
||||
if(theHPCaptureData==0) theHPCaptureData = new G4NeutronHPCaptureData;
|
||||
aP->AddDataSet(theHPCaptureData);
|
||||
aP->RegisterMe(theHPCapture);
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
if(theHPInelastic==NULL) theHPInelastic = new G4NeutronHPInelastic;
|
||||
if(theHPInelasticData==NULL) theHPInelasticData = new G4NeutronHPInelasticData;
|
||||
aP.AddDataSet(theHPInelasticData);
|
||||
aP.RegisterMe(theHPInelastic);
|
||||
if(theHPInelastic==0) theHPInelastic = new G4NeutronHPInelastic;
|
||||
if(theHPInelasticData==0) theHPInelasticData = new G4NeutronHPInelasticData;
|
||||
aP->AddDataSet(theHPInelasticData);
|
||||
aP->RegisterMe(theHPInelastic);
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -20,13 +20,42 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PiKBuilder.cc,v 1.3 2005/11/29 16:55:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4PiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 16.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4PiKBuilder::
|
||||
G4PiKBuilder(): wasActivated(false) {}
|
||||
G4PiKBuilder(): wasActivated(false)
|
||||
{
|
||||
thePionPlusElasticProcess=new G4HadronElasticProcess;
|
||||
thePionMinusElasticProcess=new G4HadronElasticProcess;
|
||||
theKaonPlusElasticProcess=new G4HadronElasticProcess;
|
||||
theKaonMinusElasticProcess=new G4HadronElasticProcess;
|
||||
theKaonZeroLElasticProcess=new G4HadronElasticProcess;
|
||||
theKaonZeroSElasticProcess=new G4HadronElasticProcess;
|
||||
|
||||
thePionPlusInelastic=new G4PionPlusInelasticProcess;
|
||||
thePionMinusInelastic=new G4PionMinusInelasticProcess;
|
||||
theKaonPlusInelastic=new G4KaonPlusInelasticProcess;
|
||||
theKaonMinusInelastic=new G4KaonMinusInelasticProcess;
|
||||
theKaonZeroLInelastic=new G4KaonZeroLInelasticProcess;
|
||||
theKaonZeroSInelastic=new G4KaonZeroSInelasticProcess;
|
||||
}
|
||||
|
||||
G4PiKBuilder::
|
||||
~G4PiKBuilder(){
|
||||
@@ -34,23 +63,23 @@ G4PiKBuilder::
|
||||
{
|
||||
G4ProcessManager * theProcMan;
|
||||
theProcMan = G4PionPlus::PionPlus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionPlusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionPlusInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(thePionPlusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(thePionPlusInelastic);
|
||||
theProcMan = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionMinusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionMinusInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(thePionMinusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(thePionMinusInelastic);
|
||||
theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonPlusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonPlusInelastic);
|
||||
theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonMinusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonMinusInelastic);
|
||||
theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonZeroLElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonZeroLInelastic);
|
||||
theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonZeroSElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theKaonZeroSInelastic);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +87,7 @@ void G4PiKBuilder::
|
||||
Build()
|
||||
{
|
||||
wasActivated = true;
|
||||
|
||||
std::vector<G4VPiKBuilder *>::iterator i;
|
||||
for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++)
|
||||
{
|
||||
@@ -77,22 +107,27 @@ Build()
|
||||
}
|
||||
G4ProcessManager * theProcMan;
|
||||
theProcMan = G4PionPlus::PionPlus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&thePionPlusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&thePionPlusInelastic);
|
||||
theProcMan->AddDiscreteProcess(thePionPlusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(thePionPlusInelastic);
|
||||
|
||||
theProcMan = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&thePionMinusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&thePionMinusInelastic);
|
||||
theProcMan->AddDiscreteProcess(thePionMinusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(thePionMinusInelastic);
|
||||
|
||||
theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonPlusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonPlusInelastic);
|
||||
theProcMan->AddDiscreteProcess(theKaonPlusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(theKaonPlusInelastic);
|
||||
|
||||
theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonMinusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonMinusInelastic);
|
||||
theProcMan->AddDiscreteProcess(theKaonMinusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(theKaonMinusInelastic);
|
||||
|
||||
theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroLElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroLInelastic);
|
||||
theProcMan->AddDiscreteProcess(theKaonZeroLElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(theKaonZeroLInelastic);
|
||||
|
||||
theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroSElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroSInelastic);
|
||||
theProcMan->AddDiscreteProcess(theKaonZeroSElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(theKaonZeroSInelastic);
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,34 +30,34 @@ G4PrecoNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 170.*MeV;
|
||||
theModel = new G4PreCompoundModel(&theHandler);
|
||||
theModel = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
}
|
||||
|
||||
G4PrecoNeutronBuilder::
|
||||
~G4PrecoNeutronBuilder() {}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -25,29 +25,31 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4ExcitationHandler.hh"
|
||||
|
||||
G4PrecoProtonBuilder::
|
||||
G4PrecoProtonBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 170.*MeV;
|
||||
theModel = new G4PreCompoundModel(&theHandler);
|
||||
theModel = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
}
|
||||
|
||||
G4PrecoProtonBuilder::
|
||||
~G4PrecoProtonBuilder() {}
|
||||
|
||||
void G4PrecoProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
void G4ProtonBuilder::
|
||||
Build()
|
||||
|
||||
void G4ProtonBuilder::Build()
|
||||
{
|
||||
wasActivated = true;
|
||||
std::vector<G4VProtonBuilder *>::iterator i;
|
||||
@@ -36,12 +36,16 @@
|
||||
(*i)->Build(theProtonInelastic);
|
||||
}
|
||||
G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theProtonElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theProtonInelastic);
|
||||
theProcMan->AddDiscreteProcess(theProtonElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(theProtonInelastic);
|
||||
}
|
||||
|
||||
G4ProtonBuilder::
|
||||
G4ProtonBuilder(): wasActivated(false) {}
|
||||
G4ProtonBuilder(): wasActivated(false)
|
||||
{
|
||||
theProtonElasticProcess=new G4HadronElasticProcess;
|
||||
theProtonInelastic=new G4ProtonInelasticProcess;
|
||||
}
|
||||
|
||||
G4ProtonBuilder::
|
||||
~G4ProtonBuilder()
|
||||
@@ -49,9 +53,11 @@
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theProtonElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theProtonInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theProtonElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(theProtonInelastic);
|
||||
}
|
||||
delete theProtonElasticProcess;
|
||||
delete theProtonInelastic;
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,26 +30,32 @@
|
||||
{
|
||||
theMin = 8*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel= new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
}
|
||||
|
||||
G4QGSCNeutronBuilder::
|
||||
~G4QGSCNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theCascade;
|
||||
}
|
||||
|
||||
void G4QGSCNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,70 +30,77 @@ G4QGSCPiKBuilder()
|
||||
{
|
||||
theMin = 8*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
}
|
||||
|
||||
G4QGSCPiKBuilder::
|
||||
~G4QGSCPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiCross);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiCross);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiCross);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiCross);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,31 +30,37 @@ G4QGSCProtonBuilder()
|
||||
{
|
||||
theMin = 8*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4QGSCProtonBuilder::
|
||||
~G4QGSCProtonBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
}
|
||||
|
||||
void G4QGSCProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSCProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,43 +30,50 @@ G4QGSPNeutronBuilder()
|
||||
{
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
}
|
||||
|
||||
G4QGSPNeutronBuilder::
|
||||
~G4QGSPNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete thePreEquilib;
|
||||
delete theCascade;
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,72 +30,79 @@ G4QGSPPiKBuilder()
|
||||
{
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4QGSPPiKBuilder::
|
||||
~G4QGSPPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -30,33 +30,41 @@
|
||||
{
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
}
|
||||
|
||||
void G4QGSPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
// G4cout << "adding inelastic Proton in QGSP" << G4endl;
|
||||
aP->AddDataSet(&theXSec);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
G4QGSPProtonBuilder::
|
||||
~G4QGSPProtonBuilder()
|
||||
{
|
||||
delete thePreEquilib;
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -20,10 +20,23 @@
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StoppingHadronBuilder.cc,v 1.4 2005/12/02 12:40:04 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-00 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4StoppingHadronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard and add mu-
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
@@ -31,23 +44,17 @@
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4AntiNeutron.hh"
|
||||
|
||||
G4StoppingHadronBuilder::
|
||||
G4StoppingHadronBuilder(): wasActivated(false) {}
|
||||
G4StoppingHadronBuilder::G4StoppingHadronBuilder(): wasActivated(false)
|
||||
{}
|
||||
|
||||
G4StoppingHadronBuilder::
|
||||
~G4StoppingHadronBuilder()
|
||||
G4StoppingHadronBuilder::~G4StoppingHadronBuilder()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&thePionMinusAbsorption);
|
||||
aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theKaonMinusAbsorption);
|
||||
aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiProtonAnnihilation);
|
||||
aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiNeutronAnnihilation);
|
||||
if(wasActivated) {
|
||||
delete theMuonMinusAbsorption;
|
||||
delete thePionMinusAbsorption;
|
||||
delete theKaonMinusAbsorption;
|
||||
delete theAntiProtonAnnihilation;
|
||||
delete theAntiNeutronAnnihilation;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,27 +62,31 @@ void G4StoppingHadronBuilder::Build()
|
||||
{
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
wasActivated=true;
|
||||
|
||||
//G4cout << " adding stopping hadron Physics" << G4endl;
|
||||
|
||||
// Muon Minus Physics
|
||||
aProcMan = G4MuonMinus::MuonMinus()->GetProcessManager();
|
||||
theMuonMinusAbsorption = new G4MuonMinusCaptureAtRest();
|
||||
aProcMan->AddRestProcess(theMuonMinusAbsorption);
|
||||
|
||||
// PionMinus
|
||||
aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&thePionMinusAbsorption, ordDefault);
|
||||
aProcMan = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
thePionMinusAbsorption = new G4PionMinusAbsorptionAtRest();
|
||||
aProcMan->AddRestProcess(thePionMinusAbsorption);
|
||||
|
||||
// KaonMinus
|
||||
aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&theKaonMinusAbsorption, ordDefault);
|
||||
aProcMan = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
theKaonMinusAbsorption = new G4KaonMinusAbsorption();
|
||||
aProcMan->AddRestProcess(theKaonMinusAbsorption);
|
||||
|
||||
// anti-Proton
|
||||
aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&theAntiProtonAnnihilation);
|
||||
aProcMan = G4AntiProton::AntiProton()->GetProcessManager();
|
||||
theAntiProtonAnnihilation = new G4AntiProtonAnnihilationAtRest();
|
||||
aProcMan->AddRestProcess(theAntiProtonAnnihilation);
|
||||
|
||||
// AntiNeutron
|
||||
aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&theAntiNeutronAnnihilation);
|
||||
aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager();
|
||||
theAntiNeutronAnnihilation = new G4AntiNeutronAnnihilationAtRest();
|
||||
aProcMan->AddRestProcess(theAntiNeutronAnnihilation);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "GeneralPhysics.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
// Bosons
|
||||
#include "G4ChargedGeantino.hh"
|
||||
#include "G4Geantino.hh"
|
||||
|
||||
GeneralPhysics::GeneralPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), wasActivated(false)
|
||||
{
|
||||
}
|
||||
|
||||
GeneralPhysics::~GeneralPhysics()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if (fDecayProcess.IsApplicable(*particle) && pmanager) pmanager ->RemoveProcess(&fDecayProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralPhysics::ConstructParticle()
|
||||
{
|
||||
// pseudo-particles
|
||||
G4Geantino::GeantinoDefinition();
|
||||
G4ChargedGeantino::ChargedGeantinoDefinition();
|
||||
}
|
||||
|
||||
void GeneralPhysics::ConstructProcess()
|
||||
{
|
||||
// Add Decay Process
|
||||
theParticleIterator->reset();
|
||||
G4ParticleDefinition* particle=0;
|
||||
G4ProcessManager* pmanager=0;
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
particle = theParticleIterator->value();
|
||||
pmanager = particle->GetProcessManager();
|
||||
if( fDecayProcess.IsApplicable(*particle) )
|
||||
{
|
||||
pmanager -> AddProcess(&fDecayProcess);
|
||||
pmanager -> SetProcessOrdering(&fDecayProcess, idxPostStep);
|
||||
pmanager -> SetProcessOrdering(&fDecayProcess, idxAtRest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -1,163 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "IonPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
IonPhysics::IonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), wasActivated(false)
|
||||
{
|
||||
}
|
||||
|
||||
IonPhysics::~IonPhysics()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
pManager = G4GenericIon::GenericIon()->GetProcessManager();
|
||||
//if(pManager) pManager->RemoveProcess(&theIonElasticProcess);
|
||||
//if(pManager) pManager->RemoveProcess(&fIonIonisation);
|
||||
// if(pManager) pManager->RemoveProcess(&fIonMultipleScattering);
|
||||
|
||||
pManager = G4Deuteron::Deuteron()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theDElasticProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fDeuteronProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fDeuteronIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fDeuteronMultipleScattering);
|
||||
|
||||
pManager = G4Triton::Triton()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theTElasticProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fTritonProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fTritonIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fTritonMultipleScattering);
|
||||
|
||||
pManager = G4Alpha::Alpha()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theAElasticProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fAlphaProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fAlphaIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fAlphaMultipleScattering);
|
||||
|
||||
pManager = G4He3::He3()->GetProcessManager();
|
||||
//if(pManager) pManager->RemoveProcess(&theHe3ElasticProcess);
|
||||
//if(pManager) pManager->RemoveProcess(&fHe3Ionisation);
|
||||
//if(pManager) pManager->RemoveProcess(&fHe3MultipleScattering);
|
||||
}
|
||||
}
|
||||
|
||||
void IonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
// Elastic Process
|
||||
theElasticModel = new G4LElastic();
|
||||
theIonElasticProcess.RegisterMe(theElasticModel);
|
||||
theDElasticProcess.RegisterMe(theElasticModel);
|
||||
theTElasticProcess.RegisterMe(theElasticModel);
|
||||
theAElasticProcess.RegisterMe(theElasticModel);
|
||||
theHe3ElasticProcess.RegisterMe(theElasticModel);
|
||||
|
||||
// Generic Ion
|
||||
pManager = G4GenericIon::GenericIon()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theIonElasticProcess);
|
||||
pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fIonMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Deuteron
|
||||
pManager = G4Deuteron::Deuteron()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theDElasticProcess);
|
||||
|
||||
fDeuteronModel = new G4LEDeuteronInelastic();
|
||||
fDeuteronProcess.RegisterMe(fDeuteronModel);
|
||||
pManager->AddDiscreteProcess(&fDeuteronProcess);
|
||||
|
||||
pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fDeuteronMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Triton
|
||||
pManager = G4Triton::Triton()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theTElasticProcess);
|
||||
|
||||
fTritonModel = new G4LETritonInelastic();
|
||||
fTritonProcess.RegisterMe(fTritonModel);
|
||||
pManager->AddDiscreteProcess(&fTritonProcess);
|
||||
|
||||
pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fTritonMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Alpha
|
||||
pManager = G4Alpha::Alpha()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theAElasticProcess);
|
||||
|
||||
fAlphaModel = new G4LEAlphaInelastic();
|
||||
fAlphaProcess.RegisterMe(fAlphaModel);
|
||||
pManager->AddDiscreteProcess(&fAlphaProcess);
|
||||
pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fAlphaMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// He3
|
||||
pManager = G4He3::He3()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theHe3ElasticProcess);
|
||||
pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fHe3MultipleScattering);
|
||||
pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1);
|
||||
|
||||
wasActivated = true;
|
||||
}
|
||||
|
||||
void IonPhysics::ConstructParticle()
|
||||
{
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -1,133 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "MuonPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4TauMinus.hh"
|
||||
#include "G4TauPlus.hh"
|
||||
#include "G4NeutrinoTau.hh"
|
||||
#include "G4AntiNeutrinoTau.hh"
|
||||
#include "G4NeutrinoMu.hh"
|
||||
#include "G4AntiNeutrinoMu.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
MuonPhysics::MuonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
}
|
||||
|
||||
MuonPhysics::~MuonPhysics()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusBremsstrahlung);
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusPairProduction);
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusMultipleScattering);
|
||||
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusBremsstrahlung);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusPairProduction);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusMultipleScattering);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusCaptureAtRest);
|
||||
pManager = G4TauPlus::TauPlus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fTauPlusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fTauPlusMultipleScattering);
|
||||
pManager = G4TauMinus::TauMinus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fTauMinusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fTauMinusMultipleScattering);
|
||||
}
|
||||
}
|
||||
|
||||
void MuonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
wasActivated = true;
|
||||
// Muon Plus Physics
|
||||
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2);
|
||||
pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung);
|
||||
pManager->AddDiscreteProcess(&fMuPlusPairProduction);
|
||||
|
||||
pManager->AddProcess(&fMuPlusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Muon Minus Physics
|
||||
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2);
|
||||
pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung);
|
||||
pManager->AddDiscreteProcess(&fMuMinusPairProduction);
|
||||
|
||||
pManager->AddProcess(&fMuMinusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1);
|
||||
pManager->AddRestProcess(&fMuMinusCaptureAtRest);
|
||||
|
||||
// Tau Plus Physics
|
||||
pManager = G4TauPlus::TauPlus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2);
|
||||
|
||||
pManager->AddProcess(&fTauPlusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Tau Minus Physics
|
||||
pManager = G4TauMinus::TauMinus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2);
|
||||
|
||||
pManager->AddProcess(&fTauMinusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1);
|
||||
}
|
||||
|
||||
void MuonPhysics::ConstructParticle()
|
||||
{
|
||||
G4TauMinus::TauMinusDefinition();
|
||||
G4TauPlus::TauPlusDefinition();
|
||||
G4MuonPlus::MuonPlusDefinition();
|
||||
G4MuonMinus::MuonMinusDefinition();
|
||||
|
||||
G4NeutrinoMu::NeutrinoMuDefinition();
|
||||
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
|
||||
G4NeutrinoTau::NeutrinoTauDefinition();
|
||||
G4AntiNeutrinoTau::AntiNeutrinoTauDefinition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
Reference in New Issue
Block a user