From c7440dd477bbc515f9e7e2ce419bd1e70f540f10 Mon Sep 17 00:00:00 2001
From: Ziyue Zhang <Ziyue_Zhang@localhost.localdomain>
Date: Fri, 5 Mar 2021 15:48:33 -0600
Subject: [PATCH] WIP: rec_ordered(rec) and sim_ordered(sim) debug

---
 benchmarks/dvmp/analysis/dvmp.h | 30 +++++++++---------------------
 1 file changed, 9 insertions(+), 21 deletions(-)

diff --git a/benchmarks/dvmp/analysis/dvmp.h b/benchmarks/dvmp/analysis/dvmp.h
index bd65abfb..f0c565ac 100644
--- a/benchmarks/dvmp/analysis/dvmp.h
+++ b/benchmarks/dvmp/analysis/dvmp.h
@@ -54,11 +54,6 @@ namespace util {
       double e = sqrt(px*px + py*py + pz*pz + mass*mass);
       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;
   }
   
@@ -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
       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);
-      //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
     int daughter_pid = -1;    //unsigned
     if(daughter == "electron"){
@@ -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
     //float dp = 10.;
@@ -136,12 +124,6 @@ namespace util {
       //  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;
   }
   
@@ -217,11 +199,17 @@ namespace util {
     ROOT::Math::PxPyPzMVector q(parts[0] - parts[2]);
     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[6] - parts[3]);//exact jpsi
+    ROOT::Math::PxPyPzMVector Delta_prime(parts[0] - parts[2] - parts[5] - parts[6]);//exclude gamma radiation in jpsi decay
+    
     double    nu         = q.Dot(P) / P.mass();
     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};
     return quantities;
   }
-- 
GitLab