Import Geant4 9.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:15:05 +02:00
parent b79225fb37
commit 74cad5e589
3877 changed files with 234205 additions and 167127 deletions
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4BertiniNeutronBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4BertiniNeutronBuilder
//
// Author: 2002 H.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4BertiniNeutronBuilder_h
#define G4BertiniNeutronBuilder_h 1
@@ -35,7 +49,6 @@
#include "G4VNeutronBuilder.hh"
#include "G4CascadeInterface.hh"
#include "G4NeutronInelasticCrossSection.hh"
class G4BertiniNeutronBuilder : public G4VNeutronBuilder
{
@@ -54,7 +67,6 @@ class G4BertiniNeutronBuilder : public G4VNeutronBuilder
private:
G4CascadeInterface * theModel;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
G4double theMax;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4BertiniPiKBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4BertiniPiKBuilder
//
// Author: 2002 H.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4BertiniPiKBuilder_h
#define G4BertiniPiKBuilder_h 1
@@ -56,7 +70,7 @@ class G4BertiniPiKBuilder : public G4VPiKBuilder
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4PiNuclearCrossSection* thePiData;
G4CascadeInterface * theModel;
G4double theMin;
G4double theMax;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4BertiniProtonBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4BertiniProtonBuilder
//
// Author: 2002 H.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4BertiniProtonBuilder_h
#define G4BertiniProtonBuilder_h
@@ -35,7 +49,6 @@
#include "G4VProtonBuilder.hh"
#include "G4CascadeInterface.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4BertiniProtonBuilder : public G4VProtonBuilder
{
@@ -51,7 +64,7 @@ class G4BertiniProtonBuilder : public G4VProtonBuilder
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4CascadeInterface * theModel;
G4double theMin;
G4double theMax;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4BinaryNeutronBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4BinaryNeutronBuilder
//
// Author: 2002 H.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4BinaryNeutronBuilder_h
#define G4BinaryNeutronBuilder_h 1
@@ -35,7 +49,6 @@
#include "G4VNeutronBuilder.hh"
#include "G4BinaryCascade.hh"
#include "G4NeutronInelasticCrossSection.hh"
class G4BinaryNeutronBuilder : public G4VNeutronBuilder
{
@@ -54,7 +67,6 @@ class G4BinaryNeutronBuilder : public G4VNeutronBuilder
private:
G4BinaryCascade * theModel;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
G4double theMax;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4BinaryPiKBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4BinaryPiKBuilder
//
// Author: 2002 H.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4BinaryPiKBuilder_h
#define G4BinaryPiKBuilder_h 1
@@ -56,7 +70,7 @@ class G4BinaryPiKBuilder : public G4VPiKBuilder
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4PiNuclearCrossSection* thePiData;
G4BinaryCascade * theModel;
G4double theMin;
G4double theMax;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4BinaryProtonBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4BinaryProtonBuilder
//
// Author: 2002 H.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4BinaryProtonBuilder_h
#define G4BinaryProtonBuilder_h
@@ -35,7 +49,6 @@
#include "G4VProtonBuilder.hh"
#include "G4BinaryCascade.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4BinaryProtonBuilder : public G4VProtonBuilder
{
@@ -51,7 +64,7 @@ class G4BinaryProtonBuilder : public G4VProtonBuilder
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4BinaryCascade * theModel;
G4double theMin;
G4double theMax;
@@ -32,23 +32,24 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
enum G4DataType {no, photon, neutron, radioactive, lowenergy};
enum G4DataType {no, photon, neutron, radioactive, lowenergy, optical};
class G4DataQuestionaire
{
public:
G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no)
G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no, G4DataType t5=no)
{
G4cout << G4endl;
G4cout << "<<< Geant4 Physics List engine packaging library: PACK 5.4"<<G4endl;
G4cout << "<<< Geant4 Physics List engine packaging library: PACK 5.5"<<G4endl;
// G4cout <<G4endl<<G4endl;
// G4cout << "##### the input "<<t1<<" "<<t2<<" "<<t3<<" "<<t4<<G4endl;
for(G4int i=0; i<4; i++)
for(G4int i=0; i<5; i++)
{
G4DataType t(no);
if(i==0) t=t1;
if(i==1) t=t2;
if(i==2) t=t3;
if(i==3) t=t4;
if(i==4) t=t5;
switch(t)
{
case photon:
@@ -95,6 +96,17 @@ class G4DataQuestionaire
"Fatal error: Missing mandatory data for this simulation engine");
}
break;
case optical:
if(!getenv("G4LEDATA") )
{
G4cout << "Data describing surface propeties for optical photons are needed."<<G4endl;
G4cout << "Please set the environmental variable G4REALSURFACEDATA"<<G4endl;
G4cout << "to point to your RealSurface directory."<<G4endl;
G4cout << "Data are available from the Geant4 download page."<<G4endl;
G4Exception("G4DataQuestionaire", "007", FatalException,
"Fatal error: Missing mandatory data for this simulation engine");
}
break;
case no:
// all ok
break;
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4DecayPhysics.hh,v 1.1 2006/10/31 11:35:01 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4DecayPhysics.hh,v 1.2 2009/11/05 01:24:47 gum Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
@@ -63,6 +63,8 @@ class G4DecayPhysics : public G4VPhysicsConstructor
// registered to the process manager of each particle type
virtual void ConstructProcess();
virtual G4Decay* GetDecayProcess() { return fDecayProcess; }
private:
G4Decay* fDecayProcess;
G4int verbose;
@@ -0,0 +1,61 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4EmDNAPhysics.hh,v 1.1 2009/03/25 11:28:07 sincerti Exp $
// GEANT4 tag $Name: geant4-09-03 $
#ifndef G4EmDNAPhysics_h
#define G4EmDNAPhysics_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics : public G4VPhysicsConstructor
{
public:
G4EmDNAPhysics(G4int ver = 1,
const G4String& name = "G4EmDNAPhysics");
virtual ~G4EmDNAPhysics();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,61 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4EmLivermorePhysics.hh,v 1.1 2009/03/25 20:54:32 sincerti Exp $
// GEANT4 tag $Name: geant4-09-03 $
#ifndef G4EmLivermorePhysics_h
#define G4EmLivermorePhysics_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmLivermorePhysics : public G4VPhysicsConstructor
{
public:
G4EmLivermorePhysics(G4int ver = 1,
const G4String& name = "G4EmLivermorePhysics");
virtual ~G4EmLivermorePhysics();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,61 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4EmLivermorePolarizedPhysics.hh,v 1.1 2009/03/25 20:54:32 sincerti Exp $
// GEANT4 tag $Name: geant4-09-03 $
#ifndef G4EmLivermorePolarizedPhysics_h
#define G4EmLivermorePolarizedPhysics_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmLivermorePolarizedPhysics : public G4VPhysicsConstructor
{
public:
G4EmLivermorePolarizedPhysics(G4int ver = 1,
const G4String& name = "G4EmLivermorePolarizedPhysics");
virtual ~G4EmLivermorePolarizedPhysics();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,61 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4EmPenelopePhysics.hh,v 1.1 2009/03/25 13:24:57 pandola Exp $
// GEANT4 tag $Name: geant4-09-03 $
#ifndef G4EmPenelopePhysics_h
#define G4EmPenelopePhysics_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmPenelopePhysics : public G4VPhysicsConstructor
{
public:
G4EmPenelopePhysics(G4int ver = 1,
const G4String& name = "G4EmPenelopePhysics");
virtual ~G4EmPenelopePhysics();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFBinaryNeutronBuilder.hh,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFBinaryNeutronBuilder
//
// Author: 2008 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFBinaryNeutronBuilder_h
#define G4FTFBinaryNeutronBuilder_h 1
@@ -34,7 +48,6 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
@@ -65,7 +78,6 @@ class G4FTFBinaryNeutronBuilder : public G4VNeutronBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFBinaryPiKBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFBinaryPiKBuilder
//
// Author: 2008 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFBinaryPiKBuilder_h
#define G4FTFBinaryPiKBuilder_h 1
@@ -70,7 +84,7 @@ class G4FTFBinaryPiKBuilder : public G4VPiKBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4PiNuclearCrossSection thePiData;
G4PiNuclearCrossSection* thePiData;
G4double theMin;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFBinaryProtonBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFBinaryProtonBuilder
//
// Author: 2008 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFBinaryProtonBuilder_h
#define G4FTFBinaryProtonBuilder_h
@@ -34,7 +48,6 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
@@ -44,8 +57,6 @@
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4FTFBinaryProtonBuilder : public G4VProtonBuilder
{
public:
@@ -66,7 +77,6 @@ class G4FTFBinaryProtonBuilder : public G4VProtonBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4ProtonInelasticCrossSection theXSec;
G4double theMin;
};
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFBuilder.hh,v 1.1 2009/10/04 16:29:54 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFBuilder
//
// Author: 28 June 2009 V.Ivanchenko
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFBuilder_h
#define G4FTFBuilder_h 1
#include "globals.hh"
#include "G4VHadronModelBuilder.hh"
class G4FTFModel;
class G4ExcitedStringDecay;
class G4FTFBuilder : public G4VHadronModelBuilder
{
public:
G4FTFBuilder(const G4String& name ="");
virtual ~G4FTFBuilder();
protected:
virtual G4HadronicInteraction* BuildModel();
private:
// copy constructor and hide assignment operator
G4FTFBuilder(G4FTFBuilder &);
G4FTFBuilder & operator=(const G4FTFBuilder &right);
G4FTFModel* theStringModel;
G4ExcitedStringDecay* theStringDecay;
};
#endif
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFCNeutronBuilder.hh,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFCNeutronBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFCNeutronBuilder_h
#define G4FTFCNeutronBuilder_h 1
@@ -34,7 +48,6 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4FTFModel.hh"
@@ -63,7 +76,6 @@ class G4FTFCNeutronBuilder : public G4VNeutronBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFCPiKBuilder.hh,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFCPiKBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFCPiKBuilder_h
#define G4FTFCPiKBuilder_h 1
@@ -67,7 +81,7 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4PiNuclearCrossSection thePiData;
G4PiNuclearCrossSection* thePiData;
G4double theMin;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFCProtonBuilder.hh,v 1.4 2009/03/31 18:38:33 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFCProtonBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFCProtonBuilder_h
#define G4FTFCProtonBuilder_h
@@ -34,7 +48,6 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4FTFModel.hh"
@@ -42,23 +55,24 @@
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4FTFCProtonBuilder : public G4VProtonBuilder
{
public:
G4FTFCProtonBuilder(G4bool quasiElastic=false);
virtual ~G4FTFCProtonBuilder(){};
virtual ~G4FTFCProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess * ){};
virtual void Build(G4HadronElasticProcess * );
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4FTFModel * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4double theMin;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFPNeutronBuilder.hh,v 1.4 2009/04/23 18:54:57 japost Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFPNeutronBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFPNeutronBuilder_h
#define G4FTFPNeutronBuilder_h 1
@@ -34,7 +48,6 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
@@ -57,6 +70,7 @@ class G4FTFPNeutronBuilder : public G4VNeutronBuilder
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4TheoFSGenerator * theModel;
@@ -66,9 +80,8 @@ class G4FTFPNeutronBuilder : public G4VNeutronBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
G4double theMax;
};
// 2002 by J.P. Wellisch
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFPPiKBuilder.hh,v 1.4 2009/04/23 18:54:57 japost Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFPPiKBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFPPiKBuilder_h
#define G4FTFPPiKBuilder_h 1
@@ -61,6 +75,7 @@ class G4FTFPPiKBuilder : public G4VPiKBuilder
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4TheoFSGenerator * theModel;
@@ -70,8 +85,9 @@ class G4FTFPPiKBuilder : public G4VPiKBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4PiNuclearCrossSection thePiData;
G4PiNuclearCrossSection* thePiData;
G4double theMin;
G4double theMax;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4FTFPProtonBuilder.hh,v 1.4 2009/04/23 18:54:57 japost Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4FTFPProtonBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4FTFPProtonBuilder_h
#define G4FTFPProtonBuilder_h
@@ -34,7 +48,6 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
@@ -44,8 +57,6 @@
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4FTFPProtonBuilder : public G4VProtonBuilder
{
public:
@@ -57,6 +68,7 @@ class G4FTFPProtonBuilder : public G4VProtonBuilder
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4TheoFSGenerator * theModel;
@@ -66,8 +78,8 @@ class G4FTFPProtonBuilder : public G4VProtonBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4ProtonInelasticCrossSection theXSec;
G4double theMin;
G4double theMax;
};
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronHElasticPhysics.hh,v 1.2 2007/11/15 18:08:11 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4HadronHElasticPhysics.hh,v 1.4 2009/11/28 17:35:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
@@ -50,7 +50,8 @@
class G4HadronHElasticPhysics : public G4VPhysicsConstructor
{
public:
G4HadronHElasticPhysics(G4int ver = 0, G4bool hp = false);
G4HadronHElasticPhysics(G4int ver = 0, G4bool hp = false,
const G4String& type = "");
virtual ~G4HadronHElasticPhysics();
public:
@@ -65,15 +66,10 @@ public:
private:
G4HadronicInteraction* model;
G4HadronicInteraction* neutronModel;
G4HadronicInteraction* neutronHPModel;
G4String mname;
G4int verbose;
G4bool hpFlag;
G4bool wasActivated;
G4String subtype;
};
@@ -0,0 +1,80 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4InclAblaNeutronBuilder_h
#define G4InclAblaNeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4InclAblaCascadeInterface.hh"
#include "G4NeutronInelasticCrossSection.hh"
/**
* Builder for neutron processes using the INCL/ABLA intra-nuclear
* cascade and de-excitation models.
*
* By default the INCL/ABLA models are used for projectile energies 0 - 3 GeV.
*
* The builder uses INCL cascade model with build-in ABLA
* de-excitation. This is implemented in interface
* G4InclAblaCascadeInterface.
*
* @see G4InclAblaCascadeInterface
* @see G4InclAblaProtonBuilder
* @see G4InclAblaPiKBuilder
*/
class G4InclAblaNeutronBuilder : public G4VNeutronBuilder
{
public:
G4InclAblaNeutronBuilder();
virtual ~G4InclAblaNeutronBuilder();
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;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4InclAblaCascadeInterface * theModel;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
G4double theMax;
};
// 2002 by J.P. Wellisch
#endif
@@ -0,0 +1,84 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4InclAblaPiKBuilder_h
#define G4InclAblaPiKBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include "G4PiNuclearCrossSection.hh"
#include "G4InclAblaCascadeInterface.hh"
#include "G4CascadeInterface.hh"
/**
* Builder for pion processes using the INCL/ABLA intra-nuclear
* cascade and de-excitation models.
*
* By default the INCL/ABLA models are used for projectile energies 0 - 3 GeV.
*
* The builder uses INCL cascade model with build-in ABLA
* de-excitation. This is implemented in interface
* G4InclAblaCascadeInterface.
*
* @see G4InclAblaCascadeInterface
* @see G4InclAblaProtonBuilder
* @see G4InclAblaNeutronBuilder
*/
class G4InclAblaPiKBuilder : public G4VPiKBuilder
{
public:
G4InclAblaPiKBuilder();
virtual ~G4InclAblaPiKBuilder();
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;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4InclAblaCascadeInterface * theModel;
G4double theMin;
G4double theMax;
G4CascadeInterface *theBertiniModel;
};
// 2002 by J.P. Wellisch
#endif
@@ -0,0 +1,94 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4InclAblaProtonBuilder_h
#define G4InclAblaProtonBuilder_h
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4InclAblaCascadeInterface.hh"
#include "G4ProtonInelasticCrossSection.hh"
/**
* Builder for proton processes using the INCL/ABLA intra-nuclear
* cascade and de-excitation models.
*
* By default the INCL/ABLA models are used for projectile energies 0 - 3 GeV.
*
* The builder uses INCL cascade model with build-in ABLA
* de-excitation. This is implemented in interface
* G4InclAblaCascadeInterface.
*
* @see G4InclAblaCascadeInterface
* @see G4InclAblaNeutronBuilder
* @see G4InclAblaPiKBuilder
*/
class G4InclAblaProtonBuilder : public G4VProtonBuilder
{
public:
G4InclAblaProtonBuilder();
virtual ~G4InclAblaProtonBuilder();
public:
/**
* Build elastic process.
*
* No elastic process is built.
*/
virtual void Build(G4HadronElasticProcess * aP);
/**
* Build inelastic process.
*/
virtual void Build(G4ProtonInelasticProcess * aP);
/**
* Set the minimum energy limit for the model.
*/
void SetMinEnergy(G4double aM) {theMin = aM;}
/**
* Set the maximum energy limit for the model.
*/
void SetMaxEnergy(G4double aM) {theMax = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4InclAblaCascadeInterface * theModel;
G4double theMin;
G4double theMax;
};
// 2002 by J.P. Wellisch
#endif
@@ -0,0 +1,102 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4IonInclAblaPhysics.hh,v 1.1 2009/07/19 18:24:03 kaitanie Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4IonInclAblaBuilder
//
// Author: P. Kaitaniemi 18.05.2009
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4IonInclAblaPhysics_h
#define G4IonInclAblaPhysics_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4LEDeuteronInelastic.hh"
#include "G4LETritonInelastic.hh"
#include "G4LEAlphaInelastic.hh"
#include <vector>
class G4HadronInelasticProcess;
class G4HadronicInteraction;
class G4TripathiLightCrossSection;
class G4TripathiCrossSection;
class G4IonsShenCrossSection;
class G4IonInclAblaPhysics : public G4VPhysicsConstructor
{
public:
G4IonInclAblaPhysics(const G4String& name="ions", G4int verb = 0);
virtual ~G4IonInclAblaPhysics();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
void AddProcess(const G4String&,
G4ParticleDefinition*,
G4HadronicInteraction*,
G4HadronicInteraction*,
const G4double);
std::vector<G4HadronInelasticProcess*> p_list;
std::vector<G4HadronicInteraction*> model_list;
G4TripathiCrossSection* fTripathi;
G4TripathiLightCrossSection* fTripathiLight;
G4IonsShenCrossSection* fShen;
G4LEDeuteronInelastic* fLEDModel;
G4LETritonInelastic* fLETModel;
G4LEAlphaInelastic* fLEAModel;
G4double emin;
G4double emax_d, emax_t, emax_he3, emax_alpha;
G4double emaxLHEP;
G4int verbose;
G4bool wasActivated;
};
#endif
@@ -0,0 +1,111 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4IonQMDPhysics.hh,v 1.1 2009/11/27 17:25:15 gunter Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4IonBinaryCascadeBuilder
// Created from G4IonBinaryCascadePhysics
//
// Author: G.Folger
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4IonQMDPhysics_h
#define G4IonQMDPhysics_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4LEDeuteronInelastic.hh"
#include "G4LETritonInelastic.hh"
#include "G4LEAlphaInelastic.hh"
#include <vector>
class G4HadronInelasticProcess;
class G4HadronicInteraction;
class G4BinaryLightIonReaction;
class G4QMDReaction;
class G4TripathiLightCrossSection;
class G4TripathiCrossSection;
class G4IonsShenCrossSection;
class G4IonQMDPhysics : public G4VPhysicsConstructor
{
public:
G4IonQMDPhysics(const G4String& name="ions", G4int verb = 0);
virtual ~G4IonQMDPhysics();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
void AddProcess(const G4String&,
G4ParticleDefinition*,
G4BinaryLightIonReaction*,
G4QMDReaction*,
G4HadronicInteraction*);
std::vector<G4HadronInelasticProcess*> p_list;
std::vector<G4HadronicInteraction*> model_list;
G4TripathiCrossSection* fTripathi;
G4TripathiLightCrossSection* fTripathiLight;
G4IonsShenCrossSection* fShen;
G4LEDeuteronInelastic* fLEDModel;
G4LETritonInelastic* fLETModel;
G4LEAlphaInelastic* fLEAModel;
G4double eminBIC;
G4double eminQMD;
G4double emaxQMD;
G4double emaxLHEP;
G4double overlap;
G4int verbose;
G4bool wasActivated;
};
#endif
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// GEANT4 tag $Name: geant4-09-02 $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
@@ -101,72 +101,72 @@ class G4MiscLHEPBuilder
private:
// anti-proton
G4AntiProtonInelasticProcess theAntiProtonInelastic;
G4AntiProtonInelasticProcess* theAntiProtonInelastic;
G4LEAntiProtonInelastic* theLEAntiProtonModel;
G4HEAntiProtonInelastic* theHEAntiProtonModel;
// anti-neutron
G4AntiNeutronInelasticProcess theAntiNeutronInelastic;
G4AntiNeutronInelasticProcess* theAntiNeutronInelastic;
G4LEAntiNeutronInelastic* theLEAntiNeutronModel;
G4HEAntiNeutronInelastic* theHEAntiNeutronModel;
// Lambda
G4LambdaInelasticProcess theLambdaInelastic;
G4LambdaInelasticProcess* theLambdaInelastic;
G4LELambdaInelastic* theLELambdaModel;
G4HELambdaInelastic* theHELambdaModel;
// AntiLambda
G4AntiLambdaInelasticProcess theAntiLambdaInelastic;
G4AntiLambdaInelasticProcess* theAntiLambdaInelastic;
G4LEAntiLambdaInelastic* theLEAntiLambdaModel;
G4HEAntiLambdaInelastic* theHEAntiLambdaModel;
// SigmaMinus
G4SigmaMinusInelasticProcess theSigmaMinusInelastic;
G4SigmaMinusInelasticProcess* theSigmaMinusInelastic;
G4LESigmaMinusInelastic* theLESigmaMinusModel;
G4HESigmaMinusInelastic* theHESigmaMinusModel;
// AntiSigmaMinus
G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic;
G4AntiSigmaMinusInelasticProcess* theAntiSigmaMinusInelastic;
G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel;
G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel;
// SigmaPlus
G4SigmaPlusInelasticProcess theSigmaPlusInelastic;
G4SigmaPlusInelasticProcess* theSigmaPlusInelastic;
G4LESigmaPlusInelastic* theLESigmaPlusModel;
G4HESigmaPlusInelastic* theHESigmaPlusModel;
// AntiSigmaPlus
G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic;
G4AntiSigmaPlusInelasticProcess* theAntiSigmaPlusInelastic;
G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel;
G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel;
// XiZero
G4XiZeroInelasticProcess theXiZeroInelastic;
G4XiZeroInelasticProcess* theXiZeroInelastic;
G4LEXiZeroInelastic* theLEXiZeroModel;
G4HEXiZeroInelastic* theHEXiZeroModel;
// AntiXiZero
G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic;
G4AntiXiZeroInelasticProcess* theAntiXiZeroInelastic;
G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel;
G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel;
// XiMinus
G4XiMinusInelasticProcess theXiMinusInelastic;
G4XiMinusInelasticProcess* theXiMinusInelastic;
G4LEXiMinusInelastic* theLEXiMinusModel;
G4HEXiMinusInelastic* theHEXiMinusModel;
// AntiXiMinus
G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic;
G4AntiXiMinusInelasticProcess* theAntiXiMinusInelastic;
G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel;
G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel;
// OmegaMinus
G4OmegaMinusInelasticProcess theOmegaMinusInelastic;
G4OmegaMinusInelasticProcess* theOmegaMinusInelastic;
G4LEOmegaMinusInelastic* theLEOmegaMinusModel;
G4HEOmegaMinusInelastic* theHEOmegaMinusModel;
// AntiOmegaMinus
G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic;
G4AntiOmegaMinusInelasticProcess* theAntiOmegaMinusInelastic;
G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel;
G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel;
@@ -0,0 +1,91 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4MiscQGSCBuilder
//
// Author: 2009 M. Kossov (on the basis of the G4MiscLHEPBuilder)
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4MiscQGSCBuilder_h
#define G4MiscQGSCBuilder_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronInelasticProcess.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4ProcessManager.hh"
//class G4HadronicProcess;
//class G4TheoFSGenerator;
//class G4StringChipsParticleLevelInterface;
//class G4ExcitedStringDecay;
//class G4HadronProcessStore;
//class G4QuasiElasticChannel;
class G4MiscQGSCBuilder
//class G4MiscQGSCBuilder : public G4VPhysicsConstructor
{
public:
G4MiscQGSCBuilder(G4int verbose);
virtual ~G4MiscQGSCBuilder();
public:
void Build();
protected:
// the particle table has the complete List of existing particle types
G4ParticleTable* theParticleTable;
G4ParticleTable::G4PTblDicIterator* theParticleIterator;
private:
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > * theQGSCModel;
G4ExcitedStringDecay * theQGSCDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4int verbose;
G4bool wasActivated;
};
// 2009 by M. Kossov
#endif
@@ -0,0 +1,151 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//---------------------------------------------------------------------------
//
// ClassName: G4OpticalPhysics
//
// Author: P.Gumplinger 30.09.2009
//
// Modified:
//
//----------------------------------------------------------------------------
//
// This class provides construction of default optical physics
//
#ifndef G4OpticalPhysics_h
#define G4OpticalPhysics_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4OpticalPhysicsMessenger.hh"
#include "G4OpWLS.hh"
#include "G4Scintillation.hh"
#include "G4Cerenkov.hh"
#include "G4OpAbsorption.hh"
#include "G4OpRayleigh.hh"
#include "G4OpBoundaryProcess.hh"
#include "G4OpticalSurface.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4OpticalPhysics : public G4VPhysicsConstructor
{
public:
G4OpticalPhysics(G4int verbose = 0, const G4String& name = "Optical");
virtual ~G4OpticalPhysics();
protected:
// construct particle and physics
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
/// Not implemented
G4OpticalPhysics(const G4OpticalPhysics& right);
/// Not implemented
G4OpticalPhysics& operator=(const G4OpticalPhysics& right);
public:
// get methods
virtual G4Scintillation* GetScintillationProcess()
{ return fScintillationProcess; }
virtual G4Cerenkov* GetCerenkovProcess() { return fCerenkovProcess; }
virtual G4OpWLS* GetOpWLSProcess() { return fOpWLSProcess; }
virtual G4OpAbsorption* GetOpAbsorptionProcess()
{ return fOpAbsorptionProcess; }
virtual G4OpRayleigh* GetOpRayleighProcess()
{ return fOpRayleighScatteringProcess; }
virtual G4OpBoundaryProcess* GetOpBoundaryProcess()
{ return fOpBoundaryProcess; }
// set methods
void SetMaxNumPhotonsPerStep(G4int );
void SetMaxBetaChangePerStep(G4double );
void SetScintillationYieldFactor(G4double );
void SetScintillationExcitationRatio(G4double );
void SetOpticalSurfaceModel(G4OpticalSurfaceModel );
void SetWLSTimeProfile(G4String );
void AddScintillationSaturation(G4EmSaturation* );
void SetTrackSecondariesFirst(G4bool );
private:
// data members
G4bool wasActivated;
G4OpticalPhysicsMessenger* fMessenger;
G4Scintillation* fScintillationProcess;
G4Cerenkov* fCerenkovProcess;
G4OpWLS* fOpWLSProcess;
G4OpAbsorption* fOpAbsorptionProcess;
G4OpRayleigh* fOpRayleighScatteringProcess;
G4OpBoundaryProcess* fOpBoundaryProcess;
/// max number of Cerenkov photons per step
G4int fMaxNumPhotons;
/// max change of beta per step
G4double fMaxBetaChange;
/// scintillation yield factor
G4double fYieldFactor;
/// scintillation excitation ratio
G4double fExcitationRatio;
/// the optical surface model (glisur or unified)
G4OpticalSurfaceModel fSurfaceModel;
/// the WLS process time profile
G4String fProfile;
/// option to track secondaries before finishing their parent track
G4bool fTrackSecondariesFirst;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,103 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4OpticalPhysicsMessenger_h
#define G4OpticalPhysicsMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class G4VProcess;
class G4OpticalPhysics;
class G4UIdirectory;
class G4UIcmdWithABool;
class G4UIcmdWithADouble;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
class G4OpticalPhysicsMessenger: public G4UImessenger
{
public:
G4OpticalPhysicsMessenger(G4OpticalPhysics*);
~G4OpticalPhysicsMessenger();
// methods
void SetNewValue(G4UIcommand*, G4String);
private:
/// Not implemented
G4OpticalPhysicsMessenger();
/// Not implemented
G4OpticalPhysicsMessenger(const G4OpticalPhysicsMessenger& right);
/// Not implemented
G4OpticalPhysicsMessenger& operator=(const G4OpticalPhysicsMessenger& right);
// data members
/// associated clas
G4OpticalPhysics* fOpticalPhysics;
/// command directory
G4UIdirectory* fDir;
/// selected optical process
G4VProcess* fSelectedProcess;
/// selectOpProcess command
G4UIcmdWithAString* fSelectOpProcessCmd;
/// setCerenkovActivation command
G4UIcmdWithABool* fSetOpProcessActivationCmd;
/// setCerenkovVerbose command
G4UIcmdWithAnInteger* fSetOpProcessVerboseCmd;
/// setCerenkovMaxPhotons command
G4UIcmdWithAnInteger* fSetCerenkovMaxPhotonsCmd;
/// setCerenkovMaxBetaChange command
G4UIcmdWithADouble* fSetCerenkovMaxBetaChangeCmd;
/// setScintillationYieldFactor command
G4UIcmdWithADouble* fSetScintillationYieldFactorCmd;
/// setOpticalSurfaceModel command
G4UIcmdWithAString* fSetOpticalSurfaceModelCmd;
/// setWLSTimeProfile command
G4UIcmdWithAString* fSetWLSTimeProfileCmd;
/// setTrackSecondariesFirst command
G4UIcmdWithABool* fSetTrackSecondariesFirstCmd;
};
#endif
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PrecoNeutronBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4PrecoNeutronBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4PrecoNeutronBuilder_h
#define G4PrecoNeutronBuilder_h 1
@@ -54,7 +68,6 @@ class G4PrecoNeutronBuilder : public G4VNeutronBuilder
private:
G4PreCompoundModel * theModel;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
G4double theMax;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PrecoProtonBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4PrecoProtonBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4PrecoProtonBuilder_h
#define G4PrecoProtonBuilder_h
@@ -35,7 +49,6 @@
#include "G4VProtonBuilder.hh"
#include "G4PreCompoundModel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4PrecoProtonBuilder : public G4VProtonBuilder
{
@@ -50,7 +63,7 @@ class G4PrecoProtonBuilder : public G4VProtonBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4PreCompoundModel * theModel;
G4double theMin;
G4double theMax;
@@ -0,0 +1,69 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4QAtomicPhysics.hh,v 1.1 2009/11/20 10:24:28 mkossov Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QAtomicPhysics
//
// Author: M. Kosov 20.11.2009 (similar to G4EmStandardPhysics)
//
// Modified:
//
//---------------------------------------------------------------------------
//
// This class provides construction of CHIPS-modified Electromagnetic physics
//
//---------------------------------------------------------------------------
#ifndef G4QAtomicPhysics_h
#define G4QAtomicPhysics_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
class G4QAtomicPhysics : public G4VPhysicsConstructor
{
public:
G4QAtomicPhysics(G4int ver = 0, const G4String& name = "G4QAtomic");
virtual ~G4QAtomicPhysics();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
#endif
@@ -0,0 +1,79 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QCaptureAtRestPhysics.hh,v 1.1 2009/11/16 19:12:10 mkossov Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QCaptureAtRestPhysics
//
// Author: 16 Nov 2009 M. Kosov
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4QCaptureAtRestPhysics_h
#define G4QCaptureAtRestPhysics_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4ProcessManager.hh"
#include "G4ParticleDefinition.hh"
#include "G4Electron.hh"
#include "G4LeptonConstructor.hh"
#include "G4MesonConstructor.hh"
#include "G4BaryonConstructor.hh"
#include "G4QCaptureAtRest.hh"
class G4QCaptureAtRest;
class G4QCaptureAtRestPhysics : public G4VPhysicsConstructor
{
public:
G4QCaptureAtRestPhysics(const G4String& name = "nuclear_capture", G4int ver = 1);
virtual ~G4QCaptureAtRestPhysics();
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();
private:
G4QCaptureAtRest* captureProcess;
G4int verbose;
G4bool wasActivated;
};
#endif
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QEmExtraPhysics.hh,v 1.1 2007/05/23 17:38:35 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4QEmExtraPhysics.hh,v 1.2 2009/11/16 19:12:10 mkossov Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
@@ -32,7 +32,7 @@
//
// Author: 11 April 2006 V. Ivanchenko
//
// Modified:
// Modified: 19 Nov 2009 M.Kosov: G4QInelastic instead of G4QCollision
//
//----------------------------------------------------------------------------
//
@@ -43,7 +43,7 @@
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
class G4QCollision;
class G4QInelastic;
class G4QEmExtraPhysics : public G4VPhysicsConstructor
{
@@ -63,7 +63,7 @@ public:
private:
G4QCollision* hProcess;
G4QInelastic* hProcess;
G4int verbose;
G4bool wasActivated;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSBinaryNeutronBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSBinaryNeutronBuilder
//
// Author: 2006 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSBinaryNeutronBuilder_h
#define G4QGSBinaryNeutronBuilder_h 1
@@ -34,7 +48,6 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
@@ -67,7 +80,6 @@ class G4QGSBinaryNeutronBuilder : public G4VNeutronBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSBinaryPiKBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSBinaryPiKBuilder
//
// Author: 2006 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSBinaryPiKBuilder_h
#define G4QGSBinaryPiKBuilder_h 1
@@ -64,7 +78,7 @@ class G4QGSBinaryPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4PiNuclearCrossSection* thePiData;
G4TheoFSGenerator * theModel;
G4PreCompoundModel * thePreEquilib;
G4BinaryCascade * theCascade;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSBinaryProtonBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSBinaryProtonBuilder
//
// Author: 2006 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSBinaryProtonBuilder_h
#define G4QGSBinaryProtonBuilder_h
@@ -34,7 +48,6 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
@@ -45,8 +58,6 @@
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4QGSBinaryProtonBuilder : public G4VProtonBuilder
{
public:
@@ -60,7 +71,7 @@ class G4QGSBinaryProtonBuilder : public G4VProtonBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4PreCompoundModel * thePreEquilib;
G4BinaryCascade * theCascade;
@@ -0,0 +1,84 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSBuilder.hh,v 1.1 2009/10/04 16:29:54 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSBuilder
//
// Author: 28 June 2009 V.Ivanchenko
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSBuilder_h
#define G4QGSBuilder_h 1
#include "globals.hh"
#include "G4VHadronModelBuilder.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
class G4ExcitedStringDecay;
class G4QuasiElasticChannel;
class G4ProjectileDiffractiveChannel;
class G4QGSBuilder : public G4VHadronModelBuilder
{
public:
G4QGSBuilder(const G4String& name ="",
G4bool quasiElastic=true,
G4bool projectileDiffraction=false);
virtual ~G4QGSBuilder();
protected:
virtual G4HadronicInteraction* BuildModel();
private:
// copy constructor and hide assignment operator
G4QGSBuilder(G4QGSBuilder &);
G4QGSBuilder & operator=(const G4QGSBuilder &right);
G4QGSModel< G4QGSParticipants > * theQGStringModel;
G4ExcitedStringDecay* theQGStringDecay;
G4QuasiElasticChannel* theQuasiElastic;
G4ProjectileDiffractiveChannel* theProjectileDiffraction;
G4bool quasielFlag;
G4bool diffFlag;
};
#endif
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSCEflowNeutronBuilder.hh,v 1.3 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSCEflowNeutronBuilder
//
// Author: 2006 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSCEflowNeutronBuilder_h
#define G4QGSCEflowNeutronBuilder_h 1
@@ -34,7 +48,6 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4StringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
@@ -64,7 +77,6 @@ class G4QGSCEflowNeutronBuilder : public G4VNeutronBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSCEflowPiKBuilder.hh,v 1.3 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSCEflowPiKBuilder
//
// Author: 2006 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSCEflowPiKBuilder_h
#define G4QGSCEflowPiKBuilder_h 1
@@ -62,7 +76,7 @@ class G4QGSCEflowPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiCross;
G4PiNuclearCrossSection* thePiCross;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSCEflowProtonBuilder.hh,v 1.3 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSCEflowProtonBuilder
//
// Author: 2006 G.Folger
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSCEflowProtonBuilder_h
#define G4QGSCEflowProtonBuilder_h
@@ -43,8 +57,6 @@
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4QGSCEflowProtonBuilder : public G4VProtonBuilder
{
public:
@@ -58,7 +70,7 @@ class G4QGSCEflowProtonBuilder : public G4VProtonBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > * theStringModel;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSCNeutronBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSCNeutronBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSCNeutronBuilder_h
#define G4QGSCNeutronBuilder_h 1
@@ -34,7 +48,6 @@
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4NeutronInelasticCrossSection.hh"
#include "G4TheoFSGenerator.hh"
#include "G4QStringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
@@ -64,9 +77,7 @@ class G4QGSCNeutronBuilder : public G4VNeutronBuilder
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
// 2002 by J.P. Wellisch
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSCPiKBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSCPiKBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSCPiKBuilder_h
#define G4QGSCPiKBuilder_h 1
@@ -62,7 +76,7 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiCross;
G4PiNuclearCrossSection* thePiCross;
G4TheoFSGenerator * theModel;
G4QStringChipsParticleLevelInterface * theCascade;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSCProtonBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSCProtonBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSCProtonBuilder_h
#define G4QGSCProtonBuilder_h
@@ -43,8 +57,6 @@
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4QGSCProtonBuilder : public G4VProtonBuilder
{
public:
@@ -58,7 +70,7 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4QStringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > * theStringModel;
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4QGSC_CHIPSNeutronBuilder_h
#define G4QGSC_CHIPSNeutronBuilder_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"
#include "G4QuasiElasticChannel.hh"
#include "G4NeutronInelasticCrossSection.hh"
class G4QGSC_CHIPSNeutronBuilder : public G4VNeutronBuilder
{
public:
G4QGSC_CHIPSNeutronBuilder(G4bool quasiElastic=false);
virtual ~G4QGSC_CHIPSNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess * ){}
virtual void Build(G4HadronFissionProcess * ){}
virtual void Build(G4HadronCaptureProcess * ){}
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4NeutronInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4double theMin;
};
// 2009 by M. Kosov
#endif
@@ -0,0 +1,81 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4QGSC_CHIPSPiKBuilder_h
#define G4QGSC_CHIPSPiKBuilder_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"
#include "G4QuasiElasticChannel.hh"
class G4QGSC_CHIPSPiKBuilder : public G4VPiKBuilder
{
public:
G4QGSC_CHIPSPiKBuilder(G4bool quasiElastic=false);
virtual ~G4QGSC_CHIPSPiKBuilder();
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;
G4QuasiElasticChannel * theQuasiElastic;
G4double theMin;
};
// 2009 by M. Kosov
#endif
@@ -0,0 +1,75 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4QGSC_CHIPSProtonBuilder_h
#define G4QGSC_CHIPSProtonBuilder_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 "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4QGSC_CHIPSProtonBuilder : public G4VProtonBuilder
{
public:
G4QGSC_CHIPSProtonBuilder(G4bool quasiElastic=false);
virtual ~G4QGSC_CHIPSProtonBuilder();
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;
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4double theMin;
};
// 2009 by M. Kosov
#endif
@@ -0,0 +1,75 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4QGSC_QGSCNeutronBuilder_h
#define G4QGSC_QGSCNeutronBuilder_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 "G4QStringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
class G4QGSC_QGSCNeutronBuilder : public G4VNeutronBuilder
{
public:
G4QGSC_QGSCNeutronBuilder(G4bool quasiElastic=false);
virtual ~G4QGSC_QGSCNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess * ){}
virtual void Build(G4HadronFissionProcess * ){}
virtual void Build(G4HadronCaptureProcess * ){}
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4QGSModel< G4QGSParticipants > * theStringModel;
G4QStringChipsParticleLevelInterface * theCascade;
G4TheoFSGenerator * theModel;
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
// 2009 by M. Kosov
#endif
@@ -0,0 +1,81 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4QGSC_QGSCPiKBuilder_h
#define G4QGSC_QGSCPiKBuilder_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 "G4QStringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
class G4QGSC_QGSCPiKBuilder : public G4VPiKBuilder
{
public:
G4QGSC_QGSCPiKBuilder(G4bool quasiElastic=false);
virtual ~G4QGSC_QGSCPiKBuilder();
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;
G4QStringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4double theMin;
};
// 2009 by M. Kosov
#endif
@@ -0,0 +1,75 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4QGSC_QGSCProtonBuilder_h
#define G4QGSC_QGSCProtonBuilder_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 "G4QStringChipsParticleLevelInterface.hh"
#include "G4QGSModel.hh"
#include "G4QGSParticipants.hh"
#include "G4QGSMFragmentation.hh"
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProtonInelasticCrossSection.hh"
class G4QGSC_QGSCProtonBuilder : public G4VProtonBuilder
{
public:
G4QGSC_QGSCProtonBuilder(G4bool quasiElastic=false);
virtual ~G4QGSC_QGSCProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4QStringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4QuasiElasticChannel * theQuasiElastic;
G4double theMin;
};
// 2009 by M. Kosov
#endif
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSPNeutronBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSPNeutronBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSPNeutronBuilder_h
#define G4QGSPNeutronBuilder_h 1
@@ -45,8 +59,6 @@
#include "G4QuasiElasticChannel.hh"
#include "G4ProjectileDiffractiveChannel.hh"
#include "G4NeutronInelasticCrossSection.hh"
class G4QGSPNeutronBuilder : public G4VNeutronBuilder
{
public:
@@ -71,7 +83,6 @@ class G4QGSPNeutronBuilder : public G4VNeutronBuilder
G4QuasiElasticChannel * theQuasiElastic;
G4ProjectileDiffractiveChannel * theProjectileDiffraction;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
};
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSPPiKBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSPPiKBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSPPiKBuilder_h
#define G4QGSPPiKBuilder_h 1
@@ -44,8 +58,7 @@
#include "G4ExcitedStringDecay.hh"
#include "G4QuasiElasticChannel.hh"
#include "G4ProjectileDiffractiveChannel.hh"
#include "G4PiNuclearCrossSection.hh"
#include "G4VCrossSectionDataSet.hh"
class G4QGSPPiKBuilder : public G4VPiKBuilder
{
@@ -66,7 +79,7 @@ class G4QGSPPiKBuilder : public G4VPiKBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4VCrossSectionDataSet* thePiData;
G4TheoFSGenerator * theModel;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
@@ -23,6 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QGSPProtonBuilder.hh,v 1.5 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QGSPProtonBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.03.2009 V.Ivanchenko create cross section by new
//
//----------------------------------------------------------------------------
//
#ifndef G4QGSPProtonBuilder_h
#define G4QGSPProtonBuilder_h
@@ -62,7 +76,7 @@ class G4QGSPProtonBuilder : public G4VProtonBuilder
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
@@ -0,0 +1,84 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QInelasticCHIPSBuilder
//
// Author: 2009 M. Kossov
//
// Modified:
//
//----------------------------------------------------------------------------
//
// Short comment: This is a physics list of only one model G4QInelastic for
// all hadron-nuclear interactions at all energies. There is no model- or
// process-mixing, while it is possible to merge (G4QProcessMixer) the G4_HP
// processes at low energies if the G4QInelastic, which includes all necessary
// nA inelastic processes, is found to be not saficient for some applications.
// In this particular builder the G4QInelastic process is attached to all
// hadrons other than nucleons or pi and K-mesons. Previously it could be done
// only using the LHEP parameterized package or in a temporary form by the
// QGSC model conditionally extended (just not crashing) to low energies.
// *** Important *** As the CHIPS treatment of all hadrons is very simple,
// this builder with time can be not used in the CHIPS physics list.
//
// -----------------------------------------------------------------------------
#ifndef G4QInelasticCHIPSBuilder_h
#define G4QInelasticCHIPSBuilder_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4QInelastic.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4ProcessManager.hh"
class G4QInelasticCHIPSBuilder
{
public:
G4QInelasticCHIPSBuilder(G4int verbose);
virtual ~G4QInelasticCHIPSBuilder();
public:
void Build();
protected:
// the particle table has the complete List of existing particle types
G4ParticleTable* theParticleTable;
G4ParticleTable::G4PTblDicIterator* theParticleIterator;
private:
G4int verbose;
G4bool wasActivated;
G4QInelastic* inelastic;
};
// 2009 by M. Kossov
#endif
@@ -0,0 +1,93 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QMessenger.hh,v 1.1 2009/11/13 18:50:14 mkossov Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QMessenger
//
// Author: 2009 M. V. Kossov
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4QMessenger_h
#define G4QMessenger_h 1
class G4EmExtraPhysics;
#include "G4UImessenger.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
#include "G4UIcmdWithABool.hh"
#include "G4UIcmdWithADouble.hh"
#include "G4UIcmdWithAnInteger.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
class G4QNeutrinoPhysics;
class G4QPhotoNuclearPhysics;
class G4QMessenger: public G4UImessenger
{
G4QMessenger();
public:
~G4QMessenger();
static G4QMessenger* GetPointer(); // Gives a pointer to this singletone
void Add(G4QNeutrinoPhysics* weak);
void Add(G4QPhotoNuclearPhysics* photo);
void SetNewValue(G4UIcommand* aComm, G4String aS);
G4String GetCurrentValue(G4UIcommand* aComm);
private:
G4UIdirectory* rootDir;
G4UIdirectory* weakDir;
G4QNeutrinoPhysics* theWeak;
G4UIcmdWithAString* theNuElN;
G4UIcmdWithAString* theNuMuN;
G4UIcmdWithAString* theNuTaN;
G4UIcmdWithADouble* biasNuNuc;
G4UIdirectory* photoDir;
G4QPhotoNuclearPhysics* thePhoto;
G4UIcmdWithAString* theSynchR;
G4UIcmdWithADouble* minGamSR;
G4UIcmdWithAString* theGamN;
G4UIcmdWithAString* theEleN;
G4UIcmdWithAString* theMuoN;
G4UIcmdWithAString* theTauN;
G4UIcmdWithADouble* biasPhotoN;
};
#endif
@@ -0,0 +1,96 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QNeutrinoPhysics.hh,v 1.2 2009/11/16 19:12:10 mkossov Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QNeutrinoPhysics
//
// Author: 2009 M. V. Kosov
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4QNeutrinoPhysics_h
#define G4QNeutrinoPhysics_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
#include "G4QMessenger.hh"
#include "G4QInelastic.hh"
#include "G4NeutrinoE.hh"
#include "G4AntiNeutrinoE.hh"
#include "G4NeutrinoMu.hh"
#include "G4AntiNeutrinoMu.hh"
#include "G4NeutrinoTau.hh"
#include "G4AntiNeutrinoTau.hh"
#include "G4ProcessManager.hh"
class G4QNeutrinoPhysics : public G4VPhysicsConstructor
{
public:
G4QNeutrinoPhysics(const G4String& name = "CHIPS neutrino-nuclear");
virtual ~G4QNeutrinoPhysics();
void ConstructParticle();
void ConstructProcess();
G4String GetNuElNuclearOnOff() {return nuEleOn ? "on" : "off";}
G4String GetNuMuNuclearOnOff() {return nuMuoOn ? "on" : "off";}
G4String GetNuTauNuclearOnOff() {return nuTauOn ? "on" : "off";}
void SetNuElNuclearOnOff(G4String& aState);
void SetNuMuNuclearOnOff(G4String& aState);
void SetNuTauNuclearOnOff(G4String& aState);
void SetNuNuclearBias(G4double newValue);
private:
void BuildNuEleNuclear();
void BuildNuMuoNuclear();
void BuildNuTauNuclear();
G4bool wasBuilt;
G4bool nuEleActivated;
G4bool nuMuoActivated;
G4bool nuTauActivated;
G4bool nuEleOn;
G4bool nuMuoOn;
G4bool nuTauOn;
G4double nuNucBias; // Biasing factor for neutrino-nuclear processes
G4QInelastic* inelastic;
G4QMessenger* theMessenger;
};
#endif
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QNeutronBuilder
//
// Author: 2009 M. Kosov
//
// Modified:
//
//----------------------------------------------------------------------------
// Short description: for possible use in QGSC_QGSC (not needed for QGSC_CHIPS)
//-----------------------------------------------------------------------------
//
#ifndef G4QNeutronBuilder_h
#define G4QNeutronBuilder_h 1
#include "globals.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4QInelastic.hh"
#include "G4QDiscProcessMixer.hh"
#include "G4VNeutronBuilder.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4ProcessManager.hh"
#include <vector>
class G4QNeutronBuilder
{
public:
G4QNeutronBuilder();
virtual ~G4QNeutronBuilder();
public:
void Build();
void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4QDiscProcessMixer* theProcessMixer;
std::vector<G4VNeutronBuilder *> theModelCollections;
G4NeutronInelasticProcess* theNeutronInelastic;
G4QInelastic* theCHIPSInelastic;
G4bool wasActivated;
};
// 2009 by M. Kosov
#endif
@@ -0,0 +1,115 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4QPhotoNuclearPhysics.hh,v 1.2 2009/11/16 19:12:10 mkossov Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QPhotoNuclearPhysics
//
// Author: 2009 M. V. Kosov
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4QPhotoNuclearPhysics_h
#define G4QPhotoNuclearPhysics_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
#include "G4QMessenger.hh"
#include "G4QSynchRad.hh"
#include "G4QInelastic.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4Gamma.hh"
#include "G4Electron.hh"
#include "G4Positron.hh"
#include "G4MuonPlus.hh"
#include "G4MuonMinus.hh"
#include "G4TauPlus.hh"
#include "G4TauMinus.hh"
#include "G4MesonConstructor.hh"
#include "G4BaryonConstructor.hh"
#include "G4ProcessManager.hh"
class G4QPhotoNuclearPhysics : public G4VPhysicsConstructor
{
public:
G4QPhotoNuclearPhysics(const G4String& name = "CHIPS photo-nuclear");
virtual ~G4QPhotoNuclearPhysics();
void ConstructParticle();
void ConstructProcess();
G4String GetSynchRadOnOff() {return synchrOn ? "on" : "off";}
G4String GetGammaNuclearOnOff() {return gamNucOn ? "on" : "off";}
G4String GetElPosNuclearOnOff() {return eleNucOn ? "on" : "off";}
G4String GetMuonNuclearOnOff() {return muoNucOn ? "on" : "off";}
G4String GetTauNuclearOnOff() {return tauNucOn ? "on" : "off";}
void SetSynchRadOnOff(G4String& aSwitch);
void SetGammaNuclearOnOff(G4String& aSwitch);
void SetElPosNuclearOnOff(G4String& aSwitch);
void SetMuonNuclearOnOff(G4String& aSwitch);
void SetTauNuclearOnOff(G4String& aSwitch);
void SetMinGammaSR(G4double newValue);
void SetPhotoNucBias(G4double newValue);
private:
void BuildSynchRad();
void BuildGammaNuclear();
void BuildElectroNuclear();
void BuildMuonNuclear();
void BuildTauNuclear();
G4bool wasBuilt; // Flag of forbidden reactivation of processes
G4bool SynchRActivated; // Flag of finished activation of SynchroRadiation
G4bool GamNucActivated; // Flag of finished activation of gamma-nuclear
G4bool EleNucActivated; // Flag of finished activation of electron-nuclear
G4bool MuoNucActivated; // Flag of finished activation of muon-nuclear
G4bool TauNucActivated; // Flag of finished activation of tau-nuclear
G4bool synchrOn; // Switch flag for Synchrotron Radiation process
G4double synchrMinGam; // MinimumGamma for SynchrotronRadiation activation
G4bool gamNucOn; // Switch flag for the gamma-nuclear process
G4bool eleNucOn; // Switch flag for the electron-nuclear process
G4bool muoNucOn; // Switch flag for the electron-nuclear process
G4bool tauNucOn; // Switch flag for the electron-nuclear process
G4double photoNucBias; // Biasing factor for photo-nuclear processes
G4QInelastic* inelastic;
G4QSynchRad* synchrad;
G4QMessenger* theMessenger;
};
#endif
@@ -0,0 +1,76 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4QProtonBuilder
//
// Author: 2009 M. Kosov
//
// Modified:
//
//-----------------------------------------------------------------------------
// Short description: for G4QDiscProcessMixer use in the QGSC_CHIPS physics list
//-----------------------------------------------------------------------------
//
#ifndef G4QProtonBuilder_h
#define G4QProtonBuilder_h 1
#include "globals.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4QInelastic.hh"
#include "G4QDiscProcessMixer.hh"
#include "G4VProtonBuilder.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4ProcessManager.hh"
#include <vector>
class G4QProtonBuilder
{
public:
G4QProtonBuilder();
virtual ~G4QProtonBuilder();
public:
void Build();
void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4QDiscProcessMixer* theProcessMixer;
std::vector<G4VProtonBuilder *> theModelCollections;
G4ProtonInelasticProcess* theProtonInelastic;
G4QInelastic* theCHIPSInelastic;
G4bool wasActivated;
};
// 2009 by M. Kosov
#endif
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VHadronModelBuilder.hh,v 1.1 2009/10/04 16:29:54 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4VHadronModelBuilder
//
// Author: 28 June 2009 V.Ivanchenko
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4VHadronModelBuilder_h
#define G4VHadronModelBuilder_h 1
#include "G4HadronicInteraction.hh"
#include "globals.hh"
class G4VHadronModelBuilder
{
public:
G4VHadronModelBuilder(const G4String& name ="");
virtual ~G4VHadronModelBuilder();
G4HadronicInteraction* GetModel();
inline const G4String& GetName() const;
protected:
virtual G4HadronicInteraction* BuildModel() = 0;
private:
// copy constructor and hide assignment operator
G4VHadronModelBuilder(G4VHadronModelBuilder &);
G4VHadronModelBuilder & operator=(const G4VHadronModelBuilder &right);
G4HadronicInteraction* model;
G4String name;
};
inline const G4String& G4VHadronModelBuilder::GetName() const
{
return name;
}
#endif
@@ -23,6 +23,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VNeutronBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4VNeutronBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
// 30.03.2009 V.Ivanchenko move constructor and destructor to source
//
//----------------------------------------------------------------------------
//
#ifndef G4VNeutronBuilder_h
#define G4VNeutronBuilder_h
@@ -33,13 +48,13 @@ 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;
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
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VPiKBuilder.hh,v 1.1 2006/10/31 11:35:02 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4VPiKBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
@@ -34,6 +34,7 @@
//
// Modified:
// 16.11.2005 G.Folger: don't keep processes as data members, but new these
// 30.03.2009 V.Ivanchenko move constructor and destructor to source
//
//----------------------------------------------------------------------------
//
@@ -50,16 +51,16 @@
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;
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
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VProtonBuilder.hh,v 1.1 2006/10/31 11:35:02 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4VProtonBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
//---------------------------------------------------------------------------
//
@@ -34,6 +34,7 @@
//
// Modified:
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
// 30.03.2009 V.Ivanchenko move constructor and destructor to source
//
//----------------------------------------------------------------------------
//
@@ -45,11 +46,11 @@ class G4HadronElasticProcess;
class G4VProtonBuilder
{
public:
G4VProtonBuilder() {}
virtual ~G4VProtonBuilder() {}
virtual void Build(G4HadronElasticProcess * aP) = 0;
virtual void Build(G4ProtonInelasticProcess * aP) = 0;
public:
G4VProtonBuilder();
virtual ~G4VProtonBuilder();
virtual void Build(G4HadronElasticProcess * aP) = 0;
virtual void Build(G4ProtonInelasticProcess * aP) = 0;
};
// 2002 by J.P. Wellisch
@@ -26,60 +26,17 @@
#ifndef G4WarnPLStatus_hh
#define G4WarnPLStatus_hh
#include "G4String.hh"
#include "globals.hh"
class G4WarnPLStatus
{
public:
G4WarnPLStatus();
~G4WarnPLStatus();
void Replaced(const G4String aPL, const G4String Replacement) const ;
void Unsupported(const G4String aPL, const G4String Replacement ="") const ;
void Experimental(const G4String aPL) const ;
};
inline
G4WarnPLStatus::G4WarnPLStatus()
{}
inline
void G4WarnPLStatus::Unsupported(const G4String aPL, const G4String Replacement) const
{
G4cout <<
"*=====================================================================" <<G4endl <<
"* " <<G4endl <<
"* The Physics list "<<aPL<<" is NO LONGER SUPPORTED ! " <<G4endl <<
"* and is likely to be deleted in a future release of Geant4 " <<G4endl <<
"* " <<G4endl;
if (Replacement.size() > 0)
{
G4cout <<
"* We recommend you try the physics lists "<<Replacement<< "," <<G4endl <<
"* this offers similar functionality for most use cases " <<G4endl <<
"* " <<G4endl;
}
G4cout <<
"* " <<G4endl <<
"* We invite you to report your use case for, and your experience with" <<G4endl <<
"* this physics list on the Geant4 User Forum dedicated to physics " <<G4endl <<
"* lists: " <<G4endl <<
"* http://geant4-hn.slac.stanford.edu:5090/HyperNews/public/get/phys-list.html"<<G4endl <<
"* " <<G4endl <<
"*=====================================================================*" <<G4endl<<
G4endl;
}
void G4WarnPLStatus::Experimental(const G4String aPL) const
{
G4cout <<
"*=====================================================================" <<G4endl <<
"* " <<G4endl <<
"* The Physics list "<<aPL<<" is an experimental physics list ! " <<G4endl <<
"* " <<G4endl <<
"* Please report your use case for, and your experience with this " <<G4endl <<
"* physics list on the Geant4 User Forum dedicated to physics lists: " <<G4endl <<
"* http://geant4-hn.slac.stanford.edu:5090/HyperNews/public/get/phys-list.html"<<G4endl <<
"* " <<G4endl <<
"*=====================================================================*" <<G4endl<<
G4endl;
}
#endif