#include <BLBeam.hh>
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 |
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.
G4int BLBeam::nEvents [protected] |
Reimplemented in BLCMDbeam, and BLCMDparticlesource.
Referenced by BLBeam(), BLCMDcosmicraybeam::defineNamedArgs(), BLCMDreference::getNEvents(), BLCMDcosmicraybeam::getNEvents(), getNEvents(), BLCMDcosmicraybeam::nextBeamEvent(), and BLCMDcosmicraybeam::printBeam().