Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RpcRoadDefiner.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGL2MUONSA_RPCROADDEFINER_H
6 #define TRIGL2MUONSA_RPCROADDEFINER_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "GaudiKernel/ToolHandle.h"
11 
13 #include "RpcData.h"
14 #include "RpcPatFinder.h"
15 #include "MuonRoad.h"
16 #include "RpcFitResult.h"
17 #include "BarrelRoadData.h"
19 #include "xAODTrigger/MuonRoI.h"
22 
23 #include <string>
24 
25 namespace TrigL2MuonSA {
26 
27 // --------------------------------------------------------------------------------
28 // --------------------------------------------------------------------------------
29 
31 {
32  public:
34 
35  virtual StatusCode initialize() override;
36 
37  public:
38  StatusCode defineRoad(const xAOD::MuonRoI* p_roi,
39  const bool insideOut,
40  TrigL2MuonSA::MuonRoad& muonRoad,
41  const TrigL2MuonSA::RpcLayerHits& rpcLayerHits,
42  const ToolHandle<RpcPatFinder>* rpcPatFinder,
43  TrigL2MuonSA::RpcFitResult& rpcFitResult,
44  const double roiEtaMinLow,
45  const double roiEtaMaxLow,
46  const double roiEtaMinHigh,
47  const double roiEtaMaxHigh) const;
48 
49  void setRoadWidthForFailure(double rWidth_RPC_Failed){ m_rWidth_RPC_Failed = rWidth_RPC_Failed; };
50  void setRpcGeometry(bool use_rpc){ m_use_rpc = use_rpc; };
51 
52  protected:
53  float f(float x, float c0, float c1, float c2, float c3) const;
54  float fp(float x, float c33, float c22, float c1) const;
55 
56  private:
58  bool m_use_rpc{true};
59 
60  ToolHandle<IRegSelTool> m_regionSelector{this, "RegionSelectionTool", "RegSelTool/RegSelTool_MDT", "MDT Region Selector Tool"};
61  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
62 };
63 
64 // --------------------------------------------------------------------------------
65 // --------------------------------------------------------------------------------
66 
67  inline float TrigL2MuonSA::RpcRoadDefiner::f(float x, float c0, float c1, float c2, float c3) const
68  {
69  return c0 + x * (c1 + x * (c2 + x * c3)); // faster
70  }
71 
72 // --------------------------------------------------------------------------------
73 // --------------------------------------------------------------------------------
74  inline float TrigL2MuonSA::RpcRoadDefiner::fp(float x, float c33, float c22, float c1) const
75  {
76  return c1 + x * (c22 + x * c33); // faster
77  }
78 
79 // --------------------------------------------------------------------------------
80 // --------------------------------------------------------------------------------
81 }
82 
83 #endif // TRIGL2MUONSA_RPCROADDEFINER_H
IRegSelTool.h
MuonRoad.h
RpcPatFinder.h
ITrigMuonBackExtrapolator.h
TrigL2MuonSA::RpcRoadDefiner::m_rWidth_RPC_Failed
double m_rWidth_RPC_Failed
Definition: RpcRoadDefiner.h:57
TrigL2MuonSA::RpcFitResult
Definition: RpcFitResult.h:14
TrigL2MuonSA::RpcRoadDefiner::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: RpcRoadDefiner.h:61
TrigL2MuonSA::RpcRoadDefiner::setRpcGeometry
void setRpcGeometry(bool use_rpc)
Definition: RpcRoadDefiner.h:50
TrigL2MuonSA::RpcRoadDefiner::m_regionSelector
ToolHandle< IRegSelTool > m_regionSelector
Definition: RpcRoadDefiner.h:60
extractSporadic.c1
c1
Definition: extractSporadic.py:134
RecMuonRoI.h
BarrelRoadData.h
x
#define x
TrigL2MuonSA::RpcRoadDefiner::initialize
virtual StatusCode initialize() override
Definition: RpcRoadDefiner.cxx:16
RpcData.h
hotSpotInTAG.c0
c0
Definition: hotSpotInTAG.py:192
python.DataFormatRates.c3
c3
Definition: DataFormatRates.py:127
TrigL2MuonSA::MuonRoad
Definition: MuonRoad.h:20
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
RpcFitResult.h
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
TrigL2MuonSA::RpcRoadDefiner::m_use_rpc
bool m_use_rpc
Definition: RpcRoadDefiner.h:58
TrigL2MuonSA::RpcLayerHits
Definition: RpcPatFinder.h:20
python.DataFormatRates.c2
c2
Definition: DataFormatRates.py:123
TrigL2MuonSA::RpcRoadDefiner::setRoadWidthForFailure
void setRoadWidthForFailure(double rWidth_RPC_Failed)
Definition: RpcRoadDefiner.h:49
MuonRoI.h
TrigL2MuonSA::RpcRoadDefiner::defineRoad
StatusCode defineRoad(const xAOD::MuonRoI *p_roi, const bool insideOut, TrigL2MuonSA::MuonRoad &muonRoad, const TrigL2MuonSA::RpcLayerHits &rpcLayerHits, const ToolHandle< RpcPatFinder > *rpcPatFinder, TrigL2MuonSA::RpcFitResult &rpcFitResult, const double roiEtaMinLow, const double roiEtaMaxLow, const double roiEtaMinHigh, const double roiEtaMaxHigh) const
Definition: RpcRoadDefiner.cxx:29
TrigL2MuonSA::RpcRoadDefiner::fp
float fp(float x, float c33, float c22, float c1) const
Definition: RpcRoadDefiner.h:74
AthAlgTool
Definition: AthAlgTool.h:26
TrigL2MuonSA::RpcRoadDefiner::f
float f(float x, float c0, float c1, float c2, float c3) const
Definition: RpcRoadDefiner.h:67
TrigL2MuonSA::RpcRoadDefiner
Definition: RpcRoadDefiner.h:31
IMuonIdHelperSvc.h
TrigL2MuonSA
Definition: AlignmentBarrelLUT.h:13
ServiceHandle< Muon::IMuonIdHelperSvc >