Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MuCalStreamerTool.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 TRIGL2MUONSA_MUCALSTREAMERTOOL_H
6 #define TRIGL2MUONSA_MUCALSTREAMERTOOL_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
10 
11 #include "MdtData.h"
12 #include "RpcData.h"
13 #include "TgcData.h"
14 #include "TrackData.h"
15 #include "MuCalCircClient.h"
22 #include "xAODTrigger/MuonRoI.h"
25 
26 #include <fstream>
27 #include <string>
28 #include <vector>
29 
30 // --------------------------------------------------------------------------------
31 // --------------------------------------------------------------------------------
32 
33 namespace LVL1 {
34  class RecMuonRoI;
35 }
36 
38  class MdtCalibFragment;
39  class RpcCalibFragment;
40  class TgcCalibFragment;
41 }
42 
43 class RpcPad;
44 class ROBDataProviderSvc;
45 
46 inline unsigned bcBitmap(uint16_t bcTag) {
47  return (bcTag == 1 ? 4 :
48  ((bcTag == 0 || bcTag == 2) ? 2 :
49  (bcTag == 3 ? 1 : 0)));
50 }
51 
52 namespace TrigL2MuonSA {
53 
55  {
56  public:
57 
58  MuCalStreamerTool(const std::string& type,
59  const std::string& name,
60  const IInterface* parent);
61 
62  virtual StatusCode initialize() override;
63 
64  const std::string& instanceName() const {return m_algInstanceName;}
65  void setInstanceName(const std::string& name) { m_algInstanceName = name; }
66 
67  // set the properties
68  void setBufferName(const std::string& buffName) {m_calBufferName=buffName;}
69 
70  // initialize the stream
71  StatusCode openStream(int calBufferSize);
72 
73  //
74  // finalize and close the stream
76 
77  bool isStreamOpen();
78 
79  //
80  // create the fragment corresponding to an roi
82  TrigL2MuonSA::TrackPattern& trackPattern,
83  TrigL2MuonSA::MdtHits& mdtHits,
84  TrigL2MuonSA::RpcHits& rpcHits,
85  TrigL2MuonSA::TgcHits& tgcHits,
86  std::vector<uint32_t>& localBuffer, // Add localBuffer parameter
87  bool doDataScouting,
88  const EventContext& ctx) const;
89 
90  private:
91 
92  Gaudi::Property< bool > m_writeToFile { this, "WriteToFile", false, "" };
93  SG::ReadHandleKey<TgcRdoContainer> m_tgcRdoKey{this, "TgcRdoContainer", "TGCRDO", "Tgc RDO Input"};
94  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{ this, "EventInfoKey", "EventInfo", "" };
95  SG::ReadHandleKey<RpcPadContainer> m_rpcPadKey{this, "RpcPadContainerKey", "RPCPAD", "RpcPad container fro MuCalStreamerTool"};
96 
97  // name of the calibration buffer or of the
98  // output file
99  std::string m_calBufferName;
100  std::string m_algInstanceName;
101 
102  // output file
103  std::ofstream m_outputFile;
104 
105  // the region selector
106 
107  ToolHandle<IRegSelTool> m_regSel_MDT{this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT", "MDT Region Selector Tool"};
108  ToolHandle<IRegSelTool> m_regSel_TGC{this, "RegSel_TGC", "RegSelTool/RegSelTool_TGC", "TGC Region Selector Tool"};
109 
110  SG::ReadCondHandleKey<RpcCablingCondData> m_readKey{this, "ReadKey", "RpcCablingCondData", "Key of RpcCablingCondData"};
111 
112  // create the MDT fragment
114  LVL2_MUON_CALIBRATION::MdtCalibFragment& mdtFragment, float phi) const;
115 
116  // create the RPC fragment
118  LVL2_MUON_CALIBRATION::RpcCalibFragment& rpcFragment, const EventContext& ctx) const;
119 
120  // create the TGC fragment
121  StatusCode createTgcFragment(std::vector<uint32_t>& tgcRobIdList,
122  LVL2_MUON_CALIBRATION::TgcCalibFragment& tgcFragment) const;
123 
125 
126  };
127 
128 } // namespace TrigL2MuonSA
129 
130 #endif //
TrigL2MuonSA::MuCalStreamerTool::createRoiFragment
StatusCode createRoiFragment(const xAOD::MuonRoI *roi, TrigL2MuonSA::TrackPattern &trackPattern, TrigL2MuonSA::MdtHits &mdtHits, TrigL2MuonSA::RpcHits &rpcHits, TrigL2MuonSA::TgcHits &tgcHits, std::vector< uint32_t > &localBuffer, bool doDataScouting, const EventContext &ctx) const
Definition: MuCalStreamerTool.cxx:106
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
IRegSelTool.h
TrigL2MuonSA::MuCalCircClient
Definition: MuCalCircClient.h:28
TrigL2MuonSA::MuCalStreamerTool::closeStream
StatusCode closeStream()
Definition: MuCalStreamerTool.cxx:80
TrigL2MuonSA::RpcHits
std::vector< RpcHitData > RpcHits
Definition: RpcData.h:57
LVL2_MUON_CALIBRATION
Definition: MuCalStreamerTool.h:37
TrigL2MuonSA::MuCalStreamerTool::createRpcFragment
StatusCode createRpcFragment(const xAOD::MuonRoI *roi, LVL2_MUON_CALIBRATION::RpcCalibFragment &rpcFragment, const EventContext &ctx) const
Definition: MuCalStreamerTool.cxx:308
TrigL2MuonSA::MuCalStreamerTool::initialize
virtual StatusCode initialize() override
Definition: MuCalStreamerTool.cxx:30
MdtData.h
IMuonRawDataProviderTool.h
TrigL2MuonSA::MdtHits
std::vector< MdtHitData > MdtHits
Definition: MdtData.h:57
TrigL2MuonSA::TgcHits
std::vector< TgcHitData > TgcHits
Definition: TgcData.h:43
TrackData.h
SG::ReadHandleKey< TgcRdoContainer >
TrigL2MuonSA::MuCalStreamerTool::openStream
StatusCode openStream(int calBufferSize)
Definition: MuCalStreamerTool.cxx:49
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
RpcData.h
TrigL2MuonSA::TrackPattern
Definition: TrackData.h:16
TrigL2MuonSA::MuCalStreamerTool::m_circ
TrigL2MuonSA::MuCalCircClient * m_circ
Definition: MuCalStreamerTool.h:124
TrigL2MuonSA::MuCalStreamerTool::createTgcFragment
StatusCode createTgcFragment(std::vector< uint32_t > &tgcRobIdList, LVL2_MUON_CALIBRATION::TgcCalibFragment &tgcFragment) const
Definition: MuCalStreamerTool.cxx:393
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
TrigL2MuonSA::MuCalStreamerTool::m_calBufferName
std::string m_calBufferName
Definition: MuCalStreamerTool.h:99
TrigL2MuonSA::MuCalStreamerTool::setBufferName
void setBufferName(const std::string &buffName)
Definition: MuCalStreamerTool.h:68
TrigL2MuonSA::MuCalStreamerTool::m_tgcRdoKey
SG::ReadHandleKey< TgcRdoContainer > m_tgcRdoKey
Definition: MuCalStreamerTool.h:93
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
xAOD::MuonRoI_v1
Class describing a LVL1 muon region of interest.
Definition: MuonRoI_v1.h:29
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrigL2MuonSA::MuCalStreamerTool::m_readKey
SG::ReadCondHandleKey< RpcCablingCondData > m_readKey
Definition: MuCalStreamerTool.h:110
TrigL2MuonSA::MuCalStreamerTool
Definition: MuCalStreamerTool.h:55
TgcRdoContainer.h
ReadCondHandleKey.h
TrigL2MuonSA::MuCalStreamerTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: MuCalStreamerTool.h:94
ROBDataProviderSvc
Definition: ROBDataProviderSvc.h:37
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
MuCalCircClient.h
TgcData.h
RpcPad
Definition: RpcPad.h:21
EventInfo.h
TrigL2MuonSA::MuCalStreamerTool::setInstanceName
void setInstanceName(const std::string &name)
Definition: MuCalStreamerTool.h:65
bcBitmap
unsigned bcBitmap(uint16_t bcTag)
Definition: MuCalStreamerTool.h:46
SG::ReadCondHandleKey< RpcCablingCondData >
TrigL2MuonSA::MuCalStreamerTool::m_regSel_MDT
ToolHandle< IRegSelTool > m_regSel_MDT
Definition: MuCalStreamerTool.h:107
RpcCablingCondData.h
MuonRoI.h
bcTag
unsigned bcTag(unsigned bcBitMap)
Definition: TgcByteStreamData.h:359
TrigL2MuonSA::MuCalStreamerTool::m_writeToFile
Gaudi::Property< bool > m_writeToFile
Definition: MuCalStreamerTool.h:92
TrigL2MuonSA::MuCalStreamerTool::MuCalStreamerTool
MuCalStreamerTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuCalStreamerTool.cxx:20
TrigL2MuonSA::MuCalStreamerTool::m_outputFile
std::ofstream m_outputFile
Definition: MuCalStreamerTool.h:103
RpcPadContainer.h
AthAlgTool
Definition: AthAlgTool.h:26
TrigL2MuonSA::MuCalStreamerTool::isStreamOpen
bool isStreamOpen()
Definition: MuCalStreamerTool.cxx:100
TrigL2MuonSA::MuCalStreamerTool::m_algInstanceName
std::string m_algInstanceName
Definition: MuCalStreamerTool.h:100
TrigL2MuonSA::MuCalStreamerTool::m_regSel_TGC
ToolHandle< IRegSelTool > m_regSel_TGC
Definition: MuCalStreamerTool.h:108
TrigL2MuonSA::MuCalStreamerTool::m_rpcPadKey
SG::ReadHandleKey< RpcPadContainer > m_rpcPadKey
Definition: MuCalStreamerTool.h:95
TrigL2MuonSA::MuCalStreamerTool::instanceName
const std::string & instanceName() const
Definition: MuCalStreamerTool.h:64
TrigL2MuonSA::MuCalStreamerTool::createMdtFragment
StatusCode createMdtFragment(TrigL2MuonSA::MdtHits &mdtHits, LVL2_MUON_CALIBRATION::MdtCalibFragment &mdtFragment, float phi) const
Definition: MuCalStreamerTool.cxx:266
TrigL2MuonSA
Definition: AlignmentBarrelLUT.h:13