Import Geant4 1.0.0 source tree
This commit is contained in:
+25
-4
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.11 1999/06/24 10:49:47 johna Exp $
|
||||
# $Id: GNUmakefile,v 1.15 1999/12/05 22:36:52 morita Exp $
|
||||
# -----------------------------------------------------------------
|
||||
# "gmake" makes default libraries for each subdomain.
|
||||
# "gmake glob" makes global libraries for each subdomain.
|
||||
@@ -13,7 +13,7 @@ MAKEFLAGS= --no-print-directory
|
||||
SUBDIR1 = global particles processes geometry digits+hits
|
||||
SUBDIR2 = event tracking track materials run graphics_reps intercoms readout
|
||||
SUBDIR3 = g3tog4 interfaces visualization
|
||||
SUBDIR4 = # persistency
|
||||
SUBDIR4 = persistency
|
||||
|
||||
ifndef G4INSTALL
|
||||
G4INSTALL = ..
|
||||
@@ -28,21 +28,42 @@ unique := $(shell echo $$$$)
|
||||
.PHONY: all glob global libmap clean_libs clean clean_all
|
||||
|
||||
all:
|
||||
ifdef G4USE_HEPODBMS
|
||||
@$(ECHO) Making granular libraries with HepODBMS option ...
|
||||
@for dir in $(SUBDIR4); do (cd $$dir; $(MAKE) cleandb); done
|
||||
@if [ ! -f $(G4TMPDIR)/schema/G4SCHEMA ] ; then \
|
||||
$(ECHO) "Temporary boot file does not exist. Stop." ; exit 1 ; \
|
||||
fi
|
||||
endif
|
||||
@for dir in $(SUBDIR1); do (cd $$dir; $(MAKE)); done
|
||||
@for dir in $(SUBDIR2); do (cd $$dir; $(MAKE)); done
|
||||
@for dir in $(SUBDIR3); do (cd $$dir; $(MAKE)); done
|
||||
ifdef G4USE_HEPODBMS
|
||||
@for dir in $(SUBDIR4); do (cd $$dir; $(MAKE)); done
|
||||
endif
|
||||
$(MAKE) libmap
|
||||
|
||||
glob global:
|
||||
ifdef G4USE_HEPODBMS
|
||||
@$(ECHO) Making global libraries with HepODBMS option ...
|
||||
@for dir in $(SUBDIR4); do (cd $$dir; $(MAKE) cleandb); done
|
||||
@if [ ! -f $(G4TMPDIR)/schema/G4SCHEMA ] ; then \
|
||||
$(ECHO) "Temporary boot file does not exist. Stop." ; exit 1 ; \
|
||||
fi
|
||||
endif
|
||||
@for dir in $(SUBDIR1); do (cd $$dir; $(MAKE) global); done
|
||||
@for dir in $(SUBDIR2); do (cd $$dir; $(MAKE)); done
|
||||
@for dir in $(SUBDIR3); do (cd $$dir; $(MAKE)); done
|
||||
ifdef G4USE_HEPODBMS
|
||||
@for dir in $(SUBDIR4); do (cd $$dir; $(MAKE) global); done
|
||||
endif
|
||||
|
||||
|
||||
libmap: $(G4LIBDIR)/liblist
|
||||
@echo "WARNING: Making a library map of granular libraries."
|
||||
@echo " This is a list of libraries in order of use, and for"
|
||||
@echo " each library a list of other libraries used."
|
||||
@echo " To do this is needs a complete set of dependency"
|
||||
@echo " To do this it needs a complete set of dependency"
|
||||
@echo " files, e.g., after gmake in the source/ directory."
|
||||
@echo "Searching $(G4INSTALL)/source"
|
||||
@echo ' for GNUmakefiles containing "name" and sorting...'
|
||||
@@ -67,7 +88,7 @@ libmap: $(G4LIBDIR)/liblist
|
||||
done
|
||||
@echo "Making libname.map..."
|
||||
@rm -f $(G4LIBDIR)/libname.map;
|
||||
G4TMP=$(G4TMP); export G4TMP; \
|
||||
@G4TMP=$(G4TMP); export G4TMP; \
|
||||
$(G4LIBDIR)/liblist -l -d $(G4TMPDIR) \
|
||||
< /tmp/G4libname.map.starter.$(unique) \
|
||||
> $(G4LIBDIR)/libname.map
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.1 1999/01/07 16:06:23 gunter Exp $
|
||||
$Id: History,v 1.3 1999/11/09 00:46:57 asaim Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,9 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Nov 4, 99, M.Asai (tag digits+hits-V00-01-00)
|
||||
- Comments are enriched for software reference manual.
|
||||
|
||||
Oct 26, 98 M.Asai (tag digits+hits-00-03-01)
|
||||
- Debugged in G4HCofThisEvent.hh and G4DCofThisEvent.hh
|
||||
|
||||
|
||||
@@ -1,19 +1,31 @@
|
||||
// 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: G4HCtable.hh,v 1.1 1999/01/07 16:06:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HCtable.hh,v 1.2.2.1.2.1 1999/12/07 20:47:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4HCtable_H
|
||||
#define G4HCtable_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include <rw/tvordvec.h>
|
||||
#include "g4rw/tvordvec.h"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This class is used by G4SDManager for book keeping the
|
||||
// sensitive detector modules and hits collections. The order of
|
||||
// hits collections stored in G4HCofThisEvent is same as the
|
||||
// order of HClist.
|
||||
// The order may vary from run to run, if the user adds/changes
|
||||
// some of his/her sensitive detector modules.
|
||||
// In case user wants to make G4Run object persistent, this
|
||||
// G4HCtable class object should be copied and stored with
|
||||
// G4Run object.
|
||||
|
||||
class G4HCtable
|
||||
{
|
||||
@@ -26,8 +38,8 @@ class G4HCtable
|
||||
G4int GetCollectionID(G4String HCname);
|
||||
|
||||
private:
|
||||
RWTValOrderedVector<G4String> SDlist;
|
||||
RWTValOrderedVector<G4String> HClist;
|
||||
G4RWTValOrderedVector<G4String> SDlist;
|
||||
G4RWTValOrderedVector<G4String> HClist;
|
||||
|
||||
public:
|
||||
inline G4int entries() const
|
||||
|
||||
@@ -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: G4SDManager.hh,v 1.1 1999/01/07 16:06:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SDManager.hh,v 1.2.4.1 1999/12/07 20:47:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4SDManager_h
|
||||
@@ -20,10 +20,21 @@ class G4VSensitiveDetector;
|
||||
class G4HCofThisEvent;
|
||||
class G4SDmessenger;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a singleton class which manages the sensitive detectors.
|
||||
// The user cannot access to the constructor. The pointer of the
|
||||
// only existing object can be got via G4SDManager::GetSDMpointer()
|
||||
// static method. The first invokation of this static method makes
|
||||
// the singleton object.
|
||||
//
|
||||
|
||||
class G4SDManager
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
static G4SDManager* GetSDMpointer();
|
||||
// Returns the pointer to the singleton object.
|
||||
public:
|
||||
static G4SDManager* GetSDMpointerIfExist();
|
||||
|
||||
protected:
|
||||
@@ -31,13 +42,22 @@ class G4SDManager
|
||||
|
||||
public:
|
||||
~G4SDManager();
|
||||
|
||||
public: // with description
|
||||
void AddNewDetector(G4VSensitiveDetector*aSD);
|
||||
G4HCofThisEvent* PrepareNewEvent();
|
||||
void TerminateCurrentEvent(G4HCofThisEvent* HCE);
|
||||
// Registors the user's sensitive detector. This method must be invoked
|
||||
// when the user construct his/her sensitive detector.
|
||||
void Activate(G4String dName, G4bool activeFlag);
|
||||
// Activate/inactivate the registered sensitive detector. For the inactivated
|
||||
// detectors, hits collections will not be stored to the G4HCofThisEvent object.
|
||||
G4int GetCollectionID(G4String colName);
|
||||
G4int GetCollectionID(G4VHitsCollection * aHC);
|
||||
// These two methods return the ID number of the sensitive detector.
|
||||
|
||||
public:
|
||||
G4VSensitiveDetector* FindSensitiveDetector(G4String dName);
|
||||
G4HCofThisEvent* PrepareNewEvent();
|
||||
void TerminateCurrentEvent(G4HCofThisEvent* HCE);
|
||||
|
||||
private:
|
||||
static G4SDManager * fSDManager;
|
||||
|
||||
@@ -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: G4SDStructure.hh,v 1.1 1999/01/07 16:06:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SDStructure.hh,v 1.2.2.1.2.1 1999/12/07 20:47:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4SDStructure_h
|
||||
@@ -16,11 +16,17 @@
|
||||
#include "globals.hh"
|
||||
// G4VSensitiveDetector
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
// RWTPtrOrderedVector
|
||||
#include <rw/tpordvec.h>
|
||||
// G4RWTPtrOrderedVector
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
class G4HCofThisEvent;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This class is exclusively used by G4SDManager for handling the tree
|
||||
// structure of the user's sensitive detector names.
|
||||
//
|
||||
|
||||
class G4SDStructure
|
||||
{
|
||||
public:
|
||||
@@ -42,8 +48,8 @@ class G4SDStructure
|
||||
G4String ExtractDirName(G4String aPath);
|
||||
|
||||
private:
|
||||
RWTPtrOrderedVector<G4SDStructure> structure;
|
||||
RWTPtrOrderedVector<G4VSensitiveDetector> detector;
|
||||
G4RWTPtrOrderedVector<G4SDStructure> structure;
|
||||
G4RWTPtrOrderedVector<G4VSensitiveDetector> detector;
|
||||
G4String pathName;
|
||||
G4String dirName;
|
||||
G4int verboseLevel;
|
||||
|
||||
@@ -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: G4SDmessenger.hh,v 1.1 1999/01/07 16:06:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SDmessenger.hh,v 1.2.4.1 1999/12/07 20:47:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4SDmessenger_h
|
||||
@@ -20,6 +20,17 @@ class G4UIcmdWithoutParameter;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a cncrete class of G4UImessenger which handles the commands for
|
||||
// G4SDManager. This class has the following commands:
|
||||
// /hits/
|
||||
// /hits/list
|
||||
// /hits/activate
|
||||
// /hits/inactivate
|
||||
// /hts/verbose
|
||||
//
|
||||
|
||||
class G4SDmessenger: 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: G4SensitiveVolumeList.hh,v 1.1 1999/01/07 16:06:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SensitiveVolumeList.hh,v 1.2.2.1.2.1 1999/12/07 20:47:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file --- Copyright CERN 1996
|
||||
@@ -22,11 +22,18 @@
|
||||
#ifndef G4SensitiveVolumeList_h
|
||||
#define G4SensitiveVolumeList_h 1
|
||||
|
||||
#include <rw/tpordvec.h>
|
||||
#include <rw/tvordvec.h>
|
||||
#include "g4rw/tpordvec.h"
|
||||
#include "g4rw/tvordvec.h"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This class object can have lists of logical and physical volumes.
|
||||
// In case a sensitive detector is shared by several logical volumes and/or
|
||||
// a logical volume is shared by several physical volumes, this class can be
|
||||
// used by the veto list for individual logical/physical volumes.
|
||||
//
|
||||
|
||||
class G4SensitiveVolumeList
|
||||
{
|
||||
@@ -53,11 +60,11 @@ class G4SensitiveVolumeList
|
||||
G4bool CheckLV(const G4LogicalVolume *lvp) const;
|
||||
|
||||
//Get and Set Operations for Has Relationships
|
||||
const RWTPtrOrderedVector<G4VPhysicalVolume>& GetThePhysicalVolumeList() const;
|
||||
void SetThePhysicalVolumeList(const RWTPtrOrderedVector<G4VPhysicalVolume> value);
|
||||
const G4RWTPtrOrderedVector<G4VPhysicalVolume>& GetThePhysicalVolumeList() const;
|
||||
void SetThePhysicalVolumeList(const G4RWTPtrOrderedVector<G4VPhysicalVolume> value);
|
||||
|
||||
const RWTPtrOrderedVector<G4LogicalVolume>& GetTheLogicalVolumeList() const;
|
||||
void SetTheLogicalVolumeList(const RWTPtrOrderedVector<G4LogicalVolume> value);
|
||||
const G4RWTPtrOrderedVector<G4LogicalVolume>& GetTheLogicalVolumeList() const;
|
||||
void SetTheLogicalVolumeList(const G4RWTPtrOrderedVector<G4LogicalVolume> value);
|
||||
|
||||
|
||||
|
||||
@@ -65,8 +72,8 @@ class G4SensitiveVolumeList
|
||||
|
||||
//Data Members for Has Relationships
|
||||
|
||||
RWTPtrOrderedVector<G4VPhysicalVolume> thePhysicalVolumeList;
|
||||
RWTPtrOrderedVector<G4LogicalVolume> theLogicalVolumeList;
|
||||
G4RWTPtrOrderedVector<G4VPhysicalVolume> thePhysicalVolumeList;
|
||||
G4RWTPtrOrderedVector<G4LogicalVolume> theLogicalVolumeList;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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: G4SensitiveVolumeList.icc,v 1.1 1999/01/07 16:06:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SensitiveVolumeList.icc,v 1.1.8.1.2.1 1999/12/07 20:47:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// -----------------------------------------------------------
|
||||
// Inline functions of GEANT 4 class header file.
|
||||
@@ -22,14 +22,14 @@
|
||||
|
||||
//Get and Set Operations for Has Relationships
|
||||
|
||||
inline const RWTPtrOrderedVector<G4VPhysicalVolume>& G4SensitiveVolumeList::get_the_G4VPhysicalVolume_list() const { return the_G4VPhysicalVolume_list; }
|
||||
inline const G4RWTPtrOrderedVector<G4VPhysicalVolume>& G4SensitiveVolumeList::get_the_G4VPhysicalVolume_list() const { return the_G4VPhysicalVolume_list; }
|
||||
|
||||
inline void G4SensitiveVolumeList::set_the_G4VPhysicalVolume_list(const RWTPtrOrderedVector<G4VPhysicalVolume> value) { the_G4VPhysicalVolume_list = value; }
|
||||
inline void G4SensitiveVolumeList::set_the_G4VPhysicalVolume_list(const G4RWTPtrOrderedVector<G4VPhysicalVolume> value) { the_G4VPhysicalVolume_list = value; }
|
||||
|
||||
|
||||
inline const RWTPtrOrderedVector<G4LogicalVolume>& G4SensitiveVolumeList::get_the_G4LogicalVolume() const { return the_G4LogicalVolume_list; }
|
||||
inline const G4RWTPtrOrderedVector<G4LogicalVolume>& G4SensitiveVolumeList::get_the_G4LogicalVolume() const { return the_G4LogicalVolume_list; }
|
||||
|
||||
inline void G4SensitiveVolumeList::set_the_G4LogicalVolume(const RWTPtrOrderedVector<G4LogicalVolume> value) { the_G4LogicalVolume_list = value; }
|
||||
inline void G4SensitiveVolumeList::set_the_G4LogicalVolume(const G4RWTPtrOrderedVector<G4LogicalVolume> value) { the_G4LogicalVolume_list = value; }
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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: G4VReadOutGeometry.hh,v 1.1 1999/01/07 16:06:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VReadOutGeometry.hh,v 1.1.10.1 1999/12/07 20:47:42 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: G4VSensitiveDetector.hh,v 1.1 1999/01/07 16:06:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VSensitiveDetector.hh,v 1.2.2.1.2.1 1999/12/07 20:47:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4VSensitiveDetector_h
|
||||
@@ -17,15 +17,28 @@
|
||||
#include "G4HCofThisEvent.hh"
|
||||
#include "G4VReadOutGeometry.hh"
|
||||
#include "G4TouchableHistory.hh"
|
||||
#include <rw/tvordvec.h>
|
||||
#include "g4rw/tvordvec.h"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the abstract base class of the sensitive detector. The user's
|
||||
// sensitive detector which generates hits must be derived from this
|
||||
// class.
|
||||
// In the derived class constructor, name(s) of hits collection(s) which
|
||||
// are made by the sensitive detector must be set to "collectionName" string
|
||||
// vector.
|
||||
|
||||
class G4VSensitiveDetector
|
||||
{
|
||||
|
||||
public:
|
||||
public: // with description
|
||||
G4VSensitiveDetector(G4String name);
|
||||
G4VSensitiveDetector(const G4VSensitiveDetector &right);
|
||||
// Constructors. The user's concrete class must use one of these constructors
|
||||
// by the constructor initializer of the derived class. The name of
|
||||
// the sensitive detector must be unique.
|
||||
|
||||
public:
|
||||
virtual ~G4VSensitiveDetector();
|
||||
|
||||
const G4VSensitiveDetector & operator=(const G4VSensitiveDetector &right);
|
||||
@@ -33,28 +46,53 @@ class G4VSensitiveDetector
|
||||
int operator==(const G4VSensitiveDetector &right) const;
|
||||
int operator!=(const G4VSensitiveDetector &right) const;
|
||||
|
||||
public: // with description
|
||||
virtual void Initialize(G4HCofThisEvent*HCE);
|
||||
virtual void EndOfEvent(G4HCofThisEvent*HCE);
|
||||
// These two methods are invoked at the begining and at the end of each
|
||||
// event. The hits collection(s) created by this sensitive detector must
|
||||
// be set to the G4HCofThisEvent object at one of these two methods.
|
||||
virtual void clear();
|
||||
// This method is invoked if the event abortion is occured. Hits collections
|
||||
// created but not beibg set to G4HCofThisEvent at the event should be deleted.
|
||||
// Collection(s) which have already set to G4HCofThisEvent will be deleted
|
||||
// automatically.
|
||||
|
||||
public:
|
||||
virtual void DrawAll();
|
||||
virtual void PrintAll();
|
||||
|
||||
protected:
|
||||
protected: // with description
|
||||
virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) = 0;
|
||||
|
||||
// The user MUST implement this method for generating hit(s) using the
|
||||
// information of G4Step object. Note that the volume and the position
|
||||
// information is kept in PreStepPoint of G4Step.
|
||||
// Be aware that this method is a protected method and it sill be invoked
|
||||
// by Hit() method of Base class after Readout geometry associated to the
|
||||
// sensitive detector is handled.
|
||||
// "ROhist" will be given only is a Readout geometry is defined to this
|
||||
// sensitive detector. The G4TouchableHistory object of the tracking geometry
|
||||
// is stored in the PreStepPoint object of G4Step.
|
||||
G4int GetCollectionID(G4int i);
|
||||
// This is a utility method which returns the hits collection ID of the
|
||||
// "i"-th collection. "i" is the order (starting with zero) of the collection
|
||||
// whose name is stored to the collectionName protected vector.
|
||||
G4RWTValOrderedVector<G4String> collectionName;
|
||||
// This protected name vector must be filled at the constructor of the user's
|
||||
// concrete class for registering the name(s) of hits collection(s) being
|
||||
// created by this particular sensitive detector.
|
||||
|
||||
protected:
|
||||
G4String SensitiveDetectorName; // detector name
|
||||
G4String thePathName; // directory path
|
||||
G4String fullPathName; // path + detector name
|
||||
G4int verboseLevel;
|
||||
G4bool active;
|
||||
RWTValOrderedVector<G4String> collectionName;
|
||||
|
||||
private:
|
||||
G4VReadOutGeometry * ROgeometry;
|
||||
|
||||
public:
|
||||
public: // with description
|
||||
inline G4bool Hit(G4Step*aStep)
|
||||
{
|
||||
G4bool ack = true;
|
||||
@@ -67,26 +105,33 @@ class G4VSensitiveDetector
|
||||
{ ack = ProcessHits(aStep,ROhis); }
|
||||
return ack;
|
||||
}
|
||||
inline G4int GetNumberOfCollections()
|
||||
{ return collectionName.entries(); };
|
||||
inline G4String GetCollectionName(G4int id)
|
||||
{ return collectionName[id]; };
|
||||
inline void SetVerboseLevel(G4int vl)
|
||||
{ verboseLevel = vl; };
|
||||
inline void Activate(G4bool activeFlag)
|
||||
{ active = activeFlag; };
|
||||
inline G4bool isActive()
|
||||
{ return active; };
|
||||
inline G4String GetName()
|
||||
{ return SensitiveDetectorName; };
|
||||
inline G4String GetPathName()
|
||||
{ return thePathName; };
|
||||
inline G4String GetFullPathName()
|
||||
{ return fullPathName; };
|
||||
// This is the public method invoked by G4SteppingManager for generating
|
||||
// hit(s). The actual user's implementation for generating hit(s) must be
|
||||
// implemented in GenerateHits() virtual protected method. This method
|
||||
// MUST NOT be overrided.
|
||||
inline void SetROgeometry(G4VReadOutGeometry*value)
|
||||
{ ROgeometry = value; };
|
||||
{ ROgeometry = value; }
|
||||
// Register the Readout geometry.
|
||||
|
||||
public:
|
||||
inline G4int GetNumberOfCollections()
|
||||
{ return collectionName.entries(); }
|
||||
inline G4String GetCollectionName(G4int id)
|
||||
{ return collectionName[id]; }
|
||||
inline void SetVerboseLevel(G4int vl)
|
||||
{ verboseLevel = vl; }
|
||||
inline void Activate(G4bool activeFlag)
|
||||
{ active = activeFlag; }
|
||||
inline G4bool isActive()
|
||||
{ return active; }
|
||||
inline G4String GetName()
|
||||
{ return SensitiveDetectorName; }
|
||||
inline G4String GetPathName()
|
||||
{ return thePathName; }
|
||||
inline G4String GetFullPathName()
|
||||
{ return fullPathName; }
|
||||
inline G4VReadOutGeometry* GetROgeometry()
|
||||
{ return ROgeometry; };
|
||||
{ return ROgeometry; }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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: G4HCtable.cc,v 1.1 1999/01/07 16:06:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HCtable.cc,v 1.1.8.1.2.1 1999/12/07 20:47:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4HCtable.hh"
|
||||
@@ -27,7 +27,7 @@ G4int G4HCtable::Registor(G4String SDname,G4String HCname)
|
||||
G4int G4HCtable::GetCollectionID(G4String HCname)
|
||||
{
|
||||
G4int i = -1;
|
||||
if(HCname.index("/")==RW_NPOS) // HCname only
|
||||
if(HCname.index("/")==G4std::string::npos) // HCname only
|
||||
{
|
||||
for(G4int j=0;j<HClist.entries();j++)
|
||||
{
|
||||
|
||||
@@ -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: G4SDManager.cc,v 1.1 1999/01/07 16:06:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SDManager.cc,v 1.1.10.1 1999/12/07 20:47:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4SDManager.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: G4SDStructure.cc,v 1.1 1999/01/07 16:06:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SDStructure.cc,v 1.1.8.1.2.1 1999/12/07 20:47:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4SDStructure
|
||||
@@ -92,7 +92,7 @@ G4String G4SDStructure::ExtractDirName(G4String aName)
|
||||
{
|
||||
G4String subD = aName;
|
||||
int i = aName.first('/');
|
||||
if( i != RW_NPOS ) subD.remove(i+1);
|
||||
if( i != G4std::string::npos ) subD.remove(i+1);
|
||||
return subD;
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ void G4SDStructure::Activate(G4String aName, G4bool sensitiveFlag)
|
||||
{
|
||||
G4String aPath = aName;
|
||||
aPath.remove(0,pathName.length());
|
||||
if( aPath.first('/') != RW_NPOS )
|
||||
if( aPath.first('/') != G4std::string::npos )
|
||||
{ // Command is ordered for a subdirectory.
|
||||
G4String subD = ExtractDirName(aPath);
|
||||
G4SDStructure* tgtSDS = FindSubDirectory(subD);
|
||||
@@ -142,7 +142,7 @@ G4VSensitiveDetector* G4SDStructure::FindSensitiveDetector(G4String aName)
|
||||
{
|
||||
G4String aPath = aName;
|
||||
aPath.remove(0,pathName.length());
|
||||
if( aPath.first('/') != RW_NPOS )
|
||||
if( aPath.first('/') != G4std::string::npos )
|
||||
{ // SD exists in sub-directory
|
||||
G4String subD = ExtractDirName(aPath);
|
||||
G4SDStructure* tgtSDS = FindSubDirectory(subD);
|
||||
|
||||
@@ -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: G4SDmessenger.cc,v 1.1 1999/01/07 16:06:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SDmessenger.cc,v 1.1.10.1 1999/12/07 20:47:45 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: G4SensitiveVolumeList.cc,v 1.1 1999/01/07 16:06:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4SensitiveVolumeList.cc,v 1.1.10.1 1999/12/07 20:47:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
|
||||
@@ -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: G4VReadOutGeometry.cc,v 1.1 1999/01/07 16:06:27 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VReadOutGeometry.cc,v 1.2.6.1 1999/12/07 20:47:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4VReadOutGeometry.hh"
|
||||
@@ -101,17 +101,20 @@ G4bool G4VReadOutGeometry::FindROTouchable(G4Step*currentStep)
|
||||
|
||||
// At first invokation, creates the touchable history. Note
|
||||
// that default value (false) of Locate method is used.
|
||||
// ---------> But the default Value is TRUE <-------------------- J.A.
|
||||
if(!touchableHistory)
|
||||
{
|
||||
touchableHistory = new G4TouchableHistory();
|
||||
ROnavigator->LocateGlobalPointAndUpdateTouchable(
|
||||
currentStep->GetPreStepPoint()->GetPosition(),
|
||||
currentStep->GetPreStepPoint()->GetMomentumDirection(),
|
||||
touchableHistory);
|
||||
}
|
||||
else
|
||||
{
|
||||
ROnavigator->LocateGlobalPointAndUpdateTouchable(
|
||||
currentStep->GetPreStepPoint()->GetPosition(),
|
||||
currentStep->GetPreStepPoint()->GetMomentumDirection(),
|
||||
touchableHistory,
|
||||
true);
|
||||
}
|
||||
|
||||
@@ -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: G4VSensitiveDetector.cc,v 1.1 1999/01/07 16:06:27 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VSensitiveDetector.cc,v 1.1.8.1.2.1 1999/12/07 20:47:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// G4VSensitiveDetector
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
@@ -16,7 +16,7 @@ G4VSensitiveDetector::G4VSensitiveDetector(G4String name)
|
||||
:verboseLevel(0),active(true),ROgeometry(NULL)
|
||||
{
|
||||
size_t sLast = name.last('/');
|
||||
if(sLast==RW_NPOS)
|
||||
if(sLast==G4std::string::npos)
|
||||
{ // detector name only
|
||||
SensitiveDetectorName = name;
|
||||
thePathName = "/";
|
||||
|
||||
@@ -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: G4DCofThisEvent.hh,v 1.1 1999/01/07 16:06:28 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4DCofThisEvent.hh,v 1.2.2.1.2.1 1999/12/07 20:47:46 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4DCofThisEvent_h
|
||||
@@ -15,7 +15,18 @@
|
||||
#include "globals.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4VDigiCollection.hh"
|
||||
#include <rw/tpordvec.h>
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a class which stores digi collections generated at one event.
|
||||
// This class is exclusively constructed by G4DigiManager when the first
|
||||
// digi collection of an event is passed to the manager, and this class
|
||||
// object is deleted by G4RunManager when a G4Event class object is deleted.
|
||||
// Almost all public methods must be used by Geant4 kernel classes and
|
||||
// the user should not invoke them. The user can use two const methods,
|
||||
// GetDC() and GetNumberOfCollections() for accessing to the stored digi
|
||||
// collection(s).
|
||||
|
||||
class G4DCofThisEvent
|
||||
{
|
||||
@@ -29,15 +40,16 @@ class G4DCofThisEvent
|
||||
void AddDigiCollection(G4int DCID,G4VDigiCollection * aDC);
|
||||
|
||||
private:
|
||||
RWTPtrOrderedVector<G4VDigiCollection> * DC;
|
||||
G4RWTPtrOrderedVector<G4VDigiCollection> * DC;
|
||||
|
||||
public:
|
||||
public: // with description
|
||||
inline G4VDigiCollection* GetDC(G4int i) const
|
||||
{ return (*DC)[i]; }
|
||||
inline G4int GetCapacity() const
|
||||
{
|
||||
return DC->entries();
|
||||
}
|
||||
// Returns a pointer to a digi collection. Null will be returned
|
||||
// if the particular collection is not stored at the current event.
|
||||
// The integer argument is ID number which is assigned by G4DigiManager
|
||||
// and the number can be obtained by G4DigiManager::GetDigiCollectionID()
|
||||
// method.
|
||||
inline G4int GetNumberOfCollections() const
|
||||
{
|
||||
G4int n = 0;
|
||||
@@ -47,6 +59,13 @@ class G4DCofThisEvent
|
||||
}
|
||||
return n;
|
||||
}
|
||||
// Returns the number of digi collections which are stored in this class
|
||||
// object.
|
||||
public:
|
||||
inline G4int GetCapacity() const
|
||||
{
|
||||
return DC->entries();
|
||||
}
|
||||
};
|
||||
|
||||
extern G4Allocator<G4DCofThisEvent> anDCoTHAllocator;
|
||||
|
||||
@@ -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: G4TDigiCollection.hh,v 1.1 1999/01/07 16:06:28 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4TDigiCollection.hh,v 1.5.2.1.2.1 1999/12/07 20:47:46 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4TDigiCollection_h
|
||||
@@ -15,7 +15,17 @@
|
||||
#include "G4VDigiCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "globals.hh"
|
||||
#include <rw/tpordvec.h>
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a template class of digi collection and parametrized by
|
||||
// The concrete class of G4VDigi. This is a uniform collection for
|
||||
// a particular concrete digi class objects.
|
||||
// An intermediate layer class G4DigiCollection appeared in this
|
||||
// header file is used just for G4Allocator, because G4Allocator
|
||||
// cannot be instansiated with a template class. Thus G4DigiCollection
|
||||
// class MUST NOT be directly used by the user.
|
||||
|
||||
class G4DigiCollection : public G4VDigiCollection
|
||||
{
|
||||
@@ -35,28 +45,44 @@ template <class T> class G4TDigiCollection : public G4DigiCollection
|
||||
{
|
||||
public:
|
||||
G4TDigiCollection();
|
||||
public: // with description
|
||||
G4TDigiCollection(G4String detName,G4String colNam);
|
||||
// Constructor.
|
||||
public:
|
||||
virtual ~G4TDigiCollection();
|
||||
int operator==(const G4TDigiCollection &right) const;
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void* aDC);
|
||||
|
||||
public: // with description
|
||||
virtual void DrawAllDigi();
|
||||
virtual void PrintAllDigi();
|
||||
// These two methods invokes Draw() and Print() methods of all of
|
||||
// digit objects stored in this collection, respectively.
|
||||
|
||||
public:
|
||||
inline T* operator[](size_t i)
|
||||
{ return (*((RWTPtrOrderedVector<T>*)theCollection))[i]; }
|
||||
inline RWTPtrOrderedVector<T>* GetVector()
|
||||
{ return (RWTPtrOrderedVector<T>*)theCollection; }
|
||||
public: // with description
|
||||
inline T* operator[](size_t i) const
|
||||
{ return (*((G4RWTPtrOrderedVector<T>*)theCollection))[i]; }
|
||||
// Returns a pointer to a concrete digi object.
|
||||
inline G4RWTPtrOrderedVector<T>* GetVector() const
|
||||
{ return (G4RWTPtrOrderedVector<T>*)theCollection; }
|
||||
// Returns a collection vector.
|
||||
inline int insert(T* aHit)
|
||||
{
|
||||
RWTPtrOrderedVector<T>*theDigiCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T>*theDigiCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
theDigiCollection->insert(aHit);
|
||||
return theDigiCollection->entries();
|
||||
}
|
||||
// Insert a digi object. Total number of digi objects stored in this
|
||||
// collection is returned.
|
||||
inline int entries() const
|
||||
{
|
||||
G4RWTPtrOrderedVector<T>*theDigiCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
return theDigiCollection->entries();
|
||||
}
|
||||
// Returns the number of digi objcets stored in this collection.
|
||||
};
|
||||
|
||||
template <class T> inline void* G4TDigiCollection<T>::operator new(size_t)
|
||||
@@ -73,23 +99,23 @@ template <class T> inline void G4TDigiCollection<T>::operator delete(void* aDC)
|
||||
|
||||
template <class T> G4TDigiCollection<T>::G4TDigiCollection()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= new RWTPtrOrderedVector<T>;
|
||||
G4RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= new G4RWTPtrOrderedVector<T>;
|
||||
theCollection = (void*)theDigiCollection;
|
||||
}
|
||||
|
||||
template <class T> G4TDigiCollection<T>::G4TDigiCollection(G4String detName,G4String colNam)
|
||||
: G4DigiCollection(detName,colNam)
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= new RWTPtrOrderedVector<T>;
|
||||
G4RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= new G4RWTPtrOrderedVector<T>;
|
||||
theCollection = (void*)theDigiCollection;
|
||||
}
|
||||
|
||||
template <class T> G4TDigiCollection<T>::~G4TDigiCollection()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
theDigiCollection->clearAndDestroy();
|
||||
delete theDigiCollection;
|
||||
}
|
||||
@@ -97,19 +123,19 @@ template <class T> G4TDigiCollection<T>::~G4TDigiCollection()
|
||||
template <class T> int G4TDigiCollection<T>::operator==(const G4TDigiCollection<T> &right) const
|
||||
{ return (collectionName==right.collectionName); }
|
||||
|
||||
template <class T> void G4TDigiCollection<T>::DrawAllDigi()
|
||||
template <class T> void G4TDigiCollection<T>::DrawAllDigi()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
int n = theDigiCollection->entries();
|
||||
for(int i=0;i<n;i++)
|
||||
{ (*theDigiCollection)[i]->Draw(); }
|
||||
}
|
||||
|
||||
template <class T> void G4TDigiCollection<T>::PrintAllDigi()
|
||||
template <class T> void G4TDigiCollection<T>::PrintAllDigi()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T> * theDigiCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
int n = theDigiCollection->entries();
|
||||
for(int i=0;i<n;i++)
|
||||
{ (*theDigiCollection)[i]->Print(); }
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
// 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: G4VDigi.hh,v 1.1 1999/01/07 16:06:28 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VDigi.hh,v 1.4.4.1 1999/12/07 20:47:46 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4VDigi_h
|
||||
#define G4VDigi_h 1
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the base class of digi object. The user should derive this
|
||||
// base class to make his/her own digi class. Two virtual method Draw()
|
||||
// and Print() can be implemented if the user wants these functionarities.
|
||||
// If a concrete digi class is used as a transient class, G4Allocator
|
||||
// must be used.
|
||||
|
||||
class G4VDigi
|
||||
{
|
||||
|
||||
|
||||
@@ -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: G4VDigiCollection.hh,v 1.1 1999/01/07 16:06:28 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VDigiCollection.hh,v 1.4.4.1 1999/12/07 20:47:46 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4VDigiCollection_h
|
||||
@@ -14,6 +14,15 @@
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the base class of digi collection. The user is advised to
|
||||
// use G4TDigiCollection template class in case his/her collection is
|
||||
// transient. While, in case the collection is persistent with ODBMS,
|
||||
// the concrete collection class can be directly derived from this
|
||||
// class.
|
||||
// Geant4 kernel will use this class methods.
|
||||
|
||||
class G4VDigiCollection
|
||||
{
|
||||
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: G4DCofThisEvent.cc,v 1.1 1999/01/07 16:06:29 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4DCofThisEvent.cc,v 1.1.8.1.2.1 1999/12/07 20:47:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4DCofThisEvent.hh"
|
||||
@@ -15,12 +15,12 @@ G4Allocator<G4DCofThisEvent> anDCoTHAllocator;
|
||||
|
||||
G4DCofThisEvent::G4DCofThisEvent()
|
||||
{
|
||||
DC = new RWTPtrOrderedVector<G4VDigiCollection>;
|
||||
DC = new G4RWTPtrOrderedVector<G4VDigiCollection>;
|
||||
}
|
||||
|
||||
G4DCofThisEvent::G4DCofThisEvent(G4int cap)
|
||||
{
|
||||
DC = new RWTPtrOrderedVector<G4VDigiCollection>;
|
||||
DC = new G4RWTPtrOrderedVector<G4VDigiCollection>;
|
||||
for(int i=0;i<cap;i++)
|
||||
{
|
||||
DC->insert((G4VDigiCollection*)NULL);
|
||||
|
||||
@@ -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: G4TDigiCollection.cc,v 1.1 1999/01/07 16:06:29 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4TDigiCollection.cc,v 1.1.10.1 1999/12/07 20:47:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4TDigiCollection.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: G4VDigi.cc,v 1.1 1999/01/07 16:06:29 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VDigi.cc,v 1.3.4.1 1999/12/07 20:47:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4VDigi
|
||||
@@ -22,9 +22,9 @@ G4VDigi::~G4VDigi()
|
||||
int G4VDigi::operator==(const G4VDigi &right) const
|
||||
{ return false; }
|
||||
|
||||
void G4VDigi::Draw()
|
||||
void G4VDigi::Draw()
|
||||
{;}
|
||||
|
||||
void G4VDigi::Print()
|
||||
void G4VDigi::Print()
|
||||
{;}
|
||||
|
||||
|
||||
@@ -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: G4VDigiCollection.cc,v 1.1 1999/01/07 16:06:29 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VDigiCollection.cc,v 1.3.4.1 1999/12/07 20:47:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4VDigiCollection
|
||||
@@ -34,9 +34,9 @@ int G4VDigiCollection::operator==(const G4VDigiCollection &right) const
|
||||
&&(DMname==right.DMname));
|
||||
}
|
||||
|
||||
void G4VDigiCollection::DrawAllDigi()
|
||||
void G4VDigiCollection::DrawAllDigi()
|
||||
{;}
|
||||
|
||||
void G4VDigiCollection::PrintAllDigi()
|
||||
void G4VDigiCollection::PrintAllDigi()
|
||||
{;}
|
||||
|
||||
|
||||
@@ -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: G4HCofThisEvent.hh,v 1.1 1999/01/07 16:06:30 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HCofThisEvent.hh,v 1.2.2.1.2.1 1999/12/07 20:47:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4HCofThisEvent_h
|
||||
@@ -15,7 +15,18 @@
|
||||
#include "globals.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4VHitsCollection.hh"
|
||||
#include <rw/tpordvec.h>
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a class which stores hits collections generated at one event.
|
||||
// This class is exclusively constructed by G4SDManager when the first
|
||||
// hits collection of an event is passed to the manager, and this class
|
||||
// object is deleted by G4RunManager when a G4Event class object is deleted.
|
||||
// Almost all public methods must be used by Geant4 kernel classes and
|
||||
// the user should not invoke them. The user can use two const methods,
|
||||
// GetHC() and GetNumberOfCollections() for accessing to the stored hits
|
||||
// collection(s).
|
||||
|
||||
class G4HCofThisEvent
|
||||
{
|
||||
@@ -29,15 +40,16 @@ class G4HCofThisEvent
|
||||
void AddHitsCollection(G4int HCID,G4VHitsCollection * aHC);
|
||||
|
||||
private:
|
||||
RWTPtrOrderedVector<G4VHitsCollection> * HC;
|
||||
G4RWTPtrOrderedVector<G4VHitsCollection> * HC;
|
||||
|
||||
public:
|
||||
public: // with description
|
||||
inline G4VHitsCollection* GetHC(G4int i)
|
||||
{ return (*HC)[i]; }
|
||||
inline G4int GetCapacity()
|
||||
{
|
||||
return HC->entries();
|
||||
}
|
||||
// Returns a pointer to a hits collection. Null will be returned
|
||||
// if the particular collection is not stored at the current event.
|
||||
// The integer argument is ID number which is assigned by G4SDManager
|
||||
// and the number can be obtained by G4SDManager::GetHitsCollectionID()
|
||||
// method.
|
||||
inline G4int GetNumberOfCollections()
|
||||
{
|
||||
G4int n = 0;
|
||||
@@ -47,6 +59,13 @@ class G4HCofThisEvent
|
||||
}
|
||||
return n;
|
||||
}
|
||||
// Returns the number of hits collections which are stored in this class
|
||||
// object.
|
||||
public:
|
||||
inline G4int GetCapacity()
|
||||
{
|
||||
return HC->entries();
|
||||
}
|
||||
};
|
||||
|
||||
extern G4Allocator<G4HCofThisEvent> anHCoTHAllocator;
|
||||
|
||||
@@ -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: G4THitsCollection.hh,v 1.1 1999/01/07 16:06:30 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4THitsCollection.hh,v 1.4.2.1.2.1 1999/12/07 20:47:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4THitsCollection_h
|
||||
@@ -15,7 +15,17 @@
|
||||
#include "G4VHitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "globals.hh"
|
||||
#include <rw/tpordvec.h>
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is a template class of hits collection and parametrized by
|
||||
// The concrete class of G4VHit. This is a uniform collection for
|
||||
// a particular concrete hit class objects.
|
||||
// An intermediate layer class G4HitsCollection appeared in this
|
||||
// header file is used just for G4Allocator, because G4Allocator
|
||||
// cannot be instansiated with a template class. Thus G4HitsCollection
|
||||
// class MUST NOT be directly used by the user.
|
||||
|
||||
class G4HitsCollection : public G4VHitsCollection
|
||||
{
|
||||
@@ -35,34 +45,44 @@ template <class T> class G4THitsCollection : public G4HitsCollection
|
||||
{
|
||||
public:
|
||||
G4THitsCollection();
|
||||
public: // with description
|
||||
G4THitsCollection(G4String detName,G4String colNam);
|
||||
// constructor.
|
||||
public:
|
||||
virtual ~G4THitsCollection();
|
||||
int operator==(const G4THitsCollection<T> &right) const;
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void* anHC);
|
||||
|
||||
public: // with description
|
||||
virtual void DrawAllHits();
|
||||
virtual void PrintAllHits();
|
||||
// These two methods invokes Draw() and Print() methods of all of
|
||||
// hit objects stored in this collection, respectively.
|
||||
|
||||
public:
|
||||
inline T* operator[](size_t i)
|
||||
{ return (*((RWTPtrOrderedVector<T>*)theCollection))[i]; }
|
||||
inline RWTPtrOrderedVector<T>* GetVector()
|
||||
{ return (RWTPtrOrderedVector<T>*)theCollection; }
|
||||
public: // with description
|
||||
inline T* operator[](size_t i) const
|
||||
{ return (*((G4RWTPtrOrderedVector<T>*)theCollection))[i]; }
|
||||
// Returns a pointer to a concrete hit object.
|
||||
inline G4RWTPtrOrderedVector<T>* GetVector() const
|
||||
{ return (G4RWTPtrOrderedVector<T>*)theCollection; }
|
||||
// Returns a collection vector.
|
||||
inline int insert(T* aHit)
|
||||
{
|
||||
RWTPtrOrderedVector<T>*theHitsCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T>*theHitsCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
theHitsCollection->insert(aHit);
|
||||
return theHitsCollection->entries();
|
||||
}
|
||||
inline int entries()
|
||||
// Insert a hit object. Total number of hit objects stored in this
|
||||
// collection is returned.
|
||||
inline int entries() const
|
||||
{
|
||||
RWTPtrOrderedVector<T>*theHitsCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T>*theHitsCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
return theHitsCollection->entries();
|
||||
}
|
||||
// Returns the number of hit objects stored in this collection
|
||||
|
||||
};
|
||||
|
||||
@@ -80,23 +100,23 @@ template <class T> inline void G4THitsCollection<T>::operator delete(void* anHC)
|
||||
|
||||
template <class T> G4THitsCollection<T>::G4THitsCollection()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= new RWTPtrOrderedVector<T>;
|
||||
G4RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= new G4RWTPtrOrderedVector<T>;
|
||||
theCollection = (void*)theHitsCollection;
|
||||
}
|
||||
|
||||
template <class T> G4THitsCollection<T>::G4THitsCollection(G4String detName,G4String colNam)
|
||||
: G4HitsCollection(detName,colNam)
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= new RWTPtrOrderedVector<T>;
|
||||
G4RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= new G4RWTPtrOrderedVector<T>;
|
||||
theCollection = (void*)theHitsCollection;
|
||||
}
|
||||
|
||||
template <class T> G4THitsCollection<T>::~G4THitsCollection()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
theHitsCollection->clearAndDestroy();
|
||||
delete theHitsCollection;
|
||||
}
|
||||
@@ -104,19 +124,19 @@ template <class T> G4THitsCollection<T>::~G4THitsCollection()
|
||||
template <class T> int G4THitsCollection<T>::operator==(const G4THitsCollection<T> &right) const
|
||||
{ return (collectionName==right.collectionName); }
|
||||
|
||||
template <class T> void G4THitsCollection<T>::DrawAllHits()
|
||||
template <class T> void G4THitsCollection<T>::DrawAllHits()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
int n = theHitsCollection->entries();
|
||||
for(int i=0;i<n;i++)
|
||||
{ (*theHitsCollection)[i]->Draw(); }
|
||||
}
|
||||
|
||||
template <class T> void G4THitsCollection<T>::PrintAllHits()
|
||||
template <class T> void G4THitsCollection<T>::PrintAllHits()
|
||||
{
|
||||
RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= (RWTPtrOrderedVector<T>*)theCollection;
|
||||
G4RWTPtrOrderedVector<T> * theHitsCollection
|
||||
= (G4RWTPtrOrderedVector<T>*)theCollection;
|
||||
int n = theHitsCollection->entries();
|
||||
for(int i=0;i<n;i++)
|
||||
{ (*theHitsCollection)[i]->Print(); }
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
// 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: G4VHit.hh,v 1.1 1999/01/07 16:06:30 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VHit.hh,v 1.3.4.1 1999/12/07 20:47:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4VHit_h
|
||||
#define G4VHit_h 1
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the base class of hit object. The user should derive this
|
||||
// base class to make his/her own hit class. Two virtual method Draw()
|
||||
// and Print() can be implemented if the user wants these functionarities.
|
||||
// If a concrete hit class is used as a transient class, G4Allocator
|
||||
// must be used.
|
||||
|
||||
class G4VHit
|
||||
{
|
||||
|
||||
|
||||
@@ -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: G4VHitsCollection.hh,v 1.1 1999/01/07 16:06:30 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VHitsCollection.hh,v 1.3.4.1 1999/12/07 20:47:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#ifndef G4VHitsCollection_h
|
||||
@@ -14,6 +14,15 @@
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
// class description:
|
||||
//
|
||||
// This is the base class of hits collection. The user is advised to
|
||||
// use G4THitsCollection template class in case his/her collection is
|
||||
// transient. While, in case the collection is persistent with ODBMS,
|
||||
// the concrete collection class can be directly derived from this
|
||||
// class.
|
||||
// Geant4 kernel will use this class methods.
|
||||
|
||||
class G4VHitsCollection
|
||||
{
|
||||
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: G4HCofThisEvent.cc,v 1.1 1999/01/07 16:06:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4HCofThisEvent.cc,v 1.1.8.1.2.1 1999/12/07 20:47:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4HCofThisEvent.hh"
|
||||
@@ -15,12 +15,12 @@ G4Allocator<G4HCofThisEvent> anHCoTHAllocator;
|
||||
|
||||
G4HCofThisEvent::G4HCofThisEvent()
|
||||
{
|
||||
HC = new RWTPtrOrderedVector<G4VHitsCollection>;
|
||||
HC = new G4RWTPtrOrderedVector<G4VHitsCollection>;
|
||||
}
|
||||
|
||||
G4HCofThisEvent::G4HCofThisEvent(G4int cap)
|
||||
{
|
||||
HC = new RWTPtrOrderedVector<G4VHitsCollection>;
|
||||
HC = new G4RWTPtrOrderedVector<G4VHitsCollection>;
|
||||
for(int i=0;i<cap;i++)
|
||||
{
|
||||
HC->insert((G4VHitsCollection*)NULL);
|
||||
|
||||
@@ -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: G4THitsCollection.cc,v 1.1 1999/01/07 16:06:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4THitsCollection.cc,v 1.1.10.1 1999/12/07 20:47:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
#include "G4THitsCollection.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: G4VHit.cc,v 1.1 1999/01/07 16:06:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VHit.cc,v 1.1.10.1 1999/12/07 20:47:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4VHit
|
||||
|
||||
@@ -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: G4VHitsCollection.cc,v 1.1 1999/01/07 16:06:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G4VHitsCollection.cc,v 1.1.10.1 1999/12/07 20:47:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
// G4VHitsCollection
|
||||
|
||||
@@ -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
|
||||
|
||||
+45
-9
@@ -1,8 +1,44 @@
|
||||
$Id: History,v 1.18 1999/05/28 23:34:49 lockman Exp $
|
||||
$Id: History,v 1.26 1999/12/05 17:49:58 gcosmo Exp $
|
||||
|
||||
G3toG4 Modification History (reverse chronological order, please !)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
g3tog4-V00-01-cand03 05-Dec-1999 G.Cosmo
|
||||
- Merged HEAD of main trunk with tag "wsl-991205" which now includes
|
||||
updates by Ivana&Pedro, as well as RW->G4RW migration, STL map
|
||||
migration and integration work by B.Lockman.
|
||||
|
||||
g3tog4-br4_0_1fixes-iv2-99nov11 12-Nov-1999 J. Apostolakis
|
||||
- Tag of new fixes from consolidation of changes by Ivana & Pedro,
|
||||
as these fixes were on November 11th, at 15:00
|
||||
|
||||
g3tog4-br4_0_1fixes-iv1-99nov02 12-Nov-1999 J. Apostolakis
|
||||
- Tag of fixes from consolidation of changes by Ivana & Pedro,
|
||||
as these fixes were on November 2nd.
|
||||
|
||||
Summary of changes to be added here (to be obtained from Ivana, Pedro)
|
||||
|
||||
g3tog4-4_0_1-fixes-branch Branch for fixes
|
||||
- Changes introduced and tested by Ivana Hrivnacova and Pedro Arce
|
||||
based on geant4-00-01
|
||||
|
||||
g3tog4-V00-01-02 22-Nov-1999 Lockman
|
||||
- g3test.F renamed to g3test.F.save
|
||||
- G3RotTable::get now returns a pointer to a G4RotationMatrix thru an upcast
|
||||
- G4BuildTree : now get G4RotationMatrix* rather than G3toG4Rotationmatrix*
|
||||
|
||||
g3tog4-V00-01-01 20-Oct-99 Allison
|
||||
- G3MatTable.cc: introduced G4String matid (a(3,lngth)) to help STL Interface.
|
||||
|
||||
g3tog4-V00-01-00 28-Jul-1999 Lockman
|
||||
- Commented out "Deleted..." in destructors.
|
||||
|
||||
g3tog4-01-01-00 19-Jul-1999 Lockman
|
||||
- G3matTable, G3MedTable, G3RotTable: convert from lists G4RWTPtrOrderedVector
|
||||
to G4RWTPtrHashDictionary to allow for noncontiguous indices
|
||||
- G3RotTable::Put,Get->put,get.
|
||||
- G3toG4BuildGeom, G4gsrotm: put,get signature change
|
||||
|
||||
g3tog4-01-00-06 28-May-1999 Lockman
|
||||
- ~G3Mat,MedTable: do not destroy G4Material Objects in list. Do a clear()
|
||||
of the list, not clearAndDestroy, then delete the list.
|
||||
@@ -24,16 +60,16 @@ g3tog4-01-00-06 28-May-1999 Lockman
|
||||
|
||||
g3tog4-01-00-05 Lockman
|
||||
- G3G4Interface: G4Strings passed by reference in G4gspos, G4gsposp
|
||||
- G3PartTable: now uses RWTPtrHashDictionary instead of RWGDList
|
||||
- G3PartTable: now uses G4RWTPtrHashDictionary instead of RWGDList
|
||||
- G3RotTable: method name "get" changed to "Get". Space for unit rotation
|
||||
matrix at element 0 in RWTPtrOrderedVector. This matrix is instantiated
|
||||
matrix at element 0 in G4RWTPtrOrderedVector. This matrix is instantiated
|
||||
in G4BuildGeom prior to call list read.
|
||||
- G3VolTable: many new methods to handle VolTableEntry and G3Pos objects.
|
||||
removed GetPV method.
|
||||
- G3toG4.hh: removed G3NegVolPars method
|
||||
- G3DetTable: commented out some G4cerr's
|
||||
- G3EleTable: some minor internal changes
|
||||
- G3PartTable: convert to use RWTPtrHashDictionary
|
||||
- G3PartTable: convert to use G4RWTPtrHashDictionary
|
||||
- Added G3Pos class
|
||||
- Added G3toG4BuildTree which calls G4LogicalVolume and G4PVPlacement based on
|
||||
G3VolTable
|
||||
@@ -58,7 +94,7 @@ g3tog4-01-00-05 Lockman
|
||||
|
||||
17-May-1999 Lockman
|
||||
- converted G3PartTable to RWTPtrhaswhDictionary
|
||||
- reinstituted VolTableEntry and G3VolTable RWTPtrHashDictionary. Creation of
|
||||
- reinstituted VolTableEntry and G3VolTable G4RWTPtrHashDictionary. Creation of
|
||||
logical volume now done in G3VolTable::PutLV
|
||||
- G4makevol.cc: added interface to G4Hype
|
||||
|
||||
@@ -70,14 +106,14 @@ g3tog4-01-00-04 11-May-1999 Lockman
|
||||
with header file
|
||||
|
||||
g3tog4-01-00-03 6-May-1999 Lockman
|
||||
- G3MatTable, G3RotTable, G3MedTable: updated to use RWTPtrOrderedVector
|
||||
instead of RWTPtrHashDictionary
|
||||
- G3MatTable, G3RotTable, G3MedTable: updated to use G4RWTPtrOrderedVector
|
||||
instead of G4RWTPtrHashDictionary
|
||||
|
||||
g3tog4-01-00-02 5-May-1999 Lockman
|
||||
- temporarily comment out G4gsdv* code
|
||||
- G4gstmed: now just store a link between tracking medium number and assoicated
|
||||
G4Material pointer
|
||||
- replaced rw/gdlist with RWTPtrHashDictionary
|
||||
- replaced rw/gdlist with G4RWTPtrHashDictionary
|
||||
- replaced iostream.h with G4ios.hh everywhere
|
||||
- added G3EleTable to manage elements in G3toG4
|
||||
- tog4.F, g3routines.F: generate gsmixt instructions in call list
|
||||
@@ -311,7 +347,7 @@ G3toG4.hh: commented out extern declaration of min(). Porting on HP-UX10.
|
||||
|
||||
16-Jul 1997 B. Lockman
|
||||
G3Mother.cc: set the vis attributes of the mother to be invisible
|
||||
G4makevol.cc: commented out the forward declaration class RWTValVector<double>;
|
||||
G4makevol.cc: commented out the forward declaration class G4RWTValVector<double>;
|
||||
|
||||
17-Jun-1997 T. Wenaus
|
||||
- GNUmakefile mod to exclude g4geom.cc from library
|
||||
|
||||
@@ -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: G3CalcParams.hh,v 1.1 1999/01/07 16:06:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3CalcParams.hh,v 1.2 1999/12/05 17:50:00 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// class G3CalcParams
|
||||
//
|
||||
|
||||
@@ -1,54 +1,34 @@
|
||||
#ifndef G3DETTABLE
|
||||
#define G3DETTABLE 1
|
||||
// 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: G3DetTable.hh,v 1.2 1999/05/07 04:15:57 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3DetTable.hh,v 1.4 1999/12/05 17:50:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// G3 materials table.
|
||||
// Maps G3 material indices to their G4 material object counterparts.
|
||||
// Maintains a linked List of G3 material index/G4 material pointer pairs.
|
||||
|
||||
#include <rw/tphdict.h>
|
||||
// G3DetTable class
|
||||
|
||||
#include "g4std/map"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VSensitiveDetector;
|
||||
|
||||
class DetTableEntry {
|
||||
private:
|
||||
G4String _set;
|
||||
G4String _det;
|
||||
G4int _id;
|
||||
G4VSensitiveDetector* _detpt;
|
||||
|
||||
public:
|
||||
DetTableEntry(G4String& set, G4String& det, G4int id,
|
||||
G4VSensitiveDetector* D);
|
||||
~DetTableEntry();
|
||||
G4VSensitiveDetector* getSD();
|
||||
G4String getset();
|
||||
G4String getdet();
|
||||
G4int getid();
|
||||
};
|
||||
#include "G3DetTableEntry.hh"
|
||||
|
||||
class G3DetTable {
|
||||
private:
|
||||
RWTPtrHashDictionary<G4String, DetTableEntry>* _Det;
|
||||
G4std::map<G4String, G3DetTableEntry*, less<G4String> > DTD;
|
||||
G4String MakeHash(G4String& set, G4String& det);
|
||||
DetTableEntry* _DTE;
|
||||
|
||||
public:
|
||||
G3DetTable();
|
||||
~G3DetTable();
|
||||
G4VSensitiveDetector* getSD(G4String& set, G4String& det);
|
||||
virtual ~G3DetTable();
|
||||
G4int GetID(G4String& set, G4String& det);
|
||||
void put(G4String& set, G4String& det, G4int id, G4VSensitiveDetector* D);
|
||||
|
||||
void Put(G4String& set, G4String& det, G4int id, G4VSensitiveDetector* D);
|
||||
G4VSensitiveDetector* GetSD(G4String& set, G4String& det);
|
||||
void PrintAll();
|
||||
};
|
||||
|
||||
extern G3DetTable G3Det;
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
#ifndef DETTABLEENTRY
|
||||
#define DETTABLEENTRY 1
|
||||
// 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: G3DetTableEntry.hh,v 1.2 1999/12/05 17:50:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// G3DetTableEntry class
|
||||
|
||||
#include "g4std/map"
|
||||
#include "globals.hh"
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
|
||||
class G3DetTableEntry {
|
||||
private:
|
||||
G4String _set;
|
||||
G4String _det;
|
||||
G4int _id;
|
||||
G4VSensitiveDetector* _detpt;
|
||||
|
||||
public:
|
||||
G3DetTableEntry(G4String& set, G4String& det, G4int id,
|
||||
G4VSensitiveDetector* D);
|
||||
~G3DetTableEntry();
|
||||
G4VSensitiveDetector* GetSD();
|
||||
G4String GetSet();
|
||||
G4String GetDet();
|
||||
G4int GetID();
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,67 @@
|
||||
// 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: G3Division.hh,v 1.2 1999/12/05 17:50:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// by I.Hrivnacova, V.Berejnoi, 27 Sep 99
|
||||
|
||||
#ifndef G3_DIVISION_H
|
||||
#define G3_DIVISION_H
|
||||
|
||||
#include "globals.hh"
|
||||
#include "geomdefs.hh"
|
||||
|
||||
class G3VolTableEntry;
|
||||
class G4VPhysicalVolume;
|
||||
class G4LogicalVolume;
|
||||
|
||||
enum G3DivType { kDvn, kDvn2, kDvt, kDvt2 };
|
||||
|
||||
class G3Division
|
||||
{
|
||||
public:
|
||||
G3Division(G3DivType type, G3VolTableEntry* vte, G3VolTableEntry* mvte,
|
||||
G4int nofDivision, G4int iaxis, G4int nmed, G4double c0,
|
||||
G4double step);
|
||||
G3Division(G3VolTableEntry* vte, G3VolTableEntry* mvte,
|
||||
const G3Division& division);
|
||||
virtual ~G3Division();
|
||||
|
||||
// methods
|
||||
void UpdateVTE();
|
||||
G4VPhysicalVolume* CreatePVReplica();
|
||||
|
||||
private:
|
||||
// methods
|
||||
void SetRangeAndAxis();
|
||||
void CreateSolid(G4String shape, G4double par[], G4int npar);
|
||||
G3VolTableEntry* CreateEnvelope(G4String shape, G4double hi, G4double lo,
|
||||
G4double par[], G4int npar);
|
||||
G3VolTableEntry* Dvn ();
|
||||
G3VolTableEntry* Dvn2();
|
||||
G3VolTableEntry* Dvt ();
|
||||
G3VolTableEntry* Dvt2();
|
||||
void Exception(G4String where, G4String what);
|
||||
|
||||
// data members
|
||||
G3DivType fType;
|
||||
G3VolTableEntry* fVTE;
|
||||
G3VolTableEntry* fMVTE;
|
||||
G4int fNofDivisions; // ndiv/ndvmx
|
||||
G4int fIAxis;
|
||||
G4int fNmed;
|
||||
G4double fC0;
|
||||
G4double fStep;
|
||||
G4double fLowRange;
|
||||
G4double fHighRange;
|
||||
G4double fWidth;
|
||||
G4double fOffset;
|
||||
EAxis fAxis;
|
||||
};
|
||||
|
||||
#endif //G3_DIVISION_H
|
||||
@@ -1,17 +1,17 @@
|
||||
#ifndef _G4ELETABLE_
|
||||
#define _G4ELETABLE_ 1
|
||||
// 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: G3EleTable.hh,v 1.1 1999/05/06 04:19:58 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3EleTable.hh,v 1.3 1999/12/05 17:50:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
#include <rw/ctoken.h>
|
||||
#include <rw/tpordvec.h>
|
||||
#include "g4rw/ctoken.h"
|
||||
#include "g4rw/tpordvec.h"
|
||||
#include "globals.hh"
|
||||
#include "G4Element.hh"
|
||||
|
||||
|
||||
@@ -1,30 +1,31 @@
|
||||
// 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: G3G4Interface.hh,v 1.4 1999/05/26 03:46:16 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3G4Interface.hh,v 1.5 1999/12/05 17:50:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Interfaces for G3 equivalent routines
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4LogicalVolume;
|
||||
|
||||
void G4gsvolu(G4String name, G4String shape, G4int nmed, G4double* par,
|
||||
G4int npar);
|
||||
|
||||
void G4gspos(G4String& name, G4int num, G4String& moth,
|
||||
void G4gspos(G4String name, G4int num, G4String moth,
|
||||
G4double x, G4double y, G4double z, G4int irot,
|
||||
G4String& only);
|
||||
G4String only);
|
||||
|
||||
void G4gsposp(G4String& name, G4int num, G4String& moth,
|
||||
void G4gsposp(G4String name, G4int num, G4String moth,
|
||||
G4double x, G4double y, G4double z, G4int irot,
|
||||
G4String& only, G4double* Rpar, G4int npar);
|
||||
G4String only, G4double Rpar[], G4int npar);
|
||||
|
||||
void G4gsrotm(G4int irot, G4double theta1, G4double phi1,
|
||||
G4double theta2, G4double phi2, G4double theta3, G4double phi3);
|
||||
|
||||
@@ -1,33 +1,44 @@
|
||||
#ifndef _G3MATTABLE_
|
||||
#define _G3MATTABLE_ 1
|
||||
|
||||
// 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: G3MatTable.hh,v 1.3 1999/05/06 17:46:37 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3MatTable.hh,v 1.7 1999/12/05 17:50:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// G3 materials table.
|
||||
// Maps G3 material indices to their G4 material object counterparts.
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#include <rw/tpordvec.h>
|
||||
#ifndef G3_MAT_TABLE_H
|
||||
#define G3_MAT_TABLE_H
|
||||
|
||||
#include "G3MatTableEntry.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
class G4Material;
|
||||
|
||||
class G3MatTable {
|
||||
private:
|
||||
RWTPtrOrderedVector<G4Material>* _Mat;
|
||||
public:
|
||||
G3MatTable();
|
||||
~G3MatTable();
|
||||
G4Material* get(G4int matid);
|
||||
void put(G4int matid, G4Material* matpt);
|
||||
typedef G4RWTPtrOrderedVector<G3MatTableEntry> G3MaterialVector;
|
||||
|
||||
class G3MatTable
|
||||
{
|
||||
public:
|
||||
G3MatTable();
|
||||
virtual ~G3MatTable();
|
||||
|
||||
// methods
|
||||
// keep the same names of methods as in G4 g3tog4
|
||||
G4Material* get(G4int id) const;
|
||||
void put(G4int id, G4Material* material);
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
G3MaterialVector* fMatVector;
|
||||
};
|
||||
|
||||
extern G3MatTable G3Mat;
|
||||
#endif
|
||||
|
||||
#endif //G3_MAT_TABLE_H
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
// 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: G3MatTableEntry.hh,v 1.2 1999/12/05 17:50:02 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#ifndef G3_MAT_TABLE_ENTRY_H
|
||||
#define G3_MAT_TABLE_ENTRY_H
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Material;
|
||||
|
||||
class G3MatTableEntry
|
||||
{
|
||||
public:
|
||||
G3MatTableEntry(G4int id, G4Material* material);
|
||||
G3MatTableEntry(const G3MatTableEntry& right);
|
||||
virtual ~G3MatTableEntry();
|
||||
|
||||
// operators
|
||||
const G3MatTableEntry& operator=(const G3MatTableEntry& right);
|
||||
G4int operator==(const G3MatTableEntry& right) const;
|
||||
G4int operator!=(const G3MatTableEntry& right) const;
|
||||
|
||||
// get methods
|
||||
G4int GetID() const;
|
||||
G4Material* GetMaterial() const;
|
||||
|
||||
private:
|
||||
// data members
|
||||
G4int fID;
|
||||
G4Material* fMaterial;
|
||||
};
|
||||
|
||||
// inline methods
|
||||
|
||||
inline G4int G3MatTableEntry::GetID() const
|
||||
{ return fID; }
|
||||
|
||||
inline G4Material* G3MatTableEntry::GetMaterial() const
|
||||
{ return fMaterial; }
|
||||
|
||||
#endif //G3_MAT_TABLE_ENTRY_H
|
||||
@@ -1,32 +1,46 @@
|
||||
#ifndef _G3MEDTABLE_
|
||||
#define _G3MEDTABLE_ 1
|
||||
|
||||
// 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: G3MedTable.hh,v 1.3 1999/05/06 18:01:50 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3MedTable.hh,v 1.6 1999/12/05 17:50:02 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// Maps G3 tracking media indices to G4Material*
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#include <rw/tpordvec.h>
|
||||
#ifndef G3_MED_TABLE_H
|
||||
#define G3_MED_TABLE_H
|
||||
|
||||
#include "G3MedTableEntry.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
class G4Material;
|
||||
class G4MagneticField;
|
||||
class G4UserLimits;
|
||||
|
||||
class G3MedTable {
|
||||
private:
|
||||
RWTPtrOrderedVector<G4Material>* _Med;
|
||||
public:
|
||||
G3MedTable();
|
||||
~G3MedTable();
|
||||
G4Material* get(G4int medid);
|
||||
void put(G4int medid, G4Material* matpt);
|
||||
typedef G4RWTPtrOrderedVector<G3MedTableEntry> G3MediumVector;
|
||||
|
||||
class G3MedTable
|
||||
{
|
||||
public:
|
||||
G3MedTable();
|
||||
virtual ~G3MedTable();
|
||||
|
||||
// methods
|
||||
G3MedTableEntry* get(G4int id) const;
|
||||
void put(G4int id, G4Material* material, G4MagneticField* field,
|
||||
G4UserLimits* limits, G4int isvol);
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
G3MediumVector* fMedVector;
|
||||
};
|
||||
|
||||
extern G3MedTable G3Med;
|
||||
#endif
|
||||
|
||||
#endif //G3_MED_TABLE_H
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
// 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: G3MedTableEntry.hh,v 1.2 1999/12/05 17:50:02 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#ifndef G3_MED_TABLE_ENTRY_H
|
||||
#define G3_MED_TABLE_ENTRY_H
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Material;
|
||||
class G4MagneticField;
|
||||
class G4UserLimits;
|
||||
|
||||
class G3MedTableEntry
|
||||
{
|
||||
public:
|
||||
G3MedTableEntry(G4int id, G4Material* material, G4MagneticField* field,
|
||||
G4UserLimits* limits, G4int isvol);
|
||||
G3MedTableEntry(const G3MedTableEntry& right);
|
||||
virtual ~G3MedTableEntry();
|
||||
|
||||
// operators
|
||||
const G3MedTableEntry& operator=(const G3MedTableEntry& right);
|
||||
G4int operator==(const G3MedTableEntry& right) const;
|
||||
G4int operator!=(const G3MedTableEntry& right) const;
|
||||
|
||||
// set methods
|
||||
void SetMaterial(G4Material* material);
|
||||
void SetField(G4MagneticField* field);
|
||||
void SetLimits(G4UserLimits* limits);
|
||||
void SetISVOL(G4int isvol);
|
||||
|
||||
// get methods
|
||||
G4int GetID() const;
|
||||
G4Material* GetMaterial() const;
|
||||
G4MagneticField* GetField() const;
|
||||
G4UserLimits* GetLimits() const;
|
||||
G4int GetISVOL() const;
|
||||
|
||||
private:
|
||||
// data members
|
||||
G4int fID;
|
||||
G4Material* fMaterial;
|
||||
G4MagneticField* fField;
|
||||
G4UserLimits* fLimits;
|
||||
G4int fISVOL;
|
||||
//G4double deemax;
|
||||
//G4double epsil;
|
||||
};
|
||||
|
||||
// inline methods
|
||||
|
||||
inline void G3MedTableEntry::SetMaterial(G4Material* material)
|
||||
{ fMaterial = material; }
|
||||
|
||||
inline void G3MedTableEntry::SetField(G4MagneticField* field)
|
||||
{ fField = field; }
|
||||
|
||||
inline void G3MedTableEntry::SetLimits(G4UserLimits* limits)
|
||||
{ fLimits = limits; }
|
||||
|
||||
inline void G3MedTableEntry::SetISVOL(G4int isvol)
|
||||
{ fISVOL = isvol; }
|
||||
|
||||
inline G4int G3MedTableEntry::GetID() const
|
||||
{ return fID; }
|
||||
|
||||
inline G4Material* G3MedTableEntry::GetMaterial() const
|
||||
{ return fMaterial; }
|
||||
|
||||
inline G4MagneticField* G3MedTableEntry::GetField() const
|
||||
{ return fField; }
|
||||
|
||||
inline G4UserLimits* G3MedTableEntry::GetLimits() const
|
||||
{ return fLimits; }
|
||||
|
||||
inline G4int G3MedTableEntry::GetISVOL() const
|
||||
{ return fISVOL; }
|
||||
|
||||
#endif //G3_MAT_TABLE_ENTRY_H
|
||||
@@ -1,31 +1,32 @@
|
||||
// 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: G3PartTable.hh,v 1.2 1999/05/18 03:49:01 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3PartTable.hh,v 1.4 1999/12/05 17:50:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// G3 materials table.
|
||||
// Maps G3 material indices to their G4 material object counterparts.
|
||||
// Maintains a linked List of G3 material index/G4 material pointer pairs.
|
||||
|
||||
#include <rw/tphdict.h>
|
||||
#include "g4std/map"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
class G3PartTable {
|
||||
private:
|
||||
RWTPtrHashDictionary<G4String, G4ParticleDefinition>* _PTD;
|
||||
G4std::map<G4String, G4ParticleDefinition*, less<G4String> > PTD;
|
||||
void HashID(G4int partid, G4String* _HID);
|
||||
void HashID(G4int partid, G4String& _HID);
|
||||
public:
|
||||
G3PartTable();
|
||||
~G3PartTable();
|
||||
G4ParticleDefinition* get(G4int partid);
|
||||
void put(G4int partid, G4ParticleDefinition* partpt);
|
||||
G3PartTable();
|
||||
virtual ~G3PartTable();
|
||||
G4ParticleDefinition* Get(G4int partid);
|
||||
void Put(G4int partid, G4ParticleDefinition* partpt);
|
||||
void PrintAll();
|
||||
};
|
||||
|
||||
extern G3PartTable G3Part;
|
||||
|
||||
@@ -1,30 +1,37 @@
|
||||
// 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: G3Pos.hh,v 1.6 1999/12/05 17:50:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
#ifndef _G3POS_
|
||||
#define _G3POS_ 1
|
||||
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class VolTableEntry;
|
||||
|
||||
class G3Pos{
|
||||
private:
|
||||
VolTableEntry* _VTE;
|
||||
G4String _MotherName;
|
||||
G4int _Copy;
|
||||
G4String _LV;
|
||||
G4ThreeVector* _Position;
|
||||
G4int _Irot;
|
||||
G4String _Only;
|
||||
public:
|
||||
G3Pos(){;}
|
||||
|
||||
G3Pos(G4String& LV, G4int C, G4ThreeVector* T, G4int R, G4String& O);
|
||||
G3Pos(G4String M, G4int C, G4ThreeVector* T, G4int R, G4String O);
|
||||
|
||||
G4bool operator == (const G3Pos& g3p) const;
|
||||
|
||||
virtual ~G3Pos();
|
||||
|
||||
VolTableEntry* GetVTE();
|
||||
|
||||
G4String& GetName();
|
||||
G4String& GetMotherName();
|
||||
|
||||
G4int GetIrot();
|
||||
|
||||
|
||||
@@ -1,33 +1,46 @@
|
||||
#ifndef _G3ROTTABLE_
|
||||
#define _G3ROTTABLE_ 1
|
||||
|
||||
// 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: G3RotTable.hh,v 1.5 1999/05/26 03:46:29 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3RotTable.hh,v 1.9 1999/12/05 17:50:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// G3 materials table.
|
||||
// Maps G3 material indices to their G4 material object counterparts.
|
||||
// Maintains a linked List of G3 material index/G4 material pointer pairs.
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#include <rw/tpordvec.h>
|
||||
#include "G3toG4RotationMatrix.hh"
|
||||
#ifndef G3_ROT_TABLE_H
|
||||
#define G3_ROT_TABLE_H
|
||||
|
||||
class G3RotTable {
|
||||
private:
|
||||
RWTPtrOrderedVector<G3toG4RotationMatrix>* _Rot;
|
||||
public:
|
||||
G3RotTable();
|
||||
~G3RotTable();
|
||||
G3toG4RotationMatrix* Get(G4int rotid);
|
||||
void Put(G4int rotid, G3toG4RotationMatrix* rotpt);
|
||||
#include "G3RotTableEntry.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
class G4Material;
|
||||
|
||||
typedef G4RWTPtrOrderedVector<G3RotTableEntry> G3RotMatrixVector;
|
||||
|
||||
class G3RotTable
|
||||
{
|
||||
public:
|
||||
G3RotTable();
|
||||
virtual ~G3RotTable();
|
||||
|
||||
// methods
|
||||
// keep the same names of methods as in G4 g3tog4
|
||||
// G3toG4RotationMatrix type changed to G4RotationMatrix)
|
||||
//
|
||||
G4RotationMatrix* Get(G4int id) const;
|
||||
void Put(G4int id, G4RotationMatrix* matrix);
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
G3RotMatrixVector* fRotVector;
|
||||
};
|
||||
|
||||
extern G3RotTable G3Rot;
|
||||
#endif
|
||||
|
||||
#endif //G3_ROT_TABLE_H
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
// 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: G3RotTableEntry.hh,v 1.2 1999/12/05 17:50:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#ifndef G3_ROT_TABLE_ENTRY_H
|
||||
#define G3_ROT_TABLE_ENTRY_H
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
|
||||
class G3toG4RotationMatrix;
|
||||
|
||||
class G3RotTableEntry
|
||||
{
|
||||
public:
|
||||
G3RotTableEntry(G4int id, G4RotationMatrix* matrix);
|
||||
G3RotTableEntry(const G3RotTableEntry& right);
|
||||
virtual ~G3RotTableEntry();
|
||||
|
||||
// operators
|
||||
const G3RotTableEntry& operator=(const G3RotTableEntry& right);
|
||||
G4int operator==(const G3RotTableEntry& right) const;
|
||||
G4int operator!=(const G3RotTableEntry& right) const;
|
||||
|
||||
// get methods
|
||||
G4int GetID() const;
|
||||
G4RotationMatrix* GetMatrix() const;
|
||||
|
||||
private:
|
||||
// data members
|
||||
G4int fID;
|
||||
G4RotationMatrix* fMatrix;
|
||||
};
|
||||
|
||||
// inline methods
|
||||
|
||||
inline G4int G3RotTableEntry::GetID() const
|
||||
{ return fID; }
|
||||
|
||||
inline G4RotationMatrix* G3RotTableEntry::GetMatrix() const
|
||||
{ return fMatrix; }
|
||||
|
||||
#endif //G3_ROT_TABLE_ENTRY_H
|
||||
@@ -0,0 +1,21 @@
|
||||
// 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: G3SensVolVector.hh,v 1.2 1999/12/05 17:50:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// vector of logical volumes that were defined with
|
||||
// tracking medium with ISVOL=1
|
||||
//
|
||||
// by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#include "g4rw/tpordvec.h"
|
||||
#include "G4LogicalVolume.hh"
|
||||
|
||||
typedef G4RWTPtrOrderedVector<G4LogicalVolume> G3SensVolVector;
|
||||
|
||||
extern G3SensVolVector G3SensVol;
|
||||
@@ -1,8 +1,20 @@
|
||||
// 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: G3VolTable.hh,v 1.11 1999/12/05 17:50:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
#ifndef _G3VOLTABLE_
|
||||
#define _G3VOLTABLE_ 1
|
||||
|
||||
#include <rw/tphdict.h>
|
||||
#include "VolTableEntry.hh"
|
||||
#include "g4std/map"
|
||||
#include "G3VolTableEntry.hh"
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
@@ -10,22 +22,19 @@ class G4VSolid;
|
||||
|
||||
class G3VolTable{
|
||||
private:
|
||||
VolTableEntry* G3toG4TopVTE;
|
||||
G3VolTableEntry* G3toG4TopVTE;
|
||||
G4String _FirstKey;
|
||||
VolTableEntry* _VTE;
|
||||
RWTPtrHashDictionary <G4String, VolTableEntry>* _VTD;
|
||||
G4int _NVTE;
|
||||
G4std::map<G4String, G3VolTableEntry*, less<G4String> > VTD;
|
||||
G4int _NG3Pos;
|
||||
|
||||
public:
|
||||
VolTableEntry* PutVTE(VolTableEntry* aVTE);
|
||||
RWTPtrHashDictionary <G4String, VolTableEntry>* GetVTD() ;
|
||||
VolTableEntry* GetVTE(const G4String& Vname);
|
||||
void ListVTE();
|
||||
G3VolTableEntry* PutVTE(G3VolTableEntry* aVTE);
|
||||
G3VolTableEntry* GetVTE(const G4String& Vname);
|
||||
void PrintAll();
|
||||
G3VolTable();
|
||||
virtual ~G3VolTable();
|
||||
G4LogicalVolume* GetG3toG4Mother();
|
||||
VolTableEntry* GetFirstVTE();
|
||||
G3VolTableEntry* GetFirstVTE();
|
||||
void SetFirstVTE();
|
||||
void VTEStat();
|
||||
void CountG3Pos();
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
// 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: G3VolTableEntry.hh,v 1.2 1999/12/05 17:50:03 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// by I.Hrivnacova, 13.10.99
|
||||
|
||||
#ifndef G3_VOL_TABLE_ENTRY_H
|
||||
#define G3_VOL_TABLE_ENTRY_H
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G3Pos.hh"
|
||||
#include "G3Division.hh"
|
||||
|
||||
#include "g4rw/tpordvec.h"
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class G4VSolid;
|
||||
|
||||
class G3VolTableEntry {
|
||||
public:
|
||||
G3VolTableEntry(G4String& vname, G4String& shape, G4double* rpar,
|
||||
G4int npar, G4int nmed, G4VSolid* solid,
|
||||
G4bool hasNegPars);
|
||||
virtual ~G3VolTableEntry();
|
||||
|
||||
// operators
|
||||
G4bool operator == ( const G3VolTableEntry& vte) const;
|
||||
|
||||
// methods
|
||||
void AddG3Pos(G3Pos* aG3Pos);
|
||||
void AddDaughter(G3VolTableEntry* aDaughter);
|
||||
void AddMother(G3VolTableEntry* aDaughter);
|
||||
void AddClone(G3VolTableEntry* aDaughter);
|
||||
void ReplaceDaughter(G3VolTableEntry* vteOld, G3VolTableEntry* vteNew);
|
||||
void ReplaceMother(G3VolTableEntry* vteOld, G3VolTableEntry* vteNew);
|
||||
G3VolTableEntry* FindDaughter(const G4String& vname);
|
||||
G3VolTableEntry* FindMother(const G4String& vname);
|
||||
G3VolTableEntry* FindClone(const G4String& vname);
|
||||
void PrintSolidInfo();
|
||||
|
||||
// set methods
|
||||
void SetName(G4String name);
|
||||
void SetLV(G4LogicalVolume* lv);
|
||||
void SetSolid(G4VSolid* solid);
|
||||
void SetNmed(G4int nmed);
|
||||
void SetNRpar(G4int npar, G4double* Rpar);
|
||||
void SetDivision(G3Division* division);
|
||||
void SetHasNegPars(G4bool hasNegPars);
|
||||
|
||||
// get methods
|
||||
G4String GetName();
|
||||
G4String GetShape();
|
||||
G4int GetNmed();
|
||||
G4int GetNpar();
|
||||
G4double* GetRpar();
|
||||
G4int NPCopies();
|
||||
G3Pos* GetG3PosCopy(G4int copy=0);
|
||||
G3Division* GetDivision();
|
||||
G4bool HasNegPars();
|
||||
G4VSolid* GetSolid();
|
||||
G4LogicalVolume* GetLV();
|
||||
G4int GetNoDaughters();
|
||||
G4int GetNoMothers();
|
||||
G4int GetNoClones();
|
||||
G3VolTableEntry* GetDaughter(G4int i);
|
||||
G3VolTableEntry* GetMother(G4int i);
|
||||
G3VolTableEntry* GetMother();
|
||||
// return the first mother - to be removed
|
||||
G3VolTableEntry* GetClone(G4int i);
|
||||
G3VolTableEntry* GetMasterClone();
|
||||
|
||||
private:
|
||||
G4String fVname;
|
||||
G4String fShape;
|
||||
G4double* fRpar;
|
||||
G4int fNpar;
|
||||
G4int fNmed;
|
||||
G4VSolid* fSolid;
|
||||
G4LogicalVolume* fLV;
|
||||
G4bool fHasNegPars;
|
||||
G4RWTPtrOrderedVector<G3VolTableEntry> fDaughters;
|
||||
G4RWTPtrOrderedVector<G3VolTableEntry> fMothers;
|
||||
G4RWTPtrOrderedVector<G3VolTableEntry> fClones;
|
||||
G4RWTPtrOrderedVector<G3Pos> fG3Pos;
|
||||
G3Division* fDivision;
|
||||
};
|
||||
|
||||
// inline methods
|
||||
|
||||
inline void G3VolTableEntry::SetDivision(G3Division* division)
|
||||
{ fDivision = division; }
|
||||
|
||||
inline G3Division* G3VolTableEntry::GetDivision()
|
||||
{ return fDivision; }
|
||||
|
||||
#endif //G3_VOL_TABLE_ENTRY_H
|
||||
@@ -1,25 +1,29 @@
|
||||
// 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: G3toG4.hh,v 1.2 1999/05/15 00:16:53 lockman Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
// $Id: G3toG4.hh,v 1.4 1999/12/05 17:50:04 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 27 Sep 99
|
||||
|
||||
#ifndef _G3TOG4_
|
||||
#define _G3TOG4_
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
const char gSeparator('_');
|
||||
|
||||
extern G4int Ipar[1000];
|
||||
extern G4double Rpar[1000];
|
||||
extern RWCString Spar[1000];
|
||||
extern G4String Spar[1000];
|
||||
|
||||
//extern G4double min(G4double, G4double);
|
||||
|
||||
void G3fillParams(RWCString *tokens, char *ptypes);
|
||||
void G3fillParams(G4String *tokens, char *ptypes);
|
||||
// G4bool G3NegVolPars(G4double pars[], G4int* np, G4String vol, G4String moth,
|
||||
// char* routine);
|
||||
|
||||
@@ -40,7 +44,8 @@ void G3fillParams(RWCString *tokens, char *ptypes);
|
||||
#define PTgsdvn2 "ssiiri"
|
||||
#define PTgsdvt2 "ssririi"
|
||||
#define PTgsmate "isrrrriR"
|
||||
#define PTgsmixt "isriRRR"
|
||||
//#define PTgsmixt "isriRRR"
|
||||
#define PTgsmixt "isriQ"
|
||||
#define PTgstmed "isiiirrrrrriR"
|
||||
#define PTgstpar "isr"
|
||||
#define PTgspart "isirrriR"
|
||||
|
||||
@@ -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: G3toG4.inc,v 1.1 1999/01/07 16:06:44 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-00-01 $
|
||||
* $Id: G3toG4.inc,v 1.2 1999/12/05 17:50:04 gcosmo Exp $
|
||||
* GEANT4 tag $Name: geant4-01-00 $
|
||||
*
|
||||
integer maxlines
|
||||
parameter (maxlines = 750) ! max no. of cmd lines per C++ source file
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
// 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: G3toG4BuildTree.hh,v 1.3 1999/12/05 17:50:04 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
// modified by I.Hrivnacova, 13.10.99
|
||||
|
||||
#ifndef _G3TOG4BUILDTREE_
|
||||
#define _G3TOG4BUILDTREE_ 1
|
||||
#include "VolTableEntry.hh"
|
||||
void G3toG4BuildTree(VolTableEntry* MotherVTE);
|
||||
|
||||
#include "G3VolTableEntry.hh"
|
||||
|
||||
void G3toG4BuildTree(G3VolTableEntry* curVTE, G3VolTableEntry* motherVTE);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
// 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: G3toG4MakeSolid.hh,v 1.3 1999/12/05 17:50:04 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
#ifndef _G3TOG4MAKESOLID_
|
||||
#define _G3TOG4MAKESOLID_ 1
|
||||
G4VSolid* G3toG4MakeSolid(const G4String& vname, const G4String& shape,
|
||||
|
||||
@@ -1,11 +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: G3toG4RotationMatrix.hh,v 1.1 1999/01/07 16:06:44 gunter Exp $
|
||||
// $Id: G3toG4RotationMatrix.hh,v 1.2 1999/12/05 17:50:04 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
#ifndef _G3toG4ROTATION_
|
||||
#define _G3toG4ROTATION_
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#ifndef _G4MAKEVOL_
|
||||
#define _G4MAKEVOL_ 1
|
||||
|
||||
void
|
||||
G4makevol(G4String& vname, G4String& shape, G4int nmed,
|
||||
G4double* Rpar, G4int npar);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
#ifndef _VOLTABLEENTRY_
|
||||
#define _VOLTABLEENTRY_ 1
|
||||
|
||||
#include <rw/tphdict.h>
|
||||
#include <rw/tpordvec.h>
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G3Pos.hh"
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class G4VSolid;
|
||||
|
||||
class VolTableEntry {
|
||||
private:
|
||||
G4int _Nmed;
|
||||
G4String _Vname;
|
||||
G4String _Shape;
|
||||
G4double* _Rpar;
|
||||
G4int _Npar;
|
||||
G4Material* _Mat;
|
||||
G4VSolid* _Solid;
|
||||
G4LogicalVolume* _LV;
|
||||
G4bool _Deferred;
|
||||
G4bool _NegVolPars;
|
||||
G4bool _OKAxis[3];
|
||||
G4int _DivisionAxis;
|
||||
VolTableEntry* _Mother;
|
||||
RWTPtrOrderedVector <VolTableEntry> _Daughters; // VolTableEntry Daughters
|
||||
RWTPtrOrderedVector <G3Pos> _G3Pos; // associated G3Pos objects
|
||||
|
||||
public:
|
||||
VolTableEntry(G4String& v, G4String& sh, G4double* R,
|
||||
G4int n, G4int nmed, G4Material* m,
|
||||
G4VSolid* so, G4bool Deferred,
|
||||
G4bool NegVolPars, G4bool* OKAxis);
|
||||
|
||||
virtual ~VolTableEntry();
|
||||
|
||||
void SetLV(G4LogicalVolume* ll);
|
||||
|
||||
G4String GetName();
|
||||
|
||||
G4VSolid* GetSolid();
|
||||
|
||||
void AddG3Pos(G3Pos* aG3Pos);
|
||||
|
||||
G4int NPCopies();
|
||||
|
||||
G3Pos* GetG3PosCopy(G4int copy=0);
|
||||
|
||||
G4bool HasNegVolPars();
|
||||
|
||||
G4bool HasDeferred();
|
||||
|
||||
G4String GetShape();
|
||||
|
||||
G4double* GetRpar();
|
||||
|
||||
G4int GetNpar();
|
||||
|
||||
G4Material* GetMaterial();
|
||||
|
||||
G4LogicalVolume* GetLV();
|
||||
|
||||
G4int GetNmed();
|
||||
|
||||
void AddDaughter(VolTableEntry* aDaughter);
|
||||
|
||||
G4int GetNoDaughters();
|
||||
|
||||
VolTableEntry* GetDaughter(G4int i);
|
||||
|
||||
VolTableEntry* GetMother();
|
||||
|
||||
void AddMother(VolTableEntry* itsMother);
|
||||
|
||||
VolTableEntry* FindDaughter(const G4String& vname);
|
||||
|
||||
G4bool operator == ( const VolTableEntry& vte) const;
|
||||
};
|
||||
#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: gcbank.inc,v 1.1 1999/01/07 16:06:45 gunter Exp $
|
||||
* GEANT4 tag $Name: geant4-00-01 $
|
||||
* $Id: gcbank.inc,v 1.2 1999/12/05 17:50:05 gcosmo Exp $
|
||||
* GEANT4 tag $Name: geant4-01-00 $
|
||||
*
|
||||
INTEGER IQ,LQ,NZEBRA,IXSTOR,IXDIV,IXCONS,LMAIN,LR1,JCG
|
||||
INTEGER KWBANK,KWWORK,IWS
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user