ATLAS Offline Software
IDC_MuonOverlayBase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Dear emacs, this is -*-c++-*-
6 
19 #ifndef IDC_MUONOVERLAYCOMMON_H
20 #define IDC_MUONOVERLAYCOMMON_H
21 
24 
25 
27 {
28 public:
29  IDC_MuonOverlayBase(const std::string &name, ISvcLocator *pSvcLocator)
30  : AthReentrantAlgorithm(name, pSvcLocator) {}
31 
32 protected:
33  template <class IDC_Container>
34  StatusCode overlayContainer(const IDC_Container *bkgContainer,
35  const IDC_Container *signalContainer,
36  IDC_Container *outputContainer) const
37  {
38  return overlayContainerBase(bkgContainer, signalContainer, outputContainer, false);
39  }
40 
41  template <class IDC_Container>
42  StatusCode overlayMultiHitContainer(const IDC_Container *bkgContainer,
43  const IDC_Container *signalContainer,
44  IDC_Container *outputContainer) const
45  {
46  return overlayContainerBase(bkgContainer, signalContainer, outputContainer, true);
47  }
48 
49 private:
50  template <class IDC_Container>
51  StatusCode overlayContainerBase(const IDC_Container *bkgContainer,
52  const IDC_Container *signalContainer,
53  IDC_Container *outputContainer,
54  bool isMultiHitCollection) const;
55 
56  template <class Collection>
57  std::unique_ptr<Collection> copyCollection(const IdentifierHash &hashId,
58  const Collection *collection) const;
59 
60 };
61 
62 #include "IDC_MuonOverlayBase.icc"
63 
64 #endif
IDC_MuonOverlayBase::copyCollection
std::unique_ptr< Collection > copyCollection(const IdentifierHash &hashId, const Collection *collection) const
Monitored::Collection
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Definition: MonitoredCollection.h:38
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
IDC_MuonOverlayBase::overlayContainer
StatusCode overlayContainer(const IDC_Container *bkgContainer, const IDC_Container *signalContainer, IDC_Container *outputContainer) const
Definition: IDC_MuonOverlayBase.h:34
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IDC_MuonOverlayBase
Definition: IDC_MuonOverlayBase.h:27
IDC_MuonOverlayBase::overlayContainerBase
StatusCode overlayContainerBase(const IDC_Container *bkgContainer, const IDC_Container *signalContainer, IDC_Container *outputContainer, bool isMultiHitCollection) const
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
IdentifierHash.h
IDC_MuonOverlayBase::IDC_MuonOverlayBase
IDC_MuonOverlayBase(const std::string &name, ISvcLocator *pSvcLocator)
Definition: IDC_MuonOverlayBase.h:29
IDC_MuonOverlayBase.icc
IdentifierHash
Definition: IdentifierHash.h:38
IDC_MuonOverlayBase::overlayMultiHitContainer
StatusCode overlayMultiHitContainer(const IDC_Container *bkgContainer, const IDC_Container *signalContainer, IDC_Container *outputContainer) const
Definition: IDC_MuonOverlayBase.h:42