File indexing completed on 2025-08-06 08:18:12
0001
0002
0003
0004
0005
0006
0007 #include "TrkrClusterv5.h"
0008
0009 #include <cmath>
0010 #include <utility> // for swap
0011
0012 namespace
0013 {
0014
0015 template <class T>
0016 inline constexpr T square(const T& x)
0017 {
0018 return x * x;
0019 }
0020 }
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
0074 if (this == &source)
0075 {
0076 return;
0077 }
0078
0079
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 }