00001 // $Header: /cvs/lcd/slic/src/GPSEventSource.cc,v 1.8 2007/04/27 01:54:34 jeremy Exp $ 00002 #include "GPSEventSource.hh" 00003 00004 // geant4 00005 #include "G4MuonMinus.hh" 00006 00007 namespace slic 00008 { 00009 GPSEventSource::GPSEventSource() 00010 : EventSource( "GPSEventSource" ) 00011 { 00012 m_generator = new G4GeneralParticleSource(); 00013 00014 setupGeneratorDefaults(); 00015 } 00016 00017 GPSEventSource::~GPSEventSource() 00018 { 00019 delete m_generator; 00020 } 00021 00022 void GPSEventSource::setupGeneratorDefaults() 00023 { 00024 m_generator->GetCurrentSource()->SetParticleDefinition( G4MuonMinus::MuonMinusDefinition() ); 00025 00026 m_generator->GetCurrentSource()->GetEneDist()->SetEnergyDisType("Mono"); 00027 m_generator->GetCurrentSource()->GetEneDist()->SetMonoEnergy(5 * GeV); 00028 00029 m_generator->GetCurrentSource()->GetPosDist()->SetPosDisType("Point"); 00030 m_generator->GetCurrentSource()->GetPosDist()->SetCentreCoords(G4ThreeVector(0, 0, 0)); 00031 00032 m_generator->GetCurrentSource()->GetAngDist()->SetAngDistType("planar"); 00033 m_generator->GetCurrentSource()->GetAngDist()->SetParticleMomentumDirection(G4ThreeVector(0, 1, 0)); 00034 } 00035 00036 void GPSEventSource::generate(G4Event* evt) 00037 { 00038 m_generator->GeneratePrimaryVertex(evt); 00039 } 00040 00042 void GPSEventSource::dumpCurrentEvent() 00043 { 00044 log() << LOG::okay << "Dumping GPS Event info..." << LOG::done; 00045 00046 G4ParticleDefinition* pdef = m_generator->GetParticleDefinition(); 00047 00048 log() << LOG::okay << "particle: " << pdef->GetParticleName() << LOG::done; 00049 log() << LOG::okay << "time: " << m_generator->GetParticleTime () << LOG::done; 00050 log() << LOG::okay << "nparts: " << m_generator->GetNumberOfParticles() << LOG::done; 00051 log() << LOG::okay << "pos: " << m_generator->GetParticlePosition () << LOG::done; 00052 log() << LOG::okay << "mom: " << m_generator->GetParticleMomentumDirection() << LOG::done; 00053 log() << LOG::okay << "E: " << m_generator->GetParticleEnergy() << LOG::done; 00054 log() << LOG::okay << LOG::done; 00055 } 00056 00057 G4GeneralParticleSource* GPSEventSource::getGPS() 00058 { 00059 return m_generator; 00060 } 00061 } // namespace slic
1.5.4