File indexing completed on 2023-03-17 10:51:38
0001 #include "DetectorDescription/Core/interface/DDExpandedNode.h"
0002
0003 #include <cassert>
0004 #include <ostream>
0005
0006 #include "DetectorDescription/Core/interface/DDBase.h"
0007 #include "DetectorDescription/Core/interface/DDName.h"
0008 #include "DetectorDescription/Core/interface/DDPosData.h"
0009
0010 DDExpandedNode::DDExpandedNode(
0011 const DDLogicalPart& lp, const DDPosData* pd, const DDTranslation& t, const DDRotationMatrix& r, int siblingno)
0012 : logp_(lp), posd_(pd), trans_(t), rot_(r), siblingno_(siblingno) {}
0013
0014 DDExpandedNode::~DDExpandedNode() {}
0015
0016 bool DDExpandedNode::operator==(const DDExpandedNode& n) const {
0017 return ((logp_ == n.logp_) && (posd_->copyno() == n.posd_->copyno()));
0018 }
0019
0020 int DDExpandedNode::copyno() const {
0021 assert(posd_);
0022 return posd_->copyno();
0023 }
0024
0025 std::ostream& operator<<(std::ostream& os, const DDExpandedNode& n) {
0026 os << n.logicalPart().name() << '[' << n.copyno() << ']';
0027 return os;
0028 }
0029
0030 std::ostream& operator<<(std::ostream& os, const DDGeoHistory& h) {
0031 for (const auto& it : h) {
0032 os << '/' << it;
0033 }
0034 return os;
0035 }