11#ifndef CSCOVERLAY_CSCOVERLAY_H
12#define CSCOVERLAY_CSCOVERLAY_H
15#include "GaudiKernel/ServiceHandle.h"
16#include "GaudiKernel/ToolHandle.h"
33 class HepRandomEngine;
44 CscOverlay(
const std::string &name,ISvcLocator *pSvcLocator);
46 virtual StatusCode
initialize()
override final;
47 virtual StatusCode
execute(
const EventContext& ctx)
const override final;
58 bool propertiesOnly =
false)
const;
64 CLHEP::HepRandomEngine *rndmEngine)
const;
70 uint32_t
stripData (
const std::vector<const CscRawData*>&
data,
71 const unsigned int numSamples,
72 std::map<
int,std::vector<uint16_t> >& samples,
75 const int gasLayer,
bool isdata)
const;
80 std::vector<CscRawData*>
overlay(
const std::map<
int,std::vector<uint16_t> >& sigSamples,
81 const std::map<
int,std::vector<uint16_t> >& ovlSamples,
82 const uint32_t address,
84 const uint16_t collId,
86 CLHEP::HepRandomEngine *rndmEngine)
const;
103 ToolHandle<Muon::ICSC_RDO_Decoder>
m_cscRdoDecoderTool{
this,
"CscRdoDecoderTool",
"Muon::CscRDO_Decoder",
""};
105 ServiceHandle <IAthRNGSvc>
m_rndmSvc{
this,
"RndmSvc",
"AthRNGSvc",
"Random Number Service"};
char data[hepevt_bytes_allocation_ATLAS]
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.
An algorithm that can be simultaneously executed in multiple threads.
void spuData(const CscRawDataCollection *coll, const uint16_t spuID, std::vector< const CscRawData * > &data) const
get the data in one SPU of a chamber
StatusCode overlayContainer(const CscRawDataContainer *bkgContainer, const CscRawDataContainer *signalContainer, CscRawDataContainer *outputContainer) const
Overlay signal on the background container and record to the output one.
ToolHandle< ICscCalibTool > m_cscCalibTool
ToolHandle< Muon::ICSC_RDO_Decoder > m_cscRdoDecoderTool
std::unique_ptr< CscRawDataCollection > copyCollection(const CscRawDataCollection *collection, bool propertiesOnly=false) const
Copy CscRawDataCollection, optionally only copy properties.
CscOverlay(const std::string &name, ISvcLocator *pSvcLocator)
ServiceHandle< IAthRNGSvc > m_rndmSvc
SG::WriteHandleKey< CscRawDataContainer > m_outputKey
void mergeCollections(const CscRawDataCollection *bkgCollection, const CscRawDataCollection *signalCollection, CscRawDataCollection *outputCollection, CLHEP::HepRandomEngine *rndmEngine) const
In case of overlap merge signal and background collections.
virtual StatusCode execute(const EventContext &ctx) const override final
uint32_t stripData(const std::vector< const CscRawData * > &data, const unsigned int numSamples, std::map< int, std::vector< uint16_t > > &samples, uint32_t &hash, const uint16_t spuID, const int gasLayer, bool isdata) const
data in one gas lauer
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual StatusCode initialize() override final
bool needtoflip(const int address) const
SG::ReadHandleKey< CscRawDataContainer > m_bkgInputKey
Gaudi::Property< bool > m_isDataOverlay
SG::ReadHandleKey< CscRawDataContainer > m_signalInputKey
Collection of CSC Raw Hits, arranged according to CSC Detector Elements Author: Ketevi A.
This container provides access to collections of CSC RDOs and a mechanism for recording them.
Class to hold the electronic output for a single CSC readout channel: n sampling ADC data + the addre...
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.