Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:13:20

0001 /// ---------------------------------------------------------------------------
0002 /*! \file   ClustTools.cc
0003  *  \author Derek Anderson
0004  *  \date   03.29.2024
0005  *
0006  *  Collection of frequent cluster-related methods utilized
0007  *  in the sPHENIX Cold QCD Energy-Energy Correlator analysis.
0008  */
0009 /// ---------------------------------------------------------------------------
0010 
0011 #define SCORRELATORUTILITIES_CLUSTTOOLS_CC
0012 
0013 // namespace definition
0014 #include "ClustTools.h"
0015 
0016 // make common namespaces implicit
0017 using namespace std;
0018 
0019 
0020 
0021 // cluster methods ============================================================
0022 
0023 namespace SColdQcdCorrelatorAnalysis {
0024 
0025   // --------------------------------------------------------------------------
0026   //! Get 4-momentum for a cluster
0027   // --------------------------------------------------------------------------
0028   ROOT::Math::PxPyPzEVector Tools::GetClustMomentum(const double energy, const ROOT::Math::XYZVector pos, const ROOT::Math::XYZVector vtx) {
0029 
0030     // get displacement
0031     ROOT::Math::XYZVector displace = GetDisplacement(pos, vtx);
0032 
0033     // get magnitdue of 3-momentum
0034     const double magnitude = sqrt((energy * energy) - (Const::MassPion() * Const::MassPion()));
0035 
0036     // now get components and return
0037     ROOT::Math::XYZVector momentum = displace.Unit() * magnitude;
0038     return ROOT::Math::PxPyPzEVector(momentum.X(), momentum.Y(), momentum.Z(), energy);
0039 
0040   }  // end 'GetClustMomentum(double, ROOT::Math::XYZVector)'
0041 
0042 }  // end SColdQcdCorrelatorAnalysis namespace
0043 
0044 
0045 // end ------------------------------------------------------------------------