62 double y = interaction->
Kine().
y(
true);
74 <<
"Ev = " << Ev <<
", y = " << y <<
", -> El = " << El;
77 double Ev2 = TMath::Power(Ev,2);
78 double El2 = TMath::Power(El,2);
81 double ml2 = TMath::Power(ml,2);
82 double pl = TMath::Sqrt(El2-ml2);
83 double pv = TMath::Sqrt(Ev2-ml2);
85 assert(El2>=ml2&&Ev2>=ml2);
87 double Q2 = 2*(Ev-El)*me;
88 double costh = (El*Ev - ml2 -0.5*Q2)/pl/pv;
89 double sinth = TMath::Sqrt( TMath::Max(0., 1-TMath::Power(costh,2.)) );
92 <<
"Q2 = " << Q2 <<
", cos(theta) = " << costh;
95 if( TMath::Abs(costh)>1 ) {
97 <<
"El = " << El <<
", Ev = " << Ev <<
", cos(theta) = " << costh;
100 assert(TMath::Abs(costh)<=1);
103 double plp = pl * costh;
104 double plt = pl * sinth;
107 <<
"fsl: E = " << El <<
", |p//| = " << plp <<
"[pT] = " << plt;
111 double phi = 2*
kPi * rnd->
RndLep().Rndm();
112 double pltx = plt * TMath::Cos(phi);
113 double plty = plt * TMath::Sin(phi);
116 TVector3 unit_nudir = evrec->
Probe()->
P4()->Vect().Unit();
120 TVector3 p3l(pltx,plty,plp);
121 p3l.RotateUz(unit_nudir);
124 TLorentzVector p4l(p3l,El);
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
~DMEOutgoingDarkGenerator()
DMEOutgoingDarkGenerator()
void ProcessEventRecord(GHepRecord *event_rec) const
const TLorentzVector * P4(void) const
GENIE's GHEP MC event record.
virtual GHepParticle * Probe(void) const
virtual Interaction * Summary(void) const
Initial State information.
double ProbeE(RefFrame_t rf) const
Summary information for an interaction.
const Kinematics & Kine(void) const
int FSPrimLeptonPdg(void) const
final state primary lepton pdg
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
const InitialState & InitState(void) const
double y(bool selected=false) const
virtual void SetPolarization(GHepRecord *ev) const
virtual void AddToEventRecord(GHepRecord *ev, int pdgc, const TLorentzVector &p4) const
A singleton holding random number generator classes. All random number generation in GENIE should tak...
static RandomGen * Instance()
Access instance.
TRandom3 & RndLep(void) const
rnd number generator used by final state primary lepton generators
static const double kElectronMass
THE MAIN GENIE PROJECT NAMESPACE