Import Geant4 9.6.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 17:01:34 +02:00
parent b1eb5424d2
commit e2d2f9810a
10384 changed files with 698580 additions and 628834 deletions
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: DetectorConstruction.hh,v 1.4 2006-06-29 17:23:28 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/DetectorConstruction.hh
/// \brief Definition of the DetectorConstruction class
//
// $Id$
//
/////////////////////////////////////////////////////////////////////////
//
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: DetectorMessenger.hh,v 1.7 2007-05-16 11:43:30 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/DetectorMessenger.hh
/// \brief Definition of the DetectorMessenger class
//
// $Id$
//
/////////////////////////////////////////////////////////////////////////
//
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: EventAction.hh,v 1.3 2006-06-29 17:23:34 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/EventAction.hh
/// \brief Definition of the EventAction class
//
// $Id$
//
/////////////////////////////////////////////////////////////////////////
//
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: EventActionMessenger.hh,v 1.3 2006-06-29 17:23:36 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/EventActionMessenger.hh
/// \brief Definition of the EventActionMessenger class
//
// $Id$
//
/////////////////////////////////////////////////////////////////////////
//
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4DPMJET2_5CrossSection.hh
/// \brief Definition of the G4DPMJET2_5CrossSection class
//
#ifndef G4DPMJET2_5CrossSection_h
#define G4DPMJET2_5CrossSection_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4DPMJET2_5CrossSection.hh
//
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4DPMJET2_5CrossSectionParamSet.hh
/// \brief Definition of the G4DPMJET2_5CrossSectionParamSet class
//
#ifndef G4DPMJET2_5CrossSectionParamSet_h
#define G4DPMJET2_5CrossSectionParamSet_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4DPMJET2_5CrossSectionParamSet.hh
//
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4DPMJET2_5Interface.hh
/// \brief Definition of the G4DPMJET2_5Interface class
//
#ifndef G4DPMJET2_5Interface_hh
#define G4DPMJET2_5Interface_hh 1
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4DPMJET2_5Interface.hh
//
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -65,9 +68,9 @@ const int mxnfbk = 10;
const int mxzfbk = 9;
const int mxpsst = 300;
const int mxpsfb = 41000;
const int nxafbk = 17; // NXAFBK = MXAFBK + 1
const int nxnfbk = 15; // NXNFBK = MXNFBK + MXFFBK / 3
const int nxzfbk = 14; // NXZFBK = MXZFBK + MXFFBK / 3
const int nxafbk = 17; // NXAFBK = MXAFBK + 1
const int nxnfbk = 15; // NXNFBK = MXNFBK + MXFFBK / 3
const int nxzfbk = 14; // NXZFBK = MXZFBK + MXFFBK / 3
const int nmxhkk = 89998;
const int neb = 50;
//
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4DPMJET2_5Model.hh
/// \brief Definition of the G4DPMJET2_5Model class
//
#ifndef G4DPMJET2_5Model_h
#define G4DPMJET2_5Model_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4DPMJET2_5Model.hh
//
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4FullGlaubAADataSet.hh
/// \brief Definition of the G4FullGlaubAADataSet class
//
#ifndef G4FullGlaubAADataSet_h
#define G4FullGlaubAADataSet_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4FullGlaubAADataSet.hh
//
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4GlaubAADataSet.hh
/// \brief Definition of the G4GlaubAADataSet class
//
#ifndef G4GlaubAADataSet_h
#define G4GlaubAADataSet_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4GlaubAADataSet.hh
//
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4GlaubAADataSetHandler.hh
/// \brief Definition of the G4GlaubAADataSetHandler class
//
#ifndef G4GlaubAADataSetHandler_h
#define G4GlaubAADataSetHandler_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4GlaubAADataSetHandler.hh
//
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.A
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4ParamType1GlaubAADataSet.hh
/// \brief Definition of the G4ParamType1GlaubAADataSet class
//
#ifndef G4ParamType1GlaubAADataSet_h
#define G4ParamType1GlaubAADataSet_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4ParamType1GlaubAADataSet.hh
//
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4Type1GlauberParameterisation.hh
/// \brief Definition of the G4Type1GlauberParameterisation class
//
#ifndef G4Type1GlauberParameterisation_h
#define G4Type1GlauberParameterisation_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4Type1GlauberParameterisation.hh
//
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -0,0 +1,683 @@
//
// ********************************************************************
// * 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. *
// * *
// * Parts of this code which have been developed by Abdel-Waged *
// * et al under contract (31-465) to the King Abdul-Aziz City for *
// * Science and Technology (KACST), the National Centre of *
// * Mathematics and Physics (NCMP), Saudi Arabia. *
// * *
// * 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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4UrQMD1_3Interface.hh
/// \brief Definition of the G4UrQMD1_3Interface class
//
#ifndef G4UrQMD1_3Interface_hh
#define G4UrQMD1_3Interface_hh
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4UrQMD1_3Model.hh
//
// Version: 0.B
// Date: 20/12/12
// Author: Kh. Abdel-Waged and Nuha Felemban
// Revised by: V.V. Uzhinskii
// SPONSERED BY
// Customer: KAUST/NCMP
// Contract: 31-465
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
//
// Class Description
//
//
// Class Description - End
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
///////////////////////////////////////////////////////////////////////////////
#include "globals.hh"
// coms
//
const G4int nmax = 500;
const G4int nspl = 500;
const G4int smax = 500;
// comres
const G4int minnuc=1;
const G4int minmes=100;
const G4int maxmes=132;
const G4int numnuc=16;
const G4int numdel=10;
const G4int maxnuc=minnuc+numnuc-1;
const G4int mindel=minnuc+maxnuc;
const G4int maxdel=mindel+numdel-1;
const G4int minres=minnuc+1;
const G4int maxres=maxdel;
const G4int numlam=13;
const G4int numsig=9;
const G4int numcas=6;
const G4int numome=1;
const G4int minlam=mindel+numdel;
const G4int maxlam=minlam+numlam-1;
const G4int minsig=minlam+numlam;
const G4int maxsig=minsig+numsig-1;
const G4int mincas=minsig+numsig;
const G4int maxcas=mincas+numcas-1;
const G4int minome=mincas+numcas;
const G4int maxome=minome+numome-1;
const G4int minbar=minnuc;
const G4int maxbar=maxome;
const G4int offmeson=minmes;
const G4int maxmeson=maxmes;
const G4int maxbra=11;
const G4int maxbrm=25;
const G4int maxbrs1=10;
const G4int maxbrs2=3;
const G4int nsigs = 10;
const G4int itblsz= 100;
const G4int maxreac = 13;
const G4int maxpsig = 12;
//
//comwid
//
const G4int widnsp=120;
const G4double mintab=0.10;
const G4double maxtab1=5.0;
const G4double maxtab2=50.0;
const G4int tabver=9;
//
// options
//
const G4int numcto=400;
const G4int numctp=400;
const G4int maxstables=20;
//
// colltab (collision tables)
//
const G4int ncollmax = 100;
//
// inputs
//
const G4int aamax=300;
//
// newpart (new created particles)
//
const G4int mprt=200;
const G4int oprt=2;
//
// boxinc
//
const G4int bptmax=20;
//
// This next line is required as the default version of FORTRAN LOGICAL is
// four bytes long, whereas storage for G4bool is one byte.
//
// comnorm
const G4int n = 400;
//
// comstr
const G4int njspin=8;
//
//iso
const G4int jmax=7;
// This next line is required as the default version of FORTRAN LOGICAL is
// four bytes long, whereas storage for G4bool is one byte.
//
typedef G4int ftnlogical;
//
// Standard common block for UrQMD
// Common options for coms.f
// 20 commons
//
//
struct ccurqmd13urqmdparams
{
G4int u_at,u_zt,u_ap,u_zp;
G4double u_elab,u_imp;
G4int u_sptar,u_spproj;
};
struct ccurqmd13sys
{
G4int npart, nbar, nmes, ctag,nsteps,uid_cnt,
ranseed,event,ap,at,zp,zt,eos,dectag,
nhardres, nsoftres, ndecres, nelcoll, nblcoll;
};
struct ccurqmd13rsys
{
G4double time,acttime,bdist,bimp,bmin,ebeam,ecm;
};
struct ccurqmd13comseed
{
ftnlogical
firstseed;
};
struct ccurqmd13logic
{
ftnlogical
lsct[nmax], logSky, logYuk, logCb, logPau;
};
struct ccurqmd13mdprop
{
G4double
r0_t[nmax], rx_t[nmax], ry_t[nmax], rz_t[nmax];
};
struct ccurqmd13cuts
{
G4double
cutmax, cutPau, cutCb, cutYuk, cutSky, cutdww;
};
struct ccurqmd13spdata
{
G4double
spx[nspl], spPauy[nspl], outPau[nspl],
spCby[nspl], outCb[nspl],
spYuky[nspl], outYuk[nspl],
spSkyy[nspl], outSky[nspl],
spdwwy[nspl], outdww[nspl];
};
struct ccurqmd13isys
{
G4int spin[nmax],ncoll[nmax],charge[nmax],ityp[nmax],
lstcoll[nmax],
iso3[nmax],origin[nmax],strid[nmax],uid[nmax];
};
struct ccurqmd13coor
{
G4double
r0[nmax], rx[nmax], ry[nmax], rz[nmax],
p0[nmax], px[nmax], py[nmax], pz[nmax],
fmass[nmax], rww[nmax],dectime[nmax];
};
struct ccurqmd13frag
{
G4double
tform[nmax], xtotfac[nmax];
};
struct ccurqmd13aios
{
G4double
airx[nmax], airy[nmax], airz[nmax],
aipx[nmax], aipy[nmax], aipz[nmax],
aorx [4][nmax], aory[4][nmax], aorz[4][nmax],
aopx[4][nmax], aopy[4][nmax], aopz[4][nmax];
};
struct ccurqmd13pots
{
G4double
Cb0, Yuk0, Pau0, Sky20, Sky30, gamSky,
gamYuk, drPau, dpPau, gw, sgw, delr, fdel,
dt,da, db,dtimestep;
};
struct ccurqmd13scoor
{
G4double
r0s[smax], rxs[smax], rys[smax], rzs[smax],
p0s[smax], pxs[smax], pys[smax], pzs[smax],
sfmass[smax];
};
struct ccurqmd13sisys
{
G4int
sspin[smax], scharge[smax], sityp[smax], siso3[smax],
suid[smax];
};
struct ccurqmd13ssys
{
G4int nspec;
};
struct ccurqmd13rtdelay
{
G4double
p0td[nmax][2],pxtd[nmax][2],pytd[nmax][2],pztd[nmax][2],
fmasstd[nmax][2];
};
struct ccurqmd13itdelay
{
G4int
ityptd[nmax][2],iso3td[nmax][2];
};
struct ccurqmd13svinfo
{
G4int
itypt[2],uidt[2],origint[2],iso3t[2];
};
struct ccurqmd13ffermi
{
G4double
ffermpx[nmax], ffermpy[nmax], ffermpz[nmax];
};
struct ccurqmd13peq
{
G4double peq1, peq2;
};
//
// Definition for Collision Term
// Commons comres
// 4 commons
//
struct ccurqmd13versioning
{
char versiontag[45];
};
struct ccurqmd13resonances
{
G4double massres[maxbar-minbar+1],widres[maxbar-minbar+1];
G4double massmes[maxmes-minmes+1];
G4double widmes[maxmes-minmes+1];
G4double mmesmn[maxmes-minmes+1];
G4double branres[maxdel-minnuc][maxbra+1];
G4double branmes[maxmes-minmes][maxbrm+1];
G4double branbs1[maxsig-minlam][maxbrs1+1];
G4double branbs2[maxcas-mincas][maxbrs2+1];
G4int bs1type[maxbrs1+1][4],bs2type[maxbrs2+1][4];
G4int lbs1[maxsig-minlam][maxbrs1+1];
G4int lbs2[maxcas-mincas][maxbrs2+1];
G4int lbm[maxmes-minmes][maxbrm+1];
G4int jres[maxbar-minbar+1];
G4int jmes[maxmes-minmes+1];
G4int lbr[maxdel-minnuc][maxbra+1];
G4int brtype[maxbra+1][4];
G4int pares[maxbar-minbar+1],pames[maxmes-minmes+1];
G4int bmtype[maxbrm+1][4];
G4int isores[maxbar-minbar+1], isomes[maxmes-minmes+1];
G4int strres[maxbar-minbar+1],strmes[maxmes-minmes+1];
G4int mlt2it[maxmes-minmes];
};
struct ccurqmd13sigtabi
{
G4int sigmaln[maxreac][2][maxpsig];
G4int sigmainf[20][nsigs];
};
struct ccurqmd13sigtabr
{
G4double sigmas[itblsz][nsigs],sigmascal[5][nsigs];
};
//comwid
struct ccurqmd13decaywidth
{
G4double tabx [widnsp];
G4double fbtaby [2][maxbar-minbar+1][widnsp];
G4double pbtaby[maxbra+1][maxbar-minbar+1][2][widnsp];
G4double fmtaby [2][maxmes-minmes+1][widnsp];
G4double pmtaby [maxbrm+1][maxmes-minmes+1][2][widnsp];
G4int wtabflg;
};
struct ccurqmd13brwignorm
{
G4double bwbarnorm[maxbar-minbar+1];
G4double bwmesnorm[maxmes-minmes+1];
};
struct ccurqmd13xsections
{
G4double tabxnd [widnsp];
G4double frrtaby[maxdel-1][2][2][widnsp];
};
struct ccurqmd13tabnames
{
char tabname[77];
};
//-----------------
//
// options
//
struct ccurqmd13options
{
G4int CTOption[numcto];
G4double CTParam[numctp];
};
struct ccurqmd13optstrings
{
char ctodc[numcto][2];
char ctpdc[numctp][2];
};
struct ccurqmd13loptions
{
ftnlogical
fixedseed,bf13,bf14,bf15,bf16,bf17,bf18,bf19,
bf20;
};
struct ccurqmd13stables
{
G4int nstable;
G4int stabvec[maxstables];
};
//
//colltab
//
struct ccurqmd13colltab
{
G4double
cttime[ncollmax+1],ctsqrts[ncollmax],
ctsigtot[ncollmax],tmin;
G4int
cti1[ncollmax],cti2[ncollmax];
G4int
nct,actcol;
ftnlogical
ctvalid[ncollmax];
G4int
ctsav[ncollmax];
G4int
nsav,apt;
G4double
ctcolfluc[ncollmax];
};
//
// inputs
//
struct ccurqmd13inputs
{
G4int nevents,spityp[2],prspflg;
G4int trspflg,spiso3[2],outsteps,bflag,srtflag,efuncflag;
G4int nsrt,firstev,npb;
};
struct ccurqmd13input2
{
G4double srtmin,srtmax,pbeam,betann,betatar,betapro;
G4double pbmin,pbmax;
};
struct ccurqmd13protarints
{
G4int pt_iso3[2][aamax],pt_ityp[2][aamax],pt_spin[2][aamax];
G4int pt_charge[2][aamax],pt_aa[2],pt_uid[2][aamax];
};
struct ccurqmd13protarreals
{
G4double pt_r0[2][aamax],pt_rx[2][aamax],pt_ry[2][aamax],
pt_rz[2][aamax],pt_fmass[2][aamax],pt_dectime[2][aamax];
G4double pt_p0[2][aamax],pt_px[2][aamax],pt_py[2][aamax],
pt_pz[2][aamax];
G4double pt_rho[2][aamax];
G4double pt_pmax[2][aamax];
};
// newpart
struct ccurqmd13inewpart
{
G4int itypnew[mprt],i3new[mprt],itot[mprt],inew[mprt],nexit;
G4int iline,strcount,pslot[oprt],nstring1, nstring2,
sidnew[mprt],itypold[oprt],iso3old[oprt];
};
struct ccurqmd13rnewpart
{
G4double pnew[mprt][5],xnew[mprt][4],betax,betay,betaz,
pold[oprt][5],p0nn,pxnn,pynn,pznn,pnn, mstring[2],
pnnout,xtotfacold[oprt];
};
struct ccurqmd13fnewpart
{
G4double leadfac[mprt];
};
//
// boxinc
//
struct ccurqmd13boxic
{
G4int cbox;
G4int boxflag;
G4int mbox;
G4int bptityp[bptmax],bptiso3[bptmax],bptpart[bptmax];
G4int edensflag,para,solid, mbflag,mtest;
};
struct ccurqmd13boxrc
{
G4double bptpmax[bptmax];
G4double edens;
G4double lbox;
G4double lboxhalbe;
G4double lboxd;
G4double mbp0, mbpx, mbpy, mbpz;
};
// comnorm
struct ccurqmd13normsplin
{
G4double x_norm[n][4],y_norm[n][4];
G4double y2a[n][4],y2b[n][4], dx;
};
// comstr
struct ccurqmd13FRGSPA
{
G4double
pjspns, pmix1s[njspin][3], pmix2s[njspin][3]
, pbars, parqls, parrs;
};
struct ccurqmd13FRGCPA
{
G4double
pjspnc, pmix1c[njspin][3], pmix2c[njspin][3], pbarc;
};
struct ccurqmd13coparm
{
G4double parm[njspin];
};
struct ccurqmd13const
{
G4double pi;
};
//// freezeout
//
struct ccurqmd13frcoor
{
G4double frr0[nmax], frrx[nmax], frry[nmax], frrz[nmax],
frp0[nmax], frpx[nmax], frpy[nmax], frpz[nmax];
};
// input
struct ccurqmd13values
{
G4double valint[1];
};
// cascinit
struct ccurqmd13ini
{
ftnlogical bcorr;
};
// iso
struct ccurqmd13factorials
{
G4double logfak[101];
};
struct ccurqmd13cgks
{
G4double cgktab[jmax+1][2*jmax+1][2*jmax+1][jmax+1][jmax+1];
};
// UrQMD
//
struct ccurqmd13energies
{
G4double ekinbar, ekinmes, esky2, esky3,
eyuk, ecb, epau;
};
// urqmd
extern "C"
{
extern int time_ ();
extern void loginit_();
extern void sseed_ (int*);
extern void uinit_ (int*);
extern void urqmd_ ();
extern int pdgid_ (int*, int*); //ityp
extern void g4urqmdblockdata_ ();
// urqmdparams
extern struct ccurqmd13urqmdparams urqmdparams_;
//coms
extern struct ccurqmd13sys sys_;
extern struct ccurqmd13rsys rsys_;
extern struct ccurqmd13comseed comseed_;
extern struct ccurqmd13logic logic_;
extern struct ccurqmd13mdprop mdprop_;
extern struct ccurqmd13cuts cuts_;
extern struct ccurqmd13spdata spdata_;
extern struct ccurqmd13isys isys_;
extern struct ccurqmd13coor coor_;
extern struct ccurqmd13frag frag_;
extern struct ccurqmd13aios aios_;
extern struct ccurqmd13pots pots_;
extern struct ccurqmd13scoor scoor_;
extern struct ccurqmd13sisys sisys_;
extern struct ccurqmd13ssys ssys_;
extern struct ccurqmd13rtdelay rtdelay_;
extern struct ccurqmd13itdelay itdelay_;
extern struct ccurqmd13svinfo svinfo_;
extern struct ccurqmd13ffermi ffermi_;
extern struct ccurqmd13peq peq_;
//comres
extern struct ccurqmd13versioning versioning_;
extern struct ccurqmd13resonances resonances_;
extern struct ccurqmd13sigtabi sigtabi_;
extern struct ccurqmd13sigtabr sigtabr_;
//comwid
extern struct ccurqmd13decaywidth decaywidth_;
extern struct ccurqmd13brwignorm brwignorm_;
extern struct ccurqmd13xsections xsections_;
extern struct ccurqmd13tabnames tabnames_;
//options
extern struct ccurqmd13options options_;
extern struct ccurqmd13optstrings optstrings_;
extern struct ccurqmd13loptions loptions_;
extern struct ccurqmd13stables stables_;
//colltab
extern struct ccurqmd13colltab colltab_;
//inputs
extern struct ccurqmd13inputs inputs_;
extern struct ccurqmd13input2 input2_;
extern struct ccurqmd13protarints protarints_;
extern struct ccurqmd13protarreals protarreals_;
//newpart
extern struct ccurqmd13inewpart inewpart_;
extern struct ccurqmd13rnewpart rnewpart_;
extern struct ccurqmd13fnewpart fnewpart_;
//bocinc
extern struct ccurqmd13boxic boxic_;
extern struct ccurqmd13boxrc boxrc_;
// comnorm
struct ccurqmd13normsplin normsplin_;
//comstr
struct ccurqmd13FRGSPA FRGSPA_;
struct ccurqmd13FRGCPA FRGCPA_;
struct ccurqmd13coparm coparm_;
struct ccurqmd13const const_;
// freezeout
struct ccurqmd13frcoor frcoor_;
//urqmd
extern struct ccurqmd13energies energies_;
//input
extern struct ccurqmd13values values_;
// cascinit
extern struct ccurqmd13ini ini_;
//iso
extern struct ccurqmd13factorials factorials_;
extern struct ccurqmd13cgks cgks_;
}
#endif
@@ -0,0 +1,148 @@
//
// ********************************************************************
// * 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. *
// * *
// * Parts of this code which have been developed by Abdel-Waged *
// * et al under contract (31-465) to the King Abdul-Aziz City for *
// * Science and Technology (KACST), the National Centre of *
// * Mathematics and Physics (NCMP), Saudi Arabia. *
// * *
// * 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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4UrQMD1_3Model.hh
/// \brief Definition of the G4UrQMD1_3Model class
//
#ifndef G4UrQMD1_3Model_hh
#define G4UrQMD1_3Model_hh
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4UrQMD1_3Model.hh
//
// Version: 0.B
// Date: 20/10/12
// Author: Kh. Abdel-Waged and Nuha Felemban
// Revised by: V.V. Uzhinskii
// SPONSERED BY
// Customer: KAUST/NCMP
// Contract: 31-465
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// Class Description
//
//
// Class Description - End
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
///////////////////////////////////////////////////////////////////////////////
#include "G4Nucleon.hh"
#include "G4Nucleus.hh"
#include "G4VIntraNuclearTransportModel.hh"
#include "G4KineticTrackVector.hh"
#include "G4FragmentVector.hh"
#include "G4ParticleChange.hh"
#include "G4ReactionProductVector.hh"
#include "G4ReactionProduct.hh"
#include "G4IntraNucleiCascader.hh"
#include "G4Track.hh"
#include <fstream>
#include <string>
//--------------------------------
//AND->
//This should be included in the .cc to
//avoid multiple definition issues
//#include "G4UrQMD1_3Interface.hh"
//AND<-
////////////////////////////////////////////////////////////////////////////////
class G4UrQMD1_3Model : public G4VIntraNuclearTransportModel {
public:
G4UrQMD1_3Model(const G4String& name = "UrQMD1_3");
virtual ~G4UrQMD1_3Model ();
// G4double GetMinEnergy( const G4Material *aMaterial,
// const G4Element *anElement ) const;
// G4double GetMaxEnergy( const G4Material *aMaterial,
// const G4Element *anElement ) const;
G4ReactionProductVector* Propagate(G4KineticTrackVector*
theSecondaries, G4V3DNucleus* theTarget);
virtual G4HadFinalState *ApplyYourself
(const G4HadProjectile &, G4Nucleus &);
private:
G4int operator==(G4UrQMD1_3Model& right) {
return (this == &right);
}
G4int operator!=(G4UrQMD1_3Model& right) {
return (this != &right);
}
G4int verbose;
void InitialiseDataTables();
G4int CurrentEvent;
private:
void WelcomeMessage () const;
G4HadFinalState theResult;
};
// inline G4double G4UrQMD1_3Model::GetMinEnergy( const G4Material *,
// const G4Element * ) const
// {return theMinEnergy;}
////////////////////////////////////////////////////////////////////////////////
//
// inline G4double G4UrQMD1_3Model::GetMaxEnergy( const G4Material *,
// const G4Element * ) const
// {return theMaxEnergy;}
////////////////////////////////////////////////////////////////////////////////
//
#endif
@@ -25,7 +25,7 @@
// * in compliance with any licensing, distribution and development *
// * policy adopted by the Geant4 Collaboration. This code has been *
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * contract 19770/06/NL/JD (Technology Research Programme). *
// * *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
@@ -33,18 +33,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/G4VGlauberDataSet.hh
/// \brief Definition of the G4VGlauberDataSet class
//
#ifndef G4VGlauberDataSet_h
#define G4VGlauberDataSet_h
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: G4VGlauberDataSet.hh
//
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
// Version: 0.B
// Date: 02/04/08
// Author: P R Truscott
// Organisation: QinetiQ Ltd, UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 19770/06/NL/JD
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -0,0 +1,99 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/HadronPhysicsUrQMD.hh
/// \brief Definition of the HadronPhysicsUrQMD class
//
// $Id$
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2012 Andrea Dotti
// created from HadronPhysicsFTFP_BERT
// Modified:
// 07.02.2012 A. Dotti: First version
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsUrQMD_h
#define HadronPhysicsUrQMD_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4PiKBuilder.hh"
#include "UrQMDPiKBuilder.hh"
#include "G4ProtonBuilder.hh"
#include "UrQMDProtonBuilder.hh"
#include "G4NeutronBuilder.hh"
#include "UrQMDNeutronBuilder.hh"
#include "G4LEPNeutronBuilder.hh"
#include "G4HyperonFTFPBuilder.hh"
#include "G4AntiBarionBuilder.hh"
#include "UrQMDAntiBarionBuilder.hh"
class HadronPhysicsUrQMD : public G4VPhysicsConstructor
{
public:
HadronPhysicsUrQMD(G4int verbose =1);
virtual ~HadronPhysicsUrQMD();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
void CreateModels();
G4HadronicProcess* FindInelasticProcess(const G4ParticleDefinition*);
G4NeutronBuilder * fNeutrons;
UrQMDNeutronBuilder * fUrQMDNeutron;
G4LEPNeutronBuilder * fLEPNeutron; //needed for capture&fission
G4PiKBuilder * fPiK;
UrQMDPiKBuilder * fUrQMDPiK;
G4ProtonBuilder * fPro;
UrQMDProtonBuilder * fUrQMDPro;
G4HyperonFTFPBuilder * fHyperon;
G4AntiBarionBuilder * fAntiBaryon;
UrQMDAntiBarionBuilder * fUrQMDAntiBaryon;
G4VCrossSectionDataSet * fCHIPSInelastic;
};
#endif
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: Histo.hh,v 1.6 2007-05-24 13:52:31 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/Histo.hh
/// \brief Definition of the Histo class
//
// $Id$
#ifndef Histo_h
#define Histo_h 1
@@ -43,96 +45,98 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#include "globals.hh"
#include <vector>
#include "G4DynamicParticle.hh"
#include "G4VPhysicalVolume.hh"
#include "G4DataVector.hh"
#include "G4Track.hh"
#include <vector>
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class G4RootAnalysisManager;
class HistoMessenger;
namespace AIDA {
class ITree;
class ITuple;
class IHistogram1D;
class IAnalysisFactory;
}
class Histo
{
public:
Histo(G4int ver);
Histo();
~Histo();
void book();
// Book predefined histogramms
void Book();
void save();
// Save histogramms to file
void Save();
void reset();
// Reset histogramms
// In this method 1-D histogramms are predefined
void Add1D(const G4String&, const G4String&, G4int nb, G4double x1,
G4double x2, G4double u=1.);
void add1D(const G4String&, const G4String&, G4int nb=100, G4double x1=0.,
G4double x2=1., G4double u=1.);
// In this method histogramms are predefined
void setHisto1D(G4int, G4int, G4double, G4double, G4double);
// It change bins and boundaries
void SetHisto1D(G4int, G4int, G4double, G4double, G4double);
// Histogram activation/deactivation
void Activate(G4int, G4bool);
void fill(G4int, G4double, G4double);
// Histogramms are filled
void Fill(G4int, G4double, G4double);
void scale(G4int, G4double);
// Histogramms are scaled
void ScaleH1(G4int, G4double);
void addTuple(const G4String&, const G4String&, const G4String&);
// In this method nTuple is booked
void AddTuple(const G4String&);
// In this method nTuple is booked
void AddTupleI(const G4String&);
void AddTupleF(const G4String&);
void AddTupleD(const G4String&);
void fillTuple(const G4String&, G4double);
// Fill nTuple parameter
void FillTupleI(G4int, G4int);
void FillTupleF(G4int, G4float);
void FillTupleD(G4int, G4double);
void addRow();
// Save tuple event
void AddRow();
void setFileName(const G4String& nam) {histName = nam;};
// Set output file
void SetFileName(const G4String&);
void SetFileType(const G4String&);
void setFileOption(const G4String& nam) {option = nam;};
inline void SetVerbose(G4int val) { fVerbose = val; };
void setFileType(const G4String& nam);
void print(G4int i);
void setVerbose(G4int val) {verbose = val;};
inline G4bool IsActive() const { return fHistoActive; };
private:
G4String histName;
G4String histType;
G4String option;
G4String tupleName;
G4String tupleId;
G4String tupleList;
G4int nHisto;
G4int verbose;
G4int defaultAct;
G4RootAnalysisManager* fManager;
HistoMessenger* fMessenger;
G4String fHistName;
G4String fHistType;
G4String fTupleName;
G4String fTupleTitle;
G4int fNHisto;
G4int fVerbose;
G4bool fDefaultAct;
G4bool fHistoActive;
G4bool fNtupleActive;
std::vector<G4int> fHisto;
std::vector<G4int> fTupleI;
std::vector<G4int> fTupleF;
std::vector<G4int> fTupleD;
std::vector<G4int> fBins;
std::vector<G4bool> fActive;
std::vector<G4double> fXmin;
std::vector<G4double> fXmax;
std::vector<G4double> fUnit;
std::vector<G4String> fIds;
std::vector<G4String> fTitles;
std::vector<G4String> fNtupleI;
std::vector<G4String> fNtupleF;
std::vector<G4String> fNtupleD;
std::vector<AIDA::IHistogram1D*> histo;
AIDA::IAnalysisFactory* af;
AIDA::ITuple* ntup;
AIDA::ITree* tree;
HistoMessenger* messenger;
std::vector<G4int> active;
std::vector<G4int> bins;
std::vector<G4double> xmin;
std::vector<G4double> xmax;
std::vector<G4double> unit;
std::vector<G4String> ids;
std::vector<G4String> tittles;
};
#endif
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoManager.hh,v 1.9 2009-08-28 09:21:34 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/HistoManager.hh
/// \brief Definition of the HistoManager class
//
// $Id$
//
//---------------------------------------------------------------------------
//
@@ -49,7 +51,6 @@
#include "globals.hh"
#include "G4Material.hh"
#include "G4Element.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -74,7 +75,7 @@ public:
~HistoManager();
void bookHisto();
void BookHisto();
void BeginOfRun();
void EndOfRun();
@@ -85,83 +86,70 @@ public:
void ScoreNewTrack(const G4Track*);
void AddTargetStep(const G4Step*);
void SetTargetLength(G4double val) {length = val;};
void SetNumberOfSlices(G4int val) {nSlices = val;};
void SetNumberOfBinsE(G4int val) {nBinsE = val;};
G4double Length() const {return length;};
G4int NumberOfSlices() const {return nSlices;};
void SetVerbose(G4int val);
G4int GetVerbose() const {return verbose;};
void SetDefaultBeamPositionFlag(G4bool f) {beamFlag = f;};
G4bool DefaultBeamPosition() const {return beamFlag;};
void SetTargetMaterial(const G4Material* mat);
const G4Material* TargetMaterial() const {return material;};
const G4Element* TargetElement() const {return elm;};
G4double CurrentKinEnergy() {return currentKinEnergy;};
const G4ParticleDefinition* CurrentParticle() {return currentDef;};
void SetMaxEnergyDeposit(G4double val) {edepMax = val;};
void SetPhysicsList(G4VModularPhysicsList* p) {physList = p;};
void SetPhysicsListName(const G4String& nam) {physListName = nam;};
void SetIonPhysics(const G4String&);
inline void SetTargetMaterial(const G4Material* mat) {fMaterial = mat;};
inline void SetTargetLength(G4double val) {fLength = val;};
inline void SetNumberOfSlices(G4int val) {fNSlices = val;};
inline void SetNumberOfBinsE(G4int val) {fNBinsE = val;};
inline G4double Length() const {return fLength;};
inline G4int NumberOfSlices() const {return fNSlices;};
inline G4int GetVerbose() const {return fVerbose;};
inline void SetDefaultBeamPositionFlag(G4bool f) {fBeamFlag = f;};
inline G4bool DefaultBeamPosition() const {return fBeamFlag;};
inline void SetMaxEnergyDeposit(G4double val) {fEdepMax = val;};
inline void SetPhysicsList(G4VModularPhysicsList* p) {fPhysList = p;};
private:
void Initialise();
static HistoManager* fManager;
G4VModularPhysicsList* physList;
G4VPhysicsConstructor* ionPhysics;
const G4ParticleDefinition* primaryDef;
const G4ParticleDefinition* currentDef;
const G4ParticleDefinition* neutron;
const G4Material* material;
G4Element* elm;
G4String physListName;
G4VModularPhysicsList* fPhysList;
G4VPhysicsConstructor* fIonPhysics;
const G4ParticleDefinition* fPrimaryDef;
const G4ParticleDefinition* fNeutron;
const G4Material* fMaterial;
G4double edepMax;
G4double edepEvt;
G4double edepEM;
G4double edepPI;
G4double edepP;
G4double edepSum;
G4double edepSum2;
G4double beamEnergy;
G4double length;
G4double absZ0;
G4double primaryKineticEnergy;
G4double currentKinEnergy;
G4double fEdepMax;
G4double fEdepEvt;
G4double fEdepSum;
G4double fEdepSum2;
G4double fLength;
G4double fAbsZ0;
G4double fPrimaryKineticEnergy;
G4int fVerbose;
G4int fNBinsE;
G4int fNSlices;
G4int verbose;
G4int nBinsE;
G4int nSlices;
G4int fNevt;
G4int fNelec;
G4int fNposit;
G4int fNgam;
G4int fNcpions;
G4int fNpi0;
G4int fNkaons;
G4int fNmuons;
G4int fNions;
G4int fNdeut;
G4int fNalpha;
G4int fNneutron;
G4int fNproton;
G4int fNaproton;
G4int fNstep;
G4int fNHisto;
G4int n_evt;
G4int n_elec;
G4int n_posit;
G4int n_gam;
G4int n_cpions;
G4int n_pi0;
G4int n_kaons;
G4int n_muons;
G4int n_ions;
G4int n_deut;
G4int n_alpha;
G4int n_neutron;
G4int n_proton;
G4int n_aproton;
G4int n_step;
G4int nHisto;
G4bool fBeamFlag;
G4bool beamFlag;
Histo* histo;
Histo* fHisto;
};
#endif
@@ -23,22 +23,16 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoMessenger.hh,v 1.5 2006-11-15 14:58:10 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/HistoMessenger.hh
/// \brief Definition of the HistoMessenger class
//
/////////////////////////////////////////////////////////////////////////
// $Id$
//
// HistoMessenger
//
// Created: 31.01.2003 V.Ivanchenko
//
// Modified:
// 04.06.2006 Adoptation of hadr01 (V.Ivanchenko)
//
////////////////////////////////////////////////////////////////////////
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef HistoMessenger_h
#define HistoMessenger_h 1
@@ -48,9 +42,9 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class Histo;
class G4UIdirectory;
class G4UIcommand;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -61,18 +55,17 @@ public:
HistoMessenger(Histo* );
virtual ~HistoMessenger();
void SetNewValue(G4UIcommand* ,G4String );
virtual void SetNewValue(G4UIcommand* ,G4String );
private:
Histo* histo;
Histo* fHisto;
G4UIcmdWithAString* factoryCmd;
G4UIcmdWithAString* fileCmd;
G4UIcmdWithAString* optCmd;
G4UIcmdWithAnInteger* printCmd;
G4UIcommand* histoCmd;
G4UIdirectory* fHistoDir;
G4UIcmdWithAString* fFactoryCmd;
G4UIcmdWithAString* fFileCmd;
G4UIcommand* fHistoCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,7 +23,11 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: IonDPMJETPhysics.hh,v 1.0 2010/08/26 10:51:25 antoni Exp $
/// \file hadronic/Hadr02/include/IonDPMJETPhysics.hh
/// \brief Definition of the IonDPMJETPhysics class
//
// $Id$
// GRAS tag $Name: gras-02-05-02 $
//
//---------------------------------------------------------------------------
//
@@ -54,6 +58,7 @@
class G4BinaryLightIonReaction;
class G4DPMJET2_5Model;
class G4DPMJET2_5CrossSection;
class G4VCrossSectionDataSet;
class IonDPMJETPhysics : public G4VHadronPhysics
@@ -71,15 +76,16 @@ public:
private:
void AddProcess(const G4String& name, G4ParticleDefinition* part,
G4bool isIon);
G4bool isIon);
G4VCrossSectionDataSet* fTripathi;
G4VCrossSectionDataSet* fTripathiLight;
G4VCrossSectionDataSet* fShen;
G4VCrossSectionDataSet* fIonH;
G4BinaryLightIonReaction* theIonBC;
G4DPMJET2_5Model* theDPM;
G4bool useDPMJETXS;
G4BinaryLightIonReaction* fIonBC;
G4DPMJET2_5Model* fDPM;
G4DPMJET2_5CrossSection* fDpmXS;
G4bool fUseDPMJETXS;
};
#endif
@@ -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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/IonUrQMDPhysics.hh
/// \brief Definition of the IonUrQMDPhysics class
//
// $Id: G4IonUrQMDPhysics.hh,v 1.0 2010/08/26 10:51:25 antoni Exp $
// GRAS tag $Name: $
//
//---------------------------------------------------------------------------
//
// Header: G4IonUrQMDPhysics
//
// Author: 2012 Andrea Dotti
//
//
//
// Modified:
//
// ------------------------------------------------------------
//
#ifndef G4IonUrQMDPhysics_h
#define G4IonUrQMDPhysics_h 1
#include "G4VHadronPhysics.hh"
#include "globals.hh"
class G4HadronicInteraction;
class G4VCrossSectionDataSet;
class G4UrQMD1_3Model;
class IonUrQMDPhysics : public G4VHadronPhysics
{
public:
IonUrQMDPhysics(G4int ver = 0);
virtual ~IonUrQMDPhysics();
// 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
void ConstructProcess();
private:
void AddProcess(const G4String&, G4ParticleDefinition*, G4bool isIon);
G4VCrossSectionDataSet* fTripathi;
G4VCrossSectionDataSet* fTripathiLight;
G4VCrossSectionDataSet* fShen;
G4VCrossSectionDataSet* fIonH;
G4UrQMD1_3Model * fModel;
G4int fVerbose;
G4bool fWasActivated;
};
#endif
@@ -23,14 +23,15 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/PrimaryGeneratorAction.hh
/// \brief Definition of the PrimaryGeneratorAction class
//
// $Id: PrimaryGeneratorAction.hh,v 1.3 2006-06-29 17:23:52 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
//
/////////////////////////////////////////////////////////////////////////
//
// EventActionMessenger
// PrimaryGeneratorAction
//
// Created: 31.01.03 V.Ivanchenko
//
@@ -46,6 +47,7 @@
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
class G4Event;
class G4ParticleGun;
class HistoManager;
@@ -58,15 +60,14 @@ public:
virtual ~PrimaryGeneratorAction();
void GeneratePrimaries(G4Event*);
G4ParticleGun* GetParticleGun() {return particleGun;};
private:
PrimaryGeneratorAction & operator=(const PrimaryGeneratorAction &right);
PrimaryGeneratorAction(const PrimaryGeneratorAction&);
G4ParticleGun* particleGun;
HistoManager* histo;
G4ParticleGun* fParticleGun;
HistoManager* fHisto;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,6 +23,11 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/RunAction.hh
/// \brief Definition of the RunAction class
//
// $Id$
//
#ifndef RunAction_h
#define RunAction_h 1
@@ -48,8 +53,6 @@ public: // Without description
RunAction();
~RunAction();
public: // With description
void BeginOfRunAction(const G4Run*);
// In this method histogramms are booked
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: StackingAction.hh,v 1.3 2006-06-29 17:23:56 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/StackingAction.hh
/// \brief Definition of the StackingAction class
//
// $Id$
//
/////////////////////////////////////////////////////////////////////////
//
@@ -56,18 +58,18 @@ public:
StackingAction();
virtual ~StackingAction();
void SetKillAll(G4bool value) {killAll = value;};
void SetKillEM (G4bool value) {killEM = value;};
inline void SetKillAll(G4bool value) {fKillAll = value;};
inline void SetKillEM (G4bool value) {fKillEM = value;};
G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track*);
private:
HistoManager* histoManager;
StackingMessenger* stackMessenger;
HistoManager* fHistoManager;
StackingMessenger* fStackMessenger;
G4bool killAll;
G4bool killEM;
G4bool fKillAll;
G4bool fKillEM;
};
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: StackingMessenger.hh,v 1.3 2006-06-29 17:23:58 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/StackingMessenger.hh
/// \brief Definition of the StackingMessenger class
//
// $Id$
//
//
/////////////////////////////////////////////////////////////////////////
@@ -62,10 +64,10 @@ public:
private:
StackingAction* stackAction;
StackingAction* fStackAction;
G4UIcmdWithABool* killCmd;
G4UIcmdWithABool* kCmd;
G4UIcmdWithABool* fKillCmd;
G4UIcmdWithABool* fKCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,8 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: TargetSD.hh,v 1.4 2006-06-29 17:24:00 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file hadronic/Hadr02/include/TargetSD.hh
/// \brief Definition of the TargetSD class
//
// $Id$
//
/////////////////////////////////////////////////////////////////////////
//
@@ -66,7 +68,7 @@ public: // Without description
private:
HistoManager* theHisto;
HistoManager* fHisto;
};
@@ -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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/UrQMD.hh
/// \brief Definition of the UrQMD class
//
// $Id$
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2012 Andrea Dotti
// created from FTFP_BERT
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TUrQMD_h
#define TUrQMD_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
#include "CompileTimeConstraints.hh"
template<class T>
class TUrQMD: public T
{
public:
TUrQMD(G4int ver = 1);
virtual ~TUrQMD();
public:
// SetCuts()
virtual void SetCuts();
private:
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
};
#ifdef G4_USE_URQMD
#include "UrQMD.icc"
#else
template<class T>
TUrQMD<T>::TUrQMD(G4int) : T()
{
G4ExceptionDescription de;
de<<"Support for UrQMD not enabled"<<G4endl;
G4Exception(__FILE__,"UrQMD-01",FatalException,de,"Code should be compiled with G4_USE_URQMD environment variable set.");
}
template<class T>
TUrQMD<T>::~TUrQMD() { }
template<class T>
void TUrQMD<T>::SetCuts() { }
#endif
typedef TUrQMD<G4VModularPhysicsList> UrQMD;
#endif //TUrQMD_h
@@ -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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/UrQMD.icc
/// \brief Implementation of the UrQMD class inline functions
//
// $Id$
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2012 Andrea Dotti
//
// created from FTFP_BERT
//
// Modified:
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
//#include "G4ProcessManager.hh"
//#include "G4ProcessVector.hh"
//#include "G4ParticleTypes.hh"
//#include "G4ParticleTable.hh"
//#include "G4Material.hh"
//#include "G4MaterialTable.hh"
#include "G4ios.hh"
#include <iomanip>
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "IonUrQMDPhysics.hh"
#include "G4StoppingPhysics.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4NeutronTrackingCut.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsUrQMD.hh"
template<class T> TUrQMD<T>::TUrQMD(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "<<< Geant4 Physics List simulation engine: UrQMD 0.1"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new G4EmStandardPhysics(ver));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics(ver) );
// Decays
this->RegisterPhysics( new G4DecayPhysics(ver) );
// Hadron Elastic scattering
this->RegisterPhysics( new G4HadronElasticPhysics(ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsUrQMD(ver));
// Stopping Physics
this->RegisterPhysics( new G4StoppingPhysics(ver) );
// Ion Physics
this->RegisterPhysics( new IonUrQMDPhysics(ver));
// Neutron tracking cut
this->RegisterPhysics( new G4NeutronTrackingCut(ver));
}
template<class T> TUrQMD<T>::~TUrQMD()
{
}
template<class T> void TUrQMD<T>::SetCuts()
{
if (this->verboseLevel >1){
G4cout << "UrQMD::SetCuts:";
}
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
// the default cut value for all particle types
this->SetCutsWithDefault();
}
@@ -0,0 +1,83 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/UrQMDAntiBarionBuilder.hh
/// \brief Definition of the UrQMDAntiBarionBuilder class
//
// $Id: $
// GEANT4 tag $Name: $
//
//---------------------------------------------------------------------------
//
// ClassName: UrQMDAntiBarionBuilder
//
// Author: 2012 Andrea Dotti
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef UrQMDAntiBarionBuilder_h
#define UrQMDAntiBarionBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4VAntiBarionBuilder.hh"
#include "G4UrQMD1_3Model.hh"
#include "G4VCrossSectionDataSet.hh"
#include "G4VComponentCrossSection.hh"
class UrQMDAntiBarionBuilder : public G4VAntiBarionBuilder
{
public:
UrQMDAntiBarionBuilder();
virtual ~UrQMDAntiBarionBuilder();
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4AntiProtonInelasticProcess * aP);
virtual void Build(G4AntiNeutronInelasticProcess * aP);
virtual void Build(G4AntiDeuteronInelasticProcess * aP);
virtual void Build(G4AntiTritonInelasticProcess * aP);
virtual void Build(G4AntiHe3InelasticProcess * aP);
virtual void Build(G4AntiAlphaInelasticProcess * aP);
void SetMinEnergy(G4double val) {fMin = val;}
void SetMaxEnergy(G4double val) {fMax = val;}
private:
G4UrQMD1_3Model * fModel;
G4VCrossSectionDataSet* fAntiNucleonData;
G4VComponentCrossSection * fAntiNucleonXS;
G4double fMin;
G4double fMax;
};
#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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/UrQMDNeutronBuilder.hh
/// \brief Definition of the UrQMDNeutronBuilder class
//
// $Id$
//
//---------------------------------------------------------------------------
//
// ClassName: UrQMDNeutronBuilder
//
// Author: 2012 Andrea Dotti
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef UrQMDNeutronBuilder_h
#define UrQMDNeutronBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VNeutronBuilder.hh"
#include "G4UrQMD1_3Model.hh"
class UrQMDNeutronBuilder : public G4VNeutronBuilder
{
public:
UrQMDNeutronBuilder();
virtual ~UrQMDNeutronBuilder();
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {fMin = aM;}
void SetMaxEnergy(G4double aM) {fMax = aM;}
private:
G4UrQMD1_3Model * fModel;
G4double fMin;
G4double fMax;
};
#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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/UrQMDPiKBuilder.hh
/// \brief Definition of the UrQMDPiKBuilder class
//
// $Id$
//
//---------------------------------------------------------------------------
//
// ClassName: UrQMDPiKBuilder
//
// Author: 2012 Andrea Dotti
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef UrQMDPiKBuilder_h
#define UrQMDPiKBuilder_h 1
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4NeutronInelasticProcess.hh"
#include "G4VPiKBuilder.hh"
#include "G4UrQMD1_3Model.hh"
class UrQMDPiKBuilder : public G4VPiKBuilder
{
public:
UrQMDPiKBuilder();
virtual ~UrQMDPiKBuilder();
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) {fMin = aM;}
void SetMaxEnergy(G4double aM) {fMax = aM;}
private:
G4UrQMD1_3Model * fModel;
G4double fMin;
G4double fMax;
};
#endif
@@ -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. *
// ********************************************************************
//
/// \file hadronic/Hadr02/include/UrQMDProtonBuilder.hh
/// \brief Definition of the UrQMDProtonBuilder class
//
// $Id$
//
//---------------------------------------------------------------------------
//
#ifndef UrQMDProtonBuilder_h
#define UrQMDProtonBuilder_h
#include "globals.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4UrQMD1_3Model.hh"
class UrQMDProtonBuilder : public G4VProtonBuilder
{
public:
UrQMDProtonBuilder();
virtual ~UrQMDProtonBuilder();
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
inline void SetMinEnergy(G4double aM) {fMin = aM;}
inline void SetMaxEnergy(G4double aM) {fMax = aM;}
private:
G4UrQMD1_3Model * fModel;
G4double fMin;
G4double fMax;
};
#endif