52 #include "AIDA/AIDA.h"
57 :rndmFlag(
"off"),beam(
"off"),spectrum(
"off"),isoVert(
"off"),phaseSpaceGunFlag(false),
58 rayleighFlag(true), particleEnergies(0), particleTypes(0), detectorPosition(0)
85 G4cout <<
"XrayFluoPrimaryGeneratorAction created" <<
G4endl;
99 XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance();
129 G4cout <<
"XrayFluoPrimaryGeneratorAction deleted" <<
G4endl;
166 if(particle ==
"proton"|| particle ==
"alpha")
175 while (partSum<random)
177 partSum += (*data)[j];
184 else if (particle ==
"gamma")
193 G4double energyRange = maxEnergy - minEnergy;
201 particleEnergy = (random*energyRange) + minEnergy;
203 if ((dataSet->
FindValue(particleEnergy,
id)) > randomNum)
222 G4double x = rho*std::sin(theta)*std::sin(phi);
223 G4double y = rho*std::sin(theta)*std::cos(phi);
249 if (i < particleEnergies->size()) {
250 energy = (*particleEnergies)[i];
265 #ifdef G4ANALYSIS_USE
268 XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance();
269 analysis->analysePrimaryGenerator(partEnergy/
keV);
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
CLHEP::Hep3Vector G4ThreeVector
const XrayFluoDataSet * GetGammaSet()
std::vector< G4String > * particleTypes
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
virtual void GeneratePrimaryVertex(G4Event *evt)
const G4String & GetParticleName() const
XrayFluoPrimaryGeneratorMessenger * gunMessenger
XrayFluoPrimaryGeneratorAction(XrayFluoDetectorConstruction *)
std::vector< G4double > * particleEnergies
void SetParticlePosition(G4ThreeVector aPosition)
G4GLOB_DLL std::ostream G4cout
XrayFluoRunAction * runManager
G4double GetSampleSizeXY()
G4ThreeVector GetDetectorPosition()
void SetRayleighFlag(G4bool)
void GeneratePrimaries(G4Event *)
void SetParticleEnergy(G4double aKineticEnergy)
~XrayFluoPrimaryGeneratorAction()
G4ThreeVector detectorPosition
static G4ParticleTable * GetParticleTable()
G4double energy(const ThreeVector &p, const G4double m)
G4double FindValue(G4double e, G4int) const
G4ParticleDefinition * GetParticleDefinition() const
XrayFluoDetectorConstruction * XrayFluoDetector
G4ParticleGun * particleGun
G4DataVector * GetEnergies()
void ActivatePhaseSpace(G4String)
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
G4double GetParticleEnergy() const