11#include <mdst/dataobjects/MCParticleGraph.h>
12#include <Math/LorentzRotation.h>
13#include <Math/Vector3D.h>
256 ROOT::Math::LorentzRotation boost,
257 bool isVirtual =
false,
bool isInitial =
false,
bool isISRFSR =
false);
C++ Interface for the Fortran Bhabha and exclusive two photon generator BABAYAGA.NLO.
void setVPUncertainty(bool vpuncertainty)
Calculate VP uncertainty by internal reweighting (on/off)
double m_eeveto
Minimum CMS energy to veto e-/e+ (GeV).
void init()
Initializes the generator.
std::string m_NSKDataFile
data file for NSK VP.
void setEGMIN(double egmin)
Sets the minimum CMS energy of the gamma.
double m_sDif
Differential xsec/weight used for event.
double m_tgveto
Maximum CMS angle between the gamma and -z axis (deg).
std::pair< double, double > m_ScatteringAngleRange
Min and Max val.
double m_maxAcollinearity
Maximum acollinearity of the electron-positron pair.
~BabayagaNLO()
Destrucotr.
double m_alphaQED0
QED coupling constant at Q=0.
void generateEvent(MCParticleGraph &mcGraph, double ecm, ROOT::Math::XYZVector vertex, ROOT::Math::LorentzRotation boost)
Generates one single event.
double m_EnergySpread
TEMPORARY SOLUTION! Approximate energy spread per beam (CMS).
double m_maxprescale
Maximum prescale value.
void setModel(const std::string &model)
Sets model: matched or ps.
int m_npar[100]
Integer parameters for BabayagaNLO.
double m_conversionFactor
Conversion factor for hbarc to nb.
bool m_applyBoost
Apply a boost to the MCParticles.
void setMaxPrescale(double maxprescale)
Sets the maximum prescale value.
void setFinalState(const std::string &finalState)
Sets final state minimum energy.
void storeParticle(MCParticleGraph &mcGraph, const double *mom, int pdg, ROOT::Math::XYZVector vertex, ROOT::Math::LorentzRotation boost, bool isVirtual=false, bool isInitial=false, bool isISRFSR=false)
Store a single generated particle into the MonteCarlo graph.
void setDefaultSettings()
Sets the default settings for the BhWide Fortran generator.
void setMinEnergy(double minEnergy)
Sets minimum energy for leptons/photons in the final state, in GeV.
ROOT::Math::LorentzRotation m_boostVector
The Lorentz boost vector for the transformation CMS to LAB frame.
void setScatAngle(std::pair< double, double > angleRange)
Sets the theta scattering angle range for the scattered particles.
std::string m_order
order: born, alpha or exp.
void setCmsEnergyNominal(double cmsEnergyNominal)
Sets nominal ECM.
double m_tgmin
Minimum CMS angle between the gamma and -z axis (deg).
double m_epsilon
Soft/hard photon separator in units of CMS/2.
void setTEMIN(double temin)
Sets the minimum CMS angle between the tagged e-/e+ and -z axis.
void setNPhotons(int nPhot)
Sets the fixed number of nphot (hard) photons.
double m_massMuon
electron mass.
void setEEVETO(double eeveto)
Sets the minimum CMS energy to veto e-/e+.
void setEpsilon(double epsilon)
Sets soft/hard photon energy separator.
double m_teveto
Maximum CMS theta of e-/e+ in final state (deg).
BabayagaNLO()
Constructor.
double m_massW
W mass [GeV] for on shell sin2theta and GF.
double m_temin
Minimum CMS angle between the tagged e-/e+ and -z axis (deg).
std::string m_userMode
User mode similar to TEEGG: ETRON, EGAMMA, GAMMA or PRESCALE.
std::pair< double, double > m_ScatteringAngleRangePhoton
Min and Max val.
double m_widthZ
Z width [GeV] (may be recalculated by EW library).
void term()
Terminates the generator.
int m_nSearchMax
Events used to search maximum of differential cross section.
int m_nPhot
fixed number of nphot (hard) photons are generated.
void setTEVETO(double teveto)
Sets the maximum CMS theta of e-/e+ in final state.
void setFMax(double fMax)
Maximum differential cross section.
std::string m_vacPol
vacuum polarization: off, hadr5 (Jegerlehner) or hmnt (Teubner).
void setMode(const std::string &mode)
Sets mode: weighted or unweighted.
bool m_VPUncertainty
vary all VP related parameters and extracted total uncertainty.
void setEnergySpread(double spread)
TEMPORARY SOLUTION! Approximate energy spread per beam (CMS)
double m_egmin
Minimum CMS energy of the gamma (GeV).
double getSDif()
Returns weight.
void setEGVETO(double egveto)
Sets the minimum CMS energy to veto gamma.
void setTGMIN(double tgmin)
Sets the minimum CMS angle between the gamma and -z axis.
void setVacPol(const std::string &vacPol)
Sets vacuum polarization.
double m_eemin
Minimum CMS energy of the tagged e-/e+ (GeV).
double m_xpar[100]
Double parameters for BabayagaNLO.
std::string m_finalState
final state: ee, gg or mm.
void setOrder(const std::string &order)
Sets Order: born, alpha or exp.
void setNSearchMax(int nSearchMax)
Sets the number of events used to search maximum.
void setNSKDataFile(const std::string &NSKDataFile)
Sets NSK VP data file.
double m_massZ
Z mass [GeV].
double m_cmsEnergyNominal
Nominal CMS Energy = 2*Ebeam [GeV].
void setEEMIN(double eemin)
Sets the minimum CMS energy of the tagged e-/e+.
double m_egveto
Minimum CMS energy to veto gamma (GeV).
double m_massElectron
muon mass.
void initExtraInfo()
Initializes the extra info.
void setTGVETO(double tgveto)
Sets the maximum CMS angle between the gamma and -z axis.
std::string m_model
model: matched or ps.
std::string m_mode
mode: weighted or unweighted.
void applySettings()
Apply the settings to the internal Fortran generator.
void setUserMode(const std::string &usermode)
Sets User mode similar to TEEGG: ETRON, EGAMMA, GAMMA or PRESCALE or NONE (default)
void setMaxAcollinearity(double maxAcollinearity)
Sets maximum acollinearity angle between finale state leptons/photons in degrees.
double m_fMax
Maximum of differential cross section.
Class to build, validate and sort a particle decay chain.
Abstract base class for different kinds of events.