ATLAS Offline Software
RpcDigitToRpcRDO.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef RPCDIGITTORPCRDO_H
6 #define RPCDIGITTORPCRDO_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "RpcByteStreamDecoder.h"
13 #include "MuonRDO/RpcPad.h"
17 #include "StoreGate/DataHandle.h"
20 #include "TrigT1RPClogic/CMAdata.h"
23 
25 
27 public:
28  RpcDigitToRpcRDO(const std::string& name, ISvcLocator* pSvcLocator);
29  virtual ~RpcDigitToRpcRDO() = default;
30  virtual StatusCode initialize() override final;
31  virtual StatusCode execute(const EventContext& ctx) const override final;
32 
33 private:
34  //--- Migrated from RpcByteStreamDecoder.
35  typedef std::map<int, PADreadout, std::less<int> > PAD_Readout;
36  // Pad and Matrix decoding functions
39 
41 
42  // NOTE: although this function has no clients in release 22, currently the Run2 trigger simulation is still run in
43  // release 21 on RDOs produced in release 22. Since release 21 accesses the TagInfo, it needs to be written to the
44  // RDOs produced in release 22. The fillTagInfo() function thus needs to stay in release 22 until the workflow changes
46 
47  SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_DetectorManagerKey{this, "DetectorManagerKey", "MuonDetectorManager",
48  "Key of input MuonDetectorManager condition data"};
49 
50  IntegerProperty m_fast_debug{this, "FastDebug", 0, "bits for debugging 'fast' algos"};
51  IntegerProperty m_monitoring{this, "Monitoring", 0, "bits for monitoring sequence"};
52 
53  IntegerProperty m_cma_debug{this, "CMAdebug", 0, "bits for debugging CMA simulation"};
54  IntegerProperty m_pad_debug{this, "PADdebug", 0, "bits for debugging PAD simulation"};
55  IntegerProperty m_sl_debug{this, "SLdebug", 0, "bits for debugging SL simulation"};
56 
57  IntegerProperty m_cma_ro_debug{this, "CMArodebug", 0, "bits for debugging CMA readout"};
58  IntegerProperty m_pad_ro_debug{this, "PADrodebug", 0, "bits for debugging PAD readout"};
59  IntegerProperty m_rx_ro_debug{this, "RXrodebug", 0, "bits for debugging Rx readout"};
60  IntegerProperty m_sl_ro_debug{this, "SLrodebug", 0, "bits for debugging SL readout"};
61 
62  IntegerProperty m_cma_rostruct_debug{this, "CMArostructdebug", 0, "bits for debugging CMA ro struct"};
63  IntegerProperty m_pad_rostruct_debug{this, "PADrostructdebug", 0, "bits for debugging PAD ro struct"};
64  IntegerProperty m_rx_rostruct_debug{this, "RXrostructdebug", 0, "bits for debugging Rx ro struct"};
65  IntegerProperty m_sl_rostruct_debug{this, "SLrostructdebug", 0, "bits for debugging SL ro struct"};
66 
67  BooleanProperty m_geometric_algo{this, "Geometric", false, "flag to activate fast simu"};
68  BooleanProperty m_geometric_algo_param{this, "GeometricParameters", false, "flag to compute fast simu par"};
69  BooleanProperty m_detailed_algo{this, "Detailed", false, "flag to activate detailed simu"};
70  BooleanProperty m_detail_algo_param{this, "DetailedParameters", false, "flag to compute detailed simu par"};
71  StringProperty m_bytestream_file{this, "RPCbytestreamFile", "", "name for the bytestream file"};
72 
73  BooleanProperty m_patch_for_rpc_time{this, "PatchForRpcTime", false, "flag for patching the RPC time"};
74 
75  BooleanProperty m_data_detail{this, "DataDetail", false, "flag to printout detailed INFO on processed data"};
76 
77  SG::ReadCondHandleKey<RpcCablingCondData> m_readKey{this, "ReadKey", "RpcCablingCondData", "Key of RpcCablingCondData"};
78 
79  SG::WriteHandleKey<RpcPadContainer> m_padContainerKey{this, "OutputObjectName", "RPCPAD", "WriteHandleKey for Output RpcPadContainer"};
80  SG::ReadHandleKey<RpcDigitContainer> m_digitContainerKey{this, "InputObjectName", "RPC_DIGITS",
81  "ReadHandleKey for Input RpcDigitContainer"};
82 
83  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
84 
85  Gaudi::Property<std::vector<std::string>> m_exclStat{this, "ExcludeHitsFromStations",
86  {"BIS"}, "Digits from these stations are not converted" };
87  Gaudi::Property<int> m_nobxs { this, "NOBXS", 8, "Number of bunch crossings in readout"};
88  Gaudi::Property<int> m_bczero { this, "BCZERO", 3, "central bunch crossing in readout"};
89 
90 
91 
92  std::set<int> m_exclStatNames{};
93 };
94 
95 #endif
RpcDigitToRpcRDO::m_sl_rostruct_debug
IntegerProperty m_sl_rostruct_debug
Definition: RpcDigitToRpcRDO.h:65
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
RpcDigitToRpcRDO::fill_RPCdata
StatusCode fill_RPCdata(RPCsimuData &data, const EventContext &ctx, const RpcCablingCondData *) const
Definition: RpcDigitToRpcRDO.cxx:133
RpcDigitToRpcRDO::m_monitoring
IntegerProperty m_monitoring
Definition: RpcDigitToRpcRDO.h:51
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
RpcByteStreamDecoder.h
RPCsimuData.h
RpcDigitToRpcRDO::m_geometric_algo_param
BooleanProperty m_geometric_algo_param
Definition: RpcDigitToRpcRDO.h:68
RpcDigitContainer.h
RpcDigitToRpcRDO::m_pad_ro_debug
IntegerProperty m_pad_ro_debug
Definition: RpcDigitToRpcRDO.h:58
RpcDigitToRpcRDO::m_rx_rostruct_debug
IntegerProperty m_rx_rostruct_debug
Definition: RpcDigitToRpcRDO.h:64
RpcDigitToRpcRDO::m_padContainerKey
SG::WriteHandleKey< RpcPadContainer > m_padContainerKey
Definition: RpcDigitToRpcRDO.h:79
RpcDigitToRpcRDO::m_bczero
Gaudi::Property< int > m_bczero
Definition: RpcDigitToRpcRDO.h:88
RpcDigitToRpcRDO::m_readKey
SG::ReadCondHandleKey< RpcCablingCondData > m_readKey
Definition: RpcDigitToRpcRDO.h:77
RpcDigitToRpcRDO::m_pad_debug
IntegerProperty m_pad_debug
Definition: RpcDigitToRpcRDO.h:54
PADreadout
Definition: PADreadout.h:20
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
SG::ReadHandleKey< RpcDigitContainer >
DataHandle.h
RpcCoinMatrix
Definition: RpcCoinMatrix.h:20
RpcDigitToRpcRDO::m_sl_debug
IntegerProperty m_sl_debug
Definition: RpcDigitToRpcRDO.h:55
RpcDigitToRpcRDO::m_pad_rostruct_debug
IntegerProperty m_pad_rostruct_debug
Definition: RpcDigitToRpcRDO.h:63
RpcDigitToRpcRDO::PAD_Readout
std::map< int, PADreadout, std::less< int > > PAD_Readout
Definition: RpcDigitToRpcRDO.h:35
RpcCablingCondData
Definition: RpcCablingCondData.h:21
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
RpcPad.h
RpcDigitToRpcRDO::m_detailed_algo
BooleanProperty m_detailed_algo
Definition: RpcDigitToRpcRDO.h:69
MatrixReadOut
Definition: MatrixReadOut.h:18
CMAdata.h
SG::WriteHandleKey< RpcPadContainer >
RpcDigitToRpcRDO::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition: RpcDigitToRpcRDO.cxx:67
RpcDigitToRpcRDO::m_cma_rostruct_debug
IntegerProperty m_cma_rostruct_debug
Definition: RpcDigitToRpcRDO.h:62
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
RpcDigitToRpcRDO::RpcDigitToRpcRDO
RpcDigitToRpcRDO(const std::string &name, ISvcLocator *pSvcLocator)
Definition: RpcDigitToRpcRDO.cxx:26
RpcDigitToRpcRDO::m_rx_ro_debug
IntegerProperty m_rx_ro_debug
Definition: RpcDigitToRpcRDO.h:59
RpcDigitToRpcRDO::decodePad
RpcPad * decodePad(PADreadout &pad, const RpcCablingCondData *readCdo) const
Definition: RpcDigitToRpcRDO.cxx:236
ReadCondHandleKey.h
AthReentrantAlgorithm.h
RpcDigitToRpcRDO::initialize
virtual StatusCode initialize() override final
Definition: RpcDigitToRpcRDO.cxx:31
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
RpcDigitToRpcRDO::m_cma_debug
IntegerProperty m_cma_debug
Definition: RpcDigitToRpcRDO.h:53
RpcDigitToRpcRDO::m_nobxs
Gaudi::Property< int > m_nobxs
Definition: RpcDigitToRpcRDO.h:87
CxxUtils::fpcompare::less
bool less(double a, double b)
Compare two FP numbers, working around x87 precision issues.
Definition: fpcompare.h:166
RpcDigitToRpcRDO::m_geometric_algo
BooleanProperty m_geometric_algo
Definition: RpcDigitToRpcRDO.h:67
RpcDigitToRpcRDO::m_DetectorManagerKey
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
Definition: RpcDigitToRpcRDO.h:47
RpcPad
Definition: RpcPad.h:21
MuonDetectorManager.h
SG::ReadCondHandleKey< RpcCablingCondData >
RpcDigitToRpcRDO::m_fast_debug
IntegerProperty m_fast_debug
Definition: RpcDigitToRpcRDO.h:50
python.testIfMatch.matrix
matrix
Definition: testIfMatch.py:66
RpcDigitToRpcRDO::decodeMatrix
RpcCoinMatrix * decodeMatrix(MatrixReadOut *matrix, Identifier &id) const
Definition: RpcDigitToRpcRDO.cxx:308
RPCbytestream.h
RpcCablingCondData.h
RpcDigitToRpcRDO::~RpcDigitToRpcRDO
virtual ~RpcDigitToRpcRDO()=default
MatrixReadOutStructure.h
RpcDigitToRpcRDO::m_sl_ro_debug
IntegerProperty m_sl_ro_debug
Definition: RpcDigitToRpcRDO.h:60
RpcDigitToRpcRDO::m_patch_for_rpc_time
BooleanProperty m_patch_for_rpc_time
Definition: RpcDigitToRpcRDO.h:73
RpcDigitToRpcRDO::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: RpcDigitToRpcRDO.h:83
RpcDigitToRpcRDO::m_digitContainerKey
SG::ReadHandleKey< RpcDigitContainer > m_digitContainerKey
Definition: RpcDigitToRpcRDO.h:80
RpcPadContainer.h
RpcDigitToRpcRDO::m_exclStatNames
std::set< int > m_exclStatNames
Definition: RpcDigitToRpcRDO.h:92
RpcDigitToRpcRDO
Definition: RpcDigitToRpcRDO.h:26
RPCsimuData
Definition: RPCsimuData.h:19
RpcDigitToRpcRDO::m_bytestream_file
StringProperty m_bytestream_file
Definition: RpcDigitToRpcRDO.h:71
RpcDigitToRpcRDO::m_exclStat
Gaudi::Property< std::vector< std::string > > m_exclStat
Definition: RpcDigitToRpcRDO.h:85
RpcDigitToRpcRDO::m_cma_ro_debug
IntegerProperty m_cma_ro_debug
Definition: RpcDigitToRpcRDO.h:57
RpcDigitToRpcRDO::fillTagInfo
StatusCode fillTagInfo() const
Definition: RpcDigitToRpcRDO.cxx:219
IMuonIdHelperSvc.h
RpcDigitToRpcRDO::m_data_detail
BooleanProperty m_data_detail
Definition: RpcDigitToRpcRDO.h:75
RpcDigitToRpcRDO::m_detail_algo_param
BooleanProperty m_detail_algo_param
Definition: RpcDigitToRpcRDO.h:70
ServiceHandle< Muon::IMuonIdHelperSvc >