File indexing completed on 2025-08-06 08:18:12
0001
0002
0003
0004
0005
0006
0007 #include "TrkrClusterv4.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 TrkrClusterv4::TrkrClusterv4()
0023 : m_subsurfkey(TrkrDefs::SUBSURFKEYMAX)
0024 , m_adc(0)
0025 , m_phisize(0)
0026 , m_zsize(0)
0027 , m_overlap(0)
0028 , m_edge(0)
0029 {
0030 for (float& i : m_local)
0031 {
0032 i = NAN;
0033 }
0034 }
0035
0036 void TrkrClusterv4::identify(std::ostream& os) const
0037 {
0038 os << "---TrkrClusterv4--------------------" << std::endl;
0039
0040 os << " (rphi,z) = (" << getLocalX();
0041 os << ", " << getLocalY() << ") cm ";
0042
0043 os << " valid = " << isValid() << std::endl;
0044
0045 os << std::endl;
0046 os << "-----------------------------------------------" << std::endl;
0047
0048 return;
0049 }
0050
0051 int TrkrClusterv4::isValid() const
0052 {
0053 for (int i = 0; i < 2; ++i)
0054 {
0055 if (std::isnan(getPosition(i)))
0056 {
0057 return 0;
0058 }
0059 }
0060 if (m_adc == 0xFFFF)
0061 {
0062 return 0;
0063 }
0064
0065 return 1;
0066 }
0067
0068 void TrkrClusterv4::CopyFrom(const TrkrCluster& source)
0069 {
0070
0071 if (this == &source)
0072 {
0073 return;
0074 }
0075
0076
0077 TrkrCluster::CopyFrom(source);
0078
0079 setLocalX(source.getLocalX());
0080 setLocalY(source.getLocalY());
0081
0082 setSubSurfKey(source.getSubSurfKey());
0083 setAdc(source.getAdc());
0084 setPhiSize(source.getPhiSize());
0085 setZSize(source.getZSize());
0086 setOverlap(source.getOverlap());
0087 setEdge(source.getEdge());
0088 }