|
ATLAS Offline Software
|
Go to the documentation of this file.
34 throw std::runtime_error(
"mergeChannelData<MmDigit>() called by a wrong parent algorithm? Must be MM_Overlay.");
44 if ( std::abs(sig_time - bkg_time) >
parent->timeIntegrationWindow() && sig_time < bkg_time ) {
48 else if ( std::abs(sig_time - bkg_time) >
parent->timeIntegrationWindow() && sig_time > bkg_time ) {
50 signalDigit = bkgDigit;
54 else if ( std::abs(sig_time - bkg_time) <
parent->timeIntegrationWindow() ) {
57 float time =
std::min( sig_time, bkg_time );
84 return StatusCode::SUCCESS;
96 ATH_MSG_ERROR(
"Could not get background MM container " << bkgContainer.
name() <<
" from store " << bkgContainer.
store());
97 return StatusCode::FAILURE;
99 bkgContainerPtr = bkgContainer.
cptr();
101 ATH_MSG_DEBUG(
"Found background MMDigitContainer called " << bkgContainer.
name() <<
" in store " << bkgContainer.
store());
107 if(!signalContainer.
isValid() ) {
108 ATH_MSG_ERROR(
"Could not get signal MM container " << signalContainer.
name() <<
" from store " << signalContainer.
store());
109 return StatusCode::FAILURE;
111 ATH_MSG_DEBUG(
"Found signal MmDigitContainer called " << signalContainer.
name() <<
" in store " << signalContainer.
store());
116 ATH_CHECK(outputContainer.
record(std::make_unique<MmDigitContainer>(signalContainer->
size())));
117 if (!outputContainer.
isValid()) {
118 ATH_MSG_ERROR(
"Could not record output MmDigitContainer called " << outputContainer.
name() <<
" to store " << outputContainer.
store());
119 return StatusCode::FAILURE;
121 ATH_MSG_DEBUG(
"Recorded output MmDigitContainer called " << outputContainer.
name() <<
" in store " << outputContainer.
store());
129 return StatusCode::SUCCESS;
Use IdentifiableContainer with MmDigitCollection.
const_pointer_type cptr()
Dereference the pointer.
const std::string & name() const
Return the StoreGate ID for the referenced object.
size_t size() const
Duplicate of fullSize for backwards compatability.
const_pointer_type cptr() const
Dereference the pointer.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
virtual StatusCode initialize() override final
virtual StatusCode execute(const EventContext &ctx) const override final
StatusCode overlayContainer(const IDC_Container *bkgContainer, const IDC_Container *signalContainer, IDC_Container *outputContainer) const
void mergeChannelData(HGTD_RDO &, const HGTD_RDO &, const IDC_OverlayBase *algorithm)
Handle class for recording to StoreGate.
::StatusCode StatusCode
StatusCode definition for legacy code.
pointer_type ptr()
Dereference the pointer.
std::string store() const
Return the name of the store holding the object we are proxying.
SG::ReadHandleKey< MmDigitContainer > m_signalInputKey
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual bool isValid() override final
Can the handle be successfully dereferenced?
double charge(const T &p)
MM_Overlay(const std::string &name, ISvcLocator *pSvcLocator)
Identifier identify() const
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
SG::ReadHandleKey< MmDigitContainer > m_bkgInputKey
SG::WriteHandleKey< MmDigitContainer > m_outputKey
Helpers for overlaying Identifiable Containers.
float stripResponseTime() const
strip response info
size_type digit_size() const
float stripResponseCharge() const
Return the charge.
Handle class for reading from StoreGate.
std::string debugPrint(const IDC_Container *container, unsigned numprint=25)
Diagnostic output of Identifiable Containers.