Import Geant4 6.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:41:53 +02:00
parent 4aea781e80
commit 96686e0c8f
6560 changed files with 153347 additions and 238155 deletions
@@ -31,9 +31,9 @@
#ifndef CCalAnalysis_h
#define CCalAnalysis_h 1
#include "G4ThreeVector.hh"
#include "globals.hh"
#include <vector>
#include "G4ThreeVector.hh"
namespace AIDA {
class IAnalysisFactory;
@@ -65,6 +65,7 @@ public:
void InsertEnergy(float v);
void InsertLateralProfile(float*);
void InsertTime(float*);
void InsertTimeProfile(int, double, double);
void setNtuple(float* hcalE, float* ecalE, float elab, float x, float y,
float z, float edep, float edec, float edhc);
@@ -80,14 +81,15 @@ private:
AIDA::ITree* tree;
AIDA::ITuple* tuple;
enum {numberOfTimeSlices = 40};
enum {numberOfTimeSlices = 200};
AIDA::IHistogram1D* energy;
AIDA::IHistogram1D* hcalE[28]; // 28 hadronic modules
AIDA::IHistogram1D* ecalE[49]; // 49 crystal towers
AIDA::IHistogram1D* timeHist[40]; // 40 nanoseconds time window
AIDA::IHistogram1D* lateralProfile[70]; // 70 centimeters lateral window
AIDA::IHistogram1D* hcalE[28]; // 28 hadronic modules
AIDA::IHistogram1D* ecalE[49]; // 49 crystal towers
AIDA::IHistogram1D* timeHist[200]; // 200 nanoseconds time window
AIDA::IHistogram1D* lateralProfile[70]; // 70 centimeters lateral window
// (indeed 64 should be enough)
AIDA::IHistogram1D* timeProfile[2]; // at step and in sensitive detector
};
@@ -55,7 +55,7 @@ public:
CCalG4Able(G4String name);
//////////////////////////////////////////////////////////////////////////
//Destructor
virtual ~CCalG4Able() {delete detPhysicalVolume;}
virtual ~CCalG4Able();
//////////////////////////////////////////////////////////////////////////
//Get/Set methods
@@ -46,7 +46,7 @@ public:
private:
float LateralProfile[70];
float timeDeposit[40];
float timeDeposit[200];
int timeHistoMaxBin;
private:
@@ -70,7 +70,7 @@ public:
void SetPrimaryID(int i) {PrimaryID = i;
#ifdef debug
cout<<"CCaloSD SetPrimaryID primID ="<<i<<endl;
G4cout << "CCaloSD SetPrimaryID primID =" << i << G4endl;
#endif
}
int GetPrimaryID( ) {return PrimaryID;}
@@ -117,6 +117,7 @@ private:
void StoreHit(CCalG4Hit* ahit);
void ResetForNewPrimary();
void summarize();
G4double curve_LY(G4StepPoint* stepPoint);
private:
CCalVOrganization* theDescription;
@@ -1,53 +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 EMModelPhysics_h
#define EMModelPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4EMModelBuilder.hh"
class EMModelPhysics : public G4VPhysicsConstructor
{
public:
EMModelPhysics(const G4String& name ="EM Model approach");
virtual ~EMModelPhysics();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4EMModelBuilder theEMModelPhysics;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,53 +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 EMPhysics_h
#define EMPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4EMBuilder.hh"
class EMPhysics : public G4VPhysicsConstructor
{
public:
EMPhysics(const G4String& name ="EM");
virtual ~EMPhysics();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4EMBuilder theEMPhysics;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,106 +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 G4DataQuestionaire_h
#define G4DataQuestionaire_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include <vector>
enum G4DataType {no, photon, neutron, radioactive, lowenergy};
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.0"<<G4endl;
G4cout <<G4endl<<G4endl;
for(G4int i=0; i<4; i++)
{
G4DataType t(no);
if(i==0) t=t1;
if(i==1) t=t2;
if(i==2) t=t3;
if(i==3) t=t4;
switch(t)
{
case photon:
if(!getenv("G4LEVELGAMMADATA") )
{
G4cout << "Photon-evaporation data are needed."<<G4endl;
G4cout << "Please set the environmental variable G4LEVELGAMMADATA"<<G4endl;
G4cout << "to point to your PhotonEvaporation directory."<<G4endl;
G4cout << "Data are available from the geant4 download page."<<G4endl;
G4Exception("Fatal error: Missing mandatory data for this simulation engine");
break;
}
case neutron:
if(!getenv("NeutronHPCrossSections") )
{
G4cout << "G4NDL are needed."<<G4endl;
G4cout << "Please set the environmental variable NeutronHPCrossSections"<<G4endl;
G4cout << "to point to your G4NDL directory."<<G4endl;
G4cout << "Data are available from http://cmsdoc.cern.ch/~hpw/G4NDL3.7.tar.gz "<<G4endl;
G4cout << "of the geant4 download page."<<G4endl;
G4Exception("Fatal error: Missing mandatory data for this simulation engine");
break;
}
case radioactive:
if(!getenv("G4RADIOACTIVEDATA") )
{
G4cout << "Radioactive decay data are needed."<<G4endl;
G4cout << "Please set the environmental variable G4RADIOACTIVEDATA"<<G4endl;
G4cout << "to point to your RadiativeDecay directory."<<G4endl;
G4cout << "Data are available from the geant4 download page."<<G4endl;
G4Exception("Fatal error: Missing mandatory data for this simulation engine");
break;
}
case lowenergy:
if(!getenv("G4LEDATA") )
{
G4cout << "Low energy electromagnetic data are needed."<<G4endl;
G4cout << "Please set the environmental variable G4LEDATA"<<G4endl;
G4cout << "to point to your G4EMLOW directory."<<G4endl;
G4cout << "Data are available from the geant4 download page."<<G4endl;
G4Exception("Fatal error: Missing mandatory data for this simulation engine");
break;
}
case no:
// all ok
default:
if(t1!=no) G4Exception("data type requested is not known to the system");
}
}
}
~G4DataQuestionaire() {}
};
// 2002 by J.P. Wellisch
#endif
@@ -1,66 +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"
class G4EMBuilder
{
public:
G4EMBuilder();
virtual ~G4EMBuilder();
public:
void Build();
protected:
G4PhotoElectricEffect thePhotoEffect;
G4ComptonScattering theComptonEffect;
G4GammaConversion thePairProduction;
G4MultipleScattering theElectronMultipleScattering;
G4eIonisation theElectronIonisation;
G4eBremsstrahlung theElectronBremsStrahlung;
G4MultipleScattering thePositronMultipleScattering;
G4eIonisation thePositronIonisation;
G4eBremsstrahlung thePositronBremsStrahlung;
G4eplusAnnihilation theAnnihilation;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,66 +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 G4EMModelBuilder_h
#define G4EMModelBuilder_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4PhotoElectricEffect.hh"
#include "G4ComptonScattering.hh"
#include "G4GammaConversion.hh"
#include "G4eplusAnnihilation.hh"
#include "G4MultipleScatteringSTD.hh"
#include "G4eIonisationSTD.hh"
#include "G4eBremsstrahlungSTD.hh"
class G4EMModelBuilder
{
public:
G4EMModelBuilder();
virtual ~G4EMModelBuilder();
public:
void Build();
protected:
G4PhotoElectricEffect thePhotoEffect;
G4ComptonScattering theComptonEffect;
G4GammaConversion thePairProduction;
G4MultipleScatteringSTD theElectronMultipleScattering;
G4eIonisationSTD theElectronIonisation;
G4eBremsstrahlungSTD theElectronBremsStrahlung;
G4MultipleScatteringSTD thePositronMultipleScattering;
G4eIonisationSTD thePositronIonisation;
G4eBremsstrahlungSTD thePositronBremsStrahlung;
G4eplusAnnihilation theAnnihilation;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,110 +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 G4HadronModelQEDBuilder_h
#define G4HadronModelQEDBuilder_h 1
#include "globals.hh"
#include "G4ios.hh"
#include <vector>
#include "G4MultipleScatteringSTD.hh"
#include "G4hIonisationSTD.hh"
#include "G4ProcessManager.hh"
class G4HadronModelQEDBuilder
{
public:
G4HadronModelQEDBuilder();
virtual ~G4HadronModelQEDBuilder();
public:
virtual void Build();
private:
void RegisterOne(G4ProcessManager* aP, G4MultipleScatteringSTD * aM, G4hIonisationSTD* aI);
private:
// Pi +
G4MultipleScatteringSTD thePionPlusMult;
G4hIonisationSTD thePionPlusIonisation;
// Pi -
G4MultipleScatteringSTD thePionMinusMult;
G4hIonisationSTD thePionMinusIonisation;
// K +
G4MultipleScatteringSTD theKaonPlusMult;
G4hIonisationSTD theKaonPlusIonisation;
// K -
G4MultipleScatteringSTD theKaonMinusMult;
G4hIonisationSTD theKaonMinusIonisation;
// Proton
G4MultipleScatteringSTD theProtonMult;
G4hIonisationSTD theProtonIonisation;
// anti-proton
G4MultipleScatteringSTD theAntiProtonMult;
G4hIonisationSTD theAntiProtonIonisation;
// SigmaMinus
G4MultipleScatteringSTD theSigmaMinusMult;
G4hIonisationSTD theSigmaMinusIonisation;
// AntiSigmaMinus
G4MultipleScatteringSTD theAntiSigmaMinusMult;
G4hIonisationSTD theAntiSigmaMinusIonisation;
// SigmaPlus
G4MultipleScatteringSTD theSigmaPlusMult;
G4hIonisationSTD theSigmaPlusIonisation;
// AntiSigmaPlus
G4MultipleScatteringSTD theAntiSigmaPlusMult;
G4hIonisationSTD theAntiSigmaPlusIonisation;
// XiMinus
G4MultipleScatteringSTD theXiMinusMult;
G4hIonisationSTD theXiMinusIonisation;
// AntiXiMinus
G4MultipleScatteringSTD theAntiXiMinusMult;
G4hIonisationSTD theAntiXiMinusIonisation;
// OmegaMinus
G4MultipleScatteringSTD theOmegaMinusMult;
G4hIonisationSTD theOmegaMinusIonisation;
// AntiOmegaMinus
G4MultipleScatteringSTD theAntiOmegaMinusMult;
G4hIonisationSTD theAntiOmegaMinusIonisation;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,110 +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 <vector>
#include "G4MultipleScattering.hh"
#include "G4hIonisation.hh"
#include "G4ProcessManager.hh"
class G4HadronQEDBuilder
{
public:
G4HadronQEDBuilder();
virtual ~G4HadronQEDBuilder();
public:
virtual void Build();
private:
void RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI);
private:
// Pi +
G4MultipleScattering thePionPlusMult;
G4hIonisation thePionPlusIonisation;
// Pi -
G4MultipleScattering thePionMinusMult;
G4hIonisation thePionMinusIonisation;
// K +
G4MultipleScattering theKaonPlusMult;
G4hIonisation theKaonPlusIonisation;
// K -
G4MultipleScattering theKaonMinusMult;
G4hIonisation theKaonMinusIonisation;
// Proton
G4MultipleScattering theProtonMult;
G4hIonisation theProtonIonisation;
// anti-proton
G4MultipleScattering theAntiProtonMult;
G4hIonisation theAntiProtonIonisation;
// SigmaMinus
G4MultipleScattering theSigmaMinusMult;
G4hIonisation theSigmaMinusIonisation;
// AntiSigmaMinus
G4MultipleScattering theAntiSigmaMinusMult;
G4hIonisation theAntiSigmaMinusIonisation;
// SigmaPlus
G4MultipleScattering theSigmaPlusMult;
G4hIonisation theSigmaPlusIonisation;
// AntiSigmaPlus
G4MultipleScattering theAntiSigmaPlusMult;
G4hIonisation theAntiSigmaPlusIonisation;
// XiMinus
G4MultipleScattering theXiMinusMult;
G4hIonisation theXiMinusIonisation;
// AntiXiMinus
G4MultipleScattering theAntiXiMinusMult;
G4hIonisation theAntiXiMinusIonisation;
// OmegaMinus
G4MultipleScattering theOmegaMinusMult;
G4hIonisation theOmegaMinusIonisation;
// AntiOmegaMinus
G4MultipleScattering theAntiOmegaMinusMult;
G4hIonisation theAntiOmegaMinusIonisation;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,79 +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 G4LEPNeutronBuilder_h
#define G4LEPNeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4LElastic.hh"
#include "G4LFission.hh"
#include "G4LCapture.hh"
#include "G4LENeutronInelastic.hh"
class G4LEPNeutronBuilder : public G4VNeutronBuilder
{
public:
G4LEPNeutronBuilder();
virtual ~G4LEPNeutronBuilder();
public:
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;
theIMin = theMin;
}
void SetMinInelasticEnergy(G4double aM)
{
theIMin=aM;
}
void SetMaxEnergy(G4double aM)
{
theMax=aM;
}
private:
G4double theMin;
G4double theIMin;
G4double theMax;
G4LElastic * theElasticModel;
G4LENeutronInelastic * theLENeutronModel;
G4LFission * theNeutronFissionModel;
G4LCapture * theNeutronCaptureModel;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,86 +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 G4LEPPiKBuilder_h
#define G4LEPPiKBuilder_h
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPiKBuilder.hh"
#include "G4LElastic.hh"
#include "G4LEPionPlusInelastic.hh"
#include "G4LEPionMinusInelastic.hh"
#include "G4LEKaonPlusInelastic.hh"
#include "G4LEKaonZeroSInelastic.hh"
#include "G4LEKaonZeroLInelastic.hh"
#include "G4LEKaonMinusInelastic.hh"
class G4LEPPiKBuilder : public G4VPiKBuilder
{
public:
G4LEPPiKBuilder();
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);
void SetMinEnergy(G4double aM)
{
theMin=aM;
theMinPion=theMin;
}
void SetMinPionEnergy(G4double aM)
{
theMinPion=aM;
}
void SetMaxEnergy(G4double aM)
{
theMax=aM;
}
private:
G4double theMin;
G4double theMinPion;
G4double theMax;
G4LElastic * theElasticModel;
G4LEPionPlusInelastic* theLEPionPlusModel;
G4LEPionMinusInelastic* theLEPionMinusModel;
G4LEKaonPlusInelastic* theLEKaonPlusModel;
G4LEKaonMinusInelastic* theLEKaonMinusModel;
G4LEKaonZeroLInelastic* theLEKaonZeroLModel;
G4LEKaonZeroSInelastic* theLEKaonZeroSModel;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,65 +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 G4LEPProtonBuilder_h
#define G4LEPProtonBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4LElastic.hh"
#include "G4LEProtonInelastic.hh"
class G4LEPProtonBuilder : public G4VProtonBuilder
{
public:
G4LEPProtonBuilder();
virtual ~G4LEPProtonBuilder();
public:
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess & aP);
void SetMinEnergy(G4double aM)
{
theMin=aM;
}
void SetMaxEnergy(G4double aM)
{
theMax=aM;
}
private:
G4double theMin;
G4double theMax;
G4LElastic * theElasticModel;
G4LEProtonInelastic * theLEProtonModel;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,77 +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 G4LHEPNeutronBuilder_h
#define G4LHEPNeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4LElastic.hh"
#include "G4LFission.hh"
#include "G4LCapture.hh"
#include "G4LENeutronInelastic.hh"
#include "G4HENeutronInelastic.hh"
class G4LHEPNeutronBuilder : public G4VNeutronBuilder
{
public:
G4LHEPNeutronBuilder();
virtual ~G4LHEPNeutronBuilder();
public:
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;
theIMin = aM;
}
void SetMinInelasticEnergy(G4double aM)
{
theIMin = aM;
}
private:
G4LElastic * theElasticModel;
G4LENeutronInelastic * theLENeutronModel;
G4HENeutronInelastic * theHENeutronModel;
G4LFission * theNeutronFissionModel;
G4LCapture * theNeutronCaptureModel;
G4double theMin;
G4double theIMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,104 +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 G4LHEPPiKBuilder_h
#define G4LHEPPiKBuilder_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4LElastic.hh"
#include "G4VPiKBuilder.hh"
#include "G4LEPionPlusInelastic.hh"
#include "G4LEPionMinusInelastic.hh"
#include "G4LEKaonPlusInelastic.hh"
#include "G4LEKaonZeroSInelastic.hh"
#include "G4LEKaonZeroLInelastic.hh"
#include "G4LEKaonMinusInelastic.hh"
#include "G4HEPionPlusInelastic.hh"
#include "G4HEPionMinusInelastic.hh"
#include "G4HEKaonPlusInelastic.hh"
#include "G4HEKaonZeroInelastic.hh"
#include "G4HEKaonZeroInelastic.hh"
#include "G4HEKaonMinusInelastic.hh"
class G4LHEPPiKBuilder : public G4VPiKBuilder
{
public:
G4LHEPPiKBuilder();
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);
void SetMinEnergy(G4double aM)
{
theM=aM;
theMinPion=theM;
}
void SetMinPionEnergy(G4double aM)
{
theMinPion = aM;
}
private:
G4double theM;
G4double theMinPion;
G4LElastic * theElasticModel;
// Pi +
G4LEPionPlusInelastic* theLEPionPlusModel;
G4HEPionPlusInelastic* theHEPionPlusModel;
// Pi -
G4LEPionMinusInelastic* theLEPionMinusModel;
G4HEPionMinusInelastic* theHEPionMinusModel;
// K +
G4LEKaonPlusInelastic* theLEKaonPlusModel;
G4HEKaonPlusInelastic* theHEKaonPlusModel;
// K -
G4LEKaonMinusInelastic* theLEKaonMinusModel;
G4HEKaonMinusInelastic* theHEKaonMinusModel;
// K0L
G4LEKaonZeroLInelastic* theLEKaonZeroLModel;
G4HEKaonZeroInelastic* theHEKaonZeroLModel;
// K0S
G4LEKaonZeroSInelastic* theLEKaonZeroSModel;
G4HEKaonZeroInelastic* theHEKaonZeroSModel;
};
// 2002 by J.P. Wellisch
#endif
@@ -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. *
// ********************************************************************
//
#ifndef G4LHEPProtonBuilder_h
#define G4LHEPProtonBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4LElastic.hh"
#include "G4LEProtonInelastic.hh"
#include "G4HEProtonInelastic.hh"
class G4LHEPProtonBuilder : public G4VProtonBuilder
{
public:
G4LHEPProtonBuilder();
virtual ~G4LHEPProtonBuilder();
public:
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess & aP);
void SetMinEnergy(G4double aM)
{
theMin = aM;
}
private:
G4LElastic * theElasticModel;
G4LEProtonInelastic * theLEProtonModel;
G4HEProtonInelastic * theHEProtonModel;
G4double theMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,177 +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 G4MiscLHEPBuilder_h
#define G4MiscLHEPBuilder_h 1
#include "globals.hh"
#include "G4LElastic.hh"
#include "G4HadronElasticProcess.hh"
#include "G4AntiProtonInelasticProcess.hh"
#include "G4AntiNeutronInelasticProcess.hh"
#include "G4LambdaInelasticProcess.hh"
#include "G4AntiLambdaInelasticProcess.hh"
#include "G4SigmaPlusInelasticProcess.hh"
#include "G4SigmaMinusInelasticProcess.hh"
#include "G4AntiSigmaPlusInelasticProcess.hh"
#include "G4AntiSigmaMinusInelasticProcess.hh"
#include "G4XiZeroInelasticProcess.hh"
#include "G4XiMinusInelasticProcess.hh"
#include "G4AntiXiZeroInelasticProcess.hh"
#include "G4AntiXiMinusInelasticProcess.hh"
#include "G4OmegaMinusInelasticProcess.hh"
#include "G4AntiOmegaMinusInelasticProcess.hh"
#include "G4LEAntiProtonInelastic.hh"
#include "G4LEAntiNeutronInelastic.hh"
#include "G4LELambdaInelastic.hh"
#include "G4LEAntiLambdaInelastic.hh"
#include "G4LESigmaPlusInelastic.hh"
#include "G4LESigmaMinusInelastic.hh"
#include "G4LEAntiSigmaPlusInelastic.hh"
#include "G4LEAntiSigmaMinusInelastic.hh"
#include "G4LEXiZeroInelastic.hh"
#include "G4LEXiMinusInelastic.hh"
#include "G4LEAntiXiZeroInelastic.hh"
#include "G4LEAntiXiMinusInelastic.hh"
#include "G4LEOmegaMinusInelastic.hh"
#include "G4LEAntiOmegaMinusInelastic.hh"
// High-energy Models
#include "G4HEAntiProtonInelastic.hh"
#include "G4HEAntiNeutronInelastic.hh"
#include "G4HELambdaInelastic.hh"
#include "G4HEAntiLambdaInelastic.hh"
#include "G4HESigmaPlusInelastic.hh"
#include "G4HESigmaMinusInelastic.hh"
#include "G4HEAntiSigmaPlusInelastic.hh"
#include "G4HEAntiSigmaMinusInelastic.hh"
#include "G4HEXiZeroInelastic.hh"
#include "G4HEXiMinusInelastic.hh"
#include "G4HEAntiXiZeroInelastic.hh"
#include "G4HEAntiXiMinusInelastic.hh"
#include "G4HEOmegaMinusInelastic.hh"
#include "G4HEAntiOmegaMinusInelastic.hh"
class G4MiscLHEPBuilder
{
public:
G4MiscLHEPBuilder();
virtual ~G4MiscLHEPBuilder();
public:
void Build();
private:
G4LElastic* theElasticModel;
// anti-proton
G4HadronElasticProcess theAntiProtonElasticProcess;
G4AntiProtonInelasticProcess theAntiProtonInelastic;
G4LEAntiProtonInelastic* theLEAntiProtonModel;
G4HEAntiProtonInelastic* theHEAntiProtonModel;
// anti-neutron
G4HadronElasticProcess theAntiNeutronElasticProcess;
G4AntiNeutronInelasticProcess theAntiNeutronInelastic;
G4LEAntiNeutronInelastic* theLEAntiNeutronModel;
G4HEAntiNeutronInelastic* theHEAntiNeutronModel;
// Lambda
G4HadronElasticProcess theLambdaElasticProcess;
G4LambdaInelasticProcess theLambdaInelastic;
G4LELambdaInelastic* theLELambdaModel;
G4HELambdaInelastic* theHELambdaModel;
// AntiLambda
G4HadronElasticProcess theAntiLambdaElasticProcess;
G4AntiLambdaInelasticProcess theAntiLambdaInelastic;
G4LEAntiLambdaInelastic* theLEAntiLambdaModel;
G4HEAntiLambdaInelastic* theHEAntiLambdaModel;
// SigmaMinus
G4HadronElasticProcess theSigmaMinusElasticProcess;
G4SigmaMinusInelasticProcess theSigmaMinusInelastic;
G4LESigmaMinusInelastic* theLESigmaMinusModel;
G4HESigmaMinusInelastic* theHESigmaMinusModel;
// AntiSigmaMinus
G4HadronElasticProcess theAntiSigmaMinusElasticProcess;
G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic;
G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel;
G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel;
// SigmaPlus
G4HadronElasticProcess theSigmaPlusElasticProcess;
G4SigmaPlusInelasticProcess theSigmaPlusInelastic;
G4LESigmaPlusInelastic* theLESigmaPlusModel;
G4HESigmaPlusInelastic* theHESigmaPlusModel;
// AntiSigmaPlus
G4HadronElasticProcess theAntiSigmaPlusElasticProcess;
G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic;
G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel;
G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel;
// XiZero
G4HadronElasticProcess theXiZeroElasticProcess;
G4XiZeroInelasticProcess theXiZeroInelastic;
G4LEXiZeroInelastic* theLEXiZeroModel;
G4HEXiZeroInelastic* theHEXiZeroModel;
// AntiXiZero
G4HadronElasticProcess theAntiXiZeroElasticProcess;
G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic;
G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel;
G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel;
// XiMinus
G4HadronElasticProcess theXiMinusElasticProcess;
G4XiMinusInelasticProcess theXiMinusInelastic;
G4LEXiMinusInelastic* theLEXiMinusModel;
G4HEXiMinusInelastic* theHEXiMinusModel;
// AntiXiMinus
G4HadronElasticProcess theAntiXiMinusElasticProcess;
G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic;
G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel;
G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel;
// OmegaMinus
G4HadronElasticProcess theOmegaMinusElasticProcess;
G4OmegaMinusInelasticProcess theOmegaMinusInelastic;
G4LEOmegaMinusInelastic* theLEOmegaMinusModel;
G4HEOmegaMinusInelastic* theHEOmegaMinusModel;
// AntiOmegaMinus
G4HadronElasticProcess theAntiOmegaMinusElasticProcess;
G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic;
G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel;
G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,59 +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 G4NeutronBuilder_h
#define G4NeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include <vector>
class G4NeutronBuilder
{
public:
G4NeutronBuilder();
virtual ~G4NeutronBuilder();
public:
void Build();
void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4HadronElasticProcess theNeutronElasticProcess;
G4NeutronInelasticProcess theNeutronInelastic;
G4HadronFissionProcess theNeutronFission;
G4HadronCaptureProcess theNeutronCapture;
std::vector<G4VNeutronBuilder *> theModelCollections;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,70 +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 G4NeutronHPBuilder_h
#define G4NeutronHPBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronHPElasticData.hh"
#include "G4NeutronHPElastic.hh"
#include "G4NeutronHPInelastic.hh"
#include "G4NeutronHPInelasticData.hh"
#include "G4NeutronHPFission.hh"
#include "G4NeutronHPFissionData.hh"
#include "G4NeutronHPCapture.hh"
#include "G4NeutronHPCaptureData.hh"
class G4NeutronHPBuilder : public G4VNeutronBuilder
{
public:
G4NeutronHPBuilder();
virtual ~G4NeutronHPBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
private:
G4NeutronHPElastic * theHPElastic;
G4NeutronHPElasticData * theHPElasticData;
G4NeutronHPInelastic * theHPInelastic;
G4NeutronHPInelasticData * theHPInelasticData;
G4NeutronHPFission * theHPFission;
G4NeutronHPFissionData * theHPFissionData;
G4NeutronHPCapture * theHPCapture;
G4NeutronHPCaptureData * theHPCaptureData;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,66 +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 G4PiKBuilder_h
#define G4PiKBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include <vector>
class G4PiKBuilder
{
public:
G4PiKBuilder();
virtual ~G4PiKBuilder();
public:
void Build();
void RegisterMe(G4VPiKBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4HadronElasticProcess thePionPlusElasticProcess;
G4HadronElasticProcess thePionMinusElasticProcess;
G4HadronElasticProcess theKaonPlusElasticProcess;
G4HadronElasticProcess theKaonMinusElasticProcess;
G4HadronElasticProcess theKaonZeroLElasticProcess;
G4HadronElasticProcess theKaonZeroSElasticProcess;
G4PionPlusInelasticProcess thePionPlusInelastic;
G4PionMinusInelasticProcess thePionMinusInelastic;
G4KaonPlusInelasticProcess theKaonPlusInelastic;
G4KaonMinusInelasticProcess theKaonMinusInelastic;
G4KaonZeroLInelasticProcess theKaonZeroLInelastic;
G4KaonZeroSInelasticProcess theKaonZeroSInelastic;
std::vector<G4VPiKBuilder *> theModelCollections;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,64 +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 G4PrecoNeutronBuilder_h
#define G4PrecoNeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4PreCompoundModel.hh"
#include "G4ExcitationHandler.hh"
#include "G4NeutronInelasticCrossSection.hh"
class G4PrecoNeutronBuilder : public G4VNeutronBuilder
{
public:
G4PrecoNeutronBuilder();
virtual ~G4PrecoNeutronBuilder();
public:
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;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,62 +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 G4PrecoProtonBuilder_h
#define G4PrecoProtonBuilder_h
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4PrecoProtonBuilder : public G4VProtonBuilder
{
public:
G4PrecoProtonBuilder();
virtual ~G4PrecoProtonBuilder();
public:
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;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,55 +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 G4ProtonBuilder_h
#define G4ProtonBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include <vector>
class G4ProtonBuilder
{
public:
G4ProtonBuilder();
virtual ~G4ProtonBuilder();
public:
void Build();
void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4HadronElasticProcess theProtonElasticProcess;
G4ProtonInelasticProcess theProtonInelastic;
std::vector<G4VProtonBuilder *> theModelCollections;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,71 +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 G4QGSCNeutronBuilder_h
#define G4QGSCNeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
class G4QGSCNeutronBuilder : public G4VNeutronBuilder
{
public:
G4QGSCNeutronBuilder();
virtual ~G4QGSCNeutronBuilder();
public:
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;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,75 +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 G4QGSCPiKBuilder_h
#define G4QGSCPiKBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include "G4PiNuclearCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
class G4QGSCPiKBuilder : public G4VPiKBuilder
{
public:
G4QGSCPiKBuilder();
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);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiCross;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,70 +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 G4QGSCProtonBuilder_h
#define G4QGSCProtonBuilder_h
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4QGSCProtonBuilder : public G4VProtonBuilder
{
public:
G4QGSCProtonBuilder();
virtual ~G4QGSCProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,75 +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 G4QGSPNeutronBuilder_h
#define G4QGSPNeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
#include "G4GeneratorPrecompoundInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
class G4QGSPNeutronBuilder : public G4VNeutronBuilder
{
public:
G4QGSPNeutronBuilder();
virtual ~G4QGSPNeutronBuilder();
public:
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;
G4ExcitedStringDecay * theStringDecay;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,78 +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 G4QGSPPiKBuilder_h
#define G4QGSPPiKBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
#include "G4GeneratorPrecompoundInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4PiNuclearCrossSection.hh"
class G4QGSPPiKBuilder : public G4VPiKBuilder
{
public:
G4QGSPPiKBuilder();
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);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,74 +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 G4QGSPProtonBuilder_h
#define G4QGSPProtonBuilder_h
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
#include "G4GeneratorPrecompoundInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4QGSPProtonBuilder : public G4VProtonBuilder
{
public:
G4QGSPProtonBuilder();
virtual ~G4QGSPProtonBuilder();
public:
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;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,65 +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 G4StoppingHadronBuilder_h
#define G4StoppingHadronBuilder_h 1
#include "globals.hh"
#include "G4ios.hh"
#include <vector>
// At rest processes
#include "G4AntiProtonAnnihilationAtRest.hh"
#include "G4AntiNeutronAnnihilationAtRest.hh"
#include "G4PionMinusAbsorptionAtRest.hh"
#include "G4KaonMinusAbsorption.hh"
class G4StoppingHadronBuilder
{
public:
G4StoppingHadronBuilder();
virtual ~G4StoppingHadronBuilder();
public:
virtual void Build();
private:
// Pi -
G4PionMinusAbsorptionAtRest thePionMinusAbsorption;
// K -
G4KaonMinusAbsorption theKaonMinusAbsorption;
// anti-proton
G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation;
// anti-neutron
G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,43 +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 G4VNeutronBuilder_h
#define G4VNeutronBuilder_h
class G4HadronElasticProcess;
class G4HadronFissionProcess;
class G4HadronCaptureProcess;
class G4NeutronInelasticProcess;
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;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,49 +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 G4VPiKBuilder_h
#define G4VPiKBuilder_h
#include "G4HadronElasticProcess.hh"
#include "G4PionPlusInelasticProcess.hh"
#include "G4PionMinusInelasticProcess.hh"
#include "G4KaonPlusInelasticProcess.hh"
#include "G4KaonMinusInelasticProcess.hh"
#include "G4KaonZeroLInelasticProcess.hh"
#include "G4KaonZeroSInelasticProcess.hh"
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;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,38 +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 G4VProtonBuilder_h
#define G4VProtonBuilder_h
class G4ProtonInelasticProcess;
class G4VProtonBuilder
{
public:
G4VProtonBuilder() {}
virtual ~G4VProtonBuilder() {}
virtual void Build(G4HadronElasticProcess & aP) = 0;
virtual void Build(G4ProtonInelasticProcess & aP) = 0;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,66 +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 GeneralPhysics_h
#define GeneralPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4Decay.hh"
class GeneralPhysics : public G4VPhysicsConstructor
{
public:
GeneralPhysics(const G4String& name = "general");
virtual ~GeneralPhysics();
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:
private:
G4Decay fDecayProcess;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,71 +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 HadronPhysicsLHEP_h
#define HadronPhysicsLHEP_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
#include "G4LHEPPiKBuilder.hh"
#include "G4PiKBuilder.hh"
#include "G4ProtonBuilder.hh"
#include "G4LHEPProtonBuilder.hh"
#include "G4NeutronBuilder.hh"
#include "G4LHEPNeutronBuilder.hh"
class HadronPhysicsLHEP : public G4VPhysicsConstructor
{
public:
HadronPhysicsLHEP(const G4String& name ="hadron");
virtual ~HadronPhysicsLHEP();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,77 +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 HadronPhysicsQGSC_h
#define HadronPhysicsQGSC_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
#include "G4PiKBuilder.hh"
#include "G4LEPPiKBuilder.hh"
#include "G4QGSCPiKBuilder.hh"
#include "G4ProtonBuilder.hh"
#include "G4LEPProtonBuilder.hh"
#include "G4QGSCProtonBuilder.hh"
#include "G4NeutronBuilder.hh"
#include "G4LEPNeutronBuilder.hh"
#include "G4QGSCNeutronBuilder.hh"
class HadronPhysicsQGSC : public G4VPhysicsConstructor
{
public:
HadronPhysicsQGSC(const G4String& name ="hadron");
virtual ~HadronPhysicsQGSC();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LEPNeutronBuilder theLEPNeutron;
G4QGSCNeutronBuilder theQGSCNeutron;
G4PiKBuilder thePiK;
G4LEPPiKBuilder theLEPPiK;
G4QGSCPiKBuilder theQGSCPiK;
G4ProtonBuilder thePro;
G4LEPProtonBuilder theLEPPro;
G4QGSCProtonBuilder theQGSCPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,77 +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 HadronPhysicsQGSP_h
#define HadronPhysicsQGSP_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
#include "G4PiKBuilder.hh"
#include "G4LEPPiKBuilder.hh"
#include "G4QGSPPiKBuilder.hh"
#include "G4ProtonBuilder.hh"
#include "G4LEPProtonBuilder.hh"
#include "G4QGSPProtonBuilder.hh"
#include "G4NeutronBuilder.hh"
#include "G4LEPNeutronBuilder.hh"
#include "G4QGSPNeutronBuilder.hh"
class HadronPhysicsQGSP : public G4VPhysicsConstructor
{
public:
HadronPhysicsQGSP(const G4String& name ="hadron");
virtual ~HadronPhysicsQGSP();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LEPNeutronBuilder theLEPNeutron;
G4QGSPNeutronBuilder theQGSPNeutron;
G4PiKBuilder thePiK;
G4LEPPiKBuilder theLEPPiK;
G4QGSPPiKBuilder theQGSPPiK;
G4ProtonBuilder thePro;
G4LEPProtonBuilder theLEPPro;
G4QGSPProtonBuilder theQGSPPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,106 +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 IonModelPhysics_h
#define IonModelPhysics_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 "G4hIonisationSTD.hh"
#include "G4ionIonisation.hh"
#include "G4MultipleScatteringSTD.hh"
class IonModelPhysics : public G4VPhysicsConstructor
{
public:
IonModelPhysics(const G4String& name="ion");
virtual ~IonModelPhysics();
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;
G4MultipleScatteringSTD fIonMultipleScattering;
G4ionIonisation fIonIonisation;
// Deuteron physics
G4HadronElasticProcess theDElasticProcess;
G4MultipleScatteringSTD fDeuteronMultipleScattering;
G4hIonisationSTD fDeuteronIonisation;
G4DeuteronInelasticProcess fDeuteronProcess;
G4LEDeuteronInelastic* fDeuteronModel;
// Triton physics
G4HadronElasticProcess theTElasticProcess;
G4MultipleScatteringSTD fTritonMultipleScattering;
G4hIonisationSTD fTritonIonisation;
G4TritonInelasticProcess fTritonProcess;
G4LETritonInelastic* fTritonModel;
// Alpha physics
G4HadronElasticProcess theAElasticProcess;
G4MultipleScatteringSTD fAlphaMultipleScattering;
G4hIonisationSTD fAlphaIonisation;
G4AlphaInelasticProcess fAlphaProcess;
G4LEAlphaInelastic* fAlphaModel;
// He3 physics
G4HadronElasticProcess theHe3ElasticProcess;
G4MultipleScatteringSTD fHe3MultipleScattering;
G4hIonisationSTD fHe3Ionisation;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,105 +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 "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;
G4hIonisation 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;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,48 +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 LHEP_h
#define LHEP_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
#define kNuCut 5*m
class LHEP: public G4VModularPhysicsList
{
public:
LHEP();
virtual ~LHEP();
public:
// SetCuts()
virtual void SetCuts();
};
// 2002 by J.P. Wellisch
#endif
@@ -1,80 +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 MuonModelPhysics_h
#define MuonModelPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4MultipleScatteringSTD.hh"
#include "G4MuBremsstrahlungSTD.hh"
#include "G4MuPairProductionSTD.hh"
#include "G4MuIonisationSTD.hh"
#include "G4hIonisationSTD.hh"
#include "G4MuonMinusCaptureAtRest.hh"
class MuonModelPhysics : public G4VPhysicsConstructor
{
public:
MuonModelPhysics(const G4String& name="muon");
virtual ~MuonModelPhysics();
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:
// Muon physics
G4MultipleScatteringSTD fMuPlusMultipleScattering;
G4MuBremsstrahlungSTD fMuPlusBremsstrahlung ;
G4MuPairProductionSTD fMuPlusPairProduction;
G4MuIonisationSTD fMuPlusIonisation;
G4MultipleScatteringSTD fMuMinusMultipleScattering;
G4MuBremsstrahlungSTD fMuMinusBremsstrahlung ;
G4MuPairProductionSTD fMuMinusPairProduction;
G4MuIonisationSTD fMuMinusIonisation;
G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest;
// Tau physics
G4MultipleScatteringSTD fTauPlusMultipleScattering;
G4hIonisationSTD fTauPlusIonisation;
G4MultipleScatteringSTD fTauMinusMultipleScattering;
G4hIonisationSTD fTauMinusIonisation;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,80 +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 MuonPhysics_h
#define MuonPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4MultipleScattering.hh"
#include "G4MuBremsstrahlung.hh"
#include "G4MuPairProduction.hh"
#include "G4MuIonisation.hh"
#include "G4hIonisation.hh"
#include "G4MuonMinusCaptureAtRest.hh"
class MuonPhysics : public G4VPhysicsConstructor
{
public:
MuonPhysics(const G4String& name="muon");
virtual ~MuonPhysics();
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:
// 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;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,48 +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 QGSC_h
#define QGSC_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
#define kNuCut 5*m
class QGSC: public G4VModularPhysicsList
{
public:
QGSC();
virtual ~QGSC();
public:
// SetCuts()
virtual void SetCuts();
};
// 2002 by J.P. Wellisch
#endif
@@ -1,48 +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 QGSP_h
#define QGSP_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
#define kNuCut 5*m
class QGSP: public G4VModularPhysicsList
{
public:
QGSP();
virtual ~QGSP();
public:
// SetCuts()
virtual void SetCuts();
};
// 2002 by J.P. Wellisch
#endif