ATLAS Offline Software
Loading...
Searching...
No Matches
AlignableTransform.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
5// AlignableTransform.cxx
6// simple alignable transform
7// Richard Hawkings, started 23/9/03
8
9#include <iostream>
11
13 m_tag(tag), m_vec()
14{}
15
17 const HepGeom::Transform3D& trans)
18{
19 m_vec.emplace_back(ident,trans);
20}
21
23 std::cout << "AlignableTransform::print tagname:" << m_tag <<
24 " vector size " << m_vec.size() << std::endl;
25}
26
28 print();
29 int i=0;
30 CLHEP::Hep3Vector trans;
31 for (AlignTransMem_citr cit=begin(); cit!=end(); ++cit) {
32 trans=(cit->transform()).getTranslation();
33 std::cout << "Member " << i++ << " transl [" << trans.x()*1.E3 << "," <<
34 trans.y()*1.E3 << "," << trans.z()*1.E3 << "]" << " ID: " <<
35 cit->identify().getString() << std::endl;
36 }
37}
38
40 const HepGeom::Transform3D& trans)
41{
43 if (itr==m_vec.end()) return false;
44 itr->setTransform(trans);
45 return true;
46}
47
49 const HepGeom::Transform3D& trans)
50{
52 if (itr==m_vec.end()) return false;
53 HepGeom::Transform3D newtrans=trans*(itr->transform());
54 itr->setTransform(newtrans);
55 return true;
56}
57
61
63(const Identifier& ident,const HepGeom::Transform3D& trans) :
64 m_ident(ident), m_trans(trans)
65{}
66
67
std::vector< AlignTransMember >::const_iterator AlignTransMem_citr
void add(const Identifier &ident, const HepGeom::Transform3D &trans)
AlignTransMem_citr end() const
bool tweak(const Identifier &ident, const HepGeom::Transform3D &trans)
bool update(const Identifier &ident, const HepGeom::Transform3D &trans)
std::vector< AlignTransMember > m_vec
AlignTransMem_citr begin() const
std::vector< AlignTransMember >::iterator AlignTransMem_itr
const std::string & tag() const
AlignTransMem_citr findIdent(const Identifier &ident) const