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);
C++ Interface for the Fortran Bhabha scattering generator BHWide.
EWCorrectionLib
Call electroweak correction.
@ EC_ALIBABA
ElectroWeak Corr.
@ EC_BABAMC
ElectroWeak Corr.
void init()
Initializes the generator.
void generateEvent(MCParticleGraph &mcGraph, ROOT::Math::XYZVector vertex, ROOT::Math::LorentzRotation boost)
Generates one single event.
HardBremsModel
Call Brem Model.
@ HM_HELICITY_AMP
obtained by the BHWide authors (helicity amplitudes).
@ HM_CALKUL
from CALKUL, Nucl.
double m_maxAcollinearity
Maximum acollinearity [deg] of final state e+e-.
void setMaxRejectionWeight(double maxRejectionWeight)
Sets the max weight at which events are rejected.
std::pair< double, double > m_ScatteringAngleRangePositron
Min and Max value for the scattering angle [deg] of the positron.
Channel
Call needed channels.
@ CH_T_ONLY
only t-channel (for tests!), with model == HM_CALKUL.
@ CH_S_ONLY
only s-channel (for tests!), with model == HM_CALKUL.
@ CH_BOTH
both s and t-channels + interferences.
int m_npar[100]
Integer parameters for BHWide.
double m_minEnergyFinalStateElc
Minimum energy [GeV] for final state electron.
void enableWeights(bool weighted=true)
Enable the use of weighted events.
void enableWeakCorrections(bool weakCorrections=true)
Enable the use of weak corrections.
void enableZContribution(bool zContribution=true)
Enabled the Z contribution.
void storeParticle(MCParticleGraph &mcGraph, const double *mom, int pdg, ROOT::Math::XYZVector vertex, ROOT::Math::LorentzRotation boost, bool isVirtual=false, bool isInitial=false)
Store a single generated particle into the MonteCarlo graph.
void setDefaultSettings()
Sets the default settings for the BhWide Fortran generator.
void setElectroWeakCorrectionsLib(EWCorrectionLib ewCorrectionLib)
Set the type of the electro weak correction library.
double m_sinW2
sin^2(theta_W) (may be recalculated by EW library).
Channel m_channel
Channel choice.
void setInfCutCMSEnergy(double infCutCMSEnergy)
Sets the CMS energy on which an infrared cut is performed.
double m_crossSection
The cross section of the generated bhabha scattering events.
PhotonVacPolarization m_photonVacPol
Photon vacuum polarization switch.
void setScatAnglePositron(std::pair< double, double > angleRange)
Sets the theta scattering angle range for the scattered positron.
PhotonVacPolarization
Call photon polarization.
@ PP_BURKHARDT
Burkhardt and Pietrzyk 1995 (Moriond).
@ PP_BHLUMI
Burkhardt et.al.
@ PP_OFF
Photon vacuum polarization is off.
double m_cmsEnergy
CMS Energy = 2*Ebeam [GeV].
void setMassHiggs(double massHiggs)
Sets the mass for the Higgs Boson.
RandomGenerator m_randomGenerator
Type of random number generator.
std::pair< double, double > m_ScatteringAngleRangeElectron
Min and Max value for the scattering angle [deg] of the electron.
EWCorrectionLib m_ewCorrectionLib
Option for ElectroWeak Corrections Library.
void setCMSEnergy(double cmsEnergy)
Sets the CMS energy.
void setMassTop(double massTop)
Sets the mass for the top quark.
bool m_weighted
Switch for constant, variable weight.
double m_widthZ
Z width [GeV] (may be recalculated by EW library).
void term()
Terminates the generator.
void setWidthZ(double widthZ)
Sets the width of the Z Boson.
void setChannel(Channel channel)
Set the type of channel which should be used.
bool m_weakCorrections
Switching ON/OFF weak corrections.
void setMassZ(double massZ)
Sets the mass of the Z Boson.
double m_maxRejectionWeight
Maximum Weight for rejection (if <= 0, it is reset inside the program).
bool m_zContribution
Z-contribution ON/OFF.
double m_infCutCMSEnergy
Dimensionless infrared cut on CMS energy of soft photons, ( E_phot > CMSENE*EPSCMS/2 ).
void setPhotonVacPolarization(PhotonVacPolarization photonVacPol)
Set the model for the photon vacuum polarization.
double m_massTop
top quark mass [GeV].
double m_massHiggs
Higgs mass [GeV].
void setMinEnergyFinalStateElc(double minEnergyFinalStateElc)
Sets the minimal energy for the scattered electron.
double m_xpar[100]
Double parameters for BHWide.
double m_crossSectionError
The error on the cross section of the generated bhabha scattering events.
double m_massZ
Z mass [GeV].
double m_minEnergyFinalStatePos
Minimum energy [GeV] for final state positron.
void setMinEnergyFinalStatePos(double minEnergyFinalStatePos)
Sets the minimal energy for the scattered positron.
void setHardBremsModel(HardBremsModel hardBremsModel)
Set the type of the hard bremsstrahlung model.
void setRandomGenerator(RandomGenerator randomGenerator)
Set the type of the randomN nmber generator.
void setSinW2(double sinW2)
Sets the value for the sinW2.
double getCrossSection()
Returns the total cross section of the generated process.
double getCrossSectionError()
Returns the error on the total cross section of the generated process.
void setScatAngleElectron(std::pair< double, double > angleRange)
Sets the theta scattering angle range for the scattered electron.
void applySettings()
Apply the settings to the internal Fortran generator.
void setMaxAcollinearity(double maxAcollinearity)
Sets the max acollinearity angle.
HardBremsModel m_hardBremsModel
type of MODEL subprogram and QED matrix element for hard bremsstrahlung.
RandomGenerator
Call random generator.
@ RG_RANECU
Ranecu generator.
@ RG_RANMAR
Ranmar generator.
Class to build, validate and sort a particle decay chain.
Abstract base class for different kinds of events.