103 G4double ekin = std::sqrt(m0 * m0 + pmag * pmag) - m0;
109 weight_correction = 1.;
120 newFwdPrimVertex->
SetT0(0.);
132 adjPrimVertex->
SetT0(0.);
142 G4double adjoint_weight = weight_correction *
144 adjoint_source_area *
pi;
157 newAdjPrimVertex->
SetT0(0.);
161 newAdjPrimVertex->
SetWeight(adjoint_weight);
175 newAdjPrimVertex->
SetT0(0.);
179 newAdjPrimVertex->
SetWeight(adjoint_weight);
183 adjPrimVertex->
SetWeight(adjoint_weight);
242 return std::log(E2 / E1) * E /
306 G4String fwd_particle_name = iter->first;
307 if(fwd_particle_name !=
"ion")
static constexpr double pi
void UpdateListOfPrimaryParticles()
std::vector< G4ParticleDefinition * > ListOfPrimaryAdjParticles
void GeneratePrimaries(G4Event *)
G4ParticleDefinition * fwd_ion
G4AdjointPrimaryGenerator * theAdjointPrimaryGenerator
G4int nb_fwd_gammas_per_event
G4int nb_adj_primary_gammas_per_event
std::map< G4String, G4bool > PrimariesConsideredInAdjointSim
void ConsiderParticleAsPrimary(const G4String &particle_name)
void SetAdjointPrimarySourceOnAnExtSurfaceOfAVolume(const G4String &volume_name)
std::size_t index_particle
std::vector< G4ParticleDefinition * > ListOfPrimaryFwdParticles
G4String type_of_adjoint_source
void SetSphericalAdjointPrimarySource(G4double radius, G4ThreeVector pos)
G4ThreeVector center_spherical_source
void SetEminIon(G4double val)
G4double radius_spherical_source
G4int nb_adj_primary_electrons_per_event
void SetEmin(G4double val)
void NeglectParticleAsPrimary(const G4String &particle_name)
void SetPrimaryIon(G4ParticleDefinition *adjointIon, G4ParticleDefinition *fwdIon)
~G4AdjointPrimaryGeneratorAction()
void SetEmaxIon(G4double val)
void SetEmax(G4double val)
G4AdjointPrimaryGeneratorAction()
G4ParticleDefinition * adj_ion
G4double ComputeEnergyDistWeight(G4double energy, G4double E1, G4double E2)
void SetSphericalAdjointPrimarySource(G4double radius, G4ThreeVector pos)
void SetAdjointPrimarySourceOnAnExtSurfaceOfAVolume(const G4String &v_name)
void GenerateFwdPrimaryVertex(G4Event *anEvt, G4ParticleDefinition *adj_part, G4double E1, G4double E2)
void ClearEndOfAdjointTrackInfoVectors()
void SetAdjointTrackingMode(G4bool aBool)
G4double GetAdjointSourceArea()
void ResetDidOneAdjPartReachExtSourceDuringEvent()
G4int GetNbEvtOfLastRun()
static G4AdjointSimManager * GetInstance()
G4PrimaryVertex * GetPrimaryVertex(G4int i=0) const
void AddPrimaryVertex(G4PrimaryVertex *aPrimaryVertex)
const G4String & GetParticleName() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
G4ThreeVector GetMomentum() const
void SetPosition(G4double x0, G4double y0, G4double z0)
G4ThreeVector GetPosition() const
void SetPrimary(G4PrimaryParticle *pp)
void SetWeight(G4double w)
G4PrimaryParticle * GetPrimary(G4int i=0) const