74 TVector3 unit_nu = nu->
P4()->Vect().Unit();
82 long double s =
born->GetS(mlin,Enuin);
87 long double costhCM = n1;
88 long double sinthCM = sqrtl(1-costhCM*costhCM);
90 long double t =
born->GetT( mlin, mlout, s, n1 );
92 long double omx = powl(n2, 1.0/zeta );
93 long double s_r = s*( 1.-omx );
96 long double EnuinCM = (s_r-mlin*mlin)/sqrtl(s_r)/2.;
97 long double beta = (powl(Enuin,2)-powl(EnuinCM,2))/(powl(Enuin,2)+powl(EnuinCM,2));
103 long double ElpoutCM = (s_r+mlout*mlout)/sqrtl(s_r)/2.;
104 long double EnuoutCM = (s_r-mlout*mlout)/sqrtl(s_r)/2.;
106 LongLorentzVector p4_nuout( 0., -EnuoutCM*sinthCM, -EnuoutCM*costhCM, EnuoutCM );
111 TLorentzVector p4lp_o( (
double)p4_lpout.
Px(), (
double)p4_lpout.
Py(), (
double)p4_lpout.
Pz(), (
double)p4_lpout.
E() );
112 TLorentzVector p4nu_o( (
double)p4_nuout.
Px(), (
double)p4_nuout.
Py(), (
double)p4_nuout.
Pz(), (
double)p4_nuout.
E() );
116 double phi = 2*
kPi * rnd->
RndLep().Rndm();
121 p4lp_o.RotateUz(unit_nu);
122 p4nu_o.RotateUz(unit_nu);
126 else pdgvout = nu->
Pdg();
131 event->Summary()->KinePtr()->SetFSLeptonP4(p4lp_o);
STDHEP-like event record entry that can fit a particle or a nucleus.
const TLorentzVector * P4(void) const
const TLorentzVector * X4(void) const