bool operator<(
const CL_NAME& other)
const {
return m_cache.hash < other.m_cache.hash; } \
bool operator==(
const CL_NAME& other)
const {
return m_cache.hash == other.m_cache.hash; } \
\
CL_NAME() = default; \
CL_NAME(const CL_NAME& other): CL_NAME{} { \
} \
if (&other != this) m_cache.hash = other.m_cache.hash; \
return *this; \
}
ElementLink & operator=(const ElementLink &)=default
bool operator!() const
Test to see if the link can not be dereferenced.
bool operator!=(const DataVector< T > &a, const DataVector< T > &b)
Based on operator==.
bool operator<(const DataVector< T > &a, const DataVector< T > &b)
Vector ordering relation.
bool operator==(const DataVector< T > &a, const DataVector< T > &b)
Vector equality comparison.
std::unique_ptr< IIntersectionCache > m_cache
Unlike, for the other detectors, the offline fields do correpond to a one by one translation of the online fields. As readout cards may be shared between two different readout elements. Helper macro to define the constructors and comparison operators of the Online & Offline Identifiers of the cabling
17#define CABLING_OPERATORS(CL_NAME) \
18 bool operator<(const CL_NAME& other) const { return m_cache.hash < other.m_cache.hash; } \
19 bool operator==(const CL_NAME& other) const {return m_cache.hash == other.m_cache.hash; } \
20 bool operator!=(const CL_NAME& other) const { return m_cache.hash != other.m_cache.hash; } \
21 bool operator!() const {return !m_cache.hash;} \
22 \
23 CL_NAME() = default; \
24 CL_NAME(const CL_NAME& other): CL_NAME{} { \
25 m_cache.hash = other.m_cache.hash; \
26 } \
27 CL_NAME& operator=(const CL_NAME& other) { \
28 if (&other != this) m_cache.hash = other.m_cache.hash; \
29 return *this; \
30 }