Skip to content
Snippets Groups Projects
Commit c7440dd4 authored by Ziyue Zhang's avatar Ziyue Zhang
Browse files

WIP: rec_ordered(rec) and sim_ordered(sim) debug

parent f6985368
No related branches found
No related tags found
1 merge request!39Replacing nu with y
This commit is part of merge request !39. Comments created here will be created in the context of that merge request.
...@@ -54,11 +54,6 @@ namespace util { ...@@ -54,11 +54,6 @@ namespace util {
double e = sqrt(px*px + py*py + pz*pz + mass*mass); double e = sqrt(px*px + py*py + pz*pz + mass*mass);
momenta[i].SetPxPyPzE(px, py, pz, e); momenta[i].SetPxPyPzE(px, py, pz, e);
} }
//cout<<Form("sim_ordered, P0 = (%f, %f, %f, %f), P1 = (%f, %f, %f, %f)", momenta[1].px(), momenta[1].py(), momenta[1].pz(), momenta[1].mass(), momenta[3].px(), momenta[3].py(), momenta[3].pz(), momenta[3].mass())<<endl;
for(int i = 0 ; i < 7 ; i++){
cout<<Form("Sim, %d, (px, py, pz, mass) = (%f, %f, %f, %f)", i, momenta[i].px(), momenta[i].py(), momenta[i].pz(), momenta[i].mass())<<endl;
}
cout<<"=============================="<<endl;
return momenta; return momenta;
} }
...@@ -82,11 +77,8 @@ namespace util { ...@@ -82,11 +77,8 @@ namespace util {
//px, py, pz, e, mass are not consistent for smeared dummy rc. this is a temp solution, replacing non-smeared energy by the re-calculated energy //px, py, pz, e, mass are not consistent for smeared dummy rc. this is a temp solution, replacing non-smeared energy by the re-calculated energy
double energy_tmp = sqrt(parts[i].p.x*parts[i].p.x + parts[i].p.y*parts[i].p.y + parts[i].p.z*parts[i].p.z + parts[i].mass*parts[i].mass); double energy_tmp = sqrt(parts[i].p.x*parts[i].p.x + parts[i].p.y*parts[i].p.y + parts[i].p.z*parts[i].p.z + parts[i].mass*parts[i].mass);
momenta[3].SetPxPyPzE(parts[i].p.x, parts[i].p.y, parts[i].p.z, energy_tmp); momenta[3].SetPxPyPzE(parts[i].p.x, parts[i].p.y, parts[i].p.z, energy_tmp);
//cout<<Form("rec_ordered, p1(px, py, pz, mass) = (%f, %f, %f, %f)", momenta[3].px(), momenta[3].py(), momenta[3].pz(), momenta[3].mass())<<endl;
} }
//cout<<Form("rec_ordered, P0 = (%f, %f, %f, %f), P1 = (%f, %f, %f, %f)", momenta[1].px(), momenta[1].py(), momenta[1].pz(), momenta[1].mass(), momenta[3].px(), momenta[3].py(), momenta[3].pz(), momenta[3].mass())<<endl;
//search for di-lepton pair for the decay in recoil //search for di-lepton pair for the decay in recoil
int daughter_pid = -1; //unsigned int daughter_pid = -1; //unsigned
if(daughter == "electron"){ if(daughter == "electron"){
...@@ -118,10 +110,6 @@ namespace util { ...@@ -118,10 +110,6 @@ namespace util {
} }
} }
/*if(first != -1){
momenta[5].SetPxPyPzE(parts[first].p.x, parts[first].p.y, parts[first].p.z, parts[first].energy);
momenta[6].SetPxPyPzE(parts[second].p.x, parts[second].p.y, parts[second].p.z, parts[second].energy);
}*/
//FIXME search for scattered electron, need improvement with more complex events //FIXME search for scattered electron, need improvement with more complex events
//float dp = 10.; //float dp = 10.;
...@@ -136,12 +124,6 @@ namespace util { ...@@ -136,12 +124,6 @@ namespace util {
// dp = 10. - ptmp; // dp = 10. - ptmp;
//} //}
} }
for(int i = 0 ; i < 7 ; i++){
cout<<Form("Dum, %d, (px, py, pz, mass) = (%f, %f, %f, %f)", i, momenta[i].px(), momenta[i].py(), momenta[i].pz(), momenta[i].mass())<<endl;
}
cout<<"=============================="<<endl;
return momenta; return momenta;
} }
...@@ -217,11 +199,17 @@ namespace util { ...@@ -217,11 +199,17 @@ namespace util {
ROOT::Math::PxPyPzMVector q(parts[0] - parts[2]); ROOT::Math::PxPyPzMVector q(parts[0] - parts[2]);
ROOT::Math::PxPyPzMVector P(parts[1]); ROOT::Math::PxPyPzMVector P(parts[1]);
ROOT::Math::PxPyPzMVector Delta(parts[3] - parts[1]);//jpsi->l l' gamma, ignore gamma ROOT::Math::PxPyPzMVector Delta(parts[3] - parts[1]);//jpsi->l l' gamma, ignore gamma
ROOT::Math::PxPyPzMVector Delta_prime(parts[0] - parts[2] - parts[5] - parts[6]);//exclude gamma radiation in jpsi decay
//ROOT::Math::PxPyPzMVector Delta(parts[6] - parts[3]);//exact jpsi
double nu = q.Dot(P) / P.mass(); double nu = q.Dot(P) / P.mass();
double Q2 = -q.Dot(q); double Q2 = -q.Dot(q);
double t = Delta.Dot(Delta); double t = 0.;
if(parts[4].px() == 0. && parts[4].py() == 0. && parts[4].pz() == 0. && parts[4].mass() == 0.){
t = Delta.Dot(Delta);
}else{
t = Delta_prime.Dot(Delta_prime);
}
inv_quant quantities = {nu, Q2, Q2/2./P.mass()/nu, t}; inv_quant quantities = {nu, Q2, Q2/2./P.mass()/nu, t};
return quantities; return quantities;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment