musrsim/geant4/LEMuSR/include/LEMuSRParticleGun.hh
2006-02-23 13:23:18 +00:00

72 lines
2.3 KiB
C++

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//*
// LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION
//
// ID : LEMuSRParticleGun.hh , v 1.2
// AUTHOR: Taofiq PARAISO
// DATE : 2004-08-20 10:48
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
//
// & &&&&&&&&&& &&&&&&& &&&&&&&&
// & & && && & &&
// & & & & & & &&
// & &&&&&&& & & &&&&&& &&&&&&&&
// & & & && & & &&
// & & && & & && && & &
// &&&&&&&&&& &&&&&&&&&& & &&&&& && &&&&&&& & &&
// &
// &
// &
// &
// PARTICLE GUN
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
#ifndef LEMuSRParticleGun_h
#define LEMuSRParticleGun_h 1
#include "G4ParticleGun.hh"
#include "G4Event.hh"
#include "G4PrimaryParticle.hh"
class LEMuSRParticleGunMessenger;
#include"G4ParticleGunMessenger.hh"
/*!
* The LEMuSRParticleGun is the class which stores the initial settings of the particles.
* Its interplay with the LEMuSRPrimaryGeneratorAction (PGA) is very strong.
* Indeed, the particle gun object is instanciated and initialized in the PGA.
*
* After this initialization, the PGA calls the particle gun's GeneratePrimaryVertex method
* to create an event with the defined initial conditions.
*
* As an image one can think that the PGA loads the gun with some defined particles,
* set the shooting energy, aims and fires. Hence the name.
*/
class LEMuSRParticleGun: public G4ParticleGun
{
public:
//!\ct
LEMuSRParticleGun();
//!\dt
~LEMuSRParticleGun();
//! Creates the first event.
void GeneratePrimaryVertex(G4Event* evt);
//! Assign a decay time
inline void SetDecayTime(G4double d) {decaytime = d;}
G4double decaytime;
protected:
//! Default initialization of the gun.
void SetInitialValues();
private:
//! Messenger
LEMuSRParticleGunMessenger* theMessenger;
};
#endif