|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRKEVENTPRIMITIVES_SURFACEHOLDER_H
6 #define TRKEVENTPRIMITIVES_SURFACEHOLDER_H
101 other.m_associatedSurface =
nullptr;
107 if (
this != &
other) {
122 other.m_associatedSurface =
nullptr;
188 other.m_associatedSurface =
nullptr;
194 if (
this != &
other) {
209 other.m_associatedSurface =
nullptr;
238 return (
input &&
input->associatedDetectorElement() ==
nullptr
288 if (
this != &
other) {
290 (
other.m_associatedSurface &&
other.m_associatedSurface->isFree())
291 ?
other.m_associatedSurface->clone()
292 :
other.m_associatedSurface.get());
SurfacePtrHolderImplDetEl(const SurfacePtrHolderImplDetEl &other)
copy ctor
SurfacePtrHolderImplDetEl & operator=(const SurfacePtrHolderImplDetEl &other)
copy assingmemnt if surface is free we clone/copy.
static const S * cloneHelper(const S *input)
Helper for cloning or not when we need depending on if the surface isFree.
Handle conditional ownership of surfaces.
const S * surfacePtr()
return the ptr we hold useful for tests
SurfacePtrHolderImplDetEl & operator=(SurfacePtrHolderImplDetEl &&other) noexcept
Move assignement we just steal the resource and leave other to point to nullptr.
~SurfacePtrHolderImplBase()=default
const S * release() noexcept
release ala unique_ptr release
void destroySurface() noexcept
destroySurface deletes the ptr if not null and the surface isFree Usefull also for testing
bool const RAWDATA *ch2 const
const S * release() noexcept
release ala unique_ptr release
const S * m_associatedSurface
SurfaceUniqHolderImpl(const S *s)
ctor from const Surface ptr. Takes ownership
void destroySurface() noexcept
destroySurface deletes the ptr if not null and the surface has not a associatedDetectorElement Useful...
~SurfaceUniqHolderImpl()=default
~SurfacePtrHolderImplDetEl()
SurfaceUniqHolderImpl(const SurfaceUniqHolderImpl &other)
copy ctor, if surface is free we clone/copy.
SurfaceUniqHolderImpl(SurfaceUniqHolderImpl &&) noexcept=default
default move ctor
SurfacePtrHolderImpl(SurfacePtrHolderImpl &&other) noexcept
Move constructor we just steal the resource and leave other to point to nullptr.
SurfacePtrHolderImplDetEl(const S &s)
ctor from const Surface ref.
SurfacePtrHolderImpl & operator=(SurfacePtrHolderImpl &&other) noexcept
Move assignement we just steal the resource and leave other to point to nullptr.
SurfaceUniqHolderImpl(const S &s)
ctor from const Surface ref.
const S * m_associatedSurface
SurfaceUniqHolderImpl & operator=(SurfaceUniqHolderImpl &&) noexcept=default
default move assignement
const S * surfacePtr()
return the ptr we hold useful for tests
SurfacePtrHolderImplDetEl(SurfacePtrHolderImplDetEl &&other) noexcept
Move constructor we just steal the resource and leave other to point to nullptr.
SurfacePtrHolderImpl(const S *s)
ctor from const Surface ptr. Takes ownership
static const S * cloneHelper(const S *input)
Helper for cloning or not when we need depending on if we have an associatedDetectorElement.
Ensure that the ATLAS eigen extensions are properly loaded.
const S * surfacePtr()
return the ptr we hold
SurfacePtrHolderImplDetEl(const S *s)
ctor from const Surface ptr. Takes ownership
std::unique_ptr< S, SurfaceDeleter< S > > SurfaceUniquePtrT
SurfacePtrHolderImpl()=default
default ctor
SurfacePtrHolderImplDetEl()=default
default ctor
SurfacePtrHolderImpl(const SurfacePtrHolderImpl &other)
copy ctor
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
SurfaceUniquePtrT< const S > m_associatedSurface
SurfacePtrHolderImpl & operator=(const SurfacePtrHolderImpl &other)
copy assingmemnt if surface is free we clone/copy.
const S * release() noexcept
release , release the unique_ptr we hold
void destroySurface() noexcept
destroySurface deletes the ptr if not null and is free usefull also for testing
SurfacePtrHolderImpl(const S &s)
ctor from const Surface ref.
SurfaceUniqHolderImpl()=default
default ctor