ATLAS Offline Software
Loading...
Searching...
No Matches
CscOverlay.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5// Overlaying RDOs from two different events for InDet subdetectors.
6//
7// Andrei Gaponenko <agaponenko@lbl.gov>, 2006, 2007
8//
9// Ketevi A. Assamagan <ketevi@bnl.gov>, March 2008
10
11#ifndef CSCOVERLAY_CSCOVERLAY_H
12#define CSCOVERLAY_CSCOVERLAY_H
13
15#include "GaudiKernel/ServiceHandle.h"
16#include "GaudiKernel/ToolHandle.h"
17#include "StoreGate/ReadHandleKey.h" // for ReadHandleKey
18#include "StoreGate/WriteHandleKey.h" // for WriteHandleKey
19
20#include "MuonRDO/CscRawDataContainer.h" //ReadHandleKey template param
21#include "CscCalibTools/ICscCalibTool.h" //ToolHandle template param
22#include "MuonCSC_CnvTools/ICSC_RDO_Decoder.h" //ToolHandle template param
23#include "AthenaKernel/IAthRNGSvc.h" //ServiceHandle template param
24#include "MuonIdHelpers/IMuonIdHelperSvc.h" //ServiceHandle template param
25
26#include <cstdint> // for uint16_t, uint32_t
27#include <vector>
28#include <string>
29#include <map>
30#include <memory>
31
32namespace CLHEP {
33 class HepRandomEngine;
34}
35
36class CscRawData;
37class EventContext;
38class ISvcLocator;
39class StatusCode;
40
42public:
43
44 CscOverlay(const std::string &name,ISvcLocator *pSvcLocator);
45
46 virtual StatusCode initialize() override final;
47 virtual StatusCode execute(const EventContext& ctx) const override final;
48
49private:
50
52 StatusCode overlayContainer(const CscRawDataContainer *bkgContainer,
53 const CscRawDataContainer *signalContainer,
54 CscRawDataContainer *outputContainer) const;
55
57 std::unique_ptr<CscRawDataCollection> copyCollection(const CscRawDataCollection *collection,
58 bool propertiesOnly = false) const;
59
61 void mergeCollections(const CscRawDataCollection *bkgCollection,
62 const CscRawDataCollection *signalCollection,
63 CscRawDataCollection *outputCollection,
64 CLHEP::HepRandomEngine *rndmEngine) const;
65
67 void spuData( const CscRawDataCollection * coll, const uint16_t spuID, std::vector<const CscRawData*>& data) const;
68
70 uint32_t stripData ( const std::vector<const CscRawData*>& data,
71 const unsigned int numSamples,
72 std::map< int,std::vector<uint16_t> >& samples,
73 uint32_t& hash,
74 const uint16_t spuID,
75 const int gasLayer, bool isdata) const;
76
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,
83 const uint16_t spuID,
84 const uint16_t collId,
85 const uint32_t hash,
86 CLHEP::HepRandomEngine *rndmEngine) const;
87
88 //Whether the data needs to be fliped by 49-strip for bug#56002
89 bool needtoflip(const int address) const;
90
91 // ----------------------------------------------------------------
92
93 // jO controllable properties.
94 // "Main" containers are read, have data from "overlay" containers added,
95 // and written out with the original SG keys.
96 SG::ReadHandleKey<CscRawDataContainer> m_bkgInputKey{this,"BkgInputKey","Bkg_CSCRDO",""};
97 SG::ReadHandleKey<CscRawDataContainer> m_signalInputKey{this,"SignalInputKey","Sig_CSCRDO",""};
99
100 Gaudi::Property<bool> m_isDataOverlay{this, "isDataOverlay", false, ""};
101 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
102 ToolHandle<ICscCalibTool> m_cscCalibTool{this, "CalibTool", "CscCalibTool", ""};
103 ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool{this, "CscRdoDecoderTool", "Muon::CscRDO_Decoder", ""};
104
105 ServiceHandle <IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc", "Random Number Service"}; // Random number service
106};
107
108#endif/*CSCOVERLAY_CSCOVERLAY_H*/
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
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
Definition CscOverlay.h:102
ToolHandle< Muon::ICSC_RDO_Decoder > m_cscRdoDecoderTool
Definition CscOverlay.h:103
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
Definition CscOverlay.h:105
SG::WriteHandleKey< CscRawDataContainer > m_outputKey
Definition CscOverlay.h:98
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
Definition CscOverlay.h:101
virtual StatusCode initialize() override final
bool needtoflip(const int address) const
SG::ReadHandleKey< CscRawDataContainer > m_bkgInputKey
Definition CscOverlay.h:96
Gaudi::Property< bool > m_isDataOverlay
Definition CscOverlay.h:100
SG::ReadHandleKey< CscRawDataContainer > m_signalInputKey
Definition CscOverlay.h:97
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...
Definition CscRawData.h:21
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.
bool overlay
Definition listroot.cxx:42