25 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,15,6)
26 #include <TMCParticle.h>
28 #include <TMCParticle6.h>
31 using namespace genie;
32 using namespace genie::utils::math;
81 LOG(
"HEDISGenerator",
pINFO) <<
"NEUTRINO @ LAB' => E = " << p4v.E() <<
" // m = " << p4v.M() <<
" // p = " << p4v.P();
82 LOG(
"HEDISGenerator",
pINFO) <<
" dir = " << p4v.Dx() <<
" , " << p4v.Dy() <<
" , " << p4v.Dz();
85 long double Q2 = interaction->
Kine().
Q2(
true);
86 long double y = interaction->
Kine().
y(
true);
87 long double Ev = p4v.E();
89 long double ml2 = powl(ml,2);
93 long double El = (1-y)*Ev;
94 long double plp = El - 0.5*(Q2+ml2)/Ev;
95 long double plt = sqrtl(fmaxl(0.,El*El-plp*plp-ml2));
99 long double pltx = plt * cosl(phi);
100 long double plty = plt * sinl(phi);
105 LOG(
"HEDISGenerator",
pINFO) <<
"LEPTON @ LAB' => E = " << p4llong.
E() <<
" // m = " << p4llong.
M() <<
" // p = " << p4llong.
P();
106 LOG(
"HEDISGenerator",
pINFO) <<
" dir = " << p4llong.
Dx() <<
" , " << p4llong.
Dy() <<
" , " << p4llong.
Dz();
109 TLorentzVector p4l( (
double)p4llong.
Px(), (double)p4llong.
Py(), (double)p4llong.
Pz(), (double)p4llong.
E() );
virtual GHepParticle * Particle(int position) const
void AddPrimaryLepton(GHepRecord *evrec) const
TRandom3 & RndLep(void) const
rnd number generator used by final state primary lepton generators
double Q2(const Interaction *const i)
virtual Interaction * Summary(void) const
static RandomGen * Instance()
Access instance.
const TLorentzVector * P4(void) const
Kinematics * KinePtr(void) const
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the 'Visito...
virtual int RemnantNucleusPosition(void) const
void AddTargetNucleusRemnant(GHepRecord *event_rec) const
void ProcessEventRecord(GHepRecord *evrec) const
void Initialize(void) const
A singleton holding random number generator classes. All random number generation in GENIE should tak...
virtual GHepParticle * Probe(void) const
double y(bool selected=false) const
Summary information for an interaction.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
virtual void ProcessEventRecord(GHepRecord *event_rec) const =0
void SetFSLeptonP4(const TLorentzVector &p4)
const Kinematics & Kine(void) const
virtual void Configure(const Registry &config)
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
const EventRecordVisitorI * fHadronizationModel
const TLorentzVector * X4(void) const
A registry. Provides the container for algorithm configuration parameters.
virtual void AddParticle(const GHepParticle &p)
Abstract class. Is used to pass some commonly recurring methods to all concrete implementations of th...
double Q2(bool selected=false) const
virtual int ProbePosition(void) const
void Rotate(LongLorentzVector axis)
GENIE's GHEP MC event record.
STDHEP-like event record entry that can fit a particle or a nucleus.
void Configure(const Registry &config)
const Algorithm * SubAlg(const RgKey ®istry_key) const