33 using namespace genie;
 
   34 using namespace genie::constants;
 
   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);
 
~DMEOutgoingDarkGenerator()
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 
DMEOutgoingDarkGenerator()
static const double kElectronMass
A singleton holding random number generator classes. All random number generation in GENIE should tak...
Abstract class. Is used to pass common implementation to concrete implementations of the EventRecordV...
int FSPrimLeptonPdg(void) const 
final state primary lepton pdg 
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 SetPolarization(GHepRecord *ev) const 
const Kinematics & Kine(void) const 
virtual void AddToEventRecord(GHepRecord *ev, int pdgc, const TLorentzVector &p4) const 
void ProcessEventRecord(GHepRecord *event_rec) const 
TParticlePDG * FSPrimLepton(void) const 
final state primary lepton 
const InitialState & InitState(void) const 
double ProbeE(RefFrame_t rf) const 
GENIE's GHEP MC event record. 
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
Initial State information.