PrimaryGeneratorAction Class Reference

#include <PrimaryGeneratorAction.hh>

Inheritance diagram for PrimaryGeneratorAction:

Inheritance graph
[legend]
Collaboration diagram for PrimaryGeneratorAction:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 PrimaryGeneratorAction (DetectorConstruction *)
 ~PrimaryGeneratorAction ()
void GeneratePrimaries (G4Event *)
void SetRndmFlag (G4String flag)
G4ParticleGun * GetParticleGun ()

Private Attributes

G4ParticleGun * m_particleGun
DetectorConstructionm_detector
PrimaryGeneratorMessengerm_gunMessenger
G4String m_rndmFlag


Detailed Description

Definition at line 21 of file PrimaryGeneratorAction.hh.


Constructor & Destructor Documentation

PrimaryGeneratorAction::PrimaryGeneratorAction ( DetectorConstruction det  ) 

Definition at line 21 of file PrimaryGeneratorAction.cc.

00022 :m_detector(det)                                               
00023 {
00024   m_particleGun  = new G4ParticleGun(1);
00025   G4ParticleDefinition* particle
00026            = G4ParticleTable::GetParticleTable()->FindParticle("proton");
00027   m_particleGun->SetParticleDefinition(particle);
00028   m_particleGun->SetParticleEnergy(500*MeV);
00029   
00030   m_rndmFlag = "on";
00031   
00032   //create a messenger for this class
00033   m_gunMessenger = new PrimaryGeneratorMessenger(this);    
00034 }

PrimaryGeneratorAction::~PrimaryGeneratorAction (  ) 

Definition at line 38 of file PrimaryGeneratorAction.cc.

00039 {
00040   delete m_particleGun;
00041   delete m_gunMessenger;
00042 }


Member Function Documentation

void PrimaryGeneratorAction::GeneratePrimaries ( G4Event *  anEvent  ) 

Definition at line 46 of file PrimaryGeneratorAction.cc.

00047 {
00048   //this function is called at the begining of event
00049   //
00050   G4double y0 = (m_detector->GetWorldSizeXY())*0.5;
00051   G4double x0 = 0., z0 = 0.;
00052   if (m_rndmFlag == "on") {
00053     x0 = (m_detector->GetWorldSizeXY())*(G4UniformRand()-0.5);
00054     z0 = (m_detector->GetWorldSizeZ()) *(G4UniformRand()-0.5);
00055   }
00056      
00057   m_particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0));     
00058   m_particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,-1.,0.));  
00059   m_particleGun->GeneratePrimaryVertex(anEvent);
00060 }

void PrimaryGeneratorAction::SetRndmFlag ( G4String  flag  )  [inline]

Definition at line 29 of file PrimaryGeneratorAction.hh.

Referenced by PrimaryGeneratorMessenger::SetNewValue().

00029 { m_rndmFlag = flag;};

G4ParticleGun* PrimaryGeneratorAction::GetParticleGun (  )  [inline]

Definition at line 31 of file PrimaryGeneratorAction.hh.

00031 {return m_particleGun;}


Member Data Documentation

G4ParticleGun* PrimaryGeneratorAction::m_particleGun [private]

Definition at line 35 of file PrimaryGeneratorAction.hh.

Referenced by GeneratePrimaries().

Definition at line 36 of file PrimaryGeneratorAction.hh.

Referenced by PrimaryGeneratorAction(), and ~PrimaryGeneratorAction().


The documentation for this class was generated from the following files:

Generated on Fri Nov 21 10:20:36 2008 for jour3d by  doxygen 1.5.7.1