ATLAS Offline Software
MuFastStationFitter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGL2MUONSA_MUFASTSTATIONFITTER_H
6 #define TRIGL2MUONSA_MUFASTSTATIONFITTER_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "GaudiKernel/ToolHandle.h"
12 
13 #include "MdtData.h"
14 #include "TgcFitResult.h"
15 #include "RpcFitResult.h"
16 #include "SuperPointData.h"
17 #include "TrackData.h"
18 #include "MuonRoad.h"
19 #include "PtEndcapLUT.h"
21 #include "AlphaBetaEstimate.h"
22 #include "PtFromAlphaBeta.h"
23 #include "NswStationFitter.h"
24 #include "StgcData.h"
25 #include "MmData.h"
26 
27 namespace TrigL2MuonSA {
28 
30 {
31  public:
32 
33  MuFastStationFitter(const std::string& type,
34  const std::string& name,
35  const IInterface* parent);
36 
37  virtual StatusCode initialize() override;
38 
39  public:
41  const TrigL2MuonSA::MuonRoad& muonRoad,
42  TrigL2MuonSA::RpcFitResult& rpcFitResult,
43  std::vector<TrigL2MuonSA::TrackPattern>& v_trackPatterns) const;
45  const TrigL2MuonSA::MuonRoad& muonRoad,
46  TrigL2MuonSA::TgcFitResult& tgcFitResult,
47  std::vector<TrigL2MuonSA::TrackPattern>& v_trackPatterns,
48  TrigL2MuonSA::StgcHits& stgcHits,
49  TrigL2MuonSA::MmHits& mmHits) const;
50 
52  const TrigL2MuonSA::MuonRoad& muonRoad,
53  TrigL2MuonSA::TgcFitResult& tgcFitResult,
54  std::vector<TrigL2MuonSA::TrackPattern>& v_trackPatterns,
55  TrigL2MuonSA::StgcHits& stgcHits,
56  TrigL2MuonSA::MmHits& mmHits) const;
57 
59 
61  const TrigL2MuonSA::MuonRoad& muonRoad) const;
62 
63  StatusCode setMCFlag(const BooleanProperty& use_mcLUT);
64 
65  private:
66 
67  BooleanProperty m_use_mcLUT {true};
68 
69  Gaudi::Property< double > m_endcapinn_mdt_chi2_limit {
70  this, "ENDCAPINN_MDT_CHI2_LIMIT", 20., ""};
71  Gaudi::Property< double > m_endcapmid_mdt_chi2_limit {
72  this, "ENDCAPMID_MDT_CHI2_LIMIT", 20., ""};
73  Gaudi::Property< double > m_endcapout_mdt_chi2_limit {
74  this, "ENDCAPOUT_MDT_CHI2_LIMIT", 20., ""};
75  Gaudi::Property< double > m_endcapee_mdt_chi2_limit {
76  this, "ENDCAPEE_MDT_CHI2_LIMIT", 20., ""};
77 
78  Gaudi::Property< double > m_rwidth_Endcapinn_first {
79  this, "RWIDTH_EndcapINN_FIRST", 150., ""};
80  Gaudi::Property< double > m_rwidth_Endcapinn_second {
81  this, "RWIDTH_EndcapINN_SECOND", 80., ""};
82  Gaudi::Property< double > m_rwidth_Endcapmid_first {
83  this, "RWIDTH_EndcapMID_FIRST", 150., ""};
84  Gaudi::Property< double > m_rwidth_Endcapmid_second {
85  this, "RWIDTH_EndcapMID_SECOND", 100., ""};
86  Gaudi::Property< double > m_rwidth_Endcapout_first {
87  this, "RWIDTH_EndcapOUT_FIRST", 120., ""};
88  Gaudi::Property< double > m_rwidth_Endcapout_second {
89  this, "RWIDTH_EndcapOUT_SECOND", 60., ""};
90  Gaudi::Property< double > m_rwidth_Endcapee_first {
91  this, "RWIDTH_EndcapEE_FIRST", 150., ""};
92  Gaudi::Property< double > m_rwidth_Endcapee_second {
93  this, "RWIDTH_EndcapEE_SECOND", 100., ""};
94 
95  Gaudi::Property< double > m_mdt_driftspace_uplimit {
96  this, "MDT_DRFITSPACE_UPLIMIT", 14.8, ""};
97  Gaudi::Property< double > m_mdt_driftspace_downlimit {
98  this, "MDT_DRFITSPACE_DOWNLIMIT", 0.1, ""};
99  Gaudi::Property< double > m_mdt_drifttime_limit {
100  this, "MDT_DRFITTIME_LIMIT", 1700., ""};
101 
102  ToolHandle<ITrigMuonBackExtrapolator> m_backExtrapolator {
103  this, "BackExtrapolator", "TrigMuonBackExtrapolator", "public tool for back extrapolating the muon tracks to the IV"};
104 
105  private:
106  float SetDriftSpace(float tdr, float rad, float zeta, float phim, float phiDir) const;
107  void Xline(float *, float *, float *, int *, int ,
108  float *, float *, float *, float *, float *, float *) const;
109  void Circfit (int, float *, float *, float *, float *, int *,
110  float *, float *, float DAB[2][2], float *) const;
111  void Circles (int, float *, float *, float *, float *, int *,
112  float *, float *, float DAB[2][2], float *, float *) const;
113  int Evlfit (int, TrigL2MuonSA::PBFitResult& fitres) const;
114 
115  ToolHandle<AlphaBetaEstimate> m_alphaBetaEstimate {
116  this, "AlphaBetaEstimate", "TrigL2MuonSA::AlphaBetaEstimate"};
117  ToolHandle<PtFromAlphaBeta> m_ptFromAlphaBeta {
118  this, "PtFromAlphaBeta", "TrigL2MuonSA::PtFromAlphaBeta", ""};
119  ToolHandle<NswStationFitter> m_nswStationFitter {this, "NswStationFitter", "TrigL2MuonSA::NswStationFitter"};
120 
121  void findLayerCombination(std::vector<unsigned int> &a, int n, int r,std::vector<std::vector<unsigned int> > &c, int &nr) const;
122  void findSubLayerCombination(std::vector<unsigned int> &a, int n,int r, std::vector<unsigned int> &b, int index ,int num,
123  std::vector<std::vector<unsigned int> > &c, int &nr) const;
124  void makeReferenceLine(TrigL2MuonSA::TrackPattern& trackPattern,const TrigL2MuonSA::MuonRoad& muonRoad) const;
125  void Circles (int, float *, float *, float *, float *, int *,
126  float *, float *, float DAB[2][2], float *, float *, float *, float *, float *) const;
127 
128  double fromAlphaPtToInn(TrigL2MuonSA::TgcFitResult& tgcFitResult,TrigL2MuonSA::TrackPattern& trackPattern) const;
129  void updateInnSP(TrigL2MuonSA::TrackPattern& trackPattern, double &aw,double &tgc_aw, double &bw) const;
130  void stationSPFit(TrigL2MuonSA::MdtHits* mdtSegment, TrigL2MuonSA::SuperPoint* superPoint,
131  TrigL2MuonSA::PBFitResult& pbFitResult, int s_address, int i_station,double aw, float phiDir) const;
132 
133 
134 };
135 
136 } // namespace TrigL2MuonSA
137 
138 #endif // MUFASTSTATIONFITTER_H
beamspotman.r
def r
Definition: beamspotman.py:676
MuonRoad.h
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapinn_second
Gaudi::Property< double > m_rwidth_Endcapinn_second
Definition: MuFastStationFitter.h:80
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapee_second
Gaudi::Property< double > m_rwidth_Endcapee_second
Definition: MuFastStationFitter.h:92
ITrigMuonBackExtrapolator.h
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapout_second
Gaudi::Property< double > m_rwidth_Endcapout_second
Definition: MuFastStationFitter.h:88
TrigL2MuonSA::MuFastStationFitter::m_mdt_drifttime_limit
Gaudi::Property< double > m_mdt_drifttime_limit
Definition: MuFastStationFitter.h:99
TrigL2MuonSA::MuFastStationFitter::m_alphaBetaEstimate
ToolHandle< AlphaBetaEstimate > m_alphaBetaEstimate
Definition: MuFastStationFitter.h:115
TrigL2MuonSA::MuFastStationFitter::findSuperPoints
StatusCode findSuperPoints(const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::RpcFitResult &rpcFitResult, std::vector< TrigL2MuonSA::TrackPattern > &v_trackPatterns) const
Definition: MuFastStationFitter.cxx:87
TrigL2MuonSA::RpcFitResult
Definition: RpcFitResult.h:14
TrigL2MuonSA::MuFastStationFitter::m_mdt_driftspace_downlimit
Gaudi::Property< double > m_mdt_driftspace_downlimit
Definition: MuFastStationFitter.h:97
index
Definition: index.py:1
TrigL2MuonSA::MuFastStationFitter::m_backExtrapolator
ToolHandle< ITrigMuonBackExtrapolator > m_backExtrapolator
Definition: MuFastStationFitter.h:102
TrigL2MuonSA::TgcFitResult
Definition: TgcFitResult.h:11
MmData.h
MdtData.h
TrigL2MuonSA::MdtHits
std::vector< MdtHitData > MdtHits
Definition: MdtData.h:57
TrigL2MuonSA::MuFastStationFitter::m_ptFromAlphaBeta
ToolHandle< PtFromAlphaBeta > m_ptFromAlphaBeta
Definition: MuFastStationFitter.h:117
TrigRoiDescriptor
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
Definition: TrigRoiDescriptor.h:56
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:1326
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapout_first
Gaudi::Property< double > m_rwidth_Endcapout_first
Definition: MuFastStationFitter.h:86
TrigL2MuonSA::MuFastStationFitter::Evlfit
int Evlfit(int, TrigL2MuonSA::PBFitResult &fitres) const
Definition: MuFastStationFitter.cxx:1415
AlphaBetaEstimate.h
TrigL2MuonSA::MuFastStationFitter::Circfit
void Circfit(int, float *, float *, float *, float *, int *, float *, float *, float DAB[2][2], float *) const
Definition: MuFastStationFitter.cxx:1665
NswStationFitter.h
TrigL2MuonSA::MuFastStationFitter::stationSPFit
void stationSPFit(TrigL2MuonSA::MdtHits *mdtSegment, TrigL2MuonSA::SuperPoint *superPoint, TrigL2MuonSA::PBFitResult &pbFitResult, int s_address, int i_station, double aw, float phiDir) const
Definition: MuFastStationFitter.cxx:509
TrigL2MuonSA::MuFastStationFitter::m_endcapinn_mdt_chi2_limit
Gaudi::Property< double > m_endcapinn_mdt_chi2_limit
Definition: MuFastStationFitter.h:69
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapinn_first
Gaudi::Property< double > m_rwidth_Endcapinn_first
Definition: MuFastStationFitter.h:78
TrigL2MuonSA::TrackPattern
Definition: TrackData.h:16
TrigL2MuonSA::MuFastStationFitter::m_nswStationFitter
ToolHandle< NswStationFitter > m_nswStationFitter
Definition: MuFastStationFitter.h:119
TrigL2MuonSA::MuFastStationFitter::superPointFitter
StatusCode superPointFitter(TrigL2MuonSA::TrackPattern &trackPattern) const
Definition: MuFastStationFitter.cxx:197
TrigL2MuonSA::MuFastStationFitter::Circles
void Circles(int, float *, float *, float *, float *, int *, float *, float *, float DAB[2][2], float *, float *) const
Definition: MuFastStationFitter.cxx:1546
TrigL2MuonSA::MuonRoad
Definition: MuonRoad.h:20
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PtEndcapLUT.h
AthAlgTool.h
TrigL2MuonSA::MuFastStationFitter::m_endcapee_mdt_chi2_limit
Gaudi::Property< double > m_endcapee_mdt_chi2_limit
Definition: MuFastStationFitter.h:75
test_pyathena.parent
parent
Definition: test_pyathena.py:15
RpcFitResult.h
TrigL2MuonSA::MuFastStationFitter::Xline
void Xline(float *, float *, float *, int *, int, float *, float *, float *, float *, float *, float *) const
Definition: MuFastStationFitter.cxx:1730
TgcFitResult.h
TrigL2MuonSA::MuFastStationFitter::updateInnSP
void updateInnSP(TrigL2MuonSA::TrackPattern &trackPattern, double &aw, double &tgc_aw, double &bw) const
Definition: MuFastStationFitter.cxx:1256
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapmid_second
Gaudi::Property< double > m_rwidth_Endcapmid_second
Definition: MuFastStationFitter.h:84
TrigL2MuonSA::MuFastStationFitter::makeReferenceLine
void makeReferenceLine(TrigL2MuonSA::TrackPattern &trackPattern, const TrigL2MuonSA::MuonRoad &muonRoad) const
Definition: MuFastStationFitter.cxx:1028
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapmid_first
Gaudi::Property< double > m_rwidth_Endcapmid_first
Definition: MuFastStationFitter.h:82
TrigL2MuonSA::MuFastStationFitter::setMCFlag
StatusCode setMCFlag(const BooleanProperty &use_mcLUT)
Definition: MuFastStationFitter.cxx:53
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:118
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TrigL2MuonSA::MuFastStationFitter::m_use_mcLUT
BooleanProperty m_use_mcLUT
Definition: MuFastStationFitter.h:67
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
TrigL2MuonSA::MuFastStationFitter::m_endcapmid_mdt_chi2_limit
Gaudi::Property< double > m_endcapmid_mdt_chi2_limit
Definition: MuFastStationFitter.h:71
TrigL2MuonSA::MuFastStationFitter::MuFastStationFitter
MuFastStationFitter(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuFastStationFitter.cxx:25
a
TList * a
Definition: liststreamerinfos.cxx:10
TrigL2MuonSA::MmHits
std::vector< MmHitData > MmHits
Definition: MmData.h:47
TrigL2MuonSA::MuFastStationFitter::m_endcapout_mdt_chi2_limit
Gaudi::Property< double > m_endcapout_mdt_chi2_limit
Definition: MuFastStationFitter.h:73
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TrigL2MuonSA::StgcHits
std::vector< StgcHitData > StgcHits
Definition: StgcData.h:49
TrigL2MuonSA::MuFastStationFitter::initialize
virtual StatusCode initialize() override
Definition: MuFastStationFitter.cxx:35
TrigL2MuonSA::MuFastStationFitter
Definition: MuFastStationFitter.h:30
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:1342
TrigL2MuonSA::MuFastStationFitter::m_rwidth_Endcapee_first
Gaudi::Property< double > m_rwidth_Endcapee_first
Definition: MuFastStationFitter.h:90
PtFromAlphaBeta.h
TrigL2MuonSA::SuperPoint
Definition: SuperPointData.h:74
TrigRoiDescriptor.h
TrigL2MuonSA::MuFastStationFitter::fromAlphaPtToInn
double fromAlphaPtToInn(TrigL2MuonSA::TgcFitResult &tgcFitResult, TrigL2MuonSA::TrackPattern &trackPattern) const
Definition: MuFastStationFitter.cxx:1175
AthAlgTool
Definition: AthAlgTool.h:26
TrigL2MuonSA::MuFastStationFitter::SetDriftSpace
float SetDriftSpace(float tdr, float rad, float zeta, float phim, float phiDir) const
Definition: MuFastStationFitter.cxx:1376
StgcData.h
SuperPointData.h
python.compressB64.c
def c
Definition: compressB64.py:93
TrigL2MuonSA::PBFitResult
Definition: SuperPointData.h:15
TrigL2MuonSA::MuFastStationFitter::m_mdt_driftspace_uplimit
Gaudi::Property< double > m_mdt_driftspace_uplimit
Definition: MuFastStationFitter.h:95
python.SystemOfUnits.rad
int rad
Definition: SystemOfUnits.py:111
TrigL2MuonSA
Definition: AlignmentBarrelLUT.h:13