GPSEventSource.cc

Go to the documentation of this file.
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

Generated on Thu Nov 15 15:24:16 2007 for Simulator for the Linear Collider by  doxygen 1.5.4