![]() |
Belle II Software
release-08-02-05
|
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. More... | |
| ~BHWide () | |
| Destrucotr. | |
| void | setDefaultSettings () |
| Sets the default settings for the BhWide Fortran generator. | |
| void | enableZContribution (bool zContribution=true) |
| Enabled the Z contribution. More... | |
| void | setChannel (Channel channel) |
| Set the type of channel which should be used. More... | |
| void | enableWeights (bool weighted=true) |
| Enable the use of weighted events. More... | |
| void | setRandomGenerator (RandomGenerator randomGenerator) |
| Set the type of the randomN nmber generator. More... | |
| void | enableWeakCorrections (bool weakCorrections=true) |
| Enable the use of weak corrections. More... | |
| void | setElectroWeakCorrectionsLib (EWCorrectionLib ewCorrectionLib) |
| Set the type of the electro weak correction library. More... | |
| void | setHardBremsModel (HardBremsModel hardBremsModel) |
| Set the type of the hard bremsstrahlung model. More... | |
| void | setPhotonVacPolarization (PhotonVacPolarization photonVacPol) |
| Set the model for the photon vacuum polarization. More... | |
| void | setCMSEnergy (double cmsEnergy) |
| Sets the CMS energy. More... | |
| void | setScatAnglePositron (std::pair< double, double > angleRange) |
| Sets the theta scattering angle range for the scattered positron. More... | |
| void | setScatAngleElectron (std::pair< double, double > angleRange) |
| Sets the theta scattering angle range for the scattered electron. More... | |
| void | setMinEnergyFinalStatePos (double minEnergyFinalStatePos) |
| Sets the minimal energy for the scattered positron. More... | |
| void | setMinEnergyFinalStateElc (double minEnergyFinalStateElc) |
| Sets the minimal energy for the scattered electron. More... | |
| void | setMaxAcollinearity (double maxAcollinearity) |
| Sets the max acollinearity angle. More... | |
| void | setInfCutCMSEnergy (double infCutCMSEnergy) |
| Sets the CMS energy on which an infrared cut is performed. More... | |
| void | setMaxRejectionWeight (double maxRejectionWeight) |
| Sets the max weight at which events are rejected. More... | |
| void | setMassZ (double massZ) |
| Sets the mass of the Z Boson. More... | |
| void | setWidthZ (double widthZ) |
| Sets the width of the Z Boson. More... | |
| void | setSinW2 (double sinW2) |
| Sets the value for the sinW2. More... | |
| void | setMassTop (double massTop) |
| Sets the mass for the top quark. More... | |
| void | setMassHiggs (double massHiggs) |
| Sets the mass for the Higgs Boson. More... | |
| void | init () |
| Initializes the generator. More... | |
| void | generateEvent (MCParticleGraph &mcGraph, ROOT::Math::XYZVector vertex, ROOT::Math::LorentzRotation boost) |
| Generates one single event. More... | |
| void | term () |
| Terminates the generator. More... | |
| double | getCrossSection () |
| Returns the total cross section of the generated process. More... | |
| double | getCrossSectionError () |
| Returns the error on the total cross section of the generated process. More... | |
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. More... | |
Protected Attributes | |
| bool | m_zContribution |
| Z-contribution ON/OFF. | |
| Channel | m_channel |
| Channel choice. | |
| bool | m_weighted |
| Switch for constant, variable weight. More... | |
| RandomGenerator | m_randomGenerator |
| Type of random number generator. | |
| bool | m_weakCorrections |
| Switching ON/OFF weak corrections. More... | |
| 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 |
| enum HardBremsModel |
| enum RandomGenerator |
| BHWide | ( | ) |
Constructor.
Sets the default settings.
Definition at line 60 of file BHWide.cc.
|
inline |
|
inline |
|
inline |
| void generateEvent | ( | MCParticleGraph & | mcGraph, |
| ROOT::Math::XYZVector | vertex, | ||
| ROOT::Math::LorentzRotation | boost | ||
| ) |
|
inline |
|
inline |
| void init | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
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. |
| void term | ( | ) |
|
protected |
|
protected |