LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
g4b Namespace Reference

basic interface to Geant4 for ART-based software More...

Classes

class  ConvertMCTruthToG4
 
class  DetectorConstruction
 
class  G4Helper
 
class  PrimaryParticleInformation
 
class  UserAction
 
class  UserActionFactory
 
class  UserActionManager
 

Typedefs

typedef g4b::UserAction *(* UserActionCtorFuncPtr_t) ()
 

Variables

static G4VisExecutive * vm_ = 0
 
G4Allocator< PrimaryParticleInformationPrimaryParticleInformationAllocator
 

Detailed Description

basic interface to Geant4 for ART-based software

Version
Id
PrimaryParticleInformation.cxx,v 1.5 2012-09-24 15:19:29 brebel Exp
Author
selig.nosp@m.man@.nosp@m.nevis.nosp@m..col.nosp@m.umbia.nosp@m..edu, brebe.nosp@m.l@fn.nosp@m.al.go.nosp@m.v

27-Jan-2009 selig.nosp@m.man@.nosp@m.nevis.nosp@m..col.nosp@m.umbia.nosp@m..edu Revised for LArSoft. 2012-08-17: rhatc.nosp@m.her@.nosp@m.fnal..nosp@m.gov Add G4UserStackingAction interfaces

LArG4::UserActionManager.h 18-Sep-2007 Bill Seligman

27-Jan-2009 selig.nosp@m.man@.nosp@m.nevis.nosp@m..col.nosp@m.umbia.nosp@m..edu Revised for LArSoft.

In my experience, people barely understand what the UserAction interface does. So why do we need a UserActionManager class?

Suppose I've written a class that inherits from UserAction that makes histograms. You've written a class that inherits from UserAction to write events to a disk file. Jane has written an UserAction that makes ntuples. A big massive 500-CPU-hour run of G4 is planned, and we're all planning how to put our user-action classes together.

By using a UserActionManager class, each one of us can develop our own user-action classes independently. Then, when we have the big run, the user-action classes can be put successively called by the UserActionManager without changing any of the classes.

Another feature is the ability to separate different user-action functions. For example, you don't have to mix your code that writes hits with the code that makes histograms; the code can be put into separate classes.

18-Sep-2007: Make this a true "Manager" class by turning it into a singleton. Give the UserAction-derived classes access to the Geant4 user-class managers.

2012-08-17: rhatc.nosp@m.her@.nosp@m.fnal..nosp@m.gov Add G4UserStackingAction interfaces. By default these aren't invoked unless the UserAction::ProvidesStacking() returns "true". Generally there should be only one such in the managed list, but if there are and they can't agree on the track classification then prioritize them in what seems a sensible manner.

Typedef Documentation

typedef g4b::UserAction*(* g4b::UserActionCtorFuncPtr_t) ()

Definition at line 32 of file UserActionFactory.h.

Variable Documentation

G4Allocator< PrimaryParticleInformation > g4b::PrimaryParticleInformationAllocator

Definition at line 13 of file PrimaryParticleInformation.cxx.

G4VisExecutive* g4b::vm_ = 0
static

Definition at line 47 of file G4Helper.cxx.

Referenced by g4b::G4Helper::~G4Helper().