diff --git a/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt b/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..8ad9259c7cf0c67718cc02c654419e4c07b96796 --- /dev/null +++ b/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt @@ -0,0 +1,29 @@ +################################################################################ +# Package: TrkSpacePoint +################################################################################ + +# Declare the package name: +atlas_subdir( TrkSpacePoint ) + +# Declare the package's dependencies: +atlas_depends_on_subdirs( PUBLIC + Control/CLIDSvc + Control/DataModel + Control/SGTools + DetectorDescription/Identifier + Event/EventContainers + GaudiKernel + Tracking/TrkEvent/TrkMeasurementBase + PRIVATE + Tracking/TrkDetDescr/TrkDetElementBase + Tracking/TrkDetDescr/TrkSurfaces + Tracking/TrkEvent/TrkEventPrimitives + Tracking/TrkEvent/TrkPrepRawData ) + +# Component(s) in the package: +atlas_add_library( TrkSpacePoint + src/*.cxx + PUBLIC_HEADERS TrkSpacePoint + LINK_LIBRARIES DataModel SGTools Identifier GaudiKernel TrkMeasurementBase + PRIVATE_LINK_LIBRARIES TrkDetElementBase TrkSurfaces TrkEventPrimitives TrkPrepRawData ) + diff --git a/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx b/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx index bbac139d12eb9c037efc72794678f6dd84a06ac5..78802bc1fffc1f938a6da4c57c897b3976497391 100755 --- a/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx +++ b/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx @@ -58,7 +58,11 @@ namespace Trk { m_elemIdList = SP.m_elemIdList; m_position = SP.m_position; - m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); + if (SP.m_clusList){ + m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); + } else { + m_clusList=nullptr; + } m_globalCovariance = SP.m_globalCovariance; #ifndef NDEBUG s_numberOfInstantiations++; // new SpacePoint, so increment total count @@ -71,14 +75,18 @@ namespace Trk SpacePoint& SpacePoint::operator=(const SpacePoint& SP) { if (&SP !=this) - { - Trk::MeasurementBase::operator=(SP); - delete m_clusList; - m_elemIdList = SP.m_elemIdList; - m_position = SP.m_position; - m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); - m_globalCovariance = SP.m_globalCovariance; - } + { + Trk::MeasurementBase::operator=(SP); + delete m_clusList; + m_elemIdList = SP.m_elemIdList; + m_position = SP.m_position; + if (SP.m_clusList){ + m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); + } else { + m_clusList=nullptr; + } + m_globalCovariance = SP.m_globalCovariance; + } return *this; }