ATLAS Offline Software
Loading...
Searching...
No Matches
AlignableTransform Class Reference

#include <AlignableTransform.h>

Collaboration diagram for AlignableTransform:

Classes

class  AlignTransMember

Public Types

typedef std::vector< AlignTransMember >::const_iterator AlignTransMem_citr
typedef std::ranges::subrange< AlignTransMem_citrAlignTransMem_crange
typedef std::vector< AlignTransMember >::iterator AlignTransMem_itr
typedef std::ranges::subrange< AlignTransMem_itrAlignTransMem_range

Public Member Functions

 AlignableTransform ()
 AlignableTransform (const std::string &tag)
virtual ~AlignableTransform ()
AlignTransMem_citr begin () const
AlignTransMem_citr end () const
AlignTransMem_crange range () const
AlignTransMem_itr mbegin ()
AlignTransMem_itr mend ()
AlignTransMem_range mrange ()
AlignTransMem_citr findIdent (const Identifier &ident) const
AlignTransMem_itr findIdent (const Identifier &ident)
const std::string & tag () const
size_t size () const
void add (const Identifier &ident, const HepGeom::Transform3D &trans)
bool update (const Identifier &ident, const HepGeom::Transform3D &trans)
bool tweak (const Identifier &ident, const HepGeom::Transform3D &trans)
void print () const
void print2 () const
void sortv ()

Private Attributes

std::string m_tag
std::vector< AlignTransMemberm_vec

Friends

class AlignableTransformCnv_p1

Detailed Description

Definition at line 24 of file AlignableTransform.h.

Member Typedef Documentation

◆ AlignTransMem_citr

◆ AlignTransMem_crange

Definition at line 47 of file AlignableTransform.h.

◆ AlignTransMem_itr

◆ AlignTransMem_range

Definition at line 52 of file AlignableTransform.h.

Constructor & Destructor Documentation

◆ AlignableTransform() [1/2]

AlignableTransform::AlignableTransform ( )
inline

Definition at line 98 of file AlignableTransform.h.

99 : m_tag ("null")
100{}

◆ AlignableTransform() [2/2]

AlignableTransform::AlignableTransform ( const std::string & tag)

Definition at line 12 of file AlignableTransform.cxx.

12 :
13 m_tag(tag), m_vec()
14{}
std::vector< AlignTransMember > m_vec
const std::string & tag() const

◆ ~AlignableTransform()

AlignableTransform::~AlignableTransform ( )
inlinevirtual

Definition at line 101 of file AlignableTransform.h.

101{}

Member Function Documentation

◆ add()

void AlignableTransform::add ( const Identifier & ident,
const HepGeom::Transform3D & trans )

Definition at line 16 of file AlignableTransform.cxx.

18{
19 m_vec.emplace_back(ident,trans);
20}

◆ begin()

AlignableTransform::AlignTransMem_citr AlignableTransform::begin ( ) const
inline

Definition at line 104 of file AlignableTransform.h.

104{ return m_vec.begin();}

◆ end()

AlignableTransform::AlignTransMem_citr AlignableTransform::end ( ) const
inline

Definition at line 106 of file AlignableTransform.h.

106{ return m_vec.end();}

◆ findIdent() [1/2]

AlignableTransform::AlignTransMem_itr AlignableTransform::findIdent ( const Identifier & ident)
inline

Definition at line 127 of file AlignableTransform.h.

127 {
128 AlignableTransform::AlignTransMember obj(ident,HepGeom::Transform3D());
129 AlignableTransform::AlignTransMem_itr rc=std::lower_bound(m_vec.begin(),m_vec.end(),obj);
130 if (rc!=m_vec.end() && rc->identify()!=ident) rc=m_vec.end();
131 return rc;
132}
static Double_t rc
std::vector< AlignTransMember >::iterator AlignTransMem_itr

◆ findIdent() [2/2]

AlignableTransform::AlignTransMem_citr AlignableTransform::findIdent ( const Identifier & ident) const
inline

Definition at line 118 of file AlignableTransform.h.

118 {
119 AlignableTransform::AlignTransMember obj(ident,HepGeom::Transform3D());
120 AlignableTransform::AlignTransMem_citr rc=std::lower_bound(m_vec.begin(),m_vec.end(),obj);
121 if (rc!=m_vec.end() && rc->identify()!=ident) rc=m_vec.end();
122 return rc;
123}
std::vector< AlignTransMember >::const_iterator AlignTransMem_citr

◆ mbegin()

AlignableTransform::AlignTransMem_itr AlignableTransform::mbegin ( )
inline

Definition at line 111 of file AlignableTransform.h.

111{ return m_vec.begin();}

◆ mend()

AlignableTransform::AlignTransMem_itr AlignableTransform::mend ( )
inline

Definition at line 113 of file AlignableTransform.h.

113{ return m_vec.end();}

◆ mrange()

AlignableTransform::AlignTransMem_range AlignableTransform::mrange ( )
inline

Definition at line 115 of file AlignableTransform.h.

115{ return AlignTransMem_range(mbegin(), mend()); }
AlignTransMem_itr mend()
std::ranges::subrange< AlignTransMem_itr > AlignTransMem_range
AlignTransMem_itr mbegin()

◆ print()

void AlignableTransform::print ( ) const

Definition at line 22 of file AlignableTransform.cxx.

22 {
23 std::cout << "AlignableTransform::print tagname:" << m_tag <<
24 " vector size " << m_vec.size() << std::endl;
25}

◆ print2()

void AlignableTransform::print2 ( ) const

Definition at line 27 of file AlignableTransform.cxx.

27 {
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}
AlignTransMem_citr end() const
AlignTransMem_citr begin() const

◆ range()

AlignableTransform::AlignTransMem_crange AlignableTransform::range ( ) const
inline

Definition at line 108 of file AlignableTransform.h.

108{ return AlignTransMem_crange(begin(), end()); }
std::ranges::subrange< AlignTransMem_citr > AlignTransMem_crange

◆ size()

size_t AlignableTransform::size ( ) const
inline

Definition at line 136 of file AlignableTransform.h.

136{return m_vec.size();}

◆ sortv()

void AlignableTransform::sortv ( )
inline

Definition at line 138 of file AlignableTransform.h.

138 {
139 sort(m_vec.begin(),m_vec.end()); }
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ tag()

const std::string & AlignableTransform::tag ( ) const
inline

Definition at line 134 of file AlignableTransform.h.

134{return m_tag;}

◆ tweak()

bool AlignableTransform::tweak ( const Identifier & ident,
const HepGeom::Transform3D & trans )

Definition at line 48 of file AlignableTransform.cxx.

50{
52 if (itr==m_vec.end()) return false;
53 HepGeom::Transform3D newtrans=trans*(itr->transform());
54 itr->setTransform(newtrans);
55 return true;
56}
AlignTransMem_citr findIdent(const Identifier &ident) const

◆ update()

bool AlignableTransform::update ( const Identifier & ident,
const HepGeom::Transform3D & trans )

Definition at line 39 of file AlignableTransform.cxx.

41{
43 if (itr==m_vec.end()) return false;
44 itr->setTransform(trans);
45 return true;
46}

◆ AlignableTransformCnv_p1

friend class AlignableTransformCnv_p1
friend

Definition at line 75 of file AlignableTransform.h.

Member Data Documentation

◆ m_tag

std::string AlignableTransform::m_tag
private

Definition at line 76 of file AlignableTransform.h.

◆ m_vec

std::vector<AlignTransMember> AlignableTransform::m_vec
private

Definition at line 77 of file AlignableTransform.h.


The documentation for this class was generated from the following files: