Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:12

0001 /**
0002  * @file trackbase/TrkrClusterv5.cc
0003  * @author J. Osborn
0004  * @date October 2021
0005  * @brief Implementation of TrkrClusterv5
0006  */
0007 #include "TrkrClusterv5.h"
0008 
0009 #include <cmath>
0010 #include <utility>  // for swap
0011 
0012 namespace
0013 {
0014   // square convenience function
0015   template <class T>
0016   inline constexpr T square(const T& x)
0017   {
0018     return x * x;
0019   }
0020 }  // namespace
0021 
0022 TrkrClusterv5::TrkrClusterv5()
0023   : m_subsurfkey(TrkrDefs::SUBSURFKEYMAX)
0024   , m_phierr(0)
0025   , m_zerr(0)
0026   , m_adc(0)
0027   , m_maxadc(0)
0028   , m_phisize(0)
0029   , m_zsize(0)
0030   , m_overlap(0)
0031   , m_edge(0)
0032 {
0033   for (float& i : m_local)
0034   {
0035     i = NAN;
0036   }
0037 }
0038 
0039 void TrkrClusterv5::identify(std::ostream& os) const
0040 {
0041   os << "---TrkrClusterv5--------------------" << std::endl;
0042 
0043   os << " (rphi,z) =  (" << getLocalX();
0044   os << ", " << getLocalY() << ") cm ";
0045 
0046   os << " valid = " << isValid() << std::endl;
0047 
0048   os << std::endl;
0049   os << "-----------------------------------------------" << std::endl;
0050 
0051   return;
0052 }
0053 
0054 int TrkrClusterv5::isValid() const
0055 {
0056   for (int i = 0; i < 2; ++i)
0057   {
0058     if (std::isnan(getPosition(i)))
0059     {
0060       return 0;
0061     }
0062   }
0063   if (m_adc == 0xFFFF)
0064   {
0065     return 0;
0066   }
0067 
0068   return 1;
0069 }
0070 
0071 void TrkrClusterv5::CopyFrom(const TrkrCluster& source)
0072 {
0073   // do nothing if copying onto oneself
0074   if (this == &source)
0075   {
0076     return;
0077   }
0078 
0079   // parent class method
0080   TrkrCluster::CopyFrom(source);
0081 
0082   setLocalX(source.getLocalX());
0083   setLocalY(source.getLocalY());
0084   setSubSurfKey(source.getSubSurfKey());
0085   setAdc(source.getAdc());
0086   setMaxAdc(source.getMaxAdc());
0087   setPhiError(source.getRPhiError());
0088   setZError(source.getZError());
0089   setPhiSize(source.getPhiSize());
0090   setZSize(source.getZSize());
0091   setOverlap(source.getOverlap());
0092   setEdge(source.getEdge());
0093 }