Import Geant4 7.1.0 source tree
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user