Belle II Software development
|
C++ Interface for the Fortran Bhabha scattering generator BHWide. More...
#include <BHWide.h>
Public Types | |
enum | Channel { CH_BOTH = 0 , CH_S_ONLY = 1 , CH_T_ONLY = 2 } |
Call needed channels. More... | |
enum | RandomGenerator { RG_RANMAR = 1 , RG_RANECU = 2 } |
Call random generator. More... | |
enum | EWCorrectionLib { EC_BABAMC = 1 , EC_ALIBABA = 2 } |
Call electroweak correction. More... | |
enum | HardBremsModel { HM_HELICITY_AMP = 1 , HM_CALKUL = 2 } |
Call Brem Model. More... | |
enum | PhotonVacPolarization { PP_OFF = 0 , PP_BHLUMI = 1 , PP_EIDELMAN = 2 , PP_BURKHARDT = 3 } |
Call photon polarization. More... | |
Public Member Functions | |
BHWide () | |
Constructor. | |
~BHWide () | |
Destrucotr. | |
void | setDefaultSettings () |
Sets the default settings for the BhWide Fortran generator. | |
void | enableZContribution (bool zContribution=true) |
Enabled the Z contribution. | |
void | setChannel (Channel channel) |
Set the type of channel which should be used. | |
void | enableWeights (bool weighted=true) |
Enable the use of weighted events. | |
void | setRandomGenerator (RandomGenerator randomGenerator) |
Set the type of the randomN nmber generator. | |
void | enableWeakCorrections (bool weakCorrections=true) |
Enable the use of weak corrections. | |
void | setElectroWeakCorrectionsLib (EWCorrectionLib ewCorrectionLib) |
Set the type of the electro weak correction library. | |
void | setHardBremsModel (HardBremsModel hardBremsModel) |
Set the type of the hard bremsstrahlung model. | |
void | setPhotonVacPolarization (PhotonVacPolarization photonVacPol) |
Set the model for the photon vacuum polarization. | |
void | setCMSEnergy (double cmsEnergy) |
Sets the CMS energy. | |
void | setScatAnglePositron (std::pair< double, double > angleRange) |
Sets the theta scattering angle range for the scattered positron. | |
void | setScatAngleElectron (std::pair< double, double > angleRange) |
Sets the theta scattering angle range for the scattered electron. | |
void | setMinEnergyFinalStatePos (double minEnergyFinalStatePos) |
Sets the minimal energy for the scattered positron. | |
void | setMinEnergyFinalStateElc (double minEnergyFinalStateElc) |
Sets the minimal energy for the scattered electron. | |
void | setMaxAcollinearity (double maxAcollinearity) |
Sets the max acollinearity angle. | |
void | setInfCutCMSEnergy (double infCutCMSEnergy) |
Sets the CMS energy on which an infrared cut is performed. | |
void | setMaxRejectionWeight (double maxRejectionWeight) |
Sets the max weight at which events are rejected. | |
void | setMassZ (double massZ) |
Sets the mass of the Z Boson. | |
void | setWidthZ (double widthZ) |
Sets the width of the Z Boson. | |
void | setSinW2 (double sinW2) |
Sets the value for the sinW2. | |
void | setMassTop (double massTop) |
Sets the mass for the top quark. | |
void | setMassHiggs (double massHiggs) |
Sets the mass for the Higgs Boson. | |
void | init () |
Initializes the generator. | |
void | generateEvent (MCParticleGraph &mcGraph, ROOT::Math::XYZVector vertex, ROOT::Math::LorentzRotation boost) |
Generates one single event. | |
void | term () |
Terminates the generator. | |
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. | |
Protected Member Functions | |
void | applySettings () |
Apply the settings to the internal Fortran generator. | |
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. | |
Protected Attributes | |
bool | m_zContribution |
Z-contribution ON/OFF. | |
Channel | m_channel |
Channel choice. | |
bool | m_weighted |
Switch for constant, variable weight. | |
RandomGenerator | m_randomGenerator |
Type of random number generator. | |
bool | m_weakCorrections |
Switching ON/OFF weak corrections. | |
EWCorrectionLib | m_ewCorrectionLib |
Option for ElectroWeak Corrections Library. | |
HardBremsModel | m_hardBremsModel |
type of MODEL subprogram and QED matrix element for hard bremsstrahlung. | |
PhotonVacPolarization | m_photonVacPol |
Photon vacuum polarization switch. | |
double | m_cmsEnergy |
CMS Energy = 2*Ebeam [GeV]. | |
std::pair< double, double > | m_ScatteringAngleRangePositron |
Min and Max value for the scattering angle [deg] of the positron. | |
std::pair< double, double > | m_ScatteringAngleRangeElectron |
Min and Max value for the scattering angle [deg] of the electron. | |
double | m_minEnergyFinalStatePos |
Minimum energy [GeV] for final state positron. | |
double | m_minEnergyFinalStateElc |
Minimum energy [GeV] for final state electron. | |
double | m_maxAcollinearity |
Maximum acollinearity [deg] of final state e+e-. | |
double | m_infCutCMSEnergy |
Dimensionless infrared cut on CMS energy of soft photons, ( E_phot > CMSENE*EPSCMS/2 ). | |
double | m_maxRejectionWeight |
Maximum Weight for rejection (if <= 0, it is reset inside the program). | |
double | m_massZ |
Z mass [GeV]. | |
double | m_widthZ |
Z width [GeV] (may be recalculated by EW library). | |
double | m_sinW2 |
sin^2(theta_W) (may be recalculated by EW library). | |
double | m_massTop |
top quark mass [GeV]. | |
double | m_massHiggs |
Higgs mass [GeV]. | |
double | m_crossSection |
The cross section of the generated bhabha scattering events. | |
double | m_crossSectionError |
The error on the cross section of the generated bhabha scattering events. | |
Private Attributes | |
int | m_npar [100] |
Integer parameters for BHWide. | |
double | m_xpar [100] |
Double parameters for BHWide. | |
C++ Interface for the Fortran Bhabha scattering generator BHWide.
IMPOTRANT NOTE: In the case of generating UNWEIGHTED events, the user should check in the OUTPUT if the number of OVERWEIGHTED events and/or the fraction of the corresponding cross section is ACCEPTABLE for his/her desired PRECISION. If not, the value of WTMAX has to be adjusted (increased) accordingly (making a histogram of the weight might be helpful).
enum Channel |
Call needed channels.
Enumerator | |
---|---|
CH_BOTH | both s and t-channels + interferences. |
CH_S_ONLY | only s-channel (for tests!), with model == HM_CALKUL. |
CH_T_ONLY | only t-channel (for tests!), with model == HM_CALKUL. |
Definition at line 36 of file BHWide.h.
enum EWCorrectionLib |
Call electroweak correction.
Enumerator | |
---|---|
EC_BABAMC | ElectroWeak Corr. from BABAMC (obsolete). |
EC_ALIBABA | ElectroWeak Corr. from ALIBABA, RECOMMENDED. |
enum HardBremsModel |
Call Brem Model.
Enumerator | |
---|---|
HM_HELICITY_AMP | obtained by the BHWide authors (helicity amplitudes). |
HM_CALKUL | from CALKUL, Nucl. Phys. B206 (1982) 61. |
Definition at line 55 of file BHWide.h.
Call photon polarization.
Definition at line 61 of file BHWide.h.
enum RandomGenerator |
BHWide | ( | ) |
Constructor.
Sets the default settings.
Definition at line 60 of file BHWide.cc.
|
protected |
Apply the settings to the internal Fortran generator.
Definition at line 152 of file BHWide.cc.
|
inline |
Enable the use of weak corrections.
weakCorrections | Set to true to use weak corrections. |
Definition at line 102 of file BHWide.h.
|
inline |
Enable the use of weighted events.
weighted | Set to false to generate events for an unweighted MonteCarlo detector simulation. |
Definition at line 92 of file BHWide.h.
|
inline |
Enabled the Z contribution.
zContribution | Set to true to enabled the Z contribution. |
Definition at line 82 of file BHWide.h.
void generateEvent | ( | MCParticleGraph & | mcGraph, |
ROOT::Math::XYZVector | vertex, | ||
ROOT::Math::LorentzRotation | boost | ||
) |
Generates one single event.
mcGraph | Reference to the MonteCarlo graph into which the generated particles will be stored. |
vertex | generated vertex. |
boost | generated boost. |
Definition at line 116 of file BHWide.cc.
|
inline |
|
inline |
void init | ( | ) |
Initializes the generator.
Sets the default values for the internal Fortran generator.
Definition at line 108 of file BHWide.cc.
|
inline |
|
inline |
Sets the CMS energy.
cmsEnergy | The CMS energy in [GeV]. |
Definition at line 122 of file BHWide.h.
void setDefaultSettings | ( | ) |
Sets the default settings for the BhWide Fortran generator.
Definition at line 80 of file BHWide.cc.
|
inline |
Set the type of the electro weak correction library.
ewCorrectionLib | The electro weak correction library which is used: BABAMC or ALIBABA. |
Definition at line 107 of file BHWide.h.
|
inline |
Set the type of the hard bremsstrahlung model.
hardBremsModel | The model which is used for the hard bremsstrahlung: helicity amplitudes or CALKUL. |
Definition at line 112 of file BHWide.h.
|
inline |
Sets the CMS energy on which an infrared cut is performed.
infCutCMSEnergy | The CMS energy in [Gev] at which an infrared cut is performed. |
Definition at line 152 of file BHWide.h.
|
inline |
Sets the mass for the Higgs Boson.
massHiggs | The mass for the Higgs Boson in [GeV]. |
Definition at line 182 of file BHWide.h.
|
inline |
|
inline |
|
inline |
Sets the max acollinearity angle.
maxAcollinearity | The max acollinearity angle in [deg]. |
Definition at line 147 of file BHWide.h.
|
inline |
Sets the max weight at which events are rejected.
maxRejectionWeight | The weight at which events are rejected. |
Definition at line 157 of file BHWide.h.
|
inline |
Sets the minimal energy for the scattered electron.
minEnergyFinalStateElc | The minimal energy for the scattered electron in [GeV]. |
Definition at line 142 of file BHWide.h.
|
inline |
Sets the minimal energy for the scattered positron.
minEnergyFinalStatePos | The minimal energy for the scattered positron in [GeV]. |
Definition at line 137 of file BHWide.h.
|
inline |
|
inline |
Set the type of the randomN nmber generator.
randomGenerator | The type of the random number generator: Ranmar or Ranecu. |
Definition at line 97 of file BHWide.h.
|
inline |
Sets the theta scattering angle range for the scattered electron.
angleRange | A pair of values, representing the min and max theta angle of the scattered electron in [deg]. |
Definition at line 132 of file BHWide.h.
|
inline |
Sets the theta scattering angle range for the scattered positron.
angleRange | A pair of values, representing the min and max theta angle of the scattered positron in [deg]. |
Definition at line 127 of file BHWide.h.
|
inline |
|
inline |
|
protected |
Store a single generated particle into the MonteCarlo graph.
mcGraph | Reference to the MonteCarlo graph into which the particle should be stored. |
mom | The 3-momentum of the particle in [GeV]. |
pdg | The PDG code of the particle. |
vertex | Production vertex. |
boost | Lorentz boost vector. |
isVirtual | If the particle is a virtual particle, such as the incoming particles, set this to true. |
isInitial | If the particle is a initial particle for ISR, set this to true. |
Definition at line 187 of file BHWide.cc.
void term | ( | ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |