#include <T3piCrossPart.h>
Inheritance diagram for T3piCrossPart:
Public Member Functions | |
T3piCrossPart (double e, double de, double nth0) | |
~T3piCrossPart () | |
double | GetValue (const unsigned int npart) |
void | MakeParts (double err) |
size_t | GenUnWeightedEvent () |
size_t | GenWeightedEvent (double &w) |
TLorentzVector ** | GetParticles () |
void | SetNRad (size_t x=25000) |
size_t | GetNRad () |
size_t | GetNfinal () |
int | GetPid (size_t i) |
void | BeamSpread () |
void | SetBeamSpread (double x=1) |
Protected Member Functions | |
void | SetJ () |
bool | Accepted () |
double | radB (const TLorentzVector &k) |
double | rad (double zp, double zm) |
void | SetFinalParticles (size_t, const double *, const int *) |
double | Generate () |
void | J3PseudoScalars () |
Protected Attributes | |
TGenPhaseSpace | fevent |
rb::TPhoton * | fphot |
rb::TPhotonD * | fsphot |
rb::TDFun * | fD |
double | fe |
double | fs |
double | flogs |
double | fbeta2 |
double | fdelta |
double | fK |
double | fep |
double | fem |
double | fsigmap |
double | fsigmam |
double | fppz |
double | fpmz |
bool | fBeamSpread |
double | fsum [NPARTMAX] |
double | fsum2 [NPARTMAX] |
double | fmin [NPARTMAX] |
double | fmax [NPARTMAX] |
size_t | fN [NPARTMAX] |
double | fcs [NPARTMAX] |
double | fecs [NPARTMAX] |
double | facs [NPARTMAX] |
double | fxm |
double | fxp |
bool | inc [NPARTMAX] |
size_t | fNRad |
TLorentzVector | fpp |
TLorentzVector | fpm |
TLorentzVector | fW |
TLorentzVector | fq |
TLorentzVectorC | fJc |
size_t | fNfinal |
TLorentzVector ** | fres |
double | fm [7] |
int | fpid [7+2] |
double | fq2 |
Definition at line 6 of file T3piCrossPart.h.
T3piCrossPart::T3piCrossPart | ( | double | e, | |
double | de, | |||
double | nth0 | |||
) |
Definition at line 96 of file T3piCrossPart.C.
References TCrossPart::fphot, mpi, mpi0, pid, rb::TPhoton::SetEnergyRange(), and TCrossPart::SetFinalParticles().
00096 : 00097 TCrossPart(e,de,nth0) 00098 { 00099 const double m[] = { mpi, mpi, mpi0}; 00100 const int pid[] = { 211, -211, 111}; 00101 double emax = e*(1 - pow((m[0]+m[1]+m[2])/(2*e),2)); 00102 // emax = e/2.5; 00103 fphot->SetEnergyRange(de,emax); 00104 std::cout<<de<<"MeV <E_gamma< "<<emax<<" MeV"<<std::endl; 00105 // fphot->SetEnergyRange(de,0.5*e); 00106 SetFinalParticles(3, m, pid); 00107 std::cout<<"Process -- e^+e^- -> rho pi -> pi^+pi^-pi^0"<<std::endl; 00108 }
T3piCrossPart::~T3piCrossPart | ( | ) | [inline] |
bool T3piCrossPart::Accepted | ( | ) | [protected, virtual] |
Implements TCrossPart.
Definition at line 132 of file T3piCrossPart.C.
00132 { 00133 // require inv mass of 3-pi within 97% of Ecm 00134 // if(fq2<0.95*fs) return false; 00135 // const TLorentzVector &qp = *fres[0]; //pi^+ momentum 00136 // const TLorentzVector &qm = *fres[1]; //pi^- momentum 00137 // const TLorentzVector &q0 = *fres[2]; //pi^0 momentum 00138 00139 // double qpqm = qp*qm; 00140 // double qpq0 = qp*q0; 00141 // double qmq0 = qm*q0; 00142 // double Qp2 = mpi2 + mpi02 + 2*qmq0; 00143 // double Qm2 = mpi2 + mpi02 + 2*qpq0; 00144 00145 // if(Qp2+Qm2<5e6) return false; 00146 00147 // if(fabs(qp.P()-qm.P())>0.04*fe) return false; 00148 00149 // double cosqp = qp.CosTheta(); 00150 // if(fabs(cosqp)>0.9)return false; 00151 00152 // double cosqm = qm.CosTheta(); 00153 // if(fabs(cosqm)>0.9)return false; 00154 00155 return true; 00156 }
void TCrossPart::BeamSpread | ( | ) | [inherited] |
Definition at line 107 of file TCrossPart.C.
References TCrossPart::fe, TCrossPart::fem, TCrossPart::fep, TCrossPart::fpm, TCrossPart::fpmz, TCrossPart::fpp, TCrossPart::fppz, TCrossPart::fs, TCrossPart::fsigmam, TCrossPart::fsigmap, TCrossPart::fW, and me.
Referenced by TCrossPart::GetValue().
00107 { 00108 fep = fe + gRandom->Gaus(0,fsigmap); 00109 fem = fe + gRandom->Gaus(0,fsigmam); 00110 double betap2 = 1 - pow(me/fep,2); 00111 double betap = sqrt(betap2); 00112 double betam2 = 1 - pow(me/fem,2); 00113 double betam = sqrt(betam2); 00114 fppz = fep*betap; 00115 fpmz = -fem*betam; 00116 fpp.SetPxPyPzE(0,0,fppz,fep); 00117 fpm.SetPxPyPzE(0,0,fpmz,fem); 00118 fW.SetPxPyPzE(0,0,0,fep+fem); 00119 fs = fW.M2(); 00120 }
double TCrossPart::Generate | ( | ) | [protected, inherited] |
Definition at line 32 of file TCrossPart.C.
References TCrossPart::fevent, TCrossPart::fm, TCrossPart::fNfinal, and TCrossPart::fq.
Referenced by TCrossPart::rad(), and TCrossPart::radB().
00032 { 00033 // Attention!!! Before invoking this method you must set fq ! 00034 if(!fevent.SetDecay(fq, fNfinal, fm, "Fermi")) return 0; 00035 /* 00036 for N body decay dGamma has dimension of [MeV^(2*(N-2))] from Fermi 00037 dependence. Meaning dGamma see paper by Kuraev et al 00038 */ 00039 const double i2piN[] = 00040 {1, 00041 2.533029591058444286096986e-2, // = 1/pow(2*M_PI,2) 2 final particles 00042 1.021176138454182960196328e-4, // = 1/pow(2*M_PI,5) 3 final particles 00043 4.116812173964596341083153e-7, // = 1/pow(2*M_PI,8) 4 final particles 00044 1.659668869795425306504901e-9, // = 1/pow(2*M_PI,11) 5 final particles 00045 6.690858462739554865983570e-12, // = 1/pow(2*M_PI,14) 6 final particles 00046 2.697380651233861939614714e-14 // = 1/pow(2*M_PI,17) 7 final particles 00047 }; 00048 00049 double dGamma = fevent.Generate()*i2piN[fNfinal-1]; 00050 return dGamma; 00051 }
size_t TCrossPart::GenUnWeightedEvent | ( | ) | [inherited] |
Definition at line 253 of file TCrossPart.C.
References TCrossPart::facs, TCrossPart::fem, TCrossPart::fep, TCrossPart::fmax, TCrossPart::fNfinal, TCrossPart::fres, TCrossPart::fxm, TCrossPart::fxp, and TCrossPart::GetValue().
Referenced by Mcgpj::execute().
00253 { 00254 double r = gRandom->Rndm(); 00255 size_t ipart = 0; 00256 while(r>facs[ipart]) ipart++; 00257 while (true){ 00258 double m = GetValue(ipart); 00259 if ( m != 0 && m>fmax[ipart]*gRandom->Rndm() ) break; 00260 } 00261 00262 if(ipart==4){ 00263 fres[fNfinal+1]->SetPxPyPzE(0,0,0,0); 00264 } else { 00265 fres[fNfinal]->SetPxPyPzE(0,0,-fxm*fem,fxm*fem); 00266 fres[fNfinal+1]->SetPxPyPzE(0,0, fxp*fep,fxp*fep); 00267 } 00268 return ipart; 00269 }
size_t TCrossPart::GenWeightedEvent | ( | double & | w | ) | [inherited] |
Definition at line 271 of file TCrossPart.C.
References TCrossPart::facs, TCrossPart::fcs, TCrossPart::fem, TCrossPart::fep, TCrossPart::fNfinal, TCrossPart::fres, TCrossPart::fxm, TCrossPart::fxp, and TCrossPart::GetValue().
00271 { 00272 double m = 0; 00273 size_t ipart = 0; 00274 do { 00275 double r = gRandom->Rndm(); 00276 ipart = 0; 00277 while(r>facs[ipart]) ipart++; 00278 m = GetValue(ipart); 00279 if ( m > 0 ) break; 00280 } while (m<=0); 00281 00282 if(ipart==4){ 00283 fres[fNfinal+1]->SetPxPyPzE(0,0,0,0); 00284 } else { 00285 fres[fNfinal]->SetPxPyPzE(0,0,-fxm*fem,fxm*fem); 00286 fres[fNfinal+1]->SetPxPyPzE(0,0, fxp*fep,fxp*fep); 00287 } 00288 00289 w = m/fcs[ipart]; 00290 return ipart; 00291 }
size_t TCrossPart::GetNfinal | ( | ) | [inline, inherited] |
Definition at line 70 of file TCrossPart.h.
References TCrossPart::fNfinal.
Referenced by Mcgpj::execute().
00070 {return fNfinal;}
size_t TCrossPart::GetNRad | ( | ) | [inline, inherited] |
TLorentzVector** TCrossPart::GetParticles | ( | ) | [inline, inherited] |
Definition at line 67 of file TCrossPart.h.
References TCrossPart::fres.
Referenced by Mcgpj::execute().
00067 {return fres;}
int TCrossPart::GetPid | ( | size_t | i | ) | [inline, inherited] |
Definition at line 71 of file TCrossPart.h.
References TCrossPart::fpid.
Referenced by Mcgpj::execute().
double TCrossPart::GetValue | ( | const unsigned int | npart | ) | [inherited] |
Definition at line 122 of file TCrossPart.C.
References alpha, TCrossPart::BeamSpread(), rb::TDFun::Eval(), rb::TDFun::EvalSoft(), TCrossPart::fBeamSpread, TCrossPart::fD, TCrossPart::fe, TCrossPart::fK, TCrossPart::flogs, TCrossPart::fphot, TCrossPart::fsphot, TCrossPart::fxm, TCrossPart::fxp, rb::TPhotonD::GetEnergy(), rb::TPhoton::GetEnergy(), rb::TPhotonD::GetENorm(), rb::TPhoton::GetENorm(), rb::TPhoton::GetNewPhoton(), rb::TPhoton::GetPhotNorm(), TCrossPart::inc, M_PI, TCrossPart::rad(), and TCrossPart::radB().
Referenced by TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), and TCrossPart::MakeParts().
00122 { 00123 double m2 = 0; 00124 const double AP = alpha/M_PI; 00125 if(!inc[npart]) return 0; 00126 if(fBeamSpread) BeamSpread(); 00127 switch ( npart ){ 00128 case 4: 00129 { 00130 const TLorentzVector &k = fphot->GetNewPhoton(); 00131 double d3k_om = k.E()*fphot->GetPhotNorm()*fe; 00132 m2 = radB(k)*d3k_om; 00133 } 00134 break; 00135 case 1: 00136 { 00137 fxp = fphot->GetEnergy(); 00138 double normp = fphot->GetENorm(); 00139 fxm = fsphot->GetEnergy(); 00140 double normm = fsphot->GetENorm(); 00141 00142 double comp = ((1-fxp+0.5*fxp*fxp)*flogs+0.5*fxp*fxp)/fxp; 00143 // double comp = 0; 00144 m2 = rad(1-fxp, 1-fxm)* 00145 ((1+AP*fK)* 00146 fD->Eval(1-fxp)* 00147 fD->EvalSoft(fxm)*normm 00148 + AP*comp)*normp; 00149 } 00150 break; 00151 case 2: 00152 { 00153 fxm = fphot->GetEnergy(); 00154 double normm = fphot->GetENorm(); 00155 fxp = fsphot->GetEnergy(); 00156 double normp = fsphot->GetENorm(); 00157 00158 double comp = ((1-fxm+0.5*fxm*fxm)*flogs+0.5*fxm*fxm)/fxm; 00159 // double comp = 0; 00160 m2 = rad(1-fxp, 1-fxm)* 00161 ((1+AP*fK)* 00162 fD->Eval(1-fxm)* 00163 fD->EvalSoft(fxp)*normp 00164 + AP*comp)*normm; 00165 } 00166 break; 00167 case 0: 00168 { 00169 // return 0; 00170 fxm = fsphot->GetEnergy(); 00171 double normm = fsphot->GetENorm(); 00172 fxp = fsphot->GetEnergy(); 00173 double normp = fsphot->GetENorm(); 00174 00175 double cs = rad(1-fxp, 1-fxm); 00176 m2 = cs*((1+AP*fK)* 00177 fD->EvalSoft(fxm)*normm* 00178 fD->EvalSoft(fxp)*normp); 00179 } 00180 break; 00181 case 3: 00182 { 00183 fxm = fphot->GetEnergy(); 00184 double normm = fphot->GetENorm(); 00185 fxp = fphot->GetEnergy(); 00186 double normp = fphot->GetENorm(); 00187 00188 double cs = rad(1-fxp, 1-fxm); 00189 m2 = cs*(1+AP*fK)* 00190 fD->Eval(1-fxm)*normm* 00191 fD->Eval(1-fxp)*normp; 00192 } 00193 break; 00194 default: 00195 break; 00196 } 00197 return m2; 00198 }
void TCrossPart::J3PseudoScalars | ( | ) | [protected, inherited] |
Definition at line 340 of file TCrossPart.C.
References TCrossPart::fJc, TCrossPart::fres, and TLorentzVectorC::SetPxPyPzE().
Referenced by TKKPCrossPart::SetJ(), TKKEtaCrossPart::SetJ(), and SetJ().
00340 { 00341 // The hadronic current 00342 // here for 3pi J_\mu=\epsilon_{a b g \mu}q+_{a}q-_{b}q0_{g} 00343 00344 TLorentzVector &qp = *fres[0]; //p1 momentum 00345 TLorentzVector &qm = *fres[1]; //p2 momentum 00346 TLorentzVector &q0 = *fres[2]; //p3 momentum 00347 00348 double Jx = qp.Y()*qm.Z()*q0.T() 00349 - qp.Y()*qm.T()*q0.Z() 00350 + qp.T()*qm.Y()*q0.Z() 00351 - qp.T()*qm.Z()*q0.Y() 00352 + qp.Z()*qm.T()*q0.Y() 00353 - qp.Z()*qm.Y()*q0.T(); 00354 00355 double Jy = qp.X()*qm.Z()*q0.T() 00356 - qp.X()*qm.T()*q0.Z() 00357 + qp.T()*qm.X()*q0.Z() 00358 - qp.T()*qm.Z()*q0.X() 00359 + qp.Z()*qm.T()*q0.X() 00360 - qp.Z()*qm.X()*q0.T(); 00361 00362 double Jz = qp.Y()*qm.X()*q0.T() 00363 - qp.Y()*qm.T()*q0.X() 00364 + qp.T()*qm.Y()*q0.X() 00365 - qp.T()*qm.X()*q0.Y() 00366 + qp.X()*qm.T()*q0.Y() 00367 - qp.X()*qm.Y()*q0.T(); 00368 00369 double Jt = qp.Y()*qm.Z()*q0.X() 00370 - qp.Y()*qm.X()*q0.Z() 00371 + qp.X()*qm.Y()*q0.Z() 00372 - qp.X()*qm.Z()*q0.Y() 00373 + qp.Z()*qm.X()*q0.Y() 00374 - qp.Z()*qm.Y()*q0.X(); 00375 00376 fJc.SetPxPyPzE(Jx,Jy,Jz,Jt); 00377 }
void TCrossPart::MakeParts | ( | double | err | ) | [inherited] |
Definition at line 200 of file TCrossPart.C.
References TCrossPart::facs, TCrossPart::fcs, TCrossPart::fecs, TCrossPart::fmax, TCrossPart::fmin, TCrossPart::fN, TCrossPart::fNRad, TCrossPart::fsum, TCrossPart::fsum2, TCrossPart::GetValue(), genRecEmupikp::i, and NPARTMAX.
Referenced by Mcgpj::initialize().
00200 { 00201 double dcs = pow(err,2)/NPARTMAX; 00202 for(size_t npart = 0; npart<NPARTMAX; npart++){ 00203 // if(inc[npart]) continue; 00204 double err2; 00205 do { 00206 for(size_t i=0;i<fNRad;i++){ 00207 double m2 = GetValue(npart); 00208 fsum[npart] += m2; 00209 fsum2[npart] += m2*m2; 00210 fN[npart]++; 00211 if(m2>fmax[npart]) fmax[npart] = m2; 00212 if(m2<fmin[npart]) fmin[npart] = m2; 00213 } 00214 double iN = 1./fN[npart]; 00215 err2 = (fsum2[npart]*iN - pow(fsum[npart]*iN,2))*iN; 00216 std::cout<<npart<<" "<<fsum[npart]/fN[npart]<<" "<<sqrt(err2)<<std::endl; 00217 } while(err2 > dcs); 00218 } 00219 00220 for(size_t i=0;i<NPARTMAX;i++){ 00221 if(fN[i]>0) fcs[i] = fsum[i]/fN[i]; 00222 if(fN[i]>0) fecs[i] = (fsum2[i]/fN[i] - pow(fcs[i],2))/fN[i]; 00223 } 00224 00225 double cs_sum = 0, ecs_sum = 0; 00226 for(size_t i=0;i<NPARTMAX;i++){ 00227 cs_sum += fcs[i]; 00228 ecs_sum += fecs[i]; 00229 std::cout<<"Part = "<<i<<" " 00230 <<"CS = "<<fcs[i]<<" +- "<<sqrt(fecs[i])<<" nb " 00231 <<"Min = "<<fmin[i]<<" " 00232 <<"Max = "<<fmax[i]<<" " 00233 <<"N = "<<fN[i]<<" " 00234 <<std::endl; 00235 } 00236 00237 facs[0] = fcs[0]; 00238 for(size_t i=1;i<NPARTMAX;i++){ 00239 facs[i] = facs[i-1] + fcs[i]; 00240 } 00241 for(size_t i=0;i<NPARTMAX;i++){ 00242 facs[i] /= cs_sum; 00243 std::cout<<facs[i]<<" "; 00244 } 00245 std::cout<<std::endl; 00246 00247 ecs_sum = sqrt(ecs_sum); 00248 std::cout<<"sigma = "<<cs_sum<<" +- "<<ecs_sum<<" nb, " 00249 <<"relative error is "<<ecs_sum/cs_sum*100<<" %" 00250 <<std::endl; 00251 }
double TCrossPart::rad | ( | double | zp, | |
double | zm | |||
) | [protected, inherited] |
Definition at line 319 of file TCrossPart.C.
References TCrossPart::Accepted(), alpha, conj(), TCrossPart::fem, TCrossPart::fep, TCrossPart::fJc, TCrossPart::fpm, TCrossPart::fpmz, TCrossPart::fpp, TCrossPart::fppz, TCrossPart::fq, TCrossPart::fq2, TCrossPart::Generate(), M_PI, rb::MeV2nb, TCrossPart::SetJ(), and T.
Referenced by TCrossPart::GetValue().
00319 { 00320 fq.SetPxPyPzE(0,0,zp*fppz+zm*fpmz,zp*fep+zm*fem); // photon virtuality 00321 fq2 = fq*fq;//fq.M2(); // s' after photon emission 00322 // TLorentzVector q = zp*fpp + zm*fpm; 00323 double dGamma = Generate(); 00324 if(!Accepted()) return 0; // cut which can be removed 00325 00326 SetJ(); // Set hadronic current J 00327 00328 std::complex<double> ppJ = fJc*fpp; ppJ *= zp; 00329 std::complex<double> pmJ = fJc*fpm; pmJ *= zm; 00330 double J2 = std::real(fJc*fJc); 00331 00332 double T = 2*std::real(ppJ*std::conj(pmJ)) - 0.5*fq2*J2; // folded leptonic and hadronic tensors 00333 00334 const double AP28 = 8*alpha*M_PI*alpha*M_PI; 00335 double cs = AP28/(fq2*fq2*fq2)*T*dGamma*MeV2nb; 00336 00337 return cs; 00338 }
double TCrossPart::radB | ( | const TLorentzVector & | k | ) | [protected, inherited] |
Definition at line 294 of file TCrossPart.C.
References TCrossPart::Accepted(), alpha, conj(), TCrossPart::fem, TCrossPart::fep, TCrossPart::fJc, TCrossPart::fpm, TCrossPart::fpp, TCrossPart::fq, TCrossPart::fq2, TCrossPart::fs, TCrossPart::Generate(), rb::MeV2nb, TCrossPart::SetJ(), and T.
Referenced by TCrossPart::GetValue().
00294 { // photon momentum 00295 fq.SetPxPyPzE(-k.Px(),-k.Py(),-k.Pz(),fep+fem-k.E()); // photon virtuality 00296 fq2 = fq*fq;//fq.M2(); 00297 double dGamma = Generate(); 00298 if(!Accepted()) return 0; // cut which can be removed 00299 00300 SetJ(); // Set hadronic current J 00301 00302 std::complex<double> ppJ = fJc*fpp; 00303 std::complex<double> pmJ = fJc*fpm; 00304 double J2 = std::real(fJc*fJc); 00305 00306 double chip = k*fpp; //chi1 in Kuraev's paper 00307 double chim = k*fpm; //chi2 in Kuraev's paper 00308 00309 double T = -0.5*(fs*fq2 + 2*chip*chip + 2*chim*chim)*J2 - 00310 fq2*(std::real(pmJ*std::conj(pmJ))+std::real(ppJ*std::conj(ppJ))); // folded bremsstrahlung and hadronic tensors 00311 00312 const double alpha3 = alpha*alpha*alpha; 00313 double cs = 2*alpha3/(fs*fq2*fq2*chim*chip)*T*dGamma*MeV2nb; 00314 return cs; 00315 }
void TCrossPart::SetBeamSpread | ( | double | x = 1 |
) | [inline, inherited] |
Definition at line 73 of file TCrossPart.h.
References TCrossPart::fBeamSpread, TCrossPart::fsigmam, TCrossPart::fsigmap, and x.
Referenced by Mcgpj::initialize().
00073 { // beam spread in MeV 00074 fBeamSpread = true; 00075 fsigmap = x; 00076 fsigmam = x; 00077 }
void TCrossPart::SetFinalParticles | ( | size_t | , | |
const double * | , | |||
const int * | ||||
) | [protected, inherited] |
Definition at line 6 of file TCrossPart.C.
References TCrossPart::fevent, TCrossPart::fm, TCrossPart::fNfinal, TCrossPart::fphot, TCrossPart::fpid, TCrossPart::fres, TCrossPart::fW, rb::TPhoton::GetPhoton(), and genRecEmupikp::i.
Referenced by T2piCrossPart::T2piCrossPart(), T3piCrossPart(), T3piEtaCrossPart::T3piEtaCrossPart(), T4piCrossPart::T4piCrossPart(), T5piCrossPart::T5piCrossPart(), TKKEtaCrossPart::TKKEtaCrossPart(), TKKPCrossPart::TKKPCrossPart(), and TRhoEtaCrossPart::TRhoEtaCrossPart().
00006 { 00007 // set number and masses of final particles 00008 if(n>7){ 00009 std::cout<<"Too many particles"<<std::endl; 00010 exit(1); 00011 } 00012 fNfinal = n; 00013 fres = new TLorentzVector*[fNfinal+2]; 00014 if(fevent.SetDecay(fW, fNfinal, (double*)m, "Fermi")){ 00015 for(size_t i=0;i<fNfinal;i++){ 00016 fm[i] = m[i]; 00017 fpid[i] = pid[i]; 00018 fres[i] = fevent.GetDecay(i); 00019 } 00020 } else { 00021 std::cout<<"Energy is not enough to generate process!"<<std::endl; 00022 exit(1); 00023 } 00024 // include to the list of final particles two hard photons 00025 // (collinear and not collinear) 00026 fres[fNfinal] = (TLorentzVector*)&fphot->GetPhoton(); 00027 fpid[fNfinal] = 22; 00028 fres[fNfinal+1] = new TLorentzVector(0,0,0,0); 00029 fpid[fNfinal+1] = 22; 00030 }
void T3piCrossPart::SetJ | ( | ) | [protected, virtual] |
Implements TCrossPart.
Definition at line 110 of file T3piCrossPart.C.
References F, F3pi(), TCrossPart::fJc, TCrossPart::fq2, TCrossPart::fres, TCrossPart::J3PseudoScalars(), rb::mpi02, and rb::mpi2.
00110 { 00111 00112 TLorentzVector &qp = *fres[0]; //pi^+ momentum 00113 TLorentzVector &qm = *fres[1]; //pi^- momentum 00114 TLorentzVector &q0 = *fres[2]; //pi^0 momentum 00115 00116 double qpqm = qp*qm; 00117 double qpq0 = qp*q0; 00118 double qmq0 = qm*q0; 00119 00120 // dipion invariant masses 00121 double Q02 = 2*(mpi2 + qpqm); 00122 double Qp2 = mpi2 + mpi02 + 2*qmq0; 00123 double Qm2 = mpi2 + mpi02 + 2*qpq0; 00124 00125 complex_t F = F3pi(fq2,Q02,Qp2,Qm2); 00126 00127 J3PseudoScalars(); 00128 00129 fJc *= F; 00130 }
void TCrossPart::SetNRad | ( | size_t | x = 25000 |
) | [inline, inherited] |
double TCrossPart::facs[NPARTMAX] [protected, inherited] |
Definition at line 37 of file TCrossPart.h.
Referenced by TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), and TCrossPart::MakeParts().
bool TCrossPart::fBeamSpread [protected, inherited] |
Definition at line 29 of file TCrossPart.h.
Referenced by TCrossPart::GetValue(), TCrossPart::SetBeamSpread(), and TCrossPart::TCrossPart().
double TCrossPart::fbeta2 [protected, inherited] |
double TCrossPart::fcs[NPARTMAX] [protected, inherited] |
Definition at line 35 of file TCrossPart.h.
Referenced by TCrossPart::GenWeightedEvent(), TCrossPart::MakeParts(), and TCrossPart::TCrossPart().
rb::TDFun* TCrossPart::fD [protected, inherited] |
Definition at line 16 of file TCrossPart.h.
Referenced by TCrossPart::GetValue(), TCrossPart::TCrossPart(), and TCrossPart::~TCrossPart().
double TCrossPart::fdelta [protected, inherited] |
double TCrossPart::fe [protected, inherited] |
Definition at line 17 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::GetValue(), and TCrossPart::TCrossPart().
double TCrossPart::fecs[NPARTMAX] [protected, inherited] |
Definition at line 36 of file TCrossPart.h.
Referenced by TCrossPart::MakeParts(), and TCrossPart::TCrossPart().
double TCrossPart::fem [protected, inherited] |
Definition at line 24 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), TCrossPart::rad(), TCrossPart::radB(), and TCrossPart::TCrossPart().
double TCrossPart::fep [protected, inherited] |
Definition at line 23 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), TCrossPart::rad(), TCrossPart::radB(), and TCrossPart::TCrossPart().
TGenPhaseSpace TCrossPart::fevent [protected, inherited] |
Definition at line 13 of file TCrossPart.h.
Referenced by TCrossPart::Generate(), and TCrossPart::SetFinalParticles().
TLorentzVectorC TCrossPart::fJc [protected, inherited] |
Definition at line 46 of file TCrossPart.h.
Referenced by TCrossPart::J3PseudoScalars(), TCrossPart::rad(), TCrossPart::radB(), TRhoEtaCrossPart::SetJ(), TKKPCrossPart::SetJ(), TKKEtaCrossPart::SetJ(), T5piCrossPart::SetJ(), T4piCrossPart::SetJ(), T3piEtaCrossPart::SetJ(), SetJ(), and T2piCrossPart::SetJ().
double TCrossPart::fK [protected, inherited] |
Definition at line 22 of file TCrossPart.h.
Referenced by TCrossPart::GetValue(), and TCrossPart::TCrossPart().
double TCrossPart::flogs [protected, inherited] |
Definition at line 19 of file TCrossPart.h.
Referenced by TCrossPart::GetValue(), and TCrossPart::TCrossPart().
double TCrossPart::fm[7] [protected, inherited] |
Definition at line 49 of file TCrossPart.h.
Referenced by TCrossPart::Generate(), and TCrossPart::SetFinalParticles().
double TCrossPart::fmax[NPARTMAX] [protected, inherited] |
Definition at line 33 of file TCrossPart.h.
Referenced by TCrossPart::GenUnWeightedEvent(), TCrossPart::MakeParts(), and TCrossPart::TCrossPart().
double TCrossPart::fmin[NPARTMAX] [protected, inherited] |
Definition at line 32 of file TCrossPart.h.
Referenced by TCrossPart::MakeParts(), and TCrossPart::TCrossPart().
size_t TCrossPart::fN[NPARTMAX] [protected, inherited] |
Definition at line 34 of file TCrossPart.h.
Referenced by TCrossPart::MakeParts(), and TCrossPart::TCrossPart().
size_t TCrossPart::fNfinal [protected, inherited] |
Definition at line 47 of file TCrossPart.h.
Referenced by TCrossPart::Generate(), TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), TCrossPart::GetNfinal(), TCrossPart::SetFinalParticles(), and TCrossPart::~TCrossPart().
size_t TCrossPart::fNRad [protected, inherited] |
Definition at line 41 of file TCrossPart.h.
Referenced by TCrossPart::GetNRad(), TCrossPart::MakeParts(), TCrossPart::SetNRad(), and TCrossPart::TCrossPart().
rb::TPhoton* TCrossPart::fphot [protected, inherited] |
Definition at line 14 of file TCrossPart.h.
Referenced by TCrossPart::GetValue(), TCrossPart::SetFinalParticles(), T2piCrossPart::T2piCrossPart(), T3piCrossPart(), T3piEtaCrossPart::T3piEtaCrossPart(), T4piCrossPart::T4piCrossPart(), T5piCrossPart::T5piCrossPart(), TCrossPart::TCrossPart(), TKKEtaCrossPart::TKKEtaCrossPart(), TKKPCrossPart::TKKPCrossPart(), TRhoEtaCrossPart::TRhoEtaCrossPart(), and TCrossPart::~TCrossPart().
int TCrossPart::fpid[7+2] [protected, inherited] |
Definition at line 50 of file TCrossPart.h.
Referenced by TCrossPart::GetPid(), and TCrossPart::SetFinalParticles().
TLorentzVector TCrossPart::fpm [protected, inherited] |
Definition at line 43 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::rad(), TCrossPart::radB(), and TCrossPart::TCrossPart().
double TCrossPart::fpmz [protected, inherited] |
Definition at line 28 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::rad(), and TCrossPart::TCrossPart().
TLorentzVector TCrossPart::fpp [protected, inherited] |
Definition at line 42 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::rad(), TCrossPart::radB(), and TCrossPart::TCrossPart().
double TCrossPart::fppz [protected, inherited] |
Definition at line 27 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::rad(), and TCrossPart::TCrossPart().
TLorentzVector TCrossPart::fq [protected, inherited] |
Definition at line 45 of file TCrossPart.h.
Referenced by TCrossPart::Generate(), TCrossPart::rad(), and TCrossPart::radB().
double TCrossPart::fq2 [protected, inherited] |
Definition at line 51 of file TCrossPart.h.
Referenced by T3piEtaCrossPart::Accepted(), TCrossPart::rad(), TCrossPart::radB(), TRhoEtaCrossPart::SetJ(), TKKPCrossPart::SetJ(), TKKEtaCrossPart::SetJ(), T5piCrossPart::SetJ(), T4piCrossPart::SetJ(), T3piEtaCrossPart::SetJ(), SetJ(), and T2piCrossPart::SetJ().
TLorentzVector** TCrossPart::fres [protected, inherited] |
Definition at line 48 of file TCrossPart.h.
Referenced by TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), TCrossPart::GetParticles(), TCrossPart::J3PseudoScalars(), TCrossPart::SetFinalParticles(), TRhoEtaCrossPart::SetJ(), TKKPCrossPart::SetJ(), TKKEtaCrossPart::SetJ(), T5piCrossPart::SetJ(), T4piCrossPart::SetJ(), T3piEtaCrossPart::SetJ(), SetJ(), T2piCrossPart::SetJ(), and TCrossPart::~TCrossPart().
double TCrossPart::fs [protected, inherited] |
Definition at line 18 of file TCrossPart.h.
Referenced by T3piEtaCrossPart::Accepted(), TCrossPart::BeamSpread(), TCrossPart::radB(), and TCrossPart::TCrossPart().
double TCrossPart::fsigmam [protected, inherited] |
Definition at line 26 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), and TCrossPart::SetBeamSpread().
double TCrossPart::fsigmap [protected, inherited] |
Definition at line 25 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), and TCrossPart::SetBeamSpread().
rb::TPhotonD* TCrossPart::fsphot [protected, inherited] |
Definition at line 15 of file TCrossPart.h.
Referenced by TCrossPart::GetValue(), TCrossPart::TCrossPart(), and TCrossPart::~TCrossPart().
double TCrossPart::fsum[NPARTMAX] [protected, inherited] |
Definition at line 30 of file TCrossPart.h.
Referenced by TCrossPart::MakeParts(), and TCrossPart::TCrossPart().
double TCrossPart::fsum2[NPARTMAX] [protected, inherited] |
Definition at line 31 of file TCrossPart.h.
Referenced by TCrossPart::MakeParts(), and TCrossPart::TCrossPart().
TLorentzVector TCrossPart::fW [protected, inherited] |
Definition at line 44 of file TCrossPart.h.
Referenced by TCrossPart::BeamSpread(), TCrossPart::SetFinalParticles(), and TCrossPart::TCrossPart().
double TCrossPart::fxm [protected, inherited] |
Definition at line 38 of file TCrossPart.h.
Referenced by TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), and TCrossPart::GetValue().
double TCrossPart::fxp [protected, inherited] |
Definition at line 39 of file TCrossPart.h.
Referenced by TCrossPart::GenUnWeightedEvent(), TCrossPart::GenWeightedEvent(), and TCrossPart::GetValue().
bool TCrossPart::inc[NPARTMAX] [protected, inherited] |
Definition at line 40 of file TCrossPart.h.
Referenced by TCrossPart::GetValue(), and TCrossPart::TCrossPart().