ATLAS Offline Software
Loading...
Searching...
No Matches
MuFastDataPreparator.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#ifndef TRIGL2MUONSA_MUFASTDATAPREPARATOR_H
6#define TRIGL2MUONSA_MUFASTDATAPREPARATOR_H
7
9#include "GaudiKernel/ToolHandle.h"
10
14#include "xAODTrigger/MuonRoI.h"
15
17#include "RpcDataPreparator.h"
18#include "RpcRoadDefiner.h"
19#include "RpcPatFinder.h"
20#include "TgcDataPreparator.h"
21#include "TgcRoadDefiner.h"
22#include "MdtDataPreparator.h"
23#include "MdtRegion.h"
24#include "CscDataPreparator.h"
25#include "CscData.h"
26#include "StgcDataPreparator.h"
27#include "StgcData.h"
28#include "MmDataPreparator.h"
29#include "MmData.h"
30
32
34
35#include "ClusterRoadDefiner.h"
37#include "ClusterPatFinder.h"
38
39namespace TrigL2MuonSA {
40
42 public:
43
44 MuFastDataPreparator(const std::string& type,
45 const std::string& name,
46 const IInterface* parent);
47
48 virtual StatusCode initialize() override;
49
50 public:
51
52 StatusCode prepareData(const EventContext& ctx,
53 const xAOD::MuonRoI* p_roi,
54 const TrigRoiDescriptor* p_roids,
55 const bool insideOut,
56 TrigL2MuonSA::RpcHits& rpcHits,
57 TrigL2MuonSA::MuonRoad& muonRoad,
58 TrigL2MuonSA::MdtRegion& mdtRegion,
59 TrigL2MuonSA::RpcFitResult& rpcFitResult,
60 TrigL2MuonSA::MdtHits& mdtHits,
61 const bool dynamicDeltaRpc) const;
62
63 StatusCode prepareData(const EventContext& ctx,
64 const xAOD::MuonRoI* p_roi,
65 const TrigRoiDescriptor* p_roids,
66 const bool insideOut,
67 TrigL2MuonSA::TgcHits& tgcHits,
68 TrigL2MuonSA::MuonRoad& muonRoad,
69 TrigL2MuonSA::MdtRegion& mdtRegion,
70 TrigL2MuonSA::TgcFitResult& tgcFitResult,
71 TrigL2MuonSA::MdtHits& mdtHits,
72 TrigL2MuonSA::CscHits& cscHits,
73 TrigL2MuonSA::StgcHits& stgcHits,
74 TrigL2MuonSA::MmHits& mmHits) const;
75
76 //for multi-track mode
77 StatusCode prepareData(const EventContext& ctx,
78 const xAOD::MuonRoI* p_roi,
79 const TrigRoiDescriptor* p_roids,
80 std::vector<TrigL2MuonSA::MuonRoad>& clusterRoad,
81 std::vector<TrigL2MuonSA::RpcFitResult>& clusterFitResults,
82 TrigL2MuonSA::MdtHits& mdtHits,
83 std::vector<TrigL2MuonSA::MdtHits>& mdtHits_cluster_normal,
84 const bool dynamicDeltaRpc) const;
85
86
87 void setRoadWidthForFailure(double rWidth_RPC_Failed, double rWidth_TGC_Failed);
88
89 void setRpcGeometry(bool use_rpc);
90 void setStgcGeometry(bool use_stgc){ m_use_stgc = use_stgc; };
91 void setMmGeometry(bool use_mm){ m_use_mm = use_mm; };
92
93 StatusCode setMCFlag(bool use_mcLUT);
94 void setRoIBasedDataAccess(bool use_RoIBasedDataAccess_MDT,
95 bool use_RoIBasedDataAccess_RPC,
96 bool use_RoIBasedDataAccess_TGC,
97 bool use_RoIBasedDataAccess_CSC,
98 bool use_RoIBasedDataAccess_STGC,
99 bool use_RoIBasedDataAccess_MM);
100
101 void setExtrapolatorTool(ToolHandle<ITrigMuonBackExtrapolator>* backExtrapolator);
102
103 private:
104
105 ToolHandle<LVL1::ITrigT1MuonRecRoiTool> m_recRPCRoiTool{this, "TrigT1RPCRecRoiTool", "LVL1::TrigT1RPCRecRoiTool/TrigT1RPCRecRoiTool"};
106 ToolHandle<RpcDataPreparator> m_rpcDataPreparator{this, "RPCDataPreparator", "TrigL2MuonSA::RpcDataPreparator"};
107 ToolHandle<TgcDataPreparator> m_tgcDataPreparator{this, "TGCDataPreparator", "TrigL2MuonSA::TgcDataPreparator"};
108 ToolHandle<MdtDataPreparator> m_mdtDataPreparator{this, "MDTDataPreparator", "TrigL2MuonSA::MdtDataPreparator"};
109 ToolHandle<CscDataPreparator> m_cscDataPreparator{this, "CSCDataPreparator", "TrigL2MuonSA::CscDataPreparator"};
110 ToolHandle<StgcDataPreparator> m_stgcDataPreparator{this,"STGCDataPreparator","TrigL2MuonSA::StgcDataPreparator"};
111 ToolHandle<MmDataPreparator> m_mmDataPreparator{this, "MMDataPreparator", "TrigL2MuonSA::MmDataPreparator"};
112
113 ToolHandle<RpcRoadDefiner> m_rpcRoadDefiner{this, "RpcRoadDefiner", "TrigL2MuonSA::RpcRoadDefiner"};
114 ToolHandle<TgcRoadDefiner> m_tgcRoadDefiner{this, "TgcRoadDefiner", "TrigL2MuonSA::TgcRoadDefiner"};
115 ToolHandle<RpcPatFinder> m_rpcPatFinder{"TrigL2MuonSA::RpcPatFinder"};
116
117 //for multimu-in-pad mode
118 ToolHandle<ClusterRoadDefiner> m_clusterRoadDefiner{this, "ClusterRoadDefiner", "TrigL2MuonSA::ClusterRoadDefiner"};
119 ToolHandle<ClusterPatFinder> m_clusterPatFinder{this, "ClusterPatFinder", "TrigL2MuonSA::ClusterPatFinder"};
120 //
121
122 ToolHandle<ITrigMuonBackExtrapolator>* m_backExtrapolatorTool{nullptr};
123
124 bool m_use_rpc{false};
125 bool m_use_stgc{false};
126 bool m_use_mm{false};
127 bool m_use_mcLUT{false};
128
129};
130
131} // namespace TrigL2MuonSA
132
133#endif // MUFASTDATAPREPARATOR_H
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
ToolHandle< LVL1::ITrigT1MuonRecRoiTool > m_recRPCRoiTool
void setRoIBasedDataAccess(bool use_RoIBasedDataAccess_MDT, bool use_RoIBasedDataAccess_RPC, bool use_RoIBasedDataAccess_TGC, bool use_RoIBasedDataAccess_CSC, bool use_RoIBasedDataAccess_STGC, bool use_RoIBasedDataAccess_MM)
ToolHandle< RpcPatFinder > m_rpcPatFinder
ToolHandle< TgcDataPreparator > m_tgcDataPreparator
virtual StatusCode initialize() override
ToolHandle< MmDataPreparator > m_mmDataPreparator
ToolHandle< RpcDataPreparator > m_rpcDataPreparator
void setRoadWidthForFailure(double rWidth_RPC_Failed, double rWidth_TGC_Failed)
MuFastDataPreparator(const std::string &type, const std::string &name, const IInterface *parent)
ToolHandle< CscDataPreparator > m_cscDataPreparator
StatusCode prepareData(const EventContext &ctx, const xAOD::MuonRoI *p_roi, const TrigRoiDescriptor *p_roids, const bool insideOut, TrigL2MuonSA::RpcHits &rpcHits, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::RpcFitResult &rpcFitResult, TrigL2MuonSA::MdtHits &mdtHits, const bool dynamicDeltaRpc) const
ToolHandle< ITrigMuonBackExtrapolator > * m_backExtrapolatorTool
ToolHandle< TgcRoadDefiner > m_tgcRoadDefiner
void setExtrapolatorTool(ToolHandle< ITrigMuonBackExtrapolator > *backExtrapolator)
ToolHandle< StgcDataPreparator > m_stgcDataPreparator
ToolHandle< ClusterRoadDefiner > m_clusterRoadDefiner
ToolHandle< ClusterPatFinder > m_clusterPatFinder
ToolHandle< RpcRoadDefiner > m_rpcRoadDefiner
ToolHandle< MdtDataPreparator > m_mdtDataPreparator
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
std::vector< StgcHitData > StgcHits
Definition StgcData.h:49
std::vector< MdtHitData > MdtHits
Definition MdtData.h:56
std::vector< MmHitData > MmHits
Definition MmData.h:47
std::vector< CscHitData > CscHits
Definition CscData.h:40
std::vector< RpcHitData > RpcHits
Definition RpcData.h:57
std::vector< TgcHitData > TgcHits
Definition TgcData.h:43
MuonRoI_v1 MuonRoI
Definition MuonRoI.h:15