ATLAS Offline Software
IDC_OverlayBase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Dear emacs, this is -*-c++-*-
6 
18 #ifndef IDC_OVERLAYBASE_H
19 #define IDC_OVERLAYBASE_H
20 
22 
23 #include "AthAllocators/DataPool.h"
24 
26  public:
27  IDC_OverlayBase(const std::string &name, ISvcLocator *pSvcLocator)
28  : AthReentrantAlgorithm(name, pSvcLocator) {}
29 
30  protected:
31  template <typename IDC_Container>
32  StatusCode overlayContainer(const IDC_Container *bkgContainer,
33  const IDC_Container *signalContainer,
34  IDC_Container *outputContainer) const;
35 
36  template <typename IDC_Container, typename Type>
37  StatusCode overlayContainer(const IDC_Container *bkgContainer,
38  const IDC_Container *signalContainer,
39  IDC_Container *outputContainer,
40  DataPool<Type>& dataItems) const;
41 
42  template <bool usePool, typename Type, typename IDC_Container>
43  StatusCode overlayContainerImpl(const IDC_Container *bkgContainer,
44  const IDC_Container *signalContainer,
45  IDC_Container *outputContainer,
46  DataPool<Type> *dataItems) const;
47 };
48 
50 
51 #endif
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
IDC_OverlayBase.icc
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IDC_OverlayBase::IDC_OverlayBase
IDC_OverlayBase(const std::string &name, ISvcLocator *pSvcLocator)
Definition: IDC_OverlayBase.h:27
IDC_OverlayBase::overlayContainer
StatusCode overlayContainer(const IDC_Container *bkgContainer, const IDC_Container *signalContainer, IDC_Container *outputContainer) const
DataPool.h
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
IDC_OverlayBase::overlayContainer
StatusCode overlayContainer(const IDC_Container *bkgContainer, const IDC_Container *signalContainer, IDC_Container *outputContainer, DataPool< Type > &dataItems) const
IDC_OverlayBase
Definition: IDC_OverlayBase.h:25
IDC_OverlayBase::overlayContainerImpl
StatusCode overlayContainerImpl(const IDC_Container *bkgContainer, const IDC_Container *signalContainer, IDC_Container *outputContainer, DataPool< Type > *dataItems) const