Import Geant4 0.0.0 source tree
This commit is contained in:
+59
@@ -0,0 +1,59 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.3 1998/12/09 07:30:23 gunter Exp $
|
||||
|
||||
#ifndef G4DiffractiveExcitation_h
|
||||
#define G4DiffractiveExcitation_h 1
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// ---------------- G4DiffractiveExcitation --------------
|
||||
// by Gunter Folger, October 1998.
|
||||
// diffractive Excitation used by strings models
|
||||
// Take a projectile and a target
|
||||
// excite the projectile and target
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#include "globals.hh"
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class G4DiffractiveExcitation
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DiffractiveExcitation(G4double sigmaPt=0.6*GeV, G4double minExtraMass=250*MeV,G4double x0mass=250*MeV);
|
||||
~G4DiffractiveExcitation();
|
||||
|
||||
G4bool ExciteParticipants (G4VSplitableHadron *aPartner, G4VSplitableHadron * bPartner) const;
|
||||
G4ExcitedString * String(G4VSplitableHadron * aHadron, G4bool isProjectile) const;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
G4DiffractiveExcitation(const G4DiffractiveExcitation &right);
|
||||
|
||||
G4double ChooseX(G4double Xmin, G4double Xmax) const;
|
||||
G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare) const;
|
||||
|
||||
const G4DiffractiveExcitation & operator=(const G4DiffractiveExcitation &right);
|
||||
int operator==(const G4DiffractiveExcitation &right) const;
|
||||
int operator!=(const G4DiffractiveExcitation &right) const;
|
||||
|
||||
private:
|
||||
// Model Parameters:
|
||||
const G4double widthOfPtSquare; // width^2 of pt for string excitation
|
||||
const G4double minExtraMass; // minimum excitation mass
|
||||
const G4double minmass; // mean pion transverse mass; used for Xmin
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,40 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.1 1998/08/22 08:57:14 hpw Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef G4EventGenerator_h
|
||||
#define G4EventGenerator_h 1
|
||||
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4VertexCode.hh"
|
||||
#include "G4InteractionCode.hh"
|
||||
|
||||
class G4EventGenerator : public G4HadronicInteraction
|
||||
{
|
||||
public:
|
||||
G4EventGenerator();
|
||||
~G4EventGenerator();
|
||||
|
||||
private:
|
||||
G4EventGenerator(const G4EventGenerator &right);
|
||||
const G4EventGenerator & operator=(const G4EventGenerator &right);
|
||||
int operator==(const G4EventGenerator &right) const;
|
||||
int operator!=(const G4EventGenerator &right) const;
|
||||
|
||||
public:
|
||||
virtual G4double GetWidth(G4VertexCode &theCode) = 0;
|
||||
virtual G4double GetCrossSection(G4InteractionCode &theCode) = 0;
|
||||
virtual G4ReactionProduct * GetFinalState(G4InteractionCode &theCode) = 0;
|
||||
// please also define ApplyYourself for scattering off Hydrogen
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.1 1998/08/22 08:57:15 hpw Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef G4InteractionCode_h
|
||||
#define G4InteractionCode_h 1
|
||||
|
||||
|
||||
class G4InteractionCode
|
||||
{
|
||||
|
||||
public:
|
||||
G4InteractionCode(G4String & aCode);
|
||||
|
||||
void SetCode(G4String & aCode);
|
||||
G4String GetCode();
|
||||
|
||||
private:
|
||||
|
||||
G4String theCode;
|
||||
};
|
||||
|
||||
inline void G4InteractionCode::SetCode(G4String & aCode)
|
||||
{
|
||||
theCode = aCode;
|
||||
}
|
||||
|
||||
inline G4String G4InteractionCode::GetCode()
|
||||
{
|
||||
return theCode;
|
||||
}
|
||||
|
||||
#endif
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.2 1998/10/16 07:35:52 maxim Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef G4InteractionContent_h
|
||||
#define G4InteractionContent_h 1
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// ---------------- G4InteractionContent----------------
|
||||
// by Gunter Folger, June 1998.
|
||||
// class for a storing colliding particles in PartonString Models
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include"G4VSplitableHadron.hh"
|
||||
|
||||
class G4InteractionContent
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4InteractionContent(G4VSplitableHadron *aPrimaryParticipant);
|
||||
|
||||
~G4InteractionContent();
|
||||
|
||||
int operator==(const G4InteractionContent &right) const;
|
||||
int operator!=(const G4InteractionContent &right) const;
|
||||
|
||||
G4VSplitableHadron * GetProjectile() const ;
|
||||
G4VSplitableHadron * GetTarget() const;
|
||||
|
||||
void SetTarget(G4VSplitableHadron *aTarget);
|
||||
|
||||
G4int GetNumberOfSoftCollisions();
|
||||
G4int GetNumberOfHardCollisions();
|
||||
void SetNumberOfSoftCollisions(int);
|
||||
void SetNumberOfHardCollisions(int);
|
||||
G4int GetNumberOfDiffractiveCollisions();
|
||||
void SetNumberOfDiffractiveCollisions(int);
|
||||
|
||||
void SplitHadrons();
|
||||
|
||||
private:
|
||||
G4InteractionContent();
|
||||
G4InteractionContent(const G4InteractionContent &right);
|
||||
const G4InteractionContent & operator=(const G4InteractionContent &right);
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
||||
G4VSplitableHadron * theTarget;
|
||||
G4VSplitableHadron * theProjectile;
|
||||
|
||||
G4int theNumberOfHard;
|
||||
G4int theNumberOfSoft;
|
||||
G4int theNumberOfDiffractive;
|
||||
};
|
||||
|
||||
// Class G4InteractionContent
|
||||
|
||||
inline G4VSplitableHadron * G4InteractionContent::GetProjectile() const
|
||||
{
|
||||
return theProjectile;
|
||||
}
|
||||
|
||||
inline G4VSplitableHadron * G4InteractionContent::GetTarget() const
|
||||
{
|
||||
return theTarget;
|
||||
}
|
||||
|
||||
inline void G4InteractionContent::SetTarget(G4VSplitableHadron *aTarget)
|
||||
{
|
||||
theTarget = aTarget;
|
||||
}
|
||||
|
||||
inline G4int G4InteractionContent::GetNumberOfSoftCollisions()
|
||||
{
|
||||
return theNumberOfSoft;
|
||||
}
|
||||
|
||||
inline G4int G4InteractionContent::GetNumberOfHardCollisions()
|
||||
{
|
||||
return theNumberOfHard;
|
||||
}
|
||||
|
||||
inline void G4InteractionContent::SetNumberOfSoftCollisions(int nCol)
|
||||
{
|
||||
theNumberOfSoft = nCol;
|
||||
}
|
||||
|
||||
inline void G4InteractionContent::SetNumberOfHardCollisions(int nCol)
|
||||
{
|
||||
theNumberOfHard = nCol;
|
||||
}
|
||||
|
||||
inline G4int G4InteractionContent::GetNumberOfDiffractiveCollisions()
|
||||
{
|
||||
return theNumberOfDiffractive;
|
||||
}
|
||||
|
||||
inline void G4InteractionContent::SetNumberOfDiffractiveCollisions(int nCol)
|
||||
{
|
||||
theNumberOfDiffractive = nCol;
|
||||
}
|
||||
|
||||
inline void G4InteractionContent::SplitHadrons()
|
||||
{
|
||||
if ( theProjectile != NULL ) theProjectile->SplitUp();
|
||||
if ( theTarget != NULL ) theTarget->SplitUp();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
#ifndef G4PomeronCrossSection_h
|
||||
#define G4PomeronCrossSection_h 1
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.hh,v 1.4 1998/12/12 19:13:51 hpw Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4PionZero.hh"
|
||||
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4KaonZero.hh"
|
||||
#include "G4KaonZeroShort.hh"
|
||||
#include "G4KaonZeroLong.hh"
|
||||
|
||||
class G4PomeronCrossSection
|
||||
{
|
||||
|
||||
public:
|
||||
G4PomeronCrossSection(const G4ParticleDefinition * );
|
||||
G4PomeronCrossSection(const G4Proton * );
|
||||
G4PomeronCrossSection(const G4Neutron * );
|
||||
|
||||
G4PomeronCrossSection(const G4PionPlus * );
|
||||
G4PomeronCrossSection(const G4PionMinus * );
|
||||
G4PomeronCrossSection(const G4PionZero * );
|
||||
|
||||
G4PomeronCrossSection(const G4KaonPlus * );
|
||||
G4PomeronCrossSection(const G4KaonMinus * );
|
||||
G4PomeronCrossSection(const G4KaonZero * );
|
||||
G4PomeronCrossSection(const G4KaonZeroLong * );
|
||||
G4PomeronCrossSection(const G4KaonZeroShort * );
|
||||
|
||||
~G4PomeronCrossSection();
|
||||
// s = (center of mass energy)**2
|
||||
G4double GetTotalCrossSection(const G4double s);
|
||||
G4double GetDiffractiveCrossSection(const G4double s);
|
||||
G4double GetElasticCrossSection(const G4double s);
|
||||
G4double GetInelasticCrossSection(const G4double s);
|
||||
|
||||
G4double GetTotalProbability(const G4double s,
|
||||
const G4double impactsquare);
|
||||
G4double GetDiffractiveProbability(const G4double s,
|
||||
const G4double impactsquare);
|
||||
G4double GetNondiffractiveProbability(const G4double s,
|
||||
const G4double impactsquare);
|
||||
G4double GetElasticProbability(const G4double s,
|
||||
const G4double impactsquare);
|
||||
|
||||
G4double GetInelasticProbability(const G4double s,
|
||||
const G4double impactsquare);
|
||||
|
||||
G4double GetCutPomeronProbability(const G4double s,
|
||||
const G4double impactsquare, const G4int nPomerons);
|
||||
|
||||
void Setgamma(const G4double agam); // temporary only! GF.
|
||||
G4double SoftEikonal(G4double s, G4double impactsquare);
|
||||
G4double HardEikonal(G4double s, G4double impactsquare);
|
||||
|
||||
private:
|
||||
G4double PowerSoft(const G4double s);
|
||||
G4double PowerHard(const G4double s);
|
||||
G4double LambdaSoft(const G4double s);
|
||||
G4double LambdaHard(const G4double s);
|
||||
G4double Zsoft(const G4double s);
|
||||
G4double Zhard(const G4double s);
|
||||
|
||||
G4PomeronCrossSection();
|
||||
void InitForNucleon();
|
||||
void InitForPion();
|
||||
void InitForKaon();
|
||||
G4double Expand(G4double z);
|
||||
inline G4double Z(const G4double Scms);
|
||||
inline G4double SigP(const G4double Scms);
|
||||
inline G4double Power(const G4double Scms);
|
||||
inline G4double Lambda(const G4double s);
|
||||
inline G4double Eikonal(const G4double s,const G4double impactsquare);
|
||||
|
||||
G4double pomeron_S;
|
||||
G4double pomeron_Gamma;
|
||||
G4double pomeron_C;
|
||||
G4double pomeron_Rsquare;
|
||||
G4double pomeron_Alpha;
|
||||
G4double pomeron_Alphaprime;
|
||||
G4double pomeron_Gamma_Hard;
|
||||
G4double pomeron_Alpha_Hard;
|
||||
|
||||
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,80 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.1 1998/08/22 08:57:16 hpw Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef G4StringModel_h
|
||||
#define G4StringModel_h 1
|
||||
|
||||
#include "G4VHighEnergyGenerator.hh"
|
||||
#include "G4EventGenerator.hh"
|
||||
class G4V3DNucleus;
|
||||
class G4VStringFragmentation;
|
||||
|
||||
|
||||
class G4StringModel : public G4VHighEnergyGenerator
|
||||
|
||||
{
|
||||
public:
|
||||
G4StringModel();
|
||||
~G4StringModel();
|
||||
|
||||
private:
|
||||
G4StringModel(const G4StringModel &right);
|
||||
const G4StringModel & operator=(const G4StringModel &right);
|
||||
int operator==(const G4StringModel &right) const;
|
||||
int operator!=(const G4StringModel &right) const;
|
||||
|
||||
public:
|
||||
void Set3DNucleus(G4V3DNucleus *const value);
|
||||
void SetStringFragmentationModel(G4VStringFragmentation *const value);
|
||||
void SetGenerator(G4EventGenerator *const value);
|
||||
|
||||
private:
|
||||
const G4V3DNucleus * Get3DNucleus() const;
|
||||
const G4VStringFragmentation * GetStringFragmentationModel() const;
|
||||
const G4EventGenerator * GetGenerator() const;
|
||||
|
||||
private:
|
||||
G4V3DNucleus *the3DNucleus;
|
||||
G4VStringFragmentation *theStringFragmentationModel;
|
||||
G4EventGenerator *theGenerator;
|
||||
|
||||
};
|
||||
|
||||
inline const G4V3DNucleus * G4StringModel::Get3DNucleus() const
|
||||
{
|
||||
return the3DNucleus;
|
||||
}
|
||||
|
||||
inline void G4StringModel::Set3DNucleus(G4V3DNucleus *const value)
|
||||
{
|
||||
the3DNucleus = value;
|
||||
}
|
||||
|
||||
inline const G4VStringFragmentation * G4StringModel::GetStringFragmentationModel() const
|
||||
{
|
||||
return theStringFragmentationModel;
|
||||
}
|
||||
|
||||
inline void G4StringModel::SetStringFragmentationModel(G4VStringFragmentation *const value)
|
||||
{
|
||||
theStringFragmentationModel = value;
|
||||
}
|
||||
|
||||
inline const G4EventGenerator * G4StringModel::GetGenerator() const
|
||||
{
|
||||
return theGenerator;
|
||||
}
|
||||
|
||||
inline void G4StringModel::SetGenerator(G4EventGenerator *const value)
|
||||
{
|
||||
theGenerator = value;
|
||||
}
|
||||
|
||||
#endif
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.2 1998/10/09 13:33:29 maxim Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef G4VPartonStringModel_h
|
||||
#define G4VPartonStringModel_h 1
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// ---------------- G4VPartonStringModel ----------------
|
||||
// by Gunter Folger, May 1998.
|
||||
// abstract class for all Parton String Models
|
||||
// ------------------------------------------------------------
|
||||
|
||||
// Modified at 8-Oct-1998 by Maxim Komogorov. Method EnergyAndMomentumCorrector was added.
|
||||
|
||||
#include "G4StringModel.hh"
|
||||
#include "G4VParticipants.hh"
|
||||
#include "G4ReactionProductVector.hh"
|
||||
#include "G4ExcitedString.hh"
|
||||
#include "G4ExcitedStringVector.hh"
|
||||
#include "G4VStringFragmentation.hh"
|
||||
#include "G4V3DNucleus.hh"
|
||||
|
||||
class G4VPartonStringModel : public G4VHighEnergyGenerator
|
||||
|
||||
{
|
||||
public:
|
||||
G4VPartonStringModel();
|
||||
virtual ~G4VPartonStringModel();
|
||||
|
||||
private:
|
||||
G4VPartonStringModel(const G4VPartonStringModel &right);
|
||||
const G4VPartonStringModel & operator=(const G4VPartonStringModel &right);
|
||||
int operator==(const G4VPartonStringModel &right) const;
|
||||
int operator!=(const G4VPartonStringModel &right) const;
|
||||
|
||||
public:
|
||||
void SetFragmentationModel(G4VStringFragmentation * aModel);
|
||||
G4KineticTrackVector * Scatter(const G4Nucleus &theNucleus, const G4DynamicParticle &thePrimary);
|
||||
virtual G4V3DNucleus * GetWoundedNucleus() const = 0;
|
||||
|
||||
protected:
|
||||
|
||||
virtual void Init(const G4Nucleus &theNucleus, const G4DynamicParticle &thePrimary) = 0;
|
||||
virtual G4ExcitedStringVector * GetStrings() = 0;
|
||||
void SetThisPointer(G4VPartonStringModel * aPointer);
|
||||
|
||||
G4bool EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalCollisionMomentum);
|
||||
|
||||
private:
|
||||
|
||||
G4VStringFragmentation * stringFragmentationModel;
|
||||
G4VPartonStringModel * theThis;
|
||||
|
||||
};
|
||||
|
||||
inline void G4VPartonStringModel::SetFragmentationModel(G4VStringFragmentation * aModel)
|
||||
{
|
||||
stringFragmentationModel = aModel;
|
||||
}
|
||||
|
||||
inline
|
||||
void G4VPartonStringModel::SetThisPointer(G4VPartonStringModel * aPointer)
|
||||
{
|
||||
theThis=aPointer;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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.1 1998/08/22 08:57:18 hpw Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef G4VertexCode_h
|
||||
#define G4VertexCode_h 1
|
||||
|
||||
|
||||
class G4VertexCode
|
||||
{
|
||||
|
||||
public:
|
||||
G4VertexCode(G4String & aCode);
|
||||
|
||||
void SetCode(G4String & aCode);
|
||||
G4String GetCode();
|
||||
private:
|
||||
|
||||
G4String theCode;
|
||||
};
|
||||
|
||||
inline void G4VertexCode::SetCode(G4String & aCode)
|
||||
{
|
||||
theCode = aCode;
|
||||
}
|
||||
|
||||
inline G4String G4VertexCode::GetCode()
|
||||
{
|
||||
return theCode;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user