Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-26 09:10:50

0001 // Stephen JD Kay - University of York
0002 // Stephen.Kay@york.ac.uk
0003 // 01/07/25
0004 // Header file for a generic method of calculating teXBABE as defined by the tRECO convention
0005 // This offers an alternative to ePIC_ExcKinUtils where ONLY teXBABE is defined and calculated - https://github.com/eic/snippets/blob/main/Exclusive/ePIC_ExcKinUtils.h
0006 // Method expects a three body final state where the expected baryon (BA) state is known and the scattered electron (eSc) and other hadronic state(s) X, are measured and well known
0007 
0008 PxPyPzEVector Vec_BACorr;
0009 
0010 // Explicit method to calculate teXBABE. Inputs are the detected scattered electron, detected X, detected baryon (BA), mass of the expected baryon, Electron beam and hadron beam
0011 // All inputs OTHER than the BA mass are expected as PxPyPzEVectors
0012 Double_t Calc_teXBABE(PxPyPzEVector Vec_eSc, PxPyPzEVector Vec_X, PxPyPzEVector Vec_BA, Double_t Mass_BA, PxPyPzEVector Vec_EBeam, PxPyPzEVector Vec_HBeam){
0013   PxPyPzEVector Vec_PMiss = (Vec_EBeam + Vec_HBeam) - (Vec_eSc + Vec_X);
0014   // "Correct" the BA vector - utilise knowledge of the final state and the POSITION resolution of the original BA track
0015   Vec_BACorr.SetPxPyPzE(Vec_PMiss.P()*sin(Vec_BA.Theta())*cos(Vec_BA.Phi()), Vec_PMiss.P()*sin(Vec_BA.Theta())*sin(Vec_BA.Phi()), Vec_PMiss.P()*cos(Vec_BA.Theta()), sqrt(pow(Vec_PMiss.P(),2)+(pow(Mass_BA,2))));
0016   Vec_teXBABE = ;
0017   Double_t t_eXBABE = -1*((Vec_HBeam - Vec_BACorr).mag2());
0018   return(t_eXBABE);
0019 }
0020 
0021 // Shortened method to calculate teXBABE where inputs are PMiss, BA vector, BA mass and HBeam only
0022 Double_t Calc_teXBABE(PxPyPzEVector Vec_PMiss, PxPyPzEVector Vec_BA, Double_t Mass_BA, PxPyPzEVector Vec_HBeam){
0023   // "Correct" the BA vector - utilise knowledge of the final state and the POSITION resolution of the original BA track
0024   Vec_BACorr.SetPxPyPzE(Vec_PMiss.P()*sin(Vec_BA.Theta())*cos(Vec_BA.Phi()), Vec_PMiss.P()*sin(Vec_BA.Theta())*sin(Vec_BA.Phi()), Vec_PMiss.P()*cos(Vec_BA.Theta()), sqrt(pow(Vec_PMiss.P(),2)+(pow(Mass_BA,2))));
0025   Double_t t_eXBABE = -1*((Vec_HBeam - Vec_BACorr).mag2());
0026   return(t_eXBABE);
0027 }
0028 
0029 // Shortest method, inputs are corrected BA vector and HBeam only
0030 Double_t Calc_teXBABE(PxPyPzEVector Vec_BACorr, PxPyPzEVector Vec_HBeam){
0031   Double_t t_eXBABE = -1*((Vec_HBeam - Vec_BACorr).mag2());
0032   return(t_eXBABE);
0033 }