Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
@@ -14,14 +14,14 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4DiffractiveExcitation.hh,v 1.4.8.2 2001/06/28 20:19:57 gunter Exp $
// $Id: G4DiffractiveExcitation.hh,v 1.6 2001/08/01 17:08:57 hpw Exp $
#ifndef G4DiffractiveExcitation_h
#define G4DiffractiveExcitation_h 1
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EventGenerator.hh,v 1.2.8.1 2001/06/28 19:13:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4EventGenerator.hh,v 1.4 2001/08/01 17:08:57 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4EventGenerator_h
#define G4EventGenerator_h 1
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4InteractionCode.hh,v 1.2.8.1 2001/06/28 19:13:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4InteractionCode.hh,v 1.4 2001/08/01 17:08:58 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4InteractionCode_h
#define G4InteractionCode_h 1
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4InteractionContent.hh,v 1.3.8.2 2001/06/28 20:19:57 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4InteractionContent.hh,v 1.5 2001/08/01 17:08:58 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4InteractionContent_h
@@ -14,7 +14,7 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
@@ -23,8 +23,8 @@
#ifndef G4PomeronCrossSection_h
#define G4PomeronCrossSection_h 1
//
// $Id: G4PomeronCrossSection.hh,v 1.3.8.1 2001/06/28 19:13:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4PomeronCrossSection.hh,v 1.6 2001/11/13 14:56:53 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#include "G4Proton.hh"
#include "G4Neutron.hh"
@@ -38,6 +38,7 @@
#include "G4KaonZero.hh"
#include "G4KaonZeroShort.hh"
#include "G4KaonZeroLong.hh"
#include "G4Gamma.hh"
class G4PomeronCrossSection
{
@@ -57,6 +58,8 @@ class G4PomeronCrossSection
G4PomeronCrossSection(const G4KaonZeroLong * );
G4PomeronCrossSection(const G4KaonZeroShort * );
G4PomeronCrossSection(const G4Gamma * );
~G4PomeronCrossSection();
// s = (center of mass energy)**2
G4double GetTotalCrossSection(const G4double s);
@@ -104,6 +107,8 @@ class G4PomeronCrossSection
void InitForNucleon();
void InitForPion();
void InitForKaon();
void InitForGamma();
G4double Expand(G4double z);
inline G4double Z(const G4double Scms);
inline G4double SigP(const G4double Scms);
@@ -14,14 +14,14 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4SingleDiffractiveExcitation.hh,v 1.2.8.2 2001/06/28 20:19:57 gunter Exp $
// $Id: G4SingleDiffractiveExcitation.hh,v 1.4 2001/08/01 17:08:58 hpw Exp $
#ifndef G4SingleDiffractiveExcitation_h
#define G4SingleDiffractiveExcitation_h 1
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4StringModel.hh,v 1.3.8.1 2001/06/28 19:13:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4StringModel.hh,v 1.5 2001/08/01 17:08:58 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4StringModel_h
#define G4StringModel_h 1
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VParticipants.hh,v 1.2.8.2 2001/06/28 20:19:57 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VParticipants.hh,v 1.4 2001/08/01 17:08:59 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4VParticipants_h
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VPartonStringModel.hh,v 1.3.8.2 2001/06/28 20:19:57 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VPartonStringModel.hh,v 1.5 2001/08/01 17:08:59 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4VPartonStringModel_h
#define G4VPartonStringModel_h 1
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VSplitableHadron.hh,v 1.3.8.2 2001/06/28 20:19:58 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VSplitableHadron.hh,v 1.8 2001/11/29 14:22:49 stesting Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4VSplitableHadron_h
@@ -45,7 +45,7 @@ class G4Nucleon;
class G4Parton;
class G4VKineticNucleon;
#include "g4rw/tpordvec.h"
#include "g4std/vector"
class G4VSplitableHadron
{
@@ -69,6 +69,7 @@ class G4VSplitableHadron
G4ParticleDefinition * GetDefinition() const;
void IncrementCollisionCount(G4int aCount);
void SetCollisionCount(G4int aCount);
void SetPosition(const G4ThreeVector &aPosition);
const G4ThreeVector & GetPosition() const;
@@ -76,10 +77,12 @@ class G4VSplitableHadron
virtual void SplitUp() = 0;
virtual G4Parton * GetNextParton() = 0 ;
virtual G4Parton * GetNextAntiParton() = 0 ;
G4bool IsSplit() { return isSplit;}
protected:
G4int GetSoftCollisionCount();
void Splitting() {isSplit = true;}
private:
@@ -95,6 +98,8 @@ class G4VSplitableHadron
G4ThreeVector thePosition;
G4int theCollisionCount;
G4bool isSplit;
};
inline G4int G4VSplitableHadron::GetSoftCollisionCount()
@@ -102,6 +107,11 @@ inline G4int G4VSplitableHadron::GetSoftCollisionCount()
return theCollisionCount;
}
inline void G4VSplitableHadron::SetCollisionCount(G4int aCount)
{
theCollisionCount = aCount;
}
inline void G4VSplitableHadron::Set4Momentum(const G4LorentzVector &a4Momentum)
{
the4Momentum=a4Momentum;
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VStringFragmentation.hh,v 1.3.8.1 2001/06/28 19:13:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VStringFragmentation.hh,v 1.6 2001/10/02 14:09:30 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4VStringFragmentation_h
#define G4VStringFragmentation_h 1
@@ -35,7 +35,7 @@ class G4VStringFragmentation
{
public:
G4VStringFragmentation();
~G4VStringFragmentation();
virtual ~G4VStringFragmentation();
private:
G4VStringFragmentation(const G4VStringFragmentation &right);
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VertexCode.hh,v 1.2.8.1 2001/06/28 19:13:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VertexCode.hh,v 1.4 2001/08/01 17:09:00 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4VertexCode_h
#define G4VertexCode_h 1
@@ -14,14 +14,14 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4DiffractiveExcitation.cc,v 1.8.2.2 2001/06/28 20:19:58 gunter Exp $
// $Id: G4DiffractiveExcitation.cc,v 1.10 2001/08/01 17:09:02 hpw Exp $
// ------------------------------------------------------------
// GEANT 4 class implemetation file
//
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EventGenerator.cc,v 1.2.8.1 2001/06/28 19:13:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4EventGenerator.cc,v 1.4 2001/08/01 17:09:02 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// G4EventGenerator
#include "G4EventGenerator.hh"
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4InteractionContent.cc,v 1.3.8.2 2001/06/28 20:19:59 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4InteractionContent.cc,v 1.5 2001/08/01 17:09:02 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class implementation file
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4PomeronCrossSection.cc,v 1.3.8.1 2001/06/28 19:13:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4PomeronCrossSection.cc,v 1.7 2001/11/13 14:58:16 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
#include "G4PomeronCrossSection.hh"
@@ -91,6 +91,10 @@ G4PomeronCrossSection::G4PomeronCrossSection(const G4KaonZeroShort * particle)
{
InitForKaon();
}
G4PomeronCrossSection::G4PomeronCrossSection(const G4Gamma * particle)
{
InitForGamma();
}
G4double G4PomeronCrossSection::GetTotalCrossSection(const G4double s)
{
@@ -214,6 +218,19 @@ void G4PomeronCrossSection::InitForKaon()
pomeron_Alpha_Hard = 1.47;
}
void G4PomeronCrossSection::InitForGamma()
{
pomeron_S= 1.7*GeV*GeV;
// pomeron_Gamma= 1.42/GeV/GeV;
pomeron_Gamma= 2.07/GeV/GeV;
pomeron_C= 1.7;
pomeron_Rsquare= 2.16/GeV/GeV;
pomeron_Alpha= 1.0808;
pomeron_Alphaprime= 0.25/GeV/GeV;
pomeron_Gamma_Hard = 0.0002/GeV/GeV;
pomeron_Alpha_Hard = 1.47;
}
G4double G4PomeronCrossSection::Expand(G4double z)
{
@@ -14,14 +14,14 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4SingleDiffractiveExcitation.cc,v 1.5.2.2 2001/06/28 20:19:59 gunter Exp $
// $Id: G4SingleDiffractiveExcitation.cc,v 1.8 2001/10/05 16:17:15 hpw Exp $
// ------------------------------------------------------------
// GEANT 4 class implemetation file
//
@@ -160,7 +160,7 @@ G4bool G4SingleDiffractiveExcitation::
|| (Pprojectile+Qmomentum).e() < 0. );
G4double Ecms=Pprojectile.e() + Ptarget.e();
// G4double Ecms=Pprojectile.e() + Ptarget.e();
Pprojectile += Qmomentum;
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4StringModel.cc,v 1.2.8.1 2001/06/28 19:13:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4StringModel.cc,v 1.4 2001/08/01 17:09:04 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// G4StringModel
#include "G4StringModel.hh"
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VParticipants.cc,v 1.2.8.2 2001/06/28 20:19:59 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VParticipants.cc,v 1.4 2001/08/01 17:09:04 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class implementation file
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VPartonStringModel.cc,v 1.7.8.2 2001/06/28 20:19:59 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VPartonStringModel.cc,v 1.10 2001/10/04 20:00:31 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//// ------------------------------------------------------------
// GEANT 4 class implementation file
@@ -99,14 +99,14 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus
}
G4KineticTrackVector * theResult = 0;
for ( G4int astring=0; astring < strings->entries(); astring++)
for ( unsigned int astring=0; astring < strings->size(); astring++)
{
// rotate string to lab frame, models have it aligned to z
strings->at(astring)->LorentzRotate(toLab);
(*strings)[astring]->LorentzRotate(toLab);
}
theResult = stringFragmentationModel->FragmentStrings(strings);
strings->clearAndDestroy();
G4std::for_each(strings->begin(), strings->end(), DeleteString() );
delete strings;
return theResult;
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VSplitableHadron.cc,v 1.2.8.2 2001/06/28 20:20:00 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VSplitableHadron.cc,v 1.6 2001/10/05 16:17:16 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
@@ -38,12 +38,12 @@
#include "G4VKineticNucleon.hh"
G4VSplitableHadron::G4VSplitableHadron()
: theCollisionCount(0), theDefinition(NULL)
: theDefinition(NULL), theCollisionCount(0), isSplit(false)
{
}
G4VSplitableHadron::G4VSplitableHadron(const G4ReactionProduct & aPrimary)
: theCollisionCount(0)
: theCollisionCount(0), isSplit(false)
{
theDefinition=aPrimary.GetDefinition();
the4Momentum.setVect(aPrimary.GetMomentum());
@@ -53,6 +53,7 @@ G4VSplitableHadron::G4VSplitableHadron(const G4ReactionProduct & aPrimary)
G4VSplitableHadron::G4VSplitableHadron(const G4Nucleon & aNucleon)
{
theCollisionCount=0;
isSplit = false;
theDefinition=aNucleon.GetParticleType();
the4Momentum=aNucleon.GetMomentum();
thePosition=aNucleon.GetPosition();
@@ -61,6 +62,7 @@ G4VSplitableHadron::G4VSplitableHadron(const G4Nucleon & aNucleon)
G4VSplitableHadron::G4VSplitableHadron(const G4VKineticNucleon * aNucleon)
{
theCollisionCount=0;
isSplit = false;
theDefinition=aNucleon->GetDefinition();
the4Momentum=aNucleon->Get4Momentum();
thePosition=aNucleon->GetPosition();
@@ -69,6 +71,7 @@ G4VSplitableHadron::G4VSplitableHadron(const G4VKineticNucleon * aNucleon)
G4VSplitableHadron::G4VSplitableHadron(const G4VSplitableHadron &right)
{
theCollisionCount=0;
isSplit = false;
theDefinition= right.GetDefinition();
the4Momentum= right.Get4Momentum();
thePosition= right.GetPosition();
@@ -14,15 +14,15 @@
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * authors in the GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VStringFragmentation.cc,v 1.2.8.1 2001/06/28 19:13:45 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VStringFragmentation.cc,v 1.4 2001/08/01 17:09:05 hpw Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// G4VStringFragmentation
#include "G4VStringFragmentation.hh"