Import Geant4 1.0.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.1 1999/01/07 16:06:31 gunter Exp $
|
||||
# $Id: GNUmakefile,v 1.2 1999/10/04 18:58:33 johna Exp $
|
||||
# ------------------------------------------------------------
|
||||
# GNUmakefile for events library. Makoto Asai, 5/9/95.
|
||||
# ------------------------------------------------------------
|
||||
@@ -32,7 +32,6 @@ CPPFLAGS += \
|
||||
-I$(G4BASE)/digits+hits/detector/include \
|
||||
-I$(G4BASE)/digits+hits/hits/include \
|
||||
-I$(G4BASE)/digits+hits/digits/include \
|
||||
-I$(G4BASE)/graphics_reps/include \
|
||||
-I$(G4BASE)/intercoms/include
|
||||
|
||||
ifdef G4_STORE_TRAJECTORY
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.4 1999/06/07 16:53:58 stesting Exp $
|
||||
$Id: History,v 1.7 1999/11/09 00:57:22 asaim Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,13 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Nov 4, 99, M.Asai (tag event-V00-01-01)
|
||||
- Comments are enriched for the software reference manual
|
||||
|
||||
Oct 4, 99, J.Allison (tag event-V00-01-00)
|
||||
- Removed -I$(G4BASE)/graphics_reps/include from GNUmakefile (no
|
||||
longer necessary after G4VVisManager moved to intercoms).
|
||||
|
||||
Jun 7, 99, J.Allison (tag event-01-00-03)
|
||||
- Trapped "G4HEPEvtInterface:: cannot open file."
|
||||
|
||||
|
||||
@@ -1,18 +1,24 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4ClassificationOfNewTrack.hh,v 1.1 1999/01/07 16:06:32 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4ClassificationOfNewTrack.hh,v 1.2.4.1 1999/12/07 20:47:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef G4ClassificationOfNewTrack_hh
|
||||
#define G4ClassificationOfNewTrack_hh 1
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This header file contain an enumeration for the possible classifications
|
||||
// for trackes newly pushed to the stack. G4UserStackingAction can set the
|
||||
// classification.
|
||||
|
||||
enum G4ClassificationOfNewTrack
|
||||
{
|
||||
fUrgent, // put into the urgent stack
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4EvManMessenger.hh,v 1.1 1999/01/07 16:06:32 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4EvManMessenger.hh,v 1.2.4.1 1999/12/07 20:47:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4EvManMessenger_h
|
||||
@@ -18,6 +18,15 @@ class G4UIdirectory;
|
||||
class G4UIcmdWithoutParameter;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a concrete class of G4UImessenger which takes care of commands
|
||||
// addressed to G4EventManager. Commands handled by this messenger are
|
||||
// /event/
|
||||
// /event/abort
|
||||
// /event/verbose
|
||||
//
|
||||
|
||||
class G4EvManMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4Event.hh,v 1.1 1999/01/07 16:06:32 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4Event.hh,v 1.2.4.1 1999/12/07 20:47:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4Event_h
|
||||
@@ -19,6 +19,15 @@
|
||||
#include "G4DCofThisEvent.hh"
|
||||
#include "G4TrajectoryContainer.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the class which represents an event. This class is constructed and
|
||||
// deleted by G4RunManager (or its derived class). When G4Event object is passed
|
||||
// to G4EventManager, G4Event must have one or more primary vertexes and primary
|
||||
// particle(s) associated to the vertex(es) as an input of simulating an event.
|
||||
// As the consequences of simulating an event, G4Event has trajectories, hits
|
||||
// collections, and/or digi collections.
|
||||
|
||||
class G4VHitsCollection;
|
||||
class G4Event
|
||||
{
|
||||
@@ -33,8 +42,13 @@ class G4Event
|
||||
int operator==(const G4Event &right) const;
|
||||
int operator!=(const G4Event &right) const;
|
||||
|
||||
public: // with description
|
||||
void Print() const;
|
||||
// Print the event ID (starts with zero and increments by one) to G4cout.
|
||||
void Draw() const;
|
||||
// Invoke Draw() methods of all stored trajectories, hits, and digits.
|
||||
// For hits and digits, Draw() methods of the concrete classes must be
|
||||
// implemented. Otherwise nothing will be drawn.
|
||||
|
||||
private:
|
||||
// event ID
|
||||
@@ -55,9 +69,17 @@ class G4Event
|
||||
|
||||
public:
|
||||
inline void SetEventID(G4int i)
|
||||
{ eventID = i; };
|
||||
{ eventID = i; }
|
||||
inline void SetHCofThisEvent(G4HCofThisEvent*value)
|
||||
{ HC = value; }
|
||||
inline void SetDCofThisEvent(G4DCofThisEvent*value)
|
||||
{ DC = value; }
|
||||
inline void SetTrajectoryContainer(G4TrajectoryContainer*value)
|
||||
{ trajectoryContainer = value; }
|
||||
public: // with description
|
||||
inline G4int GetEventID() const
|
||||
{ return eventID; };
|
||||
{ return eventID; }
|
||||
// Returns the event ID
|
||||
inline void AddPrimaryVertex(G4PrimaryVertex* aPrimaryVertex)
|
||||
{
|
||||
if( thePrimaryVertex == NULL )
|
||||
@@ -65,9 +87,12 @@ class G4Event
|
||||
else
|
||||
{ thePrimaryVertex->SetNext( aPrimaryVertex ); }
|
||||
numberOfPrimaryVertex++;
|
||||
};
|
||||
}
|
||||
// This method sets a new primary vertex. This method must be invoked
|
||||
// exclusively by G4VPrimaryGenerator concrete class.
|
||||
inline G4int GetNumberOfPrimaryVertex() const
|
||||
{ return numberOfPrimaryVertex; };
|
||||
{ return numberOfPrimaryVertex; }
|
||||
// Returns number of primary vertexes the G4Event object has.
|
||||
inline G4PrimaryVertex* GetPrimaryVertex(G4int i=0) const
|
||||
{
|
||||
if( i == 0 )
|
||||
@@ -84,19 +109,18 @@ class G4Event
|
||||
}
|
||||
else
|
||||
{ return NULL; }
|
||||
};
|
||||
inline void SetHCofThisEvent(G4HCofThisEvent*value)
|
||||
{ HC = value; };
|
||||
}
|
||||
// Returns i-th primary vertex of the event.
|
||||
inline G4HCofThisEvent* GetHCofThisEvent() const
|
||||
{ return HC; };
|
||||
inline void SetDCofThisEvent(G4DCofThisEvent*value)
|
||||
{ DC = value; };
|
||||
{ return HC; }
|
||||
inline G4DCofThisEvent* GetDCofThisEvent() const
|
||||
{ return DC; };
|
||||
inline void SetTrajectoryContainer(G4TrajectoryContainer*value)
|
||||
{ trajectoryContainer = value; };
|
||||
{ return DC; }
|
||||
inline G4TrajectoryContainer* GetTrajectoryContainer() const
|
||||
{ return trajectoryContainer; };
|
||||
{ return trajectoryContainer; }
|
||||
// These three methods returns the pointers to the G4HCofThisEvent
|
||||
// (hits collections of this event), G4DCofThisEvent (digi collections
|
||||
// of this event), and G4TrajectoryContainer (trajectory coonainer),
|
||||
// respectively.
|
||||
};
|
||||
|
||||
extern G4Allocator<G4Event> anEventAllocator;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4EventManager.hh,v 1.2 1999/04/15 08:41:50 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4EventManager.hh,v 1.3.4.1 1999/12/07 20:47:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Last Modification : 10/Dec/96 M.Asai
|
||||
@@ -33,10 +33,11 @@ class G4EvManMessenger;
|
||||
class G4SDManager;
|
||||
#include "globals.hh"
|
||||
|
||||
//## Class: G4EventManager
|
||||
// G4EventManager controls an event. This class has only
|
||||
// one public method, ProcessOneEvent(), which will be
|
||||
// called by GEANT4.
|
||||
// class description:
|
||||
//
|
||||
// G4EventManager controls an event. This class must be a singleton
|
||||
// and should be constructed by G4RunManager.
|
||||
//
|
||||
|
||||
class G4EventManager
|
||||
{
|
||||
@@ -49,8 +50,10 @@ class G4EventManager
|
||||
G4EventManager(const G4EventManager &right);
|
||||
G4EventManager& operator=(const G4EventManager& right);
|
||||
|
||||
public:
|
||||
public: // with description
|
||||
void ProcessOneEvent(G4Event* anEvent);
|
||||
// This method it the main entry to this class for simulating an event.
|
||||
// This method must be exclusively invoked by G4RunManager.
|
||||
|
||||
private:
|
||||
void StackTracks(G4TrackVector *trackVector);
|
||||
@@ -71,29 +74,35 @@ class G4EventManager
|
||||
|
||||
public:
|
||||
inline const G4Event* GetConstCurrentEvent()
|
||||
{ return currentEvent; };
|
||||
{ return currentEvent; }
|
||||
inline G4Event* GetNonconstCurrentEvent()
|
||||
{ return currentEvent; };
|
||||
{ return currentEvent; }
|
||||
public: // with description
|
||||
inline void AbortCurrentEvent()
|
||||
{
|
||||
trackContainer->clear();
|
||||
if(tracking) trackManager->EventAborted();
|
||||
};
|
||||
}
|
||||
// This method aborts the processing of the current event. All stacked
|
||||
// tracks are deleted. The contents of G4Event object is not completed,
|
||||
// but trajectories, hits, and/or digits which are created before the
|
||||
// moment of abortion can be used.
|
||||
public:
|
||||
void SetUserAction(G4UserEventAction* userAction);
|
||||
inline void SetUserAction(G4UserStackingAction* userAction)
|
||||
{ trackContainer->SetUserStackingAction(userAction); };
|
||||
{ trackContainer->SetUserStackingAction(userAction); }
|
||||
inline void SetUserAction(G4UserTrackingAction* userAction)
|
||||
{ trackManager->SetUserAction(userAction); };
|
||||
{ trackManager->SetUserAction(userAction); }
|
||||
inline void SetUserAction(G4UserSteppingAction* userAction)
|
||||
{ trackManager->SetUserAction(userAction); };
|
||||
{ trackManager->SetUserAction(userAction); }
|
||||
inline G4int GetVerboseLevel()
|
||||
{ return verboseLevel; };
|
||||
{ return verboseLevel; }
|
||||
inline void SetVerboseLevel( G4int value )
|
||||
{
|
||||
verboseLevel = value;
|
||||
trackContainer->SetVerboseLevel( value );
|
||||
transformer->SetVerboseLevel( value );
|
||||
};
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4HEPEvtInterface.hh,v 1.1 1999/01/07 16:06:33 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HEPEvtInterface.hh,v 1.2.2.1.2.1 1999/12/07 20:47:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4HEPEvtInterface_h
|
||||
#define G4HEPEvtInterface_h 1
|
||||
|
||||
#include <fstream.h>
|
||||
#include <rw/tpordvec.h>
|
||||
#include "g4rw/tpordvec.h"
|
||||
#include "globals.hh"
|
||||
#include "G4VPrimaryGenerator.hh"
|
||||
#include "G4HEPEvtParticle.hh"
|
||||
@@ -21,11 +21,48 @@
|
||||
class G4PrimaryVertex;
|
||||
class G4Event;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a concrete class of G4VPrimaryGenerator.
|
||||
// This class object reads an ASCII file which contains particles generated
|
||||
// by a physics generator which supports /HEPEVT/ common block.
|
||||
//
|
||||
// The format of ASCII file must be equivalent to the follwing sample fortran
|
||||
// code.
|
||||
//***********************************************************
|
||||
// SUBROUTINE HEP2G4
|
||||
//*
|
||||
//* Output /HEPEVT/ event structure to G4HEPEvtInterface
|
||||
//*
|
||||
//***********************************************************
|
||||
// PARAMETER (NMXHEP=2000)
|
||||
// COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
|
||||
// >JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
|
||||
// DOUBLE PRECISION PHEP,VHEP
|
||||
//*
|
||||
// WRITE(6,*) NHEP
|
||||
// DO IHEP=1,NHEP
|
||||
// WRITE(6,10)
|
||||
// > ISTHEP(IHEP),IDHEP(IHEP),JDAHEP(1,IHEP),JDAHEP(2,IHEP),
|
||||
// > PHEP(1,IHEP),PHEP(2,IHEP),PHEP(3,IHEP),PHEP(5,IHEP)
|
||||
//10 FORMAT(4I5,4(1X,D15.8))
|
||||
// ENDDO
|
||||
//*
|
||||
// RETURN
|
||||
// END
|
||||
//
|
||||
// The position and time of the primary interaction must be set by the corresponding
|
||||
// set methods of G4VPrimaryGenerator base class, otherwise zero will be set.
|
||||
//
|
||||
|
||||
class G4HEPEvtInterface:public G4VPrimaryGenerator
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
G4HEPEvtInterface(char* evfile);
|
||||
G4HEPEvtInterface(G4String evfile);
|
||||
// Constructors, "evfile" is the file name (with directory path).
|
||||
|
||||
public:
|
||||
~G4HEPEvtInterface();
|
||||
|
||||
void GeneratePrimaryVertex(G4Event* evt);
|
||||
@@ -33,7 +70,7 @@ class G4HEPEvtInterface:public G4VPrimaryGenerator
|
||||
private:
|
||||
G4String fileName;
|
||||
ifstream inputFile;
|
||||
RWTPtrOrderedVector<G4HEPEvtParticle> HPlist;
|
||||
G4RWTPtrOrderedVector<G4HEPEvtParticle> HPlist;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4HEPEvtParticle.hh,v 1.1 1999/01/07 16:06:33 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HEPEvtParticle.hh,v 1.2.4.1 1999/12/07 20:47:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4PrimaryParticle.hh"
|
||||
|
||||
// class desccription:
|
||||
//
|
||||
// This class is exclusively used by G4HEPEvtInterface. This class represents
|
||||
// one particle in /HEPEVT/ list.
|
||||
|
||||
class G4HEPEvtParticle
|
||||
{
|
||||
@@ -44,15 +48,15 @@ class G4HEPEvtParticle
|
||||
|
||||
public:
|
||||
inline G4PrimaryParticle * GetTheParticle()
|
||||
{ return theParticle; };
|
||||
{ return theParticle; }
|
||||
inline void Done()
|
||||
{ ISTHEP *= -1; };
|
||||
{ ISTHEP *= -1; }
|
||||
inline G4int GetISTHEP()
|
||||
{ return ISTHEP; };
|
||||
{ return ISTHEP; }
|
||||
inline G4int GetJDAHEP1()
|
||||
{ return JDAHEP1; };
|
||||
{ return JDAHEP1; }
|
||||
inline G4int GetJDAHEP2()
|
||||
{ return JDAHEP2; };
|
||||
{ return JDAHEP2; }
|
||||
};
|
||||
|
||||
extern G4Allocator<G4HEPEvtParticle> aHEPEvtParticleAllocator;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4ParticleGun.hh,v 1.1 1999/01/07 16:06:33 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4ParticleGun.hh,v 1.2.4.1 1999/12/07 20:47:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4ParticleGun_h
|
||||
@@ -23,13 +23,36 @@
|
||||
class G4Event;
|
||||
class G4ParticleGunMessenger;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a concrete class of G4VPrimaryGenerator. It shoots a particle of given type
|
||||
// to a given direction with a given kinetic energy.
|
||||
// The position and time of the primary particle must be set by the corresponding
|
||||
// set methods of G4VPrimaryGenerator base class, otherwise zero will be set.
|
||||
//
|
||||
// The FAQ to this class is for randomizing position/direction/kinetic energy of primary
|
||||
// particle. But, G4ParticleGun does NOT have any way of randomization. Instead, the user's
|
||||
// concrete implementation of G4VUserPrimaryGeneratorAction which transmits G4Event object
|
||||
// to this particle gun can randomize these quantities and set to this particle gun before
|
||||
// invoking GeneratePrimaryVertex() method.
|
||||
// Note that, even if the particle gun shoots more than one particles at one invokation of
|
||||
// GeneratePrimaryVertex() method, all particles have the same physical quantities. If the
|
||||
// user wants to shoot two particles with different momentum, position, etc., invoke
|
||||
// GeneratePrimaryVertex() method twice and set quantities on demand to the particle gun.
|
||||
//
|
||||
|
||||
class G4ParticleGun:public G4VPrimaryGenerator
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
G4ParticleGun();
|
||||
G4ParticleGun(G4int numberofparticles);
|
||||
G4ParticleGun(G4ParticleDefinition * particleDef,
|
||||
G4int numberofparticles = 1);
|
||||
// costructors. "numberofparticles" is number of particles to be shoot at one invokation
|
||||
// of GeneratePrimaryVertex() method. All paricles are shoot with the same physical
|
||||
// quantities.
|
||||
|
||||
public:
|
||||
virtual ~G4ParticleGun();
|
||||
G4ParticleGun(const G4ParticleGun &right);
|
||||
|
||||
@@ -37,17 +60,18 @@ class G4ParticleGun:public G4VPrimaryGenerator
|
||||
int operator==(const G4ParticleGun &right) const;
|
||||
int operator!=(const G4ParticleGun &right) const;
|
||||
|
||||
public: // with description
|
||||
virtual void GeneratePrimaryVertex(G4Event* evt);
|
||||
|
||||
// Set particle properties to be shoot out
|
||||
// SetParticleDefinition should be called at first
|
||||
// Creates a primary vertex at the given point and put primary particles to it.
|
||||
// Followings are set methods for the particle properties.
|
||||
// SetParticleDefinition should be called first.
|
||||
// By using SetParticleMomentum(), both particle_momentum_direction and
|
||||
// particle_energy(Kinetic Energy) are determined.
|
||||
|
||||
void SetParticleMomentum(G4ParticleMomentum aMomentum);
|
||||
// particle_energy(Kinetic Energy) are set.
|
||||
//
|
||||
inline void SetParticleDefinition
|
||||
(G4ParticleDefinition * aParticleDefinition)
|
||||
{ particle_definition = aParticleDefinition; }
|
||||
void SetParticleMomentum(G4ParticleMomentum aMomentum);
|
||||
inline void SetParticleMomentumDirection
|
||||
(G4ParticleMomentum aMomentumDirection)
|
||||
{ particle_momentum_direction = aMomentumDirection.unit(); }
|
||||
@@ -57,6 +81,12 @@ class G4ParticleGun:public G4VPrimaryGenerator
|
||||
{ particle_position = aPosition; }
|
||||
inline void SetParticleTime(G4double aTime)
|
||||
{ particle_time = aTime; }
|
||||
inline void SetParticlePolarization(G4ThreeVector aVal)
|
||||
{ particle_polarization = aVal; }
|
||||
inline void SetNumberOfParticles(G4int i)
|
||||
{ NumberOfParticlesToBeGenerated = i; }
|
||||
|
||||
public:
|
||||
inline G4ParticleDefinition* GetParticleDefinition()
|
||||
{ return particle_definition; }
|
||||
inline G4ParticleMomentum GetParticleMomentumDirection()
|
||||
@@ -67,12 +97,8 @@ class G4ParticleGun:public G4VPrimaryGenerator
|
||||
{ return particle_position; }
|
||||
inline G4double GetParticleTime()
|
||||
{ return particle_time; }
|
||||
inline void SetParticlePolarization(G4ThreeVector aVal)
|
||||
{ particle_polarization = aVal; }
|
||||
inline G4ThreeVector GetParticlePolarization()
|
||||
{ return particle_polarization; }
|
||||
inline void SetNumberOfParticles(G4int i)
|
||||
{ NumberOfParticlesToBeGenerated = i; }
|
||||
inline G4int GetNumberOfParticles()
|
||||
{ return NumberOfParticlesToBeGenerated; }
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4ParticleGunMessenger.hh,v 1.1 1999/01/07 16:06:33 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4ParticleGunMessenger.hh,v 1.2.4.1 1999/12/07 20:47:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -27,6 +27,12 @@ class G4UIcmdWithAnInteger;
|
||||
#include "G4UImessenger.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a concrete class of G4UImessenger which handles commands for
|
||||
// G4ParticleGun.
|
||||
//
|
||||
|
||||
class G4ParticleGunMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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.1 1999/01/07 16:06:33 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4PrimaryParticle.hh,v 1.2.4.1 1999/12/07 20:47:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -20,6 +20,30 @@
|
||||
|
||||
class G4ParticleDefinition;
|
||||
|
||||
// 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:
|
||||
@@ -39,7 +63,9 @@ class G4PrimaryParticle
|
||||
int operator==(const G4PrimaryParticle &right) const;
|
||||
int operator!=(const G4PrimaryParticle &right) const;
|
||||
|
||||
public: // with description
|
||||
void Print() const;
|
||||
// Print the properties of the particle.
|
||||
|
||||
private:
|
||||
G4int PDGcode;
|
||||
@@ -62,64 +88,71 @@ class G4PrimaryParticle
|
||||
G4double polY;
|
||||
G4double polZ;
|
||||
|
||||
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 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; }
|
||||
|
||||
public:
|
||||
void SetPDGcode(G4int Pcode);
|
||||
inline G4int GetPDGcode() const
|
||||
{ return PDGcode; };
|
||||
void SetG4code(G4ParticleDefinition * Gcode);
|
||||
inline G4ParticleDefinition * GetG4code() const
|
||||
{ return G4code; };
|
||||
inline void SetMomentum(G4double px, G4double py, G4double pz)
|
||||
{
|
||||
Px = px;
|
||||
Py = py;
|
||||
Pz = pz;
|
||||
};
|
||||
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 void SetNext(G4PrimaryParticle * np)
|
||||
{
|
||||
if(nextParticle == NULL)
|
||||
{ nextParticle = np; }
|
||||
else
|
||||
{ nextParticle->SetNext(np); }
|
||||
};
|
||||
inline G4PrimaryParticle * GetNext() const
|
||||
{ return nextParticle; };
|
||||
}
|
||||
inline void SetDaughter(G4PrimaryParticle * np)
|
||||
{
|
||||
if(daughterParticle == NULL)
|
||||
{ daughterParticle = np; }
|
||||
else
|
||||
{ daughterParticle->SetNext(np); }
|
||||
};
|
||||
inline G4PrimaryParticle * GetDaughter() const
|
||||
{ return daughterParticle; };
|
||||
}
|
||||
inline void SetTrackID(G4int id)
|
||||
{ trackID = id; };
|
||||
inline G4int GetTrackID() const
|
||||
{ return trackID; };
|
||||
{ trackID = id; }
|
||||
inline void SetMass(G4double mas)
|
||||
{ mass = mas; };
|
||||
inline G4double GetMass() const
|
||||
{ return mass; };
|
||||
{ mass = mas; }
|
||||
inline void SetPolarization(G4double px,G4double py,G4double pz)
|
||||
{
|
||||
polX = px;
|
||||
polY = py;
|
||||
polZ = pz;
|
||||
};
|
||||
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; };
|
||||
}
|
||||
};
|
||||
|
||||
extern G4Allocator<G4PrimaryParticle> aPrimaryParticleAllocator;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4PrimaryTransformer.hh,v 1.1 1999/01/07 16:06:34 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4PrimaryTransformer.hh,v 1.2.4.1 1999/12/07 20:47:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4PromaryTransformer_h
|
||||
@@ -19,6 +19,12 @@ class G4Event;
|
||||
class G4PrimaryVertex;
|
||||
#include "G4PrimaryParticle.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This class is exclusively used by G4EventManager for the conversion
|
||||
// from G4PrimaryVertex/G4PrimaryParticle to G4DynamicParticle/G4Track.
|
||||
//
|
||||
|
||||
class G4PrimaryTransformer
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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.1 1999/01/07 16:06:34 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4PrimaryVertex.hh,v 1.2.4.1 1999/12/07 20:47:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -19,6 +19,13 @@
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4PrimaryParticle.hh"
|
||||
|
||||
// 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:
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4StackManager.hh,v 1.1 1999/01/07 16:06:34 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4StackManager.hh,v 1.2.4.1 1999/12/07 20:47:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Last Modification : 09/Dec/96 M.Asai
|
||||
@@ -25,6 +25,23 @@
|
||||
#include "globals.hh"
|
||||
class G4StackingMessenger;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the manager class of handling stacks of G4Track objects.
|
||||
// This class must be a singleton and be constructed by G4EventManager.
|
||||
// Almost all methods must be invoked exclusively by G4EventManager.
|
||||
// Especially, some Clear() methods MUST NOT be invoked by the user.
|
||||
// Event abortion is handled by G4EventManager.
|
||||
//
|
||||
// This G4StackingManager has three stacks, the urgent stack, the
|
||||
// waiting stack, and the postpone to next event stack. The meanings
|
||||
// of each stack is descrived in the Geant4 user's manual.
|
||||
//
|
||||
// The only method the user can invoke is ReClassify(), which can
|
||||
// be used from the user's concrete class of G4UserStackingAction.
|
||||
//
|
||||
|
||||
|
||||
class G4StackManager
|
||||
{
|
||||
public:
|
||||
@@ -41,7 +58,16 @@ class G4StackManager
|
||||
G4int PushOneTrack(G4Track *newTrack);
|
||||
G4Track * PopNextTrack();
|
||||
G4int PrepareNewEvent();
|
||||
|
||||
public: // with description
|
||||
void ReClassify();
|
||||
// Send all tracks stored in the Urgent stack one by one to
|
||||
// the user's concrete ClassifyNewTrack() method. This method
|
||||
// can be invoked from the user's G4UserStackingAction concrete
|
||||
// class, especially fron its NewStage() method. Be aware that
|
||||
// when the urgent stack becomes empty, all tracks in the waiting
|
||||
// stack are send to the urgent stack and then the user's NewStage()
|
||||
// method is invoked.
|
||||
|
||||
private:
|
||||
G4UserStackingAction * userStackingAction;
|
||||
@@ -56,31 +82,31 @@ class G4StackManager
|
||||
{
|
||||
ClearUrgentStack();
|
||||
ClearWaitingStack();
|
||||
};
|
||||
}
|
||||
inline void ClearUrgentStack()
|
||||
{ urgentStack->clear(); };
|
||||
{ urgentStack->clear(); }
|
||||
inline void ClearWaitingStack()
|
||||
{ waitingStack->clear(); };
|
||||
{ waitingStack->clear(); }
|
||||
inline void ClearPostponeStack()
|
||||
{ postponeStack->clear(); };
|
||||
{ postponeStack->clear(); }
|
||||
inline G4int GetNTotalTrack() const
|
||||
{ return urgentStack->GetNTrack()
|
||||
+ waitingStack->GetNTrack()
|
||||
+ postponeStack->GetNTrack(); };
|
||||
+ postponeStack->GetNTrack(); }
|
||||
inline G4int GetNUrgentTrack() const
|
||||
{ return urgentStack->GetNTrack(); };
|
||||
{ return urgentStack->GetNTrack(); }
|
||||
inline G4int GetNWaitingTrack() const
|
||||
{ return waitingStack->GetNTrack(); };
|
||||
{ return waitingStack->GetNTrack(); }
|
||||
inline G4int GetNPostponedTrack() const
|
||||
{ return postponeStack->GetNTrack(); };
|
||||
{ return postponeStack->GetNTrack(); }
|
||||
inline void SetVerboseLevel( int const value )
|
||||
{ verboseLevel = value; };
|
||||
{ verboseLevel = value; }
|
||||
inline void SetUserStackingAction(G4UserStackingAction* value)
|
||||
{
|
||||
if (userStackingAction) delete userStackingAction;
|
||||
userStackingAction = value;
|
||||
userStackingAction->SetStackManager(this);
|
||||
};
|
||||
}
|
||||
|
||||
private:
|
||||
inline G4ClassificationOfNewTrack
|
||||
@@ -90,7 +116,7 @@ class G4StackManager
|
||||
if( aTrack->GetTrackStatus() == fPostponeToNextEvent )
|
||||
{ classification = fPostpone; }
|
||||
return classification;
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4StackedTrack.hh,v 1.1 1999/01/07 16:06:34 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4StackedTrack.hh,v 1.2.4.1 1999/12/07 20:47:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Last Modification : 02/Feb/96 M.Asai
|
||||
@@ -20,6 +20,12 @@
|
||||
#include "globals.hh"
|
||||
#include "G4Allocator.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This class is exclusively used by G4StackManager and G4TrackStack
|
||||
// classes for storing a G4Track object in the form of bi-directional
|
||||
// linked list.
|
||||
|
||||
class G4StackedTrack
|
||||
{
|
||||
public:
|
||||
@@ -42,19 +48,19 @@ class G4StackedTrack
|
||||
|
||||
public:
|
||||
inline G4double GetPriorityWeight() const
|
||||
{ return priorityWeight; };
|
||||
{ return priorityWeight; }
|
||||
inline void SetPriorityWeight(const G4double value)
|
||||
{ priorityWeight = value; };
|
||||
{ priorityWeight = value; }
|
||||
inline G4Track * GetTrack() const
|
||||
{ return track; };
|
||||
{ return track; }
|
||||
inline G4StackedTrack * GetPrevious() const
|
||||
{ return previousStackedTrack; };
|
||||
{ return previousStackedTrack; }
|
||||
inline G4StackedTrack * GetNext() const
|
||||
{ return nextStackedTrack; };
|
||||
{ return nextStackedTrack; }
|
||||
inline void SetPrevious(G4StackedTrack * value)
|
||||
{ previousStackedTrack = value; };
|
||||
{ previousStackedTrack = value; }
|
||||
inline void SetNext(G4StackedTrack * value)
|
||||
{ nextStackedTrack = value; };
|
||||
{ nextStackedTrack = value; }
|
||||
};
|
||||
|
||||
extern G4Allocator<G4StackedTrack> aStackedTrackAllocator;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4StackingMessenger.hh,v 1.1 1999/01/07 16:06:34 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4StackingMessenger.hh,v 1.2.4.1 1999/12/07 20:47:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4StackingMessenger_h
|
||||
@@ -18,6 +18,14 @@ class G4UIdirectory;
|
||||
class G4UIcmdWithoutParameter;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a concrete class of G4UImessenger which handles the commands
|
||||
// for G4StackManager. It has the following commands:
|
||||
// /event/stack/
|
||||
// /event/stack/status
|
||||
// /event/stack/clear
|
||||
|
||||
class G4StackingMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4TrackStack.hh,v 1.1 1999/01/07 16:06:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4TrackStack.hh,v 1.2.4.1 1999/12/07 20:47:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Last Modification : 09/Dec/96 M.Asai
|
||||
@@ -19,6 +19,12 @@
|
||||
#include "G4StackedTrack.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a stack class used by G4StackManager. This class object
|
||||
// stores G4StackedTrack class objects in the form of bi-directional
|
||||
// linked list.
|
||||
|
||||
class G4TrackStack
|
||||
{
|
||||
public:
|
||||
@@ -45,7 +51,7 @@ class G4TrackStack
|
||||
|
||||
public:
|
||||
inline G4int GetNTrack() const
|
||||
{ return n_stackedTrack; };
|
||||
{ return n_stackedTrack; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4TrajectoryContainer.hh,v 1.2 1999/04/15 08:41:51 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4TrajectoryContainer.hh,v 1.3.2.1.2.1 1999/12/07 20:47:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// G4TrajectoryContainer
|
||||
@@ -15,12 +15,16 @@
|
||||
#ifndef G4TrajectoryContainer_h
|
||||
#define G4TrajectoryContainer_h 1
|
||||
|
||||
// TrackManagement
|
||||
#include "G4VTrajectory.hh"
|
||||
// RWTPtrOrderedVector
|
||||
#include <rw/tpordvec.h>
|
||||
// G4RWTPtrOrderedVector
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
typedef RWTPtrOrderedVector<G4VTrajectory> G4TrajectoryContainer;
|
||||
// class description:
|
||||
//
|
||||
// This is a container of G4VTrajectory objects and the object of this
|
||||
// container will be associated to G4Event object.
|
||||
|
||||
typedef G4RWTPtrOrderedVector<G4VTrajectory> G4TrajectoryContainer;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4UserEventAction.hh,v 1.2 1999/04/09 03:04:00 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4UserEventAction.hh,v 1.3.4.1 1999/12/07 20:47:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -17,6 +17,19 @@
|
||||
class G4EventManager;
|
||||
class G4Event;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the base class of one of the user's optional action classes.
|
||||
// The two methods BeginOfEventAction() and EndOfEventAction() are invoked
|
||||
// at the beginning and the end of one event processing. These methods are
|
||||
// invoked by G4EventManager.
|
||||
// Be aware that BeginOfEventAction() is invoked when a G4Event object is
|
||||
// sent to G4EventManager. Thus the primary vertexes/particles have already
|
||||
// been made by the primary generator. In case the user wants to do something
|
||||
// before generating primaries (i.e., store random number status), do it in
|
||||
// the G4VUserPrimaryGeneratorAction concrete class.
|
||||
//
|
||||
|
||||
class G4UserEventAction
|
||||
{
|
||||
public:
|
||||
@@ -24,8 +37,10 @@ class G4UserEventAction
|
||||
virtual ~G4UserEventAction() {;}
|
||||
inline void SetEventManager(G4EventManager* value)
|
||||
{ fpEventManager = value; }
|
||||
public: // with description
|
||||
virtual void BeginOfEventAction(const G4Event* anEvent);
|
||||
virtual void EndOfEventAction(const G4Event* anEvent);
|
||||
// Two virtual method the user can override.
|
||||
protected:
|
||||
G4EventManager* fpEventManager;
|
||||
};
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4UserStackingAction.hh,v 1.2 1999/04/09 03:04:01 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4UserStackingAction.hh,v 1.3.4.1 1999/12/07 20:47:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4UserStackingAction_h
|
||||
@@ -16,6 +16,13 @@ class G4StackManager;
|
||||
class G4Track;
|
||||
#include "G4ClassificationOfNewTrack.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the base class of one of the user's optional action classes.
|
||||
// This class gives the hooks for G4StackManager which controls the stacks
|
||||
// of G4Track objects.
|
||||
//
|
||||
|
||||
class G4UserStackingAction
|
||||
{
|
||||
public:
|
||||
@@ -27,7 +34,7 @@ class G4UserStackingAction
|
||||
inline void SetStackManager(G4StackManager * value)
|
||||
{ stackManager = value; }
|
||||
|
||||
public:
|
||||
public: // with description
|
||||
//---------------------------------------------------------------
|
||||
// vitual methods to be implemented by user
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4VPrimaryGenerator.hh,v 1.1 1999/01/07 16:06:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VPrimaryGenerator.hh,v 1.2.4.1 1999/12/07 20:47:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4VPrimaryGenerator_h
|
||||
@@ -14,6 +14,14 @@
|
||||
|
||||
class G4Event;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is an abstract base class of all of primary generators.
|
||||
// This class has only one pure virtual method GeneratePrimaryVertex()
|
||||
// which takes a G4Event object and generates a primay vertex and
|
||||
// primary particles associate to the vertex.
|
||||
//
|
||||
|
||||
class G4VPrimaryGenerator
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: eventgendefs.hh,v 1.1 1999/01/07 16:06:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: eventgendefs.hh,v 1.1.10.1 1999/12/07 20:47:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
#ifndef EventGenerator_DEBUG
|
||||
#define EventGenerator_DEBUG
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: evmandefs.hh,v 1.1 1999/01/07 16:06:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: evmandefs.hh,v 1.1.10.1 1999/12/07 20:47:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
///#define G4EVENTMANAGER_DEBUG 1
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: trajectoryControl.hh,v 1.1 1999/01/07 16:06:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: trajectoryControl.hh,v 1.1.10.1 1999/12/07 20:47:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
////#define G4_STORE_TRAJECTORY 1
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4EvManMessenger.cc,v 1.1 1999/01/07 16:06:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4EvManMessenger.cc,v 1.1.10.1 1999/12/07 20:47:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4Event.cc,v 1.1 1999/01/07 16:06:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4Event.cc,v 1.1.10.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4Event
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4EventManager.cc,v 1.2 1999/04/15 08:41:52 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4EventManager.cc,v 1.2.8.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4HEPEvtInterface.cc,v 1.2 1999/06/07 16:53:57 stesting Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HEPEvtInterface.cc,v 1.2.8.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4HEPEvtParticle.cc,v 1.1 1999/01/07 16:06:37 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HEPEvtParticle.cc,v 1.1.10.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4ParticleGun.cc,v 1.1 1999/01/07 16:06:37 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4ParticleGun.cc,v 1.1.10.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4ParticleGun
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4ParticleGunMessenger.cc,v 1.1 1999/01/07 16:06:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4ParticleGunMessenger.cc,v 1.1.10.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4ParticleGunMessenger.hh"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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.cc,v 1.1 1999/01/07 16:06:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4PrimaryParticle.cc,v 1.1.10.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4PrimaryParticle.hh"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4PrimaryTransformer.cc,v 1.1 1999/01/07 16:06:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4PrimaryTransformer.cc,v 1.1.10.1 1999/12/07 20:47:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4PrimaryTransformer.hh"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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.cc,v 1.1 1999/01/07 16:06:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4PrimaryVertex.cc,v 1.1.10.1 1999/12/07 20:47:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4PrimaryVertex.hh"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4StackManager.cc,v 1.1 1999/01/07 16:06:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4StackManager.cc,v 1.1.10.1 1999/12/07 20:47:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Last Modification : 09/Dec/96 M.Asai
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4StackedTrack.cc,v 1.1 1999/01/07 16:06:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4StackedTrack.cc,v 1.1.10.1 1999/12/07 20:47:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Last Modification : 02/Feb/96 M.Asai
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4StackingMessenger.cc,v 1.1 1999/01/07 16:06:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4StackingMessenger.cc,v 1.1.10.1 1999/12/07 20:47:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4TrackStack.cc,v 1.1 1999/01/07 16:06:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4TrackStack.cc,v 1.1.10.1 1999/12/07 20:47:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Last Modification : 09/Dec/96 M.Asai
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4UserEventAction.cc,v 1.2 1999/04/09 03:04:03 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4UserEventAction.cc,v 1.2.8.1 1999/12/07 20:47:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4UserEventAction.hh"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4UserStackingAction.cc,v 1.2 1999/04/09 03:04:04 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4UserStackingAction.cc,v 1.2.8.1 1999/12/07 20:47:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4UserStackingAction.hh"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
// 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: G4VPrimaryGenerator.cc,v 1.1 1999/01/07 16:06:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VPrimaryGenerator.cc,v 1.1.10.1 1999/12/07 20:47:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4VPrimaryGenerator
|
||||
|
||||
Reference in New Issue
Block a user