11#include <mdst/dataobjects/MCParticleGraph.h>
13#include <Math/LorentzRotation.h>
14#include <Math/Vector3D.h>
71 {
for (
int i = 0; i < 4; i++)
p1[i] =
p2[i] =
q1[i] =
q2[i] =
qk[i] = 0.0;}
87 void init(
double cmsEnergy,
double minPhotonEFrac,
bool unweighted =
true,
double maxWeight = 2000.0,
int densitymode = 1,
88 double densityparameter = 1.68e-17);
172 ROOT::Math::LorentzRotation boost,
173 bool isVirtual =
false,
bool isInitial =
false);
177 static constexpr double tomb = 3.8937966e5 / 1e6;
178 static constexpr double twopi = 2.0 * M_PI;
Generator for low scattering angle radiative Bhabha events (Beam-Beam Bremsstrahlung).
long m_weightCountOver
Internal overweighted event counter.
double m_maxWeightDelivered
The maximum weight given by the BBBrem generation.
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.
double getCrossSectionErrorOver()
Returns the error on the total overweight bias cross section of the generated process in millibarn.
double m_crossSection
The cross-section in millibarns.
bool m_unweighted
True if BBBrem should produce unweighted events.
double m_cmsEnergy
Center of mass energy (sqrt(s)).
double m_densityCorrectionParameter
Density correction parameter tc.
static constexpr double twopi
2*pi.
int m_eventCount
Internal event counter.
void calcOutgoingLeptonsAndWeight()
Calculate the outgoing leptons and the event weight for one single radiative Bhabha scattering.
long m_weightCount
Internal weighted event counter.
static constexpr double tomb
Conversion factor (hc)^2.
double m_sumWeightDeliveredOver
The sum of all overweights.
void term()
Terminates the generator.
double m_maxWeight
The maximum weight.
double generateEvent(MCParticleGraph &mcGraph, ROOT::Math::XYZVector vertex, ROOT::Math::LorentzRotation boost)
Generates one single event.
double getSumWeightDelivered()
Returns the sum of all weights returned by the BBBrem generation.
double m_sumWeightDelivered
The sum of all weights returned by the BBBrem generation.
double m_crossSectionError
The error on the cross-section in millibarns.
double m_sumWeightDeliveredSqrOver
The square of the sum of all overweights.
double getCrossSectionOver()
Returns the total overweight bias cross section of the generated process in millibarn.
double m_sumWeightDeliveredSqr
The square of the sum of all weights returned by the BBBrem generation.
double getCrossSection()
Returns the total cross section of the generated process in millibarn.
double getCrossSectionError()
Returns the error on the total cross section of the generated process in millibarn.
double m_photonEFrac
Minimum photon energy fraction.
int m_densityCorrectionMode
Mode for bunch density correction.
double m_crossSectionErrorOver
The overweight bias error on the cross-section in millibarns.
double getMaxWeightDelivered()
Returns the maximum weight given by the BBBrem generation.
double m_crossSectionOver
The overweight bias cross-section in millibarns.
Class to build, validate and sort a particle decay chain.
Abstract base class for different kinds of events.