BLBeam Class Reference

#include <BLBeam.hh>

Inheritance diagram for BLBeam:

BLCMDbeam BLCMDcosmicraybeam BLCMDparticlesource BLCMDreference

List of all members.


Detailed Description

class BLBeam is an interface class for a beam.

NOTE: all functions are either inline or abstract, so no .cc file is needed.

Public Member Functions

 BLBeam ()
 Constructor.
virtual int getNEvents () const
 getNEvents() returns the # events to process.
virtual void init ()=0
 init() will initialize internal variables.
virtual bool generateReferenceParticle (G4Event *event)=0
 generateReferenceParticle() generates the reference particle. BLManager calls this once for the TuneParticle during event -2, and once for the ReferenceParticle during event -1. Should always call setRandomSeedToTrack() before returning. Returns true if event generated; false if not.
virtual bool nextBeamEvent (G4Event *event)=0
 nextBeamEvent() generates the next beam event. If generating randomly, should call setRandomSeedToGenerate() and use no more than 16 random numbers. If read from a file, it should call event->SetEventID(). Should always call setRandomSeedToTrack() before returning. Returns true if event generated; false if no more events.
virtual void summary ()
 summary() will print a summary, if necessary.

Static Public Member Functions

static void setRandomSeedToGenerate (int evid)
 Utility: setRandomSeedToGenerate() sets the random seed for the generation of an event.
static void setRandomSeedToTrack (int evid)
 Utility: setRandomSeedToTrack() sets the random seed for the tracking of an event.

Protected Attributes

G4int nEvents


Constructor & Destructor Documentation

BLBeam::BLBeam (  )  [inline]

Constructor.

References nEvents.

00042 { nEvents = 0; }


Member Function Documentation

static void BLBeam::setRandomSeedToGenerate ( int  evid  )  [inline, static]

Utility: setRandomSeedToGenerate() sets the random seed for the generation of an event.

References EVENT_NUMBER, BLManager::getObject(), NO_SEED, BLManager::setPRNGSeedMethod(), TIME_US, and BLTime::timems().

Referenced by BLCMDparticlesource::nextBeamEvent(), BLCMDcosmicraybeam::nextBeamEvent(), BLCMDbeam::nextBeamEvent(), and setRandomSeedToTrack().

00047                 { switch(BLManager::getObject()->getPRNGSeedMethod()) {
00048                   case EVENT_NUMBER:
00049                         CLHEP::HepRandom::setTheSeed(evid>=0? evid : 0);
00050                         break;
00051                   case TIME_US:
00052                         CLHEP::HepRandom::setTheSeed(BLTime::timems() &
00053                                                                 0x7FFFFFFFL);
00054                         // do it only once, to avoid duplication
00055                         BLManager::getObject()->setPRNGSeedMethod(NO_SEED);
00056                         break;
00057                   case NO_SEED:
00058                         return;
00059                   }
00060                   CLHEP::RandGauss::setFlag(false);
00061                   G4UniformRand(); // eat one for luck (don't get seed back)
00062                 }

static void BLBeam::setRandomSeedToTrack ( int  evid  )  [inline, static]

Utility: setRandomSeedToTrack() sets the random seed for the tracking of an event.

References setRandomSeedToGenerate().

Referenced by BLCMDreference::generateReferenceParticle(), BLCMDparticlesource::nextBeamEvent(), BLCMDcosmicraybeam::nextBeamEvent(), and BLCMDbeam::nextBeamEvent().

00067                 { setRandomSeedToGenerate(evid);
00068                   // allow 16 random numbers for generation
00069                   for(int i=0; i<16; ++i)
00070                         G4UniformRand();
00071                 }

virtual int BLBeam::getNEvents (  )  const [inline, virtual]

getNEvents() returns the # events to process.

Reimplemented in BLCMDbeam, BLCMDcosmicraybeam, BLCMDparticlesource, and BLCMDreference.

References nEvents.

00074 { return nEvents; }

virtual void BLBeam::init (  )  [pure virtual]

init() will initialize internal variables.

Implemented in BLCMDbeam, BLCMDcosmicraybeam, BLCMDparticlesource, and BLCMDreference.

virtual bool BLBeam::generateReferenceParticle ( G4Event *  event  )  [pure virtual]

generateReferenceParticle() generates the reference particle. BLManager calls this once for the TuneParticle during event -2, and once for the ReferenceParticle during event -1. Should always call setRandomSeedToTrack() before returning. Returns true if event generated; false if not.

Implemented in BLCMDbeam, BLCMDcosmicraybeam, BLCMDparticlesource, and BLCMDreference.

virtual bool BLBeam::nextBeamEvent ( G4Event *  event  )  [pure virtual]

nextBeamEvent() generates the next beam event. If generating randomly, should call setRandomSeedToGenerate() and use no more than 16 random numbers. If read from a file, it should call event->SetEventID(). Should always call setRandomSeedToTrack() before returning. Returns true if event generated; false if no more events.

Implemented in BLCMDbeam, BLCMDcosmicraybeam, BLCMDparticlesource, and BLCMDreference.

virtual void BLBeam::summary (  )  [inline, virtual]

summary() will print a summary, if necessary.

Reimplemented in BLCMDbeam, BLCMDcosmicraybeam, BLCMDparticlesource, and BLCMDreference.

00095 { }


Member Data Documentation

G4int BLBeam::nEvents [protected]


The documentation for this class was generated from the following file:
g4beamline