musrParticleGun Class Reference

#include <musrParticleGun.hh>

List of all members.

Public Member Functions

 musrParticleGun ()
 musrParticleGun (G4int numberofparticles)
 ~musrParticleGun ()
void GeneratePrimaryVertex (G4Event *evt)
void SetDecayTime (G4double d)

Public Attributes

G4double decaytime

Protected Member Functions

void SetInitialValues ()


Detailed Description

Definition at line 11 of file musrParticleGun.hh.


Constructor & Destructor Documentation

musrParticleGun::musrParticleGun  ) 
 

Definition at line 11 of file musrParticleGun.cc.

References SetInitialValues().

00012 {
00013   SetInitialValues();
00014   Messenger = new G4ParticleGunMessenger(this);
00015 }

musrParticleGun::musrParticleGun G4int  numberofparticles  ) 
 

Definition at line 17 of file musrParticleGun.cc.

References SetInitialValues().

00018 {
00019   SetInitialValues();
00020   NumberOfParticlesToBeGenerated = numberofparticles;
00021 }

musrParticleGun::~musrParticleGun  ) 
 

Definition at line 24 of file musrParticleGun.cc.

00025 {
00026   delete Messenger;
00027 }


Member Function Documentation

void musrParticleGun::GeneratePrimaryVertex G4Event *  evt  ) 
 

Definition at line 48 of file musrParticleGun.cc.

References decaytime.

Referenced by musrPrimaryGeneratorAction::GeneratePrimaries().

00049 {
00050   if(particle_definition==0) return;
00051 
00052   // create a new vertex
00053   G4PrimaryVertex* vertex = 
00054     new G4PrimaryVertex(particle_position,particle_time);
00055 
00056 
00057   // create new primaries and set them to the vertex
00058   G4double mass =  particle_definition->GetPDGMass();
00059   G4double energy = particle_energy + mass;
00060   G4double pmom = sqrt(energy*energy-mass*mass);
00061   G4double px = pmom*particle_momentum_direction.x();
00062   G4double py = pmom*particle_momentum_direction.y();
00063   G4double pz = pmom*particle_momentum_direction.z();
00064   for( G4int i=0; i<NumberOfParticlesToBeGenerated; i++ )
00065   {
00066 
00067 
00068     G4PrimaryParticle* particle =
00069       new G4PrimaryParticle(particle_definition,px,py,pz);
00070     particle->SetMass( mass );
00071     particle->SetCharge( particle_charge );
00072     particle->SetPolarization(particle_polarization.x(),
00073                                particle_polarization.y(),
00074                                particle_polarization.z());
00075     particle->SetProperTime(decaytime);
00076     //    G4cout<<"Muon decay time = " << decaytime/ns <<"ns. \n" <<G4endl;
00077     
00078     vertex->SetPrimary( particle );
00079 
00080 
00081   }
00082 
00083   evt->AddPrimaryVertex( vertex );
00084 }

void musrParticleGun::SetDecayTime G4double  d  ) 
 

Definition at line 43 of file musrParticleGun.cc.

References decaytime.

Referenced by musrPrimaryGeneratorAction::GeneratePrimaries().

00044 {
00045   decaytime=d;
00046 }

void musrParticleGun::SetInitialValues  )  [protected]
 

Definition at line 29 of file musrParticleGun.cc.

Referenced by musrParticleGun().

00030 {
00031   NumberOfParticlesToBeGenerated = 1;
00032   particle_definition = 0;
00033   G4ThreeVector zero;
00034   particle_momentum_direction = (G4ParticleMomentum)zero;
00035   particle_energy = 0.0;
00036   particle_position = zero;
00037   particle_time = 0.0;
00038   particle_polarization = zero;
00039   particle_charge = 0.0;
00040 
00041 }


Member Data Documentation

G4double musrParticleGun::decaytime
 

Definition at line 21 of file musrParticleGun.hh.

Referenced by GeneratePrimaryVertex(), and SetDecayTime().


The documentation for this class was generated from the following files:
Generated on Mon Mar 27 12:19:54 2006 for MUSR by  doxygen 1.4.6