ATLAS Offline Software
Loading...
Searching...
No Matches
BCMOverlay.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
11
12#ifndef INDETOVERLAY_BCMOVERLAY_H
13#define INDETOVERLAY_BCMOVERLAY_H
14
17
18struct BCM_Pulse {
19 BCM_Pulse(unsigned int p_, unsigned int w_) {p = p_; w = w_;};
20 unsigned int p{};
21 unsigned int w{};
22};
23
25{
26public:
27
28 BCMOverlay(const std::string &name, ISvcLocator *pSvcLocator);
29
30 virtual StatusCode initialize() override final;
31 virtual StatusCode execute(const EventContext& ctx) const override final;
32
33 StatusCode overlayContainer(const EventContext& ctx,
34 const BCM_RDO_Container *bkgContainer,
35 const BCM_RDO_Container *signalContainer,
36 BCM_RDO_Container *outputContainer) const;
37
38private:
39
40 std::unique_ptr<BCM_RawData> mergeChannel(const BCM_RawData *bkgRDO,
41 const BCM_RawData *signalRDO) const;
42
43 static void overlayPulses(std::vector<std::unique_ptr<BCM_Pulse>>& merged_pulses) ;
44
45 static std::pair<BCM_Pulse*, BCM_Pulse*> timeOrder(BCM_Pulse* pulse1, BCM_Pulse* pulse2) ;
46
47 static bool compare(const std::unique_ptr<BCM_Pulse>& a, const std::unique_ptr<BCM_Pulse>& b);
48
49 Gaudi::Property<bool> m_dataOverlay{ this, "isDataOverlay", false, "Flag to switch between MC and data overlay" };
50 Gaudi::Property<bool> m_storeAllBCID{ this, "storeAllBCID", false, "Store all BCID" };
51
52 SG::ReadHandleKey<BCM_RDO_Container> m_bkgInputKey{ this, "BkgInputKey", "Bkg_BCM_RDOs", "ReadHandleKey for Background Input BCM_RDO_Container" };
53 SG::ReadHandleKey<BCM_RDO_Container> m_signalInputKey{ this, "SignalInputKey", "Sig_BCM_RDOs", "ReadHandleKey for Signal Input BCM_RDO_Container" };
54 SG::WriteHandleKey<BCM_RDO_Container> m_outputKey{ this, "OutputKey", "BCM_RDOs", "WriteHandleKey for Output BCM_RDO_Container" };
55
56};
57
58#endif // INDETOVERLAY_BCMOVERLAY_H
static Double_t a
An algorithm that can be simultaneously executed in multiple threads.
StatusCode overlayContainer(const EventContext &ctx, const BCM_RDO_Container *bkgContainer, const BCM_RDO_Container *signalContainer, BCM_RDO_Container *outputContainer) const
static void overlayPulses(std::vector< std::unique_ptr< BCM_Pulse > > &merged_pulses)
std::unique_ptr< BCM_RawData > mergeChannel(const BCM_RawData *bkgRDO, const BCM_RawData *signalRDO) const
virtual StatusCode initialize() override final
SG::ReadHandleKey< BCM_RDO_Container > m_bkgInputKey
Definition BCMOverlay.h:52
virtual StatusCode execute(const EventContext &ctx) const override final
static bool compare(const std::unique_ptr< BCM_Pulse > &a, const std::unique_ptr< BCM_Pulse > &b)
SG::WriteHandleKey< BCM_RDO_Container > m_outputKey
Definition BCMOverlay.h:54
SG::ReadHandleKey< BCM_RDO_Container > m_signalInputKey
Definition BCMOverlay.h:53
Gaudi::Property< bool > m_dataOverlay
Definition BCMOverlay.h:49
static std::pair< BCM_Pulse *, BCM_Pulse * > timeOrder(BCM_Pulse *pulse1, BCM_Pulse *pulse2)
BCMOverlay(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< bool > m_storeAllBCID
Definition BCMOverlay.h:50
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
BCM_Pulse(unsigned int p_, unsigned int w_)
Definition BCMOverlay.h:19
unsigned int w
Definition BCMOverlay.h:21
unsigned int p
Definition BCMOverlay.h:20