Skip to content
Snippets Groups Projects
Commit 7866b4be authored by Atlas-Software Librarian's avatar Atlas-Software Librarian Committed by Graeme Stewart
Browse files

'CMakeLists.txt' (TrkSegment-02-00-08)

	* Tagging TrkSegment-02-00-08.
	* TrkSegment/Segment.h: Add hasContainedMeasurements.
	* src/Segment.cxx (operator=): Protect against missing measurement
	vector.
parent 701b3909
No related branches found
No related tags found
No related merge requests found
################################################################################
# Package: TrkSegment
################################################################################
# Declare the package name:
atlas_subdir( TrkSegment )
# Declare the package's dependencies:
atlas_depends_on_subdirs( PUBLIC
Control/CLIDSvc
Control/DataModel
Control/SGTools
DetectorDescription/Identifier
Tracking/TrkEvent/TrkMeasurementBase
PRIVATE
Control/AthLinks
GaudiKernel
Tracking/TrkDetDescr/TrkSurfaces
Tracking/TrkEvent/TrkEventPrimitives )
# External dependencies:
find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
# Component(s) in the package:
atlas_add_library( TrkSegment
src/*.cxx
PUBLIC_HEADERS TrkSegment
PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
LINK_LIBRARIES DataModel SGTools Identifier TrkMeasurementBase
PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks GaudiKernel TrkSurfaces TrkEventPrimitives )
atlas_add_dictionary( TrkSegmentDict
TrkSegment/TrkSegmentDict.h
TrkSegment/selection.xml
INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
LINK_LIBRARIES ${ROOT_LIBRARIES} DataModel SGTools Identifier TrkMeasurementBase AthLinks GaudiKernel TrkSurfaces TrkEventPrimitives TrkSegment )
......@@ -100,7 +100,9 @@ class FitQuality;
const DataVector<const Trk::MeasurementBase>& containedMeasurementsDataVector() const;
/** Return the number of contained Trk::MeasurementBase (s)*/
bool hasContainedMeasurements() const;
/** Return the number of contained Trk::MeasurementBase (s)*/
unsigned int numberOfMeasurementBases() const ;
/** returns the Trk::MeasurementBase objects depending on the integer*/
......@@ -150,6 +152,11 @@ inline const DataVector<const MeasurementBase>& Segment::containedMeasurementsDa
return *m_containedMeasBases;
}
inline bool Segment::hasContainedMeasurements() const
{
return m_containedMeasBases != nullptr;
}
inline const MeasurementBase* Segment::measurement(unsigned int indx) const
{ if (m_containedMeasBases && indx<m_containedMeasBases->size())
return m_containedMeasBases->operator[](indx);
......
......@@ -78,13 +78,18 @@ Trk::Segment& Trk::Segment::operator=(const Trk::Segment& seg)
delete m_containedMeasBases;
Trk::MeasurementBase::operator=(seg);
m_fitQuality = seg.m_fitQuality ? seg.m_fitQuality->clone() : nullptr;
m_containedMeasBases = new DataVector<const Trk::MeasurementBase>;
DataVector<const Trk::MeasurementBase>::const_iterator rotIter = seg.m_containedMeasBases->begin();
DataVector<const Trk::MeasurementBase>::const_iterator rotEnd = seg.m_containedMeasBases->end();
for (; rotIter!=rotEnd; ++rotIter){
m_containedMeasBases->push_back((*rotIter)->clone());
if (seg.m_containedMeasBases) {
m_containedMeasBases = new DataVector<const Trk::MeasurementBase>;
DataVector<const Trk::MeasurementBase>::const_iterator rotIter = seg.m_containedMeasBases->begin();
DataVector<const Trk::MeasurementBase>::const_iterator rotEnd = seg.m_containedMeasBases->end();
for (; rotIter!=rotEnd; ++rotIter){
m_containedMeasBases->push_back((*rotIter)->clone());
}
}
else
m_containedMeasBases = nullptr;
m_author = seg.m_author;
}
return (*this);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment