Import Geant4 5.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:28:22 +02:00
parent fbd4999cf7
commit 4aea781e80
5454 changed files with 223141 additions and 67347 deletions
@@ -33,7 +33,7 @@
#include "G4Element.hh"
class CCalAMaterial : public CCalMaterial {
friend G4std::ostream& operator<<(G4std::ostream&, const CCalAMaterial&);
friend std::ostream& operator<<(std::ostream&, const CCalAMaterial&);
public:
//Construct from list of constituents
@@ -32,7 +32,7 @@
#define CCalAnalysis_h 1
#include "globals.hh"
#include "g4std/vector"
#include <vector>
#include "G4ThreeVector.hh"
namespace AIDA {
@@ -24,7 +24,7 @@
#define CCalDataSet_h
#include "G4NeutronHPInterpolator.hh"
#include "g4std/vector"
#include <vector>
// by JPW, working, but to be cleaned up. @@@@
@@ -31,21 +31,21 @@
#ifndef CCalDetector_h
#define CCalDetector_h 1
#include "g4std/iostream"
#include "g4std/vector"
#include <iostream>
#include <vector>
#include "globals.hh"
//Forward declartion for the CCalDetectorTable typedef
class CCalDetector;
//A table to hold a list of pointers to CMS Detectors
typedef G4std::vector<CCalDetector*> CCalDetectorTable;
typedef std::vector<CCalDetector*> CCalDetectorTable;
////////////////////
//At last the class
class CCalDetector {
friend G4std::ostream& operator<<(G4std::ostream&, const CCalDetector&);
friend std::ostream& operator<<(std::ostream&, const CCalDetector&);
public:
////////////////////////////////////////////////////////////////
@@ -28,26 +28,26 @@
#ifndef CCalG4Able_h
#define CCalG4Able_h 1
#include "g4std/vector"
#include <vector>
#include "G4VPhysicalVolume.hh"
#include "G4LogicalVolume.hh"
#include "globals.hh"
#include "CCalVisualisable.hh"
#include "g4std/iostream"
#include <iostream>
//Forward declartion for the CCalG4AbleTable typedef
class CCalG4Able;
//A table to hold a list of pointers to CMS Detectors
typedef G4std::vector<CCalG4Able*> CCalG4AbleTable;
typedef std::vector<CCalG4Able*> CCalG4AbleTable;
////////////////////
//At last the class
class CCalG4Able {
friend G4std::ostream& operator<<(G4std::ostream&, const CCalG4Able&);
friend std::ostream& operator<<(std::ostream&, const CCalG4Able&);
public:
//////////////////////////////////////////////////////////////////////////
@@ -29,7 +29,7 @@
#include "CCalEcal.hh"
#include "CCalG4Able.hh"
#include "g4std/vector"
#include <vector>
typedef G4LogicalVolume* ptrG4Log;
@@ -67,7 +67,7 @@ private:
static G4LogicalVolume* crystalmatrixLog;
// Logical volumes for sensitive detectors
G4std::vector<ptrG4Log> sensitiveLogs;
std::vector<ptrG4Log> sensitiveLogs;
};
@@ -30,7 +30,7 @@
#include "CCalHcal.hh"
#include "CCalG4Able.hh"
#include "g4std/vector"
#include <vector>
typedef G4LogicalVolume* ptrG4Log;
@@ -59,7 +59,7 @@ private:
ptrG4Log* absLog;
// Logical volumes for sensitive detectors
G4std::vector<ptrG4Log> allSensitiveLogs;
std::vector<ptrG4Log> allSensitiveLogs;
};
#endif
@@ -34,7 +34,7 @@
class CCalG4Hit : public G4VHit, public CCalHit {
friend G4std::ostream& operator<< (G4std::ostream& os, const CCalG4Hit& hit);
friend std::ostream& operator<< (std::ostream& os, const CCalG4Hit& hit);
public:
@@ -42,7 +42,7 @@ public:
~CCalG4Hit();
CCalG4Hit(const CCalG4Hit & right);
const CCalG4Hit& operator=(const CCalG4Hit & right);
int operator==(const CCalG4Hit &right){return 0;}
int operator==(const CCalG4Hit &){return 0;}
public:
@@ -28,7 +28,7 @@
#ifndef CCalGeometryConfiguration_h
#define CCalGeometryConfiguration_h 1
#include "g4std/map"
#include <map>
#include "CCalutils.hh"
class CCalGeometryConfiguration {
@@ -38,8 +38,8 @@ class CCalGeometryConfiguration {
int ConstructFlag;
};
typedef G4std::map<G4String, GCInfo, G4std::less<G4String> > CCalGeometryConfTable;
typedef G4std::map<G4String, GCInfo, G4std::less<G4String> >::iterator CCalGeometryConfIterator;
typedef std::map<G4String, GCInfo, std::less<G4String> > CCalGeometryConfTable;
typedef std::map<G4String, GCInfo, std::less<G4String> >::iterator CCalGeometryConfIterator;
public:
@@ -41,14 +41,14 @@
#ifndef CCalHit_h
#define CCalHit_h 1
#include "g4std/iostream"
#include <iostream>
#include "CLHEP/Vector/ThreeVector.h"
#include "globals.hh"
class CCalHit {
friend G4std::ostream& operator<< (G4std::ostream&, const CCalHit&);
friend std::ostream& operator<< (std::ostream&, const CCalHit&);
public:
@@ -56,7 +56,7 @@ public:
~CCalHit();
CCalHit(const CCalHit &right);
const CCalHit& operator=(const CCalHit &right);
int operator==(const CCalHit &right){return 0;}
int operator==(const CCalHit &){return 0;}
void print();
@@ -27,12 +27,12 @@
///////////////////////////////////////////////////////////////////////////////
#ifndef CCalMaterial_h
#define CCalMaterial_h 1
#include "g4std/iostream"
#include <iostream>
#include "globals.hh"
class CCalMaterial {
friend G4std::ostream& operator<<(G4std::ostream&, const CCalMaterial&);
friend std::ostream& operator<<(std::ostream&, const CCalMaterial&);
public:
enum FractionType {FTWeight, FTVolume};
@@ -30,7 +30,7 @@
#ifndef CCalMaterialFactory_h
#define CCalMaterialFactory_h 1
#include "g4std/fstream"
#include <fstream>
#include "CCalMaterial.hh"
#include "CCalAMaterial.hh"
@@ -38,8 +38,8 @@
#include "G4MaterialTable.hh"
#include "G4ElementTable.hh"
typedef G4std::vector<CCalMaterial*> CCalMaterialTable;
typedef G4std::vector<CCalAMaterial*> CCalAMaterialTable;
typedef std::vector<CCalMaterial*> CCalMaterialTable;
typedef std::vector<CCalAMaterial*> CCalAMaterialTable;
class CCalMaterialFactory {
public:
@@ -66,8 +66,8 @@ public:
void readMaterials(const G4String&);
protected:
void readElements(G4std::ifstream&);
void readMaterials(G4std::ifstream&);
void readElements(std::ifstream&);
void readMaterials(std::ifstream&);
private:
//Constructor
@@ -28,12 +28,12 @@
#ifndef CCalRotationMatrixFactory_h
#define CCalRotationMatrixFactory_h 1
#include "g4std/map"
#include <map>
#include "G4RotationMatrix.hh"
typedef G4RotationMatrix* G4RotationMatrixPtr;
typedef G4std::map<G4String, G4RotationMatrixPtr, G4std::less<G4String> > G4RotationMatrixTable;
typedef G4std::map<G4String, G4RotationMatrixPtr, G4std::less<G4String> >::iterator G4RotationMatrixTableIterator;
typedef std::map<G4String, G4RotationMatrixPtr, std::less<G4String> > G4RotationMatrixTable;
typedef std::map<G4String, G4RotationMatrixPtr, std::less<G4String> >::iterator G4RotationMatrixTableIterator;
//typedef RWTPtrOrderedVector<G4RotationMatrix> G4RotationMatrixTable;
@@ -63,5 +63,5 @@ private:
G4RotationMatrixTable theMatrices; //Where the matrices are stored.
};
G4std::ostream& operator<<(G4std::ostream&, const G4RotationMatrix &);
std::ostream& operator<<(std::ostream&, const G4RotationMatrix &);
#endif
@@ -29,7 +29,7 @@
#ifndef CCalSDList_h
#define CCalSDList_h 1
#include "g4std/vector"
#include <vector>
#include "globals.hh"
typedef G4String nameType;
@@ -55,8 +55,8 @@ public:
private:
static CCalSDList* theList;
G4std::vector<nameType> caloSD;
G4std::vector<nameType> trackerSD;
std::vector<nameType> caloSD;
std::vector<nameType> trackerSD;
private:
CCalSDList& operator=(CCalSDList&);
@@ -30,7 +30,7 @@
#include "CCalVOrganization.hh"
#include "g4std/map"
#include <map>
#include "globals.hh"
#include "G4VSensitiveDetector.hh"
@@ -47,7 +47,7 @@ private:
CCalSensAssign();
static CCalSensAssign* theInstance;
G4std::map<G4String,G4VSensitiveDetector*> sens_;
std::map<G4String,G4VSensitiveDetector*> sens_;
};
#endif
@@ -29,7 +29,7 @@
#ifndef CCalSensitiveConfiguration_h
#define CCalSensitiveConfiguration_h 1
#include "g4std/map"
#include <map>
#include "CCalutils.hh"
class CCalSensitiveConfiguration {
@@ -39,8 +39,8 @@ class CCalSensitiveConfiguration {
int SensitiveFlag;
};
typedef G4std::map<G4String, GCInfo, G4std::less<G4String> > CCalSensitiveConfTable;
typedef G4std::map<G4String, GCInfo, G4std::less<G4String> >::iterator CCalSensitiveConfIterator;
typedef std::map<G4String, GCInfo, std::less<G4String> > CCalSensitiveConfTable;
typedef std::map<G4String, GCInfo, std::less<G4String> >::iterator CCalSensitiveConfIterator;
public:
@@ -28,18 +28,18 @@
#ifndef CCalSensitiveDetectors_h
#define CCalSensitiveDetectors_h 1
#include "g4std/vector"
#include "g4std/map"
#include <vector>
#include <map>
#include "G4VSensitiveDetector.hh"
#include "G4LogicalVolume.hh"
typedef G4std::multimap< G4String, G4LogicalVolume*, G4std::less<G4String> > mmslv;
typedef std::multimap< G4String, G4LogicalVolume*, std::less<G4String> > mmslv;
class CCalSensitiveDetectors {
public:
~CCalSensitiveDetectors(){};
G4std::vector<G4LogicalVolume*> getVolumes (const G4String& name, bool exists = 0);
std::vector<G4LogicalVolume*> getVolumes (const G4String& name, bool exists = 0);
void registerVolume (const G4String& name, G4LogicalVolume*);
bool setSensitive(const G4String& string, G4VSensitiveDetector* sens);
static CCalSensitiveDetectors* getInstance();
@@ -29,7 +29,7 @@
#ifndef CCaloOrganization_h
#define CCaloOrganization_h
#include "g4std/map"
#include <map>
#include "globals.hh"
class CCaloOrganization{
@@ -47,11 +47,11 @@ public:
public:
// additional tool:
int getUnitWithMaxEnergy(G4std::map<int,float,G4std::less<int> >& themap);
int getUnitWithMaxEnergy(std::map<int,float,std::less<int> >& themap);
float energyInMatrix(int nCellInEta, int nCellInPhi,
int crystalWithMaxEnergy,
G4std::map<int,float,G4std::less<int> >& themap);
std::map<int,float,std::less<int> >& themap);
};
@@ -46,8 +46,8 @@
#include "G4TransportationManager.hh"
#include "G4VSensitiveDetector.hh"
#include "g4std/iostream"
#include "g4std/fstream"
#include <iostream>
#include <fstream>
class CCalVOrganization;
@@ -27,8 +27,8 @@
#ifndef CCalutils_hh
#define CCalutils_hh 1
#include "g4std/iostream"
#include "g4std/fstream"
#include <iostream>
#include <fstream>
#include "globals.hh"
@@ -36,20 +36,20 @@ G4String operator+(const G4String&, const int);
G4String operator+(const G4String&, const double);
// "number " + i = "number i"
G4std::ifstream& readName(G4std::ifstream&, G4String&);
std::ifstream& readName(std::ifstream&, G4String&);
// It reads a name into G4String between quotes and skips lines
// beginning with #. and if found *ENDDO returns.
G4std::ifstream& findDO(G4std::ifstream&, const G4String&);
std::ifstream& findDO(std::ifstream&, const G4String&);
// It reads until a *DO str is found.
G4std::ostream& tab(G4std::ostream&);
std::ostream& tab(std::ostream&);
// It add a tab.
G4std::istream& jump(G4std::istream&);
std::istream& jump(std::istream&);
// It ignores character until the end of line.
bool openGeomFile(G4std::ifstream& is, const G4String& pathname,
bool openGeomFile(std::ifstream& is, const G4String& pathname,
const G4String& filename);
// It opens the geometry file, either locally (if it exists) or "remotely".
@@ -0,0 +1,53 @@
//
// ********************************************************************
// * 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
@@ -0,0 +1,106 @@
//
// ********************************************************************
// * 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
@@ -20,50 +20,44 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef G4ElectroNuclearBuilder_h
#define G4ElectroNuclearBuilder_h 1
#ifndef G4EMModelBuilder_h
#define G4EMModelBuilder_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4GammaParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4PhotoElectricEffect.hh"
#include "G4ComptonScattering.hh"
#include "G4GammaConversion.hh"
#include "G4eplusAnnihilation.hh"
#include "G4MultipleScatteringSTD.hh"
#include "G4eIonisationSTD.hh"
#include "G4eBremsstrahlungSTD.hh"
#include "G4GammaNuclearReaction.hh"
#include "G4ElectroNuclearReaction.hh"
#include "G4PhotoNuclearProcess.hh"
#include "G4ElectronNuclearProcess.hh"
#include "G4PositronNuclearProcess.hh"
class G4ElectroNuclearBuilder
class G4EMModelBuilder
{
public:
G4ElectroNuclearBuilder();
virtual ~G4ElectroNuclearBuilder();
G4EMModelBuilder();
virtual ~G4EMModelBuilder();
public:
virtual void Build();
void Build();
protected:
G4PhotoNuclearProcess thePhotoNuclearProcess;
G4ElectronNuclearProcess theElectronNuclearProcess;
G4PositronNuclearProcess thePositronNuclearProcess;
G4ElectroNuclearReaction * theElectroReaction;
G4GammaNuclearReaction * theGammaReaction;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4GammaParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
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
@@ -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. *
// ********************************************************************
//
#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
@@ -25,7 +25,7 @@
#include "globals.hh"
#include "G4ios.hh"
#include "g4std/vector"
#include <vector>
#include "G4MultipleScattering.hh"
#include "G4hIonisation.hh"
@@ -55,6 +55,11 @@ class G4LEPPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM)
{
theMin=aM;
theMinPion=theMin;
}
void SetMinPionEnergy(G4double aM)
{
theMinPion=aM;
}
void SetMaxEnergy(G4double aM)
{
@@ -63,6 +68,7 @@ class G4LEPPiKBuilder : public G4VPiKBuilder
private:
G4double theMin;
G4double theMinPion;
G4double theMax;
G4LElastic * theElasticModel;
@@ -61,10 +61,16 @@ class G4LHEPPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM)
{
theM=aM;
theMinPion=theM;
}
void SetMinPionEnergy(G4double aM)
{
theMinPion = aM;
}
private:
G4double theM;
G4double theMinPion;
G4LElastic * theElasticModel;
@@ -31,7 +31,7 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "g4std/vector"
#include <vector>
class G4NeutronBuilder
{
@@ -49,7 +49,7 @@ class G4NeutronBuilder
G4HadronFissionProcess theNeutronFission;
G4HadronCaptureProcess theNeutronCapture;
G4std::vector<G4VNeutronBuilder *> theModelCollections;
std::vector<G4VNeutronBuilder *> theModelCollections;
};
@@ -29,7 +29,7 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include "g4std/vector"
#include <vector>
class G4PiKBuilder
{
@@ -56,7 +56,7 @@ class G4PiKBuilder
G4KaonZeroLInelasticProcess theKaonZeroLInelastic;
G4KaonZeroSInelasticProcess theKaonZeroSInelastic;
G4std::vector<G4VPiKBuilder *> theModelCollections;
std::vector<G4VPiKBuilder *> theModelCollections;
};
@@ -29,7 +29,7 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "g4std/vector"
#include <vector>
class G4ProtonBuilder
{
@@ -45,7 +45,7 @@ class G4ProtonBuilder
G4HadronElasticProcess theProtonElasticProcess;
G4ProtonInelasticProcess theProtonInelastic;
G4std::vector<G4VProtonBuilder *> theModelCollections;
std::vector<G4VProtonBuilder *> theModelCollections;
};
@@ -31,6 +31,8 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include "G4PiNuclearCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
@@ -56,6 +58,8 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiCross;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
@@ -40,6 +40,8 @@
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4PiNuclearCrossSection.hh"
class G4QGSPPiKBuilder : public G4VPiKBuilder
{
public:
@@ -58,6 +60,7 @@ class G4QGSPPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
@@ -25,7 +25,7 @@
#include "globals.hh"
#include "G4ios.hh"
#include "g4std/vector"
#include <vector>
// At rest processes
@@ -48,7 +48,9 @@ class GeneralPhysics : public G4VPhysicsConstructor
virtual void ConstructProcess();
protected:
G4Decay fDecayProcess;
private:
G4Decay fDecayProcess;
};
// 2002 by J.P. Wellisch
@@ -0,0 +1,106 @@
//
// ********************************************************************
// * 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
@@ -20,22 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
//-----------------------------------------------------------
// Renamed of the ufficial Physics List.
//-----------------------------------------------------------
#ifndef CCalPhysicsList_h
#define CCalPhysicsList_h 1
#ifndef LHEP_h
#define LHEP_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
#define kNuCut 5*m
class CCalPhysicsList: public G4VModularPhysicsList
class LHEP: public G4VModularPhysicsList
{
public:
CCalPhysicsList();
virtual ~CCalPhysicsList();
LHEP();
virtual ~LHEP();
public:
// SetCuts()
@@ -0,0 +1,80 @@
//
// ********************************************************************
// * 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
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * 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
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * 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