ATLAS Offline Software
MuFastStationFitter.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_MUFASTSTATIONFITTER_H
6 #define TRIGL2MUONSA_MUFASTSTATIONFITTER_H
7 
9 
10 #include "MdtData.h"
11 #include "TgcFitResult.h"
12 #include "RpcFitResult.h"
13 #include "SuperPointData.h"
14 #include "TrackData.h"
15 #include "MuonRoad.h"
17 #include "AlphaBetaEstimate.h"
18 #include "PtFromAlphaBeta.h"
19 #include "NswStationFitter.h"
20 #include "StgcData.h"
21 #include "MmData.h"
22 
23 namespace TrigL2MuonSA {
24 
26 {
27  public:
28 
29  MuFastStationFitter(const std::string& type,
30  const std::string& name,
31  const IInterface* parent);
32 
33  virtual StatusCode initialize() override;
34 
35  public:
37  TrigL2MuonSA::RpcFitResult& rpcFitResult,
38  std::vector<TrigL2MuonSA::TrackPattern>& v_trackPatterns) const;
40  const TrigL2MuonSA::MuonRoad& muonRoad,
41  TrigL2MuonSA::TgcFitResult& tgcFitResult,
42  std::vector<TrigL2MuonSA::TrackPattern>& v_trackPatterns,
43  TrigL2MuonSA::StgcHits& stgcHits,
44  TrigL2MuonSA::MmHits& mmHits) const;
45 
47  const TrigL2MuonSA::MuonRoad& muonRoad,
48  TrigL2MuonSA::TgcFitResult& tgcFitResult,
49  std::vector<TrigL2MuonSA::TrackPattern>& v_trackPatterns,
50  TrigL2MuonSA::StgcHits& stgcHits,
51  TrigL2MuonSA::MmHits& mmHits) const;
52 
54 
56  const TrigL2MuonSA::MuonRoad& muonRoad) const;
57 
58  StatusCode setMCFlag(bool use_mcLUT);
59 
60  private:
61 
62  bool m_use_mcLUT {true};
63 
64  Gaudi::Property< double > m_endcapmid_mdt_chi2_limit {
65  this, "ENDCAPMID_MDT_CHI2_LIMIT", 20., ""};
66  Gaudi::Property< double > m_rwidth_Endcapinn_first {
67  this, "RWIDTH_EndcapINN_FIRST", 150., ""};
68  Gaudi::Property< double > m_rwidth_Endcapinn_second {
69  this, "RWIDTH_EndcapINN_SECOND", 80., ""};
70  Gaudi::Property< double > m_rwidth_Endcapmid_first {
71  this, "RWIDTH_EndcapMID_FIRST", 150., ""};
72  Gaudi::Property< double > m_rwidth_Endcapmid_second {
73  this, "RWIDTH_EndcapMID_SECOND", 100., ""};
74  Gaudi::Property< double > m_rwidth_Endcapout_first {
75  this, "RWIDTH_EndcapOUT_FIRST", 120., ""};
76  Gaudi::Property< double > m_rwidth_Endcapout_second {
77  this, "RWIDTH_EndcapOUT_SECOND", 60., ""};
78  Gaudi::Property< double > m_mdt_driftspace_uplimit {
79  this, "MDT_DRFITSPACE_UPLIMIT", 14.8, ""};
80  Gaudi::Property< double > m_mdt_driftspace_downlimit {
81  this, "MDT_DRFITSPACE_DOWNLIMIT", 0.1, ""};
82 
83  ToolHandle<ITrigMuonBackExtrapolator> m_backExtrapolator {
84  this, "BackExtrapolator", "TrigMuonBackExtrapolator", "public tool for back extrapolating the muon tracks to the IV"};
85 
86  void Xline(const std::array<float, NMEAMX>&,
87  const std::array<float, NMEAMX>&,
88  const std::array<float, NMEAMX>&,
89  const int,
90  float&, float&, float&, float&, float&, float&, std::vector<int>* idx_vec = nullptr) const;
91  void Circfit (const int,
92  const std::array<float, NMEAMX>&,
93  const std::array<float, NMEAMX>&,
94  const std::array<float, NMEAMX>&,
95  const std::array<float, NMEAMX>&,
96  float&, float&, float&, std::vector<int>* idx_vec = nullptr) const;
97  void Circles (const int,
98  const std::array<float, NMEAMX>&,
99  const std::array<float, NMEAMX>&,
100  const std::array<float, NMEAMX>&,
101  const std::array<float, NMEAMX>&,
102  float&, float&, float&, float&) const;
103  void Evlfit (TrigL2MuonSA::PBFitResult& fitres) const;
104 
105  ToolHandle<AlphaBetaEstimate> m_alphaBetaEstimate {
106  this, "AlphaBetaEstimate", "TrigL2MuonSA::AlphaBetaEstimate"};
107  ToolHandle<PtFromAlphaBeta> m_ptFromAlphaBeta {
108  this, "PtFromAlphaBeta", "TrigL2MuonSA::PtFromAlphaBeta", ""};
109  ToolHandle<NswStationFitter> m_nswStationFitter {this, "NswStationFitter", "TrigL2MuonSA::NswStationFitter"};
110 
111  void findLayerCombination(std::vector<unsigned int> &a,
112  int n, int r,
113  std::vector<std::vector<unsigned int> > &c,
114  int &nr) const;
115 
116  void findSubLayerCombination(std::vector<unsigned int> &a, int n,int r, std::vector<unsigned int> &b, int index ,int num,
117  std::vector<std::vector<unsigned int> > &c, int &nr) const;
118 
120  const TrigL2MuonSA::MuonRoad& muonRoad) const;
121 
122  void Circles (const int,
123  const std::array<float, NMEAMX>&,
124  const std::array<float, NMEAMX>&,
125  const std::array<float, NMEAMX>&,
126  const std::array<float, NMEAMX>&,
127  float&, float&, float&, float&, std::array<float, NCAND>&, std::array<float, NCAND>&, std::array<float, NCAND>&) const;
128 
129  double fromAlphaPtToInn(const TrigL2MuonSA::TgcFitResult& tgcFitResult,
130  const TrigL2MuonSA::TrackPattern& trackPattern) const;
131 
132  void updateInnSP(TrigL2MuonSA::TrackPattern& trackPattern,
133  double &aw,double &tgc_aw, double &bw) const;
134 
135  void stationSPFit(TrigL2MuonSA::MdtHits& mdtSegment,
136  TrigL2MuonSA::SuperPoint& superPoint,
137  TrigL2MuonSA::PBFitResult& pbFitResult,
138  int s_address, int i_station,double aw) const;
139 
140 
141 };
142 
143 } // namespace TrigL2MuonSA
144 
145 #endif // MUFASTSTATIONFITTER_H
beamspotman.r
def r
Definition: beamspotman.py:674
MuonRoad.h
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapinn_second
Gaudi::Property< double > m_rwidth_Endcapinn_second
Definition: MuFastStationFitter.h:68
ITrigMuonBackExtrapolator.h
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapout_second
Gaudi::Property< double > m_rwidth_Endcapout_second
Definition: MuFastStationFitter.h:76
TrigL2MuonSA::MuFastStationFitter::m_alphaBetaEstimate
ToolHandle< AlphaBetaEstimate > m_alphaBetaEstimate
Definition: MuFastStationFitter.h:105
TrigL2MuonSA::RpcFitResult
Definition: RpcFitResult.h:14
TrigL2MuonSA::MuFastStationFitter::m_mdt_driftspace_downlimit
Gaudi::Property< double > m_mdt_driftspace_downlimit
Definition: MuFastStationFitter.h:80
index
Definition: index.py:1
TrigL2MuonSA::MuFastStationFitter::m_backExtrapolator
ToolHandle< ITrigMuonBackExtrapolator > m_backExtrapolator
Definition: MuFastStationFitter.h:83
TrigL2MuonSA::TgcFitResult
Definition: TgcFitResult.h:11
MmData.h
MdtData.h
TrigL2MuonSA::MuFastStationFitter::fromAlphaPtToInn
double fromAlphaPtToInn(const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::TrackPattern &trackPattern) const
Definition: MuFastStationFitter.cxx:1028
TrigL2MuonSA::MdtHits
std::vector< MdtHitData > MdtHits
Definition: MdtData.h:56
TrigL2MuonSA::MuFastStationFitter::m_ptFromAlphaBeta
ToolHandle< PtFromAlphaBeta > m_ptFromAlphaBeta
Definition: MuFastStationFitter.h:107
TrigRoiDescriptor
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
Definition: TrigRoiDescriptor.h:56
TrigL2MuonSA::MuFastStationFitter::Circles
void Circles(const int, const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, float &, float &, float &, float &) const
Definition: MuFastStationFitter.cxx:1268
TrackData.h
TrigL2MuonSA::MuFastStationFitter::findLayerCombination
void findLayerCombination(std::vector< unsigned int > &a, int n, int r, std::vector< std::vector< unsigned int > > &c, int &nr) const
Definition: MuFastStationFitter.cxx:1163
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapout_first
Gaudi::Property< double > m_rwidth_Endcapout_first
Definition: MuFastStationFitter.h:74
TrigL2MuonSA::MuFastStationFitter::findSuperPoints
StatusCode findSuperPoints(const TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::RpcFitResult &rpcFitResult, std::vector< TrigL2MuonSA::TrackPattern > &v_trackPatterns) const
Definition: MuFastStationFitter.cxx:85
AlphaBetaEstimate.h
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
NswStationFitter.h
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapinn_first
Gaudi::Property< double > m_rwidth_Endcapinn_first
Definition: MuFastStationFitter.h:66
TrigL2MuonSA::TrackPattern
Definition: TrackData.h:16
TrigL2MuonSA::MuFastStationFitter::m_nswStationFitter
ToolHandle< NswStationFitter > m_nswStationFitter
Definition: MuFastStationFitter.h:109
TrigL2MuonSA::MuFastStationFitter::superPointFitter
StatusCode superPointFitter(TrigL2MuonSA::TrackPattern &trackPattern) const
Definition: MuFastStationFitter.cxx:190
TrigL2MuonSA::MuonRoad
Definition: MuonRoad.h:20
TrigL2MuonSA::MuFastStationFitter::Circfit
void Circfit(const int, const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, float &, float &, float &, std::vector< int > *idx_vec=nullptr) const
Definition: MuFastStationFitter.cxx:1344
beamspotman.n
n
Definition: beamspotman.py:729
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
test_pyathena.parent
parent
Definition: test_pyathena.py:15
RpcFitResult.h
TgcFitResult.h
TrigL2MuonSA::MuFastStationFitter::updateInnSP
void updateInnSP(TrigL2MuonSA::TrackPattern &trackPattern, double &aw, double &tgc_aw, double &bw) const
Definition: MuFastStationFitter.cxx:1100
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapmid_second
Gaudi::Property< double > m_rwidth_Endcapmid_second
Definition: MuFastStationFitter.h:72
TrigL2MuonSA::MuFastStationFitter::makeReferenceLine
void makeReferenceLine(TrigL2MuonSA::TrackPattern &trackPattern, const TrigL2MuonSA::MuonRoad &muonRoad) const
Definition: MuFastStationFitter.cxx:887
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapmid_first
Gaudi::Property< double > m_rwidth_Endcapmid_first
Definition: MuFastStationFitter.h:70
TrigL2MuonSA::MuFastStationFitter::findSuperPointsSimple
StatusCode findSuperPointsSimple(const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::TgcFitResult &tgcFitResult, std::vector< TrigL2MuonSA::TrackPattern > &v_trackPatterns, TrigL2MuonSA::StgcHits &stgcHits, TrigL2MuonSA::MmHits &mmHits) const
Definition: MuFastStationFitter.cxx:111
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
TrigL2MuonSA::MuFastStationFitter::m_use_mcLUT
bool m_use_mcLUT
Definition: MuFastStationFitter.h:62
TrigL2MuonSA::MuFastStationFitter::m_endcapmid_mdt_chi2_limit
Gaudi::Property< double > m_endcapmid_mdt_chi2_limit
Definition: MuFastStationFitter.h:64
TrigL2MuonSA::MuFastStationFitter::MuFastStationFitter
MuFastStationFitter(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuFastStationFitter.cxx:23
a
TList * a
Definition: liststreamerinfos.cxx:10
TrigL2MuonSA::MmHits
std::vector< MmHitData > MmHits
Definition: MmData.h:47
TrigL2MuonSA::MuFastStationFitter::Xline
void Xline(const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, const std::array< float, NMEAMX > &, const int, float &, float &, float &, float &, float &, float &, std::vector< int > *idx_vec=nullptr) const
Definition: MuFastStationFitter.cxx:1400
TrigL2MuonSA::StgcHits
std::vector< StgcHitData > StgcHits
Definition: StgcData.h:49
TrigL2MuonSA::MuFastStationFitter::initialize
virtual StatusCode initialize() override
Definition: MuFastStationFitter.cxx:33
TrigL2MuonSA::MuFastStationFitter
Definition: MuFastStationFitter.h:26
TrigL2MuonSA::MuFastStationFitter::findSubLayerCombination
void findSubLayerCombination(std::vector< unsigned int > &a, int n, int r, std::vector< unsigned int > &b, int index, int num, std::vector< std::vector< unsigned int > > &c, int &nr) const
Definition: MuFastStationFitter.cxx:1179
PtFromAlphaBeta.h
TrigL2MuonSA::SuperPoint
Definition: SuperPointData.h:38
TrigRoiDescriptor.h
AthAlgTool
Definition: AthAlgTool.h:26
StgcData.h
SuperPointData.h
TrigL2MuonSA::MuFastStationFitter::setMCFlag
StatusCode setMCFlag(bool use_mcLUT)
Definition: MuFastStationFitter.cxx:51
python.compressB64.c
def c
Definition: compressB64.py:93
TrigL2MuonSA::MuFastStationFitter::Evlfit
void Evlfit(TrigL2MuonSA::PBFitResult &fitres) const
Definition: MuFastStationFitter.cxx:1222
TrigL2MuonSA::MuFastStationFitter::stationSPFit
void stationSPFit(TrigL2MuonSA::MdtHits &mdtSegment, TrigL2MuonSA::SuperPoint &superPoint, TrigL2MuonSA::PBFitResult &pbFitResult, int s_address, int i_station, double aw) const
Definition: MuFastStationFitter.cxx:430
TrigL2MuonSA::PBFitResult
Definition: SuperPointData.h:16
TrigL2MuonSA::MuFastStationFitter::m_mdt_driftspace_uplimit
Gaudi::Property< double > m_mdt_driftspace_uplimit
Definition: MuFastStationFitter.h:78
TrigL2MuonSA
Definition: AlignmentBarrelLUT.h:13