ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::IPCMatrixTool Class Reference

#include <IPCMatrixTool.h>

Inheritance diagram for Trk::IPCMatrixTool:
Collaboration diagram for Trk::IPCMatrixTool:

Public Member Functions

 IPCMatrixTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor.
virtual ~IPCMatrixTool ()
 Virtual destructor.
StatusCode initialize ()
 initialize
StatusCode finalize ()
 initialize
StatusCode allocateMatrix (int nDoF)
 allocates memory for IPC matrix and vector
void prepareBinaryFiles (int solveOption)
 reads/writes matrix entries from/to binary files as necessary
void addFirstDerivatives (AlVec *vector)
 adds first derivative to vector
void addFirstDerivatives (std::list< int, double > &derivatives)
 adds first derivative to vector for only some entries
void addSecondDerivatives (AlSymMatBase *matrix)
 adds second derivatives to matrix
void addSecondDerivatives (std::list< std::pair< int, int >, double > &derivatives)
 adds first derivative to vector for only some entries
bool accumulateFromFiles ()
 accumulates from files
int solve ()
 solves for alignment parameters
void addFirstDerivative (int irow, double firstderiv)
void addSecondDerivative (int irow, int icol, double secondderiv)
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
void addModule (int alignModuleIndex, int nAlignParam)
int entryNumber (int alignModuleIndex)
void setNHits (int n)
 set module identifier
int nHits () const
void setNTracks (int n)
 set number of tracks
int nTracks () const
void setNMeasurements (int n)
 set number of measurements
int nMeasurements () const
virtual void setLogStream (std::ostream *os)
 sets the output stream for the logfile

Static Public Member Functions

static const InterfaceID & interfaceID ()
 Retrieve interface ID.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Protected Attributes

std::ostream * m_logStream
 logfile output stream
int m_nHits
int m_nTracks
int m_nMeasurements

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

IPCMatm_ipcmat
 Pointer to IPCMat, used for parallel processing.
std::string m_ipcmatMatName
 IPC binary matrix filename.
std::string m_ipcmatVecName
 IPC binary vector filename.
bool m_IPCremoval
 remove spurious + align.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared
std::map< int, int > m_alignModuleMap
int m_nentries

Detailed Description

Definition at line 31 of file IPCMatrixTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ IPCMatrixTool()

IPCMatrixTool::IPCMatrixTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Constructor.

Definition at line 24 of file IPCMatrixTool.cxx.

26 : AthAlgTool(type,name,parent)
27 , m_ipcmat(nullptr)
28 {
29 declareInterface<IMatrixTool>(this);
30
31 declareProperty("IPCRemoval", m_IPCremoval = false);
32 declareProperty("IPCMatrixName", m_ipcmatMatName = "/tmp/ipcmat.dat");
33 declareProperty("IPCVectorName", m_ipcmatVecName = "/tmp/ipcvec.dat");
34
35 m_logStream = nullptr;
36 }
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
std::ostream * m_logStream
logfile output stream
Definition IMatrixTool.h:98
std::string m_ipcmatMatName
IPC binary matrix filename.
std::string m_ipcmatVecName
IPC binary vector filename.
bool m_IPCremoval
remove spurious + align.
IPCMat * m_ipcmat
Pointer to IPCMat, used for parallel processing.

◆ ~IPCMatrixTool()

IPCMatrixTool::~IPCMatrixTool ( )
virtual

Virtual destructor.

Definition at line 39 of file IPCMatrixTool.cxx.

40 {
41 if (nullptr!=m_ipcmat) delete m_ipcmat;
42 m_ipcmat = nullptr;
43
44 }

Member Function Documentation

◆ accumulateFromFiles()

bool IPCMatrixTool::accumulateFromFiles ( )
virtual

accumulates from files

Implements Trk::IMatrixTool.

Definition at line 91 of file IPCMatrixTool.cxx.

92 {
93
94 return false;
95 }

◆ addFirstDerivative()

void IPCMatrixTool::addFirstDerivative ( int irow,
double firstderiv )
inlinevirtual

Implements Trk::IMatrixTool.

Definition at line 89 of file IPCMatrixTool.h.

89{ /*m_bigvector[i]+=firstderiv;*/ }

◆ addFirstDerivatives() [1/2]

void IPCMatrixTool::addFirstDerivatives ( AlVec * vector)
virtual

adds first derivative to vector

Implements Trk::IMatrixTool.

Definition at line 105 of file IPCMatrixTool.cxx.

106 {
107 }

◆ addFirstDerivatives() [2/2]

void IPCMatrixTool::addFirstDerivatives ( std::list< int, double > & derivatives)
virtual

adds first derivative to vector for only some entries

Implements Trk::IMatrixTool.

Definition at line 115 of file IPCMatrixTool.cxx.

116 {
117 }

◆ addModule()

void IMatrixTool::addModule ( int alignModuleIndex,
int nAlignParam )
inlineinherited

Definition at line 116 of file IMatrixTool.h.

116{ m_alignModuleMap[alignModuleIndex]=m_nentries; m_nentries += nAlignParam; }
std::map< int, int > m_alignModuleMap

◆ addSecondDerivative()

void IPCMatrixTool::addSecondDerivative ( int irow,
int icol,
double secondderiv )
inlinevirtual

Implements Trk::IMatrixTool.

Definition at line 91 of file IPCMatrixTool.h.

91{ /*m_bigmatrix[irow][icol]+=secondderiv;*/ }

◆ addSecondDerivatives() [1/2]

void IPCMatrixTool::addSecondDerivatives ( AlSymMatBase * matrix)
virtual

adds second derivatives to matrix

Implements Trk::IMatrixTool.

Definition at line 110 of file IPCMatrixTool.cxx.

111 {
112 }

◆ addSecondDerivatives() [2/2]

void IPCMatrixTool::addSecondDerivatives ( std::list< std::pair< int, int >, double > & derivatives)
virtual

adds first derivative to vector for only some entries

Implements Trk::IMatrixTool.

Definition at line 120 of file IPCMatrixTool.cxx.

121 {
122 }

◆ allocateMatrix()

StatusCode IPCMatrixTool::allocateMatrix ( int nDoF)
virtual

allocates memory for IPC matrix and vector

Implements Trk::IMatrixTool.

Definition at line 63 of file IPCMatrixTool.cxx.

64 {
65
66 if (nullptr!=m_ipcmat) ATH_MSG_ERROR("IPCMat already exists!");
67 m_ipcmat = new IPCMat(msgSvc());
68
69 if (m_ipcmat->init()!=StatusCode::SUCCESS) {
70 ATH_MSG_ERROR("Failed to initialize ipcmat ");
71 return StatusCode::FAILURE;
72 } else
73 ATH_MSG_INFO("Success allocating ipcmatrix");
74
75 if (m_ipcmat->allocate(nDoF)!=StatusCode::SUCCESS) {
76 ATH_MSG_ERROR("Failed to allocate matrix of size " << nDoF);
77 return StatusCode::FAILURE;
78 } else
79 ATH_MSG_INFO("Success allocating ipcvector");
80
81 return StatusCode::SUCCESS;
82 }
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
msgSvc
Provide convenience handles for various services.
Definition StdJOSetup.py:36

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ entryNumber()

int IMatrixTool::entryNumber ( int alignModuleIndex)
inlineinherited

Definition at line 118 of file IMatrixTool.h.

118{ if ( m_alignModuleMap.find(alignModuleIndex) == m_alignModuleMap.end()) return -1; else return m_alignModuleMap[alignModuleIndex]; }

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode IPCMatrixTool::finalize ( )

initialize

Definition at line 55 of file IPCMatrixTool.cxx.

56 {
57 msg(MSG::DEBUG) << "finalize() of IPCMatrixTool" << endmsg;
58
59 return StatusCode::SUCCESS;
60 }
#define endmsg
MsgStream & msg() const

◆ initialize()

StatusCode IPCMatrixTool::initialize ( )

initialize

Definition at line 47 of file IPCMatrixTool.cxx.

48 {
49 msg(MSG::DEBUG) << "initialize() of IPCMatrixTool" << endmsg;
50
51 return StatusCode::SUCCESS;
52 }

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & IMatrixTool::interfaceID ( )
inlinestaticinherited

Retrieve interface ID.

Definition at line 110 of file IMatrixTool.h.

110 {
112 }
static const InterfaceID IID_TRKALIGNINTERFACES_IMatrixTool("IMatrixTool", 1, 0)

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ nHits()

int Trk::IMatrixTool::nHits ( ) const
inlineinherited

Definition at line 84 of file IMatrixTool.h.

84{ return m_nHits; }

◆ nMeasurements()

int Trk::IMatrixTool::nMeasurements ( ) const
inlineinherited

Definition at line 92 of file IMatrixTool.h.

92{ return m_nMeasurements; }

◆ nTracks()

int Trk::IMatrixTool::nTracks ( ) const
inlineinherited

Definition at line 88 of file IMatrixTool.h.

88{ return m_nTracks; }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ prepareBinaryFiles()

void IPCMatrixTool::prepareBinaryFiles ( int solveOption)
virtual

reads/writes matrix entries from/to binary files as necessary

Implements Trk::IMatrixTool.

Definition at line 85 of file IPCMatrixTool.cxx.

86 {
87
88 }

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setLogStream()

virtual void Trk::IMatrixTool::setLogStream ( std::ostream * os)
inlinevirtualinherited

sets the output stream for the logfile

Definition at line 95 of file IMatrixTool.h.

◆ setNHits()

void Trk::IMatrixTool::setNHits ( int n)
inlineinherited

set module identifier

set number of hits

Definition at line 83 of file IMatrixTool.h.

◆ setNMeasurements()

void Trk::IMatrixTool::setNMeasurements ( int n)
inlineinherited

set number of measurements

Definition at line 91 of file IMatrixTool.h.

91{ m_nMeasurements = n; }

◆ setNTracks()

void Trk::IMatrixTool::setNTracks ( int n)
inlineinherited

set number of tracks

Definition at line 87 of file IMatrixTool.h.

87{ m_nTracks = n; }

◆ solve()

int IPCMatrixTool::solve ( )
virtual

solves for alignment parameters

Implements Trk::IMatrixTool.

Definition at line 98 of file IPCMatrixTool.cxx.

99 {
100
101 return -1;
102 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_alignModuleMap

std::map<int,int> Trk::IMatrixTool::m_alignModuleMap
privateinherited

Definition at line 105 of file IMatrixTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_ipcmat

IPCMat* Trk::IPCMatrixTool::m_ipcmat
private

Pointer to IPCMat, used for parallel processing.

Definition at line 79 of file IPCMatrixTool.h.

◆ m_ipcmatMatName

std::string Trk::IPCMatrixTool::m_ipcmatMatName
private

IPC binary matrix filename.

Definition at line 81 of file IPCMatrixTool.h.

◆ m_ipcmatVecName

std::string Trk::IPCMatrixTool::m_ipcmatVecName
private

IPC binary vector filename.

Definition at line 82 of file IPCMatrixTool.h.

◆ m_IPCremoval

bool Trk::IPCMatrixTool::m_IPCremoval
private

remove spurious + align.

pars from IPC matrix before writing

Definition at line 85 of file IPCMatrixTool.h.

◆ m_logStream

std::ostream* Trk::IMatrixTool::m_logStream
protectedinherited

logfile output stream

Definition at line 98 of file IMatrixTool.h.

◆ m_nentries

int Trk::IMatrixTool::m_nentries
privateinherited

Definition at line 106 of file IMatrixTool.h.

◆ m_nHits

int Trk::IMatrixTool::m_nHits
protectedinherited

Definition at line 100 of file IMatrixTool.h.

◆ m_nMeasurements

int Trk::IMatrixTool::m_nMeasurements
protectedinherited

Definition at line 102 of file IMatrixTool.h.

◆ m_nTracks

int Trk::IMatrixTool::m_nTracks
protectedinherited

Definition at line 101 of file IMatrixTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


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