Skip to content
Snippets Groups Projects

Update to allow Alignment to run multithreaded

Merged Wouter Hulsbergen requested to merge updatemutexlockingstrategy_June2022 into master
14 files
+ 290
281
Compare changes
  • Side-by-side
  • Inline
Files
14
@@ -30,11 +30,10 @@ namespace LHCb::Alignment {
size_t m_numHits{0};
public:
OffDiagonalData() : m_matrix(), m_numTracks( 0 ), m_numHits( 0 ) {}
Gaudi::Matrix6x6& matrix() { return m_matrix; }
const Gaudi::Matrix6x6& matrix() const { return m_matrix; }
void addTrack() { ++m_numTracks; }
size_t numTracks() const { return m_numTracks; }
auto& numTracks() { return m_numTracks; }
size_t numHits() const { return m_numHits; }
template <class T>
void add( const T& m ) {
@@ -67,6 +66,7 @@ namespace LHCb::Alignment {
m_alpha = alpha;
m_alphaIsSet = true;
}
auto alphaIsSet() const { return m_alphaIsSet; }
void setAlignFrame( const Gaudi::Vector6& alignframe ) { m_alignframe = alignframe; }
const Gaudi::Vector6& alignFrame() const { return m_alignframe; }
@@ -88,7 +88,7 @@ namespace LHCb::Alignment {
return m_numHits > 0 ? Gaudi::XYZPoint( m_sumX / m_numHits, m_sumY / m_numHits, m_sumZ / m_numHits )
: Gaudi::XYZPoint();
}
void addTrack() { ++m_numTracks; }
auto& numTracks() { return m_numTracks; }
Gaudi::Vector6 m_alignframe; // parameters of the alignment frame
Gaudi::Vector6 m_alpha; // the set of parameters at which the derivatives are computed
@@ -161,9 +161,12 @@ namespace LHCb::Alignment {
void readFromFile( const char* filename );
void writeToBuffer( std::ofstream& buffer ) const;
void readFromBuffer( std::ifstream& buffer );
void add( const Equations& );
std::ostream& fillStream( std::ostream& os ) const;
/// Add the data from another Equations object. If correctDeltaAlpha is true, it will check that the other
/// object was computed around the same parameter set, and if not, correct for the difference.
void add( const Equations&, bool correctDeltaAlpha = false );
std::ostream& fillStream( std::ostream& os, int verbosity = 0 ) const;
const ElementContainer& elements() const { return m_elements; }
Loading