ATLAS Offline Software
Loading...
Searching...
No Matches
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
23namespace 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:
36 StatusCode findSuperPoints(const TrigL2MuonSA::MuonRoad& muonRoad,
37 TrigL2MuonSA::RpcFitResult& rpcFitResult,
38 std::vector<TrigL2MuonSA::TrackPattern>& v_trackPatterns) const;
39 StatusCode findSuperPointsSimple(const TrigRoiDescriptor* p_roids,
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
46 StatusCode findSuperPoints(const TrigRoiDescriptor* p_roids,
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
53 StatusCode superPointFitter(TrigL2MuonSA::TrackPattern& trackPattern) const;
54
55 StatusCode superPointFitter(TrigL2MuonSA::TrackPattern& trackPattern,
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
static Double_t a
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Gaudi::Property< double > m_rwidth_Endcapmid_second
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
virtual StatusCode initialize() override
ToolHandle< AlphaBetaEstimate > m_alphaBetaEstimate
void Evlfit(TrigL2MuonSA::PBFitResult &fitres) const
Gaudi::Property< double > m_rwidth_Endcapinn_first
StatusCode setMCFlag(bool use_mcLUT)
StatusCode superPointFitter(TrigL2MuonSA::TrackPattern &trackPattern) const
double fromAlphaPtToInn(const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::TrackPattern &trackPattern) const
ToolHandle< PtFromAlphaBeta > m_ptFromAlphaBeta
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
void updateInnSP(TrigL2MuonSA::TrackPattern &trackPattern, double &aw, double &tgc_aw, double &bw) const
Gaudi::Property< double > m_rwidth_Endcapmid_first
void findLayerCombination(std::vector< unsigned int > &a, int n, int r, std::vector< std::vector< unsigned int > > &c, int &nr) const
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
Gaudi::Property< double > m_rwidth_Endcapout_first
StatusCode findSuperPoints(const TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::RpcFitResult &rpcFitResult, std::vector< TrigL2MuonSA::TrackPattern > &v_trackPatterns) const
ToolHandle< NswStationFitter > m_nswStationFitter
MuFastStationFitter(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< double > m_rwidth_Endcapout_second
Gaudi::Property< double > m_endcapmid_mdt_chi2_limit
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
Gaudi::Property< double > m_mdt_driftspace_downlimit
Gaudi::Property< double > m_mdt_driftspace_uplimit
void stationSPFit(TrigL2MuonSA::MdtHits &mdtSegment, TrigL2MuonSA::SuperPoint &superPoint, TrigL2MuonSA::PBFitResult &pbFitResult, int s_address, int i_station, double aw) const
Gaudi::Property< double > m_rwidth_Endcapinn_second
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
void makeReferenceLine(TrigL2MuonSA::TrackPattern &trackPattern, const TrigL2MuonSA::MuonRoad &muonRoad) const
ToolHandle< ITrigMuonBackExtrapolator > m_backExtrapolator
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
int r
Definition globals.cxx:22
std::vector< StgcHitData > StgcHits
Definition StgcData.h:49
std::vector< MdtHitData > MdtHits
Definition MdtData.h:56
std::vector< MmHitData > MmHits
Definition MmData.h:47
Definition index.py:1