13 const std::string& name,
14 const IInterface* parent):
66 return StatusCode::SUCCESS;
78 if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
80 return StatusCode::FAILURE;
85 if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
87 return StatusCode::FAILURE;
92 return StatusCode::SUCCESS;
99 double rWidth_TGC_Failed)
120 bool use_RoIBasedDataAccess_RPC,
121 bool use_RoIBasedDataAccess_TGC,
122 bool use_RoIBasedDataAccess_CSC,
123 bool use_RoIBasedDataAccess_STGC,
124 bool use_RoIBasedDataAccess_MM)
151 const bool insideOut,
157 const bool dynamicDeltaRpc)
const
162 StatusCode
sc = StatusCode::SUCCESS;
167 rpcLayerHits.
clear();
178 if (!
sc.isSuccess()) {
179 ATH_MSG_DEBUG(
"Error in RPC data prepapration. Continue using RoI");
187 if (!
sc.isSuccess()){
191 double roiEtaMinLow = 0.;
192 double roiEtaMaxLow = 0.;
193 double roiEtaMinHigh = 0.;
194 double roiEtaMaxHigh = 0.;
196 roiEtaMinLow = p_roids->
eta();
197 roiEtaMaxLow = p_roids->
eta();
200 roiEtaMinHigh = p_roids->
eta();
201 roiEtaMaxHigh = p_roids->
eta();
217 if (!
sc.isSuccess()) {
230 if (!
sc.isSuccess()) {
236 return StatusCode::SUCCESS;
247 std::vector<TrigL2MuonSA::MuonRoad>& clusterRoad,
248 std::vector<TrigL2MuonSA::RpcFitResult>& clusterFitResults,
250 std::vector<TrigL2MuonSA::MdtHits>& mdtHits_cluster_normal,
251 const bool dynamicDeltaRpc)
const
257 rpcLayerClusters.
clear();
263 StatusCode
sc = StatusCode::SUCCESS;
275 if (!
sc.isSuccess()) {
276 ATH_MSG_DEBUG(
"Error in RPC data prepapration and clustering. Continue using RoI");
283 if (!
sc.isSuccess()){
287 double roiEtaMinLow = 0.;
288 double roiEtaMaxLow = 0.;
289 double roiEtaMinHigh = 0.;
290 double roiEtaMaxHigh = 0.;
292 roiEtaMinLow = p_roids->
eta();
293 roiEtaMaxLow = p_roids->
eta();
296 roiEtaMinHigh = p_roids->
eta();
297 roiEtaMaxHigh = p_roids->
eta();
310 if (!
sc.isSuccess()) {
315 if(!clusterRoad.empty()){
318 clusterFitResults.back(),
323 if (!
sc.isSuccess()) {
330 for(
unsigned int i_road = 0; i_road < clusterRoad.size(); i_road++){
332 for(
unsigned int i_hit = 0; i_hit < mdtHits.size(); i_hit++){
333 unsigned int chamber = mdtHits[i_hit].Chamber;
336 double Z = mdtHits[i_hit].Z;
337 double R = mdtHits[i_hit].R;
338 double residual = 999999;
339 unsigned int clusterRoadID = 9999;
340 for(
unsigned int j_road = 0; j_road < clusterRoad.size(); j_road++){
341 double aw = clusterRoad.at(j_road).aw[chamber][0];
342 double bw = clusterRoad.at(j_road).bw[chamber][0];
350 double dz = Z - (R-bw)*ia;
351 tmp_residual = dz/std::sqrt(1.+iaq);
353 if(std::abs(residual) > std::abs(tmp_residual)){
354 residual = tmp_residual;
355 clusterRoadID = j_road;
358 if(clusterRoadID == i_road){
359 mdt_normal.push_back(mdtHits[i_hit]);
362 mdtHits_cluster_normal.push_back(mdt_normal);
366 return StatusCode::SUCCESS;
375 const bool insideOut,
385 StatusCode
sc = StatusCode::SUCCESS;
394 if (!
sc.isSuccess()) {
395 ATH_MSG_DEBUG(
"Error in TGC data preparation. Continue using RoI");
405 if (!
sc.isSuccess()) {
417 if (!
sc.isSuccess()) {
425 if (!
sc.isSuccess()) {
434 if (!
sc.isSuccess()) {
443 if (!
sc.isSuccess()) {
450 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
char data[hepevt_bytes_allocation_ATLAS]
virtual double eta() const override final
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
void setRpcGeometry(bool use_rpc)
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)
StatusCode setMCFlag(bool use_mcLUT)
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...
float eta() const
The pseudorapidity ( ) of the muon candidate.
uint32_t roiWord() const
The "raw" RoI word describing the muon candidate.
float phi() const
The azimuthal angle ( ) of the muon candidate.
std::vector< StgcHitData > StgcHits
std::vector< MdtHitData > MdtHits
std::vector< MmHitData > MmHits
std::vector< CscHitData > CscHits
std::vector< RpcHitData > RpcHits
std::vector< TgcHitData > TgcHits
@ MaxChamber
Number of measurement point definitions.