7 #ifndef G4muDarkBremsstrahlungModel_h 8 #define G4muDarkBremsstrahlungModel_h 11 #include "G4VEmModel.hh" 12 #include "G4Material.hh" 13 #include "G4Element.hh" 14 #include "G4DataVector.hh" 15 #include "G4ParticleChangeForLoss.hh" 18 #include "TLorentzVector.h" 34 class G4ParticleChangeForLoss;
39 const G4double biasFactor,
40 const G4ParticleDefinition*
p =
nullptr,
41 const G4String& nam =
"eDBrem");
45 void Initialise(
const G4ParticleDefinition*,
const G4DataVector&)
override;
48 const G4ParticleDefinition*, G4double tkin, G4double
Z, G4double, G4double
cut, G4double
maxE = DBL_MAX)
override;
53 const G4MaterialCutsCouple*,
54 const G4DynamicParticle*,
74 static G4double
chi(
double t,
void*
pp);
95 std::map<double, std::vector<frame> >
mgdata;
std::map< double, std::vector< frame > > mgdata
std::vector< std::pair< double, int > > energies
G4ParticleDefinition * theAPrime
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double tkin, G4double Z, G4double, G4double cut, G4double maxE=DBL_MAX) override
G4ParticleChangeForLoss * fParticleChange
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
void SetMethod(std::string)
static G4double chi(double t, void *pp)
G4muDarkBremsstrahlungModel(const G4String &scalefile, const G4double biasFactor, const G4ParticleDefinition *p=nullptr, const G4String &nam="eDBrem")
void SampleSecondaries(std::vector< G4DynamicParticle *> *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
static G4double DsigmaDx(double x, void *pp)
std::vector< G4DataVector * > partialSumSigma
~G4muDarkBremsstrahlungModel() override
void SetParticle(const G4ParticleDefinition *p)
frame GetMadgraphData(double E0)
G4DataVector * ComputePartialSumSigma(const G4Material *material, G4double tkin, G4double cut)
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *couple)
const G4ParticleDefinition * particle
G4muDarkBremsstrahlungModel & operator=(const G4muDarkBremsstrahlungModel &right)=delete