Import Geant4 7.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 12:11:21 +02:00
parent 516dbf1a58
commit d93e1e39a9
5384 changed files with 125662 additions and 82444 deletions
@@ -22,7 +22,7 @@
//
//
// $Id: G4DalitzDecayChannel.hh,v 1.4 2001/07/11 10:01:55 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4DecayProducts.hh,v 1.11 2004/06/11 14:25:25 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4DecayTable.hh,v 1.8 2003/06/16 16:58:02 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4DecayTableMessenger.hh,v 1.7 2003/05/19 17:10:07 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
//---------------------------------------------------------------
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4DynamicParticle.hh,v 1.14 2004/12/02 08:08:58 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// $Id: G4DynamicParticle.hh,v 1.16 2005/05/30 07:13:18 asaim Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -60,10 +60,10 @@
// and you are recommended to use G4ThreeVector instead
#include "G4ElectronOccupancy.hh"
#include "G4PrimaryParticle.hh"
class G4VProcess;
class G4DecayProducts;
class G4PrimaryParticle;
class G4DynamicParticle
{
@@ -229,8 +229,24 @@ class G4DynamicParticle
// primary particle.
public:
inline void SetPrimaryParticle(G4PrimaryParticle* p) {primaryParticle=p;}
inline G4PrimaryParticle* GetPrimaryParticle() const {return primaryParticle;}
void SetPrimaryParticle(G4PrimaryParticle* p);
void SetPDGcode(G4int c);
public: // With Description
G4PrimaryParticle* GetPrimaryParticle() const;
// Return the pointer to the corresponding G4PrimaryParticle object
// if this particle is a primary particle OR is defined as a pre-assigned
// decay product. Otherwise return null.
G4int GetPDGcode() const;
// Return the PDG code of this particle. If the particle is known to Geant4
// its PDG code defined in G4ParticleDefinition is returned. If it is unknown
// (i.e. PDG code in G4ParticleDefinition is 0), PDG code defined in the
// corresponding primary particle or pre-assigned decay product will be
// returned if available. Otherwise (e.g. for geantino) returns 0.
private:
G4int thePDGcode;
};
#include "G4DynamicParticle.icc"
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4DynamicParticle.icc,v 1.12 2004/12/02 07:46:00 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// $Id: G4DynamicParticle.icc,v 1.14 2005/05/30 07:13:18 asaim Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -246,9 +246,31 @@ G4int G4DynamicParticle::GetVerboseLevel() const
return verboseLevel;
}
inline
void G4DynamicParticle::SetPrimaryParticle(G4PrimaryParticle* p)
{
primaryParticle=p;
}
inline
G4PrimaryParticle* G4DynamicParticle::GetPrimaryParticle() const
{
return primaryParticle;
}
inline
G4int G4DynamicParticle::GetPDGcode() const
{
G4int code = theParticleDefinition->GetPDGEncoding();
if(code==0) code = thePDGcode;
return code;
}
inline
void G4DynamicParticle::SetPDGcode(G4int c)
{
thePDGcode = c;
}
@@ -22,7 +22,7 @@
//
//
// $Id: G4DynamicParticleFastVector.hh,v 1.3 2001/07/11 10:01:55 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ElectronOccupancy.hh,v 1.8 2004/06/11 14:25:27 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4IonTable.hh,v 1.21 2004/12/02 08:08:58 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4Ions.hh,v 1.10 2003/03/11 05:49:41 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4IsotopeProperty.hh,v 1.3 2001/07/11 10:01:56 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4KL3DecayChannel.hh,v 1.4 2001/07/11 10:01:56 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4MuonDecayChannel.hh,v 1.5 2001/07/11 10:01:56 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4NeutronBetaDecayChannel.hh,v 1.1 2001/09/18 02:15:10 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4NucleiProperties.hh,v 1.13 2001/10/16 08:16:19 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4NucleiPropertiesTable.hh,v 1.12 2004/12/02 08:08:58 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// GEANT4 tag $Name: geant4-07-01 $
//
// -------------------------------------------------------------------
// GEANT 4 class file --- Copyright CERN 1997
@@ -22,7 +22,7 @@
//
//
// $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.6 2003/12/12 06:48:41 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4PDGCodeChecker.hh,v 1.6 2001/07/11 10:01:57 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.hh,v 1.25 2004/12/02 08:08:58 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// $Id: G4ParticleDefinition.hh,v 1.27 2005/01/14 03:00:38 kurasige Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -96,7 +96,9 @@ class G4ParticleDefinition
G4bool stable,
G4double lifetime,
G4DecayTable *decaytable,
G4bool shortlived = false);
G4bool shortlived = false,
const G4String& subType ="",
G4int anti_encoding =0);
virtual ~G4ParticleDefinition();
@@ -173,6 +175,12 @@ class G4ParticleDefinition
void SetParticleSubType(const G4String& subtype);
public:
void SetAtomicNumber(G4int);
G4int GetAtomicNumber() const;
void SetAtomicMass(G4int);
G4int GetAtomicMass() const;
public:
void SetVerboseLevel(G4int value);
G4int GetVerboseLevel() const;
@@ -181,7 +189,7 @@ class G4ParticleDefinition
// 1: Warning message
// 2: More
private:
protected:
// !!! can not use "copy constructor" nor "default constructor" !!!!
G4ParticleDefinition(const G4ParticleDefinition &right);
G4ParticleDefinition();
@@ -291,11 +299,15 @@ class G4ParticleDefinition
// Points to G4ProcessManager
G4ParticleTable* theParticleTable;
private:
G4int theAtomicNumber;
G4int theAtomicMass;
private:
private:
G4int verboseLevel;
private:
private:
G4bool fApplyCutsFlag;
public:
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.icc,v 1.8 2004/12/02 08:08:58 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// $Id: G4ParticleDefinition.icc,v 1.9 2005/01/14 03:00:38 kurasige Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
inline
@@ -120,3 +120,27 @@ G4bool G4ParticleDefinition::GetApplyCutsFlag() const
return fApplyCutsFlag;
}
inline
void G4ParticleDefinition::SetAtomicNumber(G4int i)
{
theAtomicNumber = i;
}
inline
G4int G4ParticleDefinition::GetAtomicNumber() const
{
return theAtomicNumber;
}
inline
void G4ParticleDefinition::SetAtomicMass(G4int i)
{
theAtomicMass = i;
}
inline
G4int G4ParticleDefinition::GetAtomicMass() const
{
return theAtomicMass;
}
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticleMessenger.hh,v 1.6 2003/05/19 17:10:22 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
//---------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticleMomentum.hh,v 1.5 2001/07/11 10:01:57 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticlePropertyData.hh,v 1.1 2003/06/11 07:20:06 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticlePropertyMessenger.hh,v 1.6 2003/05/19 17:10:22 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
//---------------------------------------------------------------
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4ParticlePropertyTable.hh,v 1.3 2003/12/09 15:35:46 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticleTable.hh,v 1.17 2004/08/31 19:10:49 asaim Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticleTable.icc,v 1.9 2004/08/31 19:10:50 asaim Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticleTableIterator.hh,v 1.6 2003/06/16 16:58:07 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ParticleWithCuts.hh,v 1.18 2003/06/25 10:18:53 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// --------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4PhaseSpaceDecayChannel.hh,v 1.5 2001/10/15 09:58:31 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -0,0 +1,225 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4PrimaryParticle.hh,v 1.2 2005/06/28 08:34:18 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
#ifndef G4PrimaryParticle_h
#define G4PrimaryParticle_h 1
#include "globals.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
class G4ParticleDefinition;
class G4VUserPrimaryParticleInformation;
// class description:
//
// This is a class which represents a primary particle.
// This is completely deferent class from G4Track or G4DynamicParticle.
// This class is designed with taking into account the possibility of
// making this class persistent, i.e. kept with G4Event class object
// to ODBMS. Thus this class is almost free from any other Geant4 classes.
// The only exception is a pointer to G4ParticleDefinition but it can be
// rebuilt by the PDGcode.
//
// Primary particles are stored in G4PrimaryVertex object with a form
// of linked list. Also, an object of this PrimaryParticle class can have
// one or more objects of this class as its daughters with a form of
// linked list.
// A parimary particle represented by this class object needs not to be
// a particle of type which Geant4 can simulate.
// case a) mother particle is not a particle Geant4 can simulate
// daughters associated to the mother will be examined.
// case b) mother particle is a perticle Geant4 can simulate
// daughters associated to the mother will be converted to G4Dynamic
// particle and be set to the mother G4Track. For this case, dauthers
// are used as the "pre-fixed" decay channel.
//
class G4PrimaryParticle
{
public:
inline void *operator new(size_t);
inline void operator delete(void *aStackedTrack);
G4PrimaryParticle();
G4PrimaryParticle(G4int Pcode);
G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz);
G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz,G4double E);
G4PrimaryParticle(G4ParticleDefinition* Gcode);
G4PrimaryParticle(G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz);
G4PrimaryParticle(G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz,G4double E);
~G4PrimaryParticle();
const G4PrimaryParticle & operator=(const G4PrimaryParticle &right);
G4int operator==(const G4PrimaryParticle &right) const;
G4int operator!=(const G4PrimaryParticle &right) const;
public: // with description
void Print() const;
// Print the properties of the particle.
private:
G4int PDGcode;
G4ParticleDefinition * G4code;
G4double Px;
G4double Py;
G4double Pz;
G4PrimaryParticle * nextParticle;
G4PrimaryParticle * daughterParticle;
G4int trackID; // This will be set if this particle is
// sent to G4EventManager and converted to
// G4Track. Otherwise = -1.
G4double mass;
G4double charge;
G4double polX;
G4double polY;
G4double polZ;
G4double Weight0;
G4double properTime;
G4VUserPrimaryParticleInformation* userInfo;
public: // with description
// followings are get methods available.
// "trackID" will be set if this particle is sent to G4EventManager and converted to
// G4Track. Otherwise = -1.
// "mass" is just for book keeping. This will not be used but the mass in
// G4ParticleDefinition will be used.
inline G4int GetPDGcode() const
{ return PDGcode; }
inline G4ParticleDefinition * GetG4code() const
{ return G4code; }
inline G4ThreeVector GetMomentum() const
{ return G4ThreeVector(Px,Py,Pz); }
inline G4double GetPx() const
{ return Px; }
inline G4double GetPy() const
{ return Py; }
inline G4double GetPz() const
{ return Pz; }
inline G4PrimaryParticle * GetNext() const
{ return nextParticle; }
inline G4PrimaryParticle * GetDaughter() const
{ return daughterParticle; }
inline G4int GetTrackID() const
{ return trackID; }
inline G4double GetMass() const
{ return mass; }
inline G4double GetCharge() const
{ return charge; }
inline G4ThreeVector GetPolarization() const
{ return G4ThreeVector(polX,polY,polZ); }
inline G4double GetPolX() const { return polX; }
inline G4double GetPolY() const { return polY; }
inline G4double GetPolZ() const { return polZ; }
inline G4double GetWeight() const { return Weight0; }
inline void SetWeight(G4double w) { Weight0 = w; }
inline void SetProperTime(G4double t) { properTime = t; }
inline G4double GetProperTime() const { return properTime; }
inline void SetUserInformation(G4VUserPrimaryParticleInformation* anInfo)
{ userInfo = anInfo; }
inline G4VUserPrimaryParticleInformation* GetUserInformation() const
{ return userInfo; }
public: // with description
// Followings are available Set methods.
void SetPDGcode(G4int Pcode);
void SetG4code(G4ParticleDefinition * Gcode);
inline void SetMomentum(G4double px, G4double py, G4double pz)
{
Px = px;
Py = py;
Pz = pz;
}
inline void Set4Momentum(G4double px, G4double py, G4double pz, G4double E)
{
Px = px;
Py = py;
Pz = pz;
G4double mas2 = E*E - px*px - py*py - pz*pz;
if(mas2>=0.)
{ mass = std::sqrt(mas2); }
else
{ mass = -1.0; }
}
inline void SetNext(G4PrimaryParticle * np)
{
if(nextParticle == 0)
{ nextParticle = np; }
else
{ nextParticle->SetNext(np); }
}
inline void SetDaughter(G4PrimaryParticle * np)
{
if(daughterParticle == 0)
{ daughterParticle = np; }
else
{ daughterParticle->SetNext(np); }
}
inline void SetTrackID(G4int id)
{ trackID = id; }
inline void SetMass(G4double mas)
{ mass = mas; }
inline void SetCharge(G4double chg)
{ charge = chg; }
inline void SetPolarization(G4double px,G4double py,G4double pz)
{
polX = px;
polY = py;
polZ = pz;
}
};
#if defined G4PARTICLES_ALLOC_EXPORT
extern G4DLLEXPORT G4Allocator<G4PrimaryParticle> aPrimaryParticleAllocator;
#else
extern G4DLLIMPORT G4Allocator<G4PrimaryParticle> aPrimaryParticleAllocator;
#endif
inline void * G4PrimaryParticle::operator new(size_t)
{
void * aPrimaryParticle;
aPrimaryParticle = (void *) aPrimaryParticleAllocator.MallocSingle();
return aPrimaryParticle;
}
inline void G4PrimaryParticle::operator delete(void * aPrimaryParticle)
{
aPrimaryParticleAllocator.FreeSingle((G4PrimaryParticle *) aPrimaryParticle);
}
#endif
@@ -0,0 +1,162 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4PrimaryVertex.hh,v 1.2 2005/06/28 08:34:18 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
#ifndef G4PrimaryVertex_h
#define G4PrimaryVertex_h 1
#include "globals.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
#include "G4PrimaryParticle.hh"
class G4VUserPrimaryVertexInformation;
// class description:
//
// This is the class which represents a primary vertex. The ofject of this
// class is set to G4Event objct by G4VPrimaryGenerator concrete class.
// This class object has one or more G4PrimaryParticle objects as primary
// particles.
class G4PrimaryVertex
{
public:
inline void *operator new(size_t);
inline void operator delete(void *aStackedTrack);
G4PrimaryVertex();
G4PrimaryVertex(G4double x0,G4double y0,G4double z0,G4double t0);
G4PrimaryVertex(G4ThreeVector xyz0,G4double t0);
~G4PrimaryVertex();
const G4PrimaryVertex & operator=(const G4PrimaryVertex &right);
G4int operator==(const G4PrimaryVertex &right) const;
G4int operator!=(const G4PrimaryVertex &right) const;
void Print() const;
private:
G4double X0;
G4double Y0;
G4double Z0;
G4double T0;
G4PrimaryParticle * theParticle;
G4PrimaryParticle * theTail;
G4PrimaryVertex* nextVertex;
G4int numberOfParticle;
G4double Weight0;
G4VUserPrimaryVertexInformation* userInfo;
public:
inline G4ThreeVector GetPosition() const
{ return G4ThreeVector(X0,Y0,Z0); }
inline void SetPosition(G4double x0,G4double y0,G4double z0)
{ X0 = x0; Y0 = y0; Z0 = z0; }
inline G4double GetX0() const
{ return X0; }
inline G4double GetY0() const
{ return Y0; }
inline G4double GetZ0() const
{ return Z0; }
inline G4double GetT0() const
{ return T0; }
inline void SetT0(G4double t0)
{ T0 = t0; }
inline G4int GetNumberOfParticle() const
{ return numberOfParticle; }
inline void SetPrimary(G4PrimaryParticle * pp)
{
if(theParticle == 0)
{
theParticle = pp;
theTail = pp;
}
else
{
theTail->SetNext(pp);
theTail = pp;
}
numberOfParticle++;
}
inline G4PrimaryParticle* GetPrimary(G4int i=0) const
{
if( i == 0 )
{ return theParticle; }
else if( i > 0 && i < numberOfParticle )
{
G4PrimaryParticle* particle = theParticle;
for( G4int j=0; j<i; j++ )
{
if( particle == 0 ) return 0;
particle = particle->GetNext();
}
return particle;
}
else
{ return 0; }
}
inline void SetNext(G4PrimaryVertex* nv)
{
if(nextVertex == 0)
{ nextVertex = nv; }
else
{ nextVertex->SetNext(nv); }
}
inline G4PrimaryVertex* GetNext() const
{ return nextVertex; }
inline G4double GetWeight() const
{ return Weight0; }
inline void SetWeight(G4double w)
{ Weight0 = w; }
inline void SetUserInformation(G4VUserPrimaryVertexInformation* anInfo)
{ userInfo = anInfo; }
inline G4VUserPrimaryVertexInformation* GetUserInformation() const
{ return userInfo; }
};
#if defined G4PARTICLES_ALLOC_EXPORT
extern G4DLLEXPORT G4Allocator<G4PrimaryVertex> aPrimaryVertexAllocator;
#else
extern G4DLLIMPORT G4Allocator<G4PrimaryVertex> aPrimaryVertexAllocator;
#endif
inline void * G4PrimaryVertex::operator new(size_t)
{
void * aPrimaryVertex;
aPrimaryVertex = (void *) aPrimaryVertexAllocator.MallocSingle();
return aPrimaryVertex;
}
inline void G4PrimaryVertex::operator delete(void * aPrimaryVertex)
{
aPrimaryVertexAllocator.FreeSingle((G4PrimaryVertex *) aPrimaryVertex);
}
#endif
@@ -22,7 +22,7 @@
//
//
// $Id: G4ShortLivedTable.hh,v 1.11 2003/06/16 16:58:22 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4TauLeptonicDecayChannel.hh,v 1.1 2002/03/08 08:47:52 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4VDecayChannel.hh,v 1.11 2004/12/02 08:08:58 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4VIsotopeTable.hh,v 1.5 2001/07/11 10:01:58 gunter Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VUserPrimaryParticleInformation.hh,v 1.1 2005/03/25 00:40:32 asaim Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
//---------------------------------------------------------------
//
// G4VUserPrimaryParticleInformation
//
// Class Description:
//
// Abstract class which the user can derive his/her own concrete
// class for toring user's information associating with a G4PrimaryParticle
// class object.
//
// It is user's responsibility to construct a concrete class object
// and set the pointer to proper G4PrimaryParticle object.
//
// The concrete class object is deleted by Geant4 kernel when
// associated G4PrimaryParticle object is deleted.
#ifndef G4VUserPrimaryParticleInformation_H
#define G4VUserPrimaryParticleInformation_H 1
class G4VUserPrimaryParticleInformation
{
public:
G4VUserPrimaryParticleInformation();
virtual ~G4VUserPrimaryParticleInformation();
public:
virtual void Print() const = 0;
};
#endif
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VUserPrimaryVertexInformation.hh,v 1.1 2005/03/25 00:40:32 asaim Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
//---------------------------------------------------------------
//
// G4VUserPrimaryVertexInformation
//
// Class Description:
//
// Abstract class which the user can derive his/her own concrete
// class for toring user's information associating with a G4PrimaryVertex
// class object.
//
// It is user's responsibility to construct a concrete class object
// and set the pointer to proper G4PrimaryVertex object.
//
// The concrete class object is deleted by Geant4 kernel when
// associated G4PrimaryVertex object is deleted.
#ifndef G4VUserPrimaryVertexInformation_H
#define G4VUserPrimaryVertexInformation_H 1
class G4VUserPrimaryVertexInformation
{
public:
G4VUserPrimaryVertexInformation();
virtual ~G4VUserPrimaryVertexInformation();
public:
virtual void Print() const = 0;
};
#endif