|
ATLAS Offline Software
|
Go to the documentation of this file.
26 #include "GaudiKernel/ThreadLocalContext.h"
52 return StatusCode::FAILURE;
60 return StatusCode::SUCCESS;
66 double& combPtInv,
double& combPtRes,
double& deta,
double& dphi,
double&
dr)
const
71 return muComb::drptMatch(
pt,
eta,
phi, id_pt, id_eta, id_phi, algo, combPtInv, combPtRes, deta, dphi,
dr);
75 double& combPtInv,
double& combPtRes,
double& deta,
double& dphi,
double&
dr)
const
82 if (algo < 1 || algo > 4) {
83 ATH_MSG_DEBUG(
" muComb::drptMatch wrong algo parameter, it is: " << algo
84 <<
" while must be in the range [1,4], match failed!!!" );
92 if (algo == 1) combPtInv = ((1. /
pt) + (1. / id_pt)) * 0.5;
93 if (algo == 2) combPtInv = 1. / id_pt;
94 if (algo == 3) combPtInv = 1. /
pt;
95 if (algo == 4) combPtInv = 1.e-33;
99 if (tmp_dphi >=
M_PI) tmp_dphi = 2 *
M_PI - tmp_dphi;
100 double tmp_dr = std::sqrt(tmp_deta * tmp_deta + tmp_dphi * tmp_dphi);
109 if (tmp_dr > winDR) passDR =
false;
111 ATH_MSG_DEBUG(
" REGTEST Angular MU-ID match / dR / threshold / result:"
114 <<
" / " << (passDR ?
"true" :
"false"));
116 if (algo == 1 && winPt > 0) {
118 if (tmp_dpt > winPt) passPt =
false;
119 ATH_MSG_DEBUG(
" REGTEST MU-ID match / dpt (GeV) / threshold (GeV) / result:"
122 <<
" / " << (passPt ?
"true" :
"false"));
125 if (passDR && passPt)
return 0;
136 const EventContext& ctx = Gaudi::Hive::currentContext();
150 double q_over_p = 0.;
163 double etaShift = (
result.isBarrel ? 0 :
result.charge * 0.01);
176 if ((std::fabs(sp1_R) < 1000.)) {
180 if ((std::fabs(sp2_R) < 1300.)) {
187 if (
R == 0. &&
z == 0.) {
189 if (std::fabs(sp2_R) > 1300.) {
191 if (
z == 0.)
z = 7600.;
205 std::unique_ptr<const Trk::TrackParameters> muonPerigee
236 double id_eta,
double id_phi,
double id_pt,
double id_charge,
double id_eeta,
double id_ephi,
double id_eipt,
237 double& combPtInv,
double& combPtRes,
double& deta,
double& dphi,
double&
chi2,
int&
ndof)
const
248 double id_ptinv = 1.0e33;
250 id_ptinv = 1. / id_pt;
255 double id_eptinv = id_eipt;
261 double q_tmp = extr.
charge;
264 if (1. / combPtInv > 50000.) q_tmp = extr.
charge;
265 else q_tmp = id_charge;
272 double ephi_to_use = extr.
ephi;
281 id_eta, 0.0, id_phi, 0.0, id_ptinv, id_eptinv,
true);
283 id_eta, id_eeta, id_phi, id_ephi, id_ptinv, id_eptinv,
m_UseAbsPt);
286 ATH_MSG_DEBUG(
" REGTEST Resolution / OLDIdRes / IdRes / muFastRes / combRes:"
292 ATH_MSG_DEBUG(
" REGTEST Momentum / IdPt / muFastPt / CombPt :"
298 <<
" / " << std::setw(11) <<
chi2
299 <<
" / " << std::setw(11) <<
ndof
300 <<
" // " << std::setw(11) << chi2_OLD
301 <<
" / " << std::setw(11) << ndof_OLD );
313 ATH_MSG_DEBUG(
" REGTEST DeltaEta / DeltaPhi / WinEta / WinPhi:"
314 <<
" / " << std::setw(11) << std::fabs(deta)
315 <<
" / " << std::setw(11) << std::fabs(dphi)
317 <<
" / " << std::setw(11) <<
m_WeightPhi_g4*winPhiSigma*std::sqrt(ephi_to_use * ephi_to_use) );
322 if (std::fabs(dphi) >
m_WeightPhi_g4 * winPhiSigma * std::sqrt(ephi_to_use * ephi_to_use)) {
326 if (
chi2 > maxChi2)
return 6;
335 double id_eta,
double id_phi,
double id_pt,
double id_charge,
336 double& combPtInv,
double& combPtRes,
double& deta,
double& dphi,
double&
chi2,
int&
ndof)
const
348 bool isTS = ((feature->
rMS() <= 10.) ? true :
false);
352 double ptinv = 1. /
pt;
358 double id_ptinv = 1.0e33;
361 id_ptinv = 1. / id_pt;
373 if (1. / combPtInv > 50000.) q_tmp =
charge;
374 else q_tmp = id_charge;
379 double extr_eta = feature->
eta();
380 double extr_eeta = feature->
deltaEta();
381 double extr_phi = feature->
phi();
382 double extr_ephi = feature->
deltaPhi();
383 double extr_ptinv = ptinv;
384 double extr_eptinv = eptinv;
395 id_eta, 0.0, id_phi, 0.0, id_ptinv, id_eptinv,
m_UseAbsPt);
398 ATH_MSG_DEBUG(
" REGTEST Resolution / IdRes / muFastRes / combRes:"
403 ATH_MSG_DEBUG(
" REGTEST Momentum / IdPt / muFastPt / CombPt :"
409 <<
" / " << std::setw(11) <<
chi2
410 <<
" / " << std::setw(11) <<
ndof );
429 if ((id_phi >= -2.60 && id_phi <= -2.10) || (id_phi >= -1.10 && id_phi <= -0.50)) isFT =
true;
436 ATH_MSG_DEBUG(
" REGTEST DeltaEta / DeltaPhi / WinEta / WinPhi:"
437 <<
" / " << std::setw(11) << std::fabs(deta)
438 <<
" / " << std::setw(11) << std::fabs(dphi)
439 <<
" / " << std::setw(11) <<
m_WeightEta*winEtaSigma*std::sqrt(extr_eeta * extr_eeta)
440 <<
" / " << std::setw(11) <<
m_WeightPhi*winPhiSigma*std::sqrt(extr_ephi * extr_ephi) );
442 if (std::fabs(deta) >
m_WeightEta * winEtaSigma * std::sqrt(extr_eeta * extr_eeta)) {
445 if (std::fabs(dphi) >
m_WeightPhi * winPhiSigma * std::sqrt(extr_ephi * extr_ephi)) {
449 if (
chi2 > maxChi2)
return 6;
462 using namespace xAOD;
495 ptID, etaID, phiID, zetaID,
498 efficiency, StrategyMC, ErrorFlagMC, MatchFlagMC);
509 if (fieldCondObj ==
nullptr) {
511 return StatusCode::FAILURE;
514 fieldCondObj->getInitializedCache (fieldCache);
518 ATH_MSG_DEBUG(
"=========== Magnetic Field Status ========== " );
521 ATH_MSG_DEBUG(
" ---> Solenoid : " << ((solenoidOn) ?
"ON" :
"OFF") );
522 ATH_MSG_DEBUG(
" ---> Toroid : " << ((toroidOn) ?
"ON" :
"OFF") );
535 if (toroidOn) usealgo = 3;
541 ATH_MSG_DEBUG(
"=========== Matching windows g4 ========== " );
553 ATH_CHECK( muonCBColl.record (std::make_unique<xAOD::L2CombinedMuonContainer>(),
554 std::make_unique<xAOD::L2CombinedMuonAuxContainer>()) );
561 if (muonColl->size() == 0) {
567 ATH_MSG_DEBUG(
" L2StandAloneMuonContainer empty -> stop processing RoI, no match" );
568 return StatusCode::SUCCESS;
576 for(
uint i_muonSA = 0; i_muonSA < muonColl->size(); i_muonSA++){
590 if (muonSA->
pt() == 0.) {
592 if (usealgo == 2 || usealgo == 4) {
593 ATH_MSG_DEBUG(
" L2StandAloneMuon pt = 0 --> using angular match" );
596 ATH_MSG_DEBUG(
" L2StandAloneMuon pt = 0 --> stop processing RoI, no match" );
598 muonCBColl->push_back(muonCB);
599 return StatusCode::SUCCESS;
610 double eta_ms = -999.;
611 double phi_ms = -999.;
612 double zeta_ms = -999.;
637 eta_ms = muonSA->
etaMS();
638 phi_ms = muonSA->
phiMS();
639 zeta_ms = muonSA->
zMS();
642 <<
" / eta = " <<
eta
643 <<
" / phi = " <<
phi
644 <<
" / etaMS = " << eta_ms
645 <<
" / phiMS = " << phi_ms
646 <<
" / zMS = " << zeta_ms);
653 if (!idTrackParticles.
isValid()){
654 ATH_MSG_DEBUG(
" Failed to get xAOD::TrackParticleContainer --> no match" );
657 muonCBColl->push_back(muonCB);
658 return StatusCode::SUCCESS;
660 if (idTrackParticles->
size() < 1){
661 ATH_MSG_DEBUG(
" xAOD::TrackParticleContainer has 0 tracks --> no match" );
664 muonCBColl->push_back(muonCB);
665 return StatusCode::SUCCESS;
668 ATH_MSG_DEBUG(
" Found xAOD::TrackParticleContainer with size: " << idTrackParticles->
size() );
671 double ptinv_comb = 0.;
672 double ptres_comb = 0.001;
673 double chi2_comb = 1.0e33;
675 double best_dr = 1.0e33;
676 double best_deta = 1.0e33;
677 double best_dphi = 1.0e33;
678 bool has_match =
false;
680 int matched_trk_idx = -1;
681 int matched_trk_idx_tmp = -1;
692 for(
const auto trkit:(*idTrackParticles)) {
694 matched_trk_idx_tmp++;
695 double ptinv_tmp = 0.;
696 double ptres_tmp = 0.001;
697 double deta_tmp = 0.;
698 double dphi_tmp = 0.;
700 double chi2_tmp = 0.;
702 bool has_match_tmp =
false;
706 double phi_id = (trkit)->
phi();
707 double eta_id = (trkit)->
eta();
708 double qoverp_id = (trkit)->
qOverP();
709 double q_id = ((trkit)->
qOverP() > 0 ? 1.0 : -1.0);
710 double pt_id = (trkit)->
pt() * q_id;
713 double e_phi_id = std::sqrt((trkit)->definingParametersCovMatrix()(
Trk::phi0,
Trk::phi0));
716 double e_eta_id = std::fabs(0.5 * (1./tanthetaov2 + tanthetaov2) * e_theta_id);
718 double e_qoverpt_id = e_qoverp_id;
719 double theta_id = (trkit)->
theta();
725 <<
", eta = " << eta_id
726 <<
", phi = " << phi_id
727 <<
", th = " << theta_id
728 <<
", ephi = " << e_phi_id
729 <<
", eth = " << e_theta_id
730 <<
", eeta = " << e_eta_id
731 <<
", ip = " << qoverp_id
732 <<
", eip = " << e_qoverp_id
733 <<
", eipt = " << e_qoverpt_id );
747 imatch_tmp =
drptMatch(muonSA, pt_id, eta_id, phi_id, usealgo, ptinv_tmp, ptres_tmp, deta_tmp, dphi_tmp, chi2_tmp);
749 if (imatch_tmp == 0) has_match_tmp =
true;
752 imatch_tmp =
mfMatch(muonSA, eta_id, phi_id, pt_id, q_id, ptinv_tmp, ptres_tmp, deta_tmp, dphi_tmp, chi2_tmp, ndof_tmp);
753 if (imatch_tmp == 0) has_match_tmp =
true;
755 imatch_tmp =
g4Match(extr, eta_id, phi_id, pt_id, q_id, e_eta_id, e_phi_id, e_qoverpt_id, ptinv_tmp, ptres_tmp, deta_tmp, dphi_tmp, chi2_tmp, ndof_tmp);
756 if (imatch_tmp == 0) has_match_tmp =
true;
761 if (!has_match_tmp)
continue;
764 dr_tmp = std::sqrt(deta_tmp * deta_tmp + dphi_tmp * dphi_tmp);
766 if (chi2_tmp <= chi2_comb) {
768 chi2_comb = chi2_tmp;
769 ndof_comb = ndof_tmp;
770 ptinv_comb = ptinv_tmp;
771 ptres_comb = ptres_tmp;
772 best_deta = deta_tmp;
773 best_dphi = dphi_tmp;
776 matched_trk_idx = matched_trk_idx_tmp;
782 if (usealgo == 0 && std::fabs(
pt) >= 6.) {
790 if (ptMS > 100.) ptMS = 101.5;
791 if (ptMS < -100.) ptMS = -101.5;
792 if (ptFL > 100.) ptFL = 101.5;
793 if (ptFL < -100.) ptFL = -101.5;
798 MatchFlagMC = imatch;
799 if (usealgo == 0 && std::fabs(
pt) >= 6.)
efficiency = 0;
803 muonCBColl->push_back(muonCB);
804 return StatusCode::SUCCESS;
812 double q_id = ((muonCB->
idTrack()->
qOverP()) > 0 ? 1.0 : -1.0);
816 double zPos_id = muonCB->
idTrack()->
z0();
821 MatchFlagMC = imatch;
825 if (usealgo == 0 && std::fabs(
pt) >= 6.) {
832 dZeta = zeta_ms - zPos_id;
837 if (ptMC > 100.) ptMC = 101.5;
838 if (ptMC < -100.) ptMC = -101.5;
839 if (ptID > 100.) ptID = 101.5;
840 if (ptID < -100.) ptID = -101.5;
847 <<
" usealgo / IdPt (GeV) / muonPt (GeV) / CombPt (GeV) / chi2 / ndof: " <<
" / " << usealgo <<
" / " << pt_id*q_id /
Gaudi::Units::GeV <<
" / " << prt_pt <<
" / " << 1. / ptinv_comb /
Gaudi::Units::GeV <<
" / " << chi2_comb <<
" / " << ndof_comb );
849 muonCB->
setPt(std::fabs(1. / ptinv_comb));
854 if (ptinv_comb > 0) mcq = 1.0;
858 float mcresu = std::fabs(ptres_comb / (ptinv_comb * ptinv_comb));
865 muonCBColl->push_back(muonCB);
867 return StatusCode::SUCCESS;
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Gaudi::Property< double > m_WinEta_EC
Number of sigmas for the Eta matching window LUT backextrapolator (EndCaps)
Gaudi::Property< double > m_WeightEta
Scale factor for the Eta matching window in LUT backextrapolator.
Gaudi::Property< bool > m_assumeToroidOff
flag to assume B_Toroid=0 anyway
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
muComb(const std::string &, ISvcLocator *)
Constructor.
void setStrategy(int value)
set algorithm strategy flag
Group
Properties of a chain group.
Gaudi::Property< double > m_WinPhi_EC_g4
Number of sigmas for the Phi matching window LUT backextrapolator (EndCaps)
Scalar phi() const
phi method
float etaMS() const
Get the eta at muon spectrometer.
double getDeltaEta(double eta1, double eta2)
Get DeltaEta.
int isRpcFailure() const
Get flag to see if RPC is properly read.
Gaudi::Property< double > m_PtMinTrk
Min Pt to select the ID track for matching.
void setPhi(float phi)
Set the azimuthal angle ( ) of the muon.
Gaudi::Property< double > m_Chi2Max
Max Chi2 for the combined muon in LUT backextrapolator (Barrel)
Class describing standalone muons reconstructed in the LVL2 trigger.
Scalar eta() const
pseudorapidity method
float deltaPt() const
Get error of pT.
Gaudi::Property< double > m_WeightPhi
Scale factor for the Phi matching window in LUT backextrapolator.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Gaudi::Property< double > m_Chi2Max_TS
Max Chi2 for the combined muon in LUT backextrapolator (Trigger Stations)
Scalar theta() const
theta method
float z0() const
Returns the parameter.
@ BarrelInner
Inner station in the barrel spectrometer.
Gaudi::Property< std::vector< double > > m_IDSCANRes_endcap4
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Gaudi::Property< double > m_Chi2Max_g4
Max Chi2 for the combined muon in LUT backextrapolator (Barrel)
float phiMS() const
Get the phi at muon spectrometer.
void setCharge(float value)
set seeding muon charge
int mfMatch(const xAOD::L2StandAloneMuon *feature, double, double, double, double, double &, double &, double &, double &, double &, int &) const
double getG4ExtPhiRes(double pt, double eta)
Get parametrized Geant4 Phi resolution (extrapolated)
const std::string & key() const
Return the StoreGate ID for the referenced object.
Gaudi::Property< double > m_Chi2Weight_g4
Scale factor for the Chi2 1/pt resolutions (MS and ID) (Barrel)
ExtrapolationResult getExtrapolatedMuon(const xAOD::L2StandAloneMuon *feature) const
Gaudi::Property< std::vector< double > > m_IDSCANRes_endcap2
Gaudi::Property< int > m_ChargeStrategy
muComb charge assignment strategy: 0: useMuFast 1: use ID 2: use resolution model
Gaudi::Property< double > m_winPt
max deltaPt for simpified matching
int drptMatch(double, double, double, double, double, double, int, double &, double &, double &, double &, double &) const
Gaudi::Property< double > m_winDR
max deltaR for simplified matching
double getDeltaPhi(double phi1, double phi2)
Get DeltaPhi.
float deltaEta() const
Get error of eta.
void setEta(float eta)
Set the pseudorapidity ( ) of the muon.
def timer(name, disabled=False)
virtual double eta() const
The pseudorapidity ( ) of the particle.
An algorithm that can be simultaneously executed in multiple threads.
Class describing combined muon reconstructed in the LVL2 trigger.
double getG4ExtEtaRes(double pt, double eta)
Get parametrized Geant4 Eta resolution (extrapolated)
Gaudi::Property< double > m_Chi2Max_EC_g4
Max Chi2 for the combined muon in LUT backextrapolator (EndCaps)
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
void setMatchFlag(int value)
set algorithm match flag
float superPointR(int chamber) const
Get the measured radious of the muon in one particular super point.
void efficiency(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
SG::WriteHandleKey< xAOD::L2CombinedMuonContainer > m_outputCBmuonCollKey
Gaudi::Property< double > m_WinEta_EC_g4
Number of sigmas for the Eta matching window LUT backextrapolator (EndCaps)
virtual StatusCode execute(const EventContext &ctx) const override
execute execute the combined muon FEX.
double getCombinedAverage(double p1, double sp1, double p2, double sp2)
Get weighted mean.
int sAddress() const
Get the station address of the muon.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< double > m_WinEta_FE
Number of sigmas for the Eta matching window LUT backextrapolator (MS Feet region)
Gaudi::Property< double > m_WinPhi_EC
Number of sigmas for the Phi matching window LUT backextrapolator (EndCaps)
Gaudi::Property< double > m_WinPhi
Number of sigmas for the Phi matching window LUT backextrapolator (Barrel)
float zMS() const
Get the Z at muon spectrometer.
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
double getIDSCANRes(std::vector< double > barrelvec, std::vector< double > ec1vec, std::vector< double > ec2vec, std::vector< double > ec3vec, std::vector< double > ec4vec, double pt_id, double eta_id)
Get parametrized IDSCAN 1/pt resolution.
double chi2(TH1 *h0, TH1 *h1)
#define CHECK(...)
Evaluate an expression and check for errors.
Gaudi::Property< int > m_AlgoStrategy
muComb matching strategy: 0: auto select best option 1: simplified R,(Pt) matching
Gaudi::Property< std::vector< double > > m_IDSCANRes_endcap3
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Gaudi::Property< double > m_WinPhi_g4
Number of sigmas for the Phi matching window LUT backextrapolator (Barrel)
Header file to be included by clients of the Monitored infrastructure.
bool solenoidOn() const
status of the magnets
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ElementLink implementation for ROOT usage.
void setSigmaPt(float value)
set sigma combined Pt
double getStdChi2(int &ndof, double eta1, double seta1, double phi1, double sphi1, double qOvpt1, double sqOvpt1, double eta2, double seta2, double phi2, double sphi2, double qOvpt2, double sqOvpt2, bool useAbsPt)
Get Std Chi2.
Gaudi::Property< double > m_EtaMaxTrk
Max abs(eta) to select the ID track for matching.
int g4Match(const ExtrapolationResult &extr, double, double, double, double, double, double, double, double &, double &, double &, double &, double &, int &) const
@ EndcapMiddle
Middle station in the endcap spectrometer.
float qOverP() const
Returns the parameter.
void setIdTrackLink(const ElementLink< xAOD::TrackParticleContainer > &link)
set ID track used to make the CB muon
Gaudi::Property< bool > m_assumeSolenoidOff
flag to assume B_Solenoid=0 anyway
double charge(const T &p)
StatusCode initialize(bool used=true)
void makePrivateStore()
Create a new (empty) private store for this object.
L2CombinedMuon_v1 L2CombinedMuon
Define the latest version of the muon CB class.
virtual double phi() const
The azimuthal angle ( ) of the particle.
Eigen::Matrix< double, 3, 1 > Vector3D
void setMuSATrackLink(const ElementLink< xAOD::L2StandAloneMuonContainer > &link)
set SA muon used to make the CB muon
void setPt(float pt)
Set the transverse momentum ( ) of the muon.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackParticleContainerKey
Gaudi::Property< double > m_WinEta_g4
Number of sigmas for the Eta matching window LUT backextrapolator (Barrel)
Gaudi::Property< double > m_Chi2Max_EC
Max Chi2 for the combined muon in LUT backextrapolator (EndCaps)
Gaudi::Property< bool > m_useBackExtrapolatorG4
flag to switch between G4 and LUT based back-extrapolation
Gaudi::Property< double > m_WinPhi_FE
Number of sigmas for the Phi matching window LUT backextrapolator (MS Feet region)
Gaudi::Property< bool > m_UseAbsPt
Use Absolute value of the Pt in chi2 calculation (i.e.
Gaudi::Property< double > m_Chi2Max_FE
Max Chi2 for the combined muon in LUT backextrapolator (MS Feet region)
@ EndcapInner
Inner station in the endcap spectrometer.
virtual StatusCode initialize() override
initialize.
Gaudi::Property< std::vector< double > > m_IDSCANRes_endcap1
Gaudi::Property< double > m_WinPhi_TS
Number of sigmas for the Phi matching window LUT backextrapolator (Trigger Stations)
Gaudi::Property< double > m_WinEta_TS
Number of sigmas for the Eta matching window LUT backextrapolator (Trigger Stations)
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Gaudi::Property< std::vector< double > > m_IDSCANRes_barrel
Gaudi::Property< int > m_NdofMin
Min Number of DOF to apply the chi2 cut on macthing based on LUT and G4 backextrapolators.
float deltaPhi() const
Get error of phi.
virtual double pt() const
The transverse momentum ( ) of the particle.
const xAOD::TrackParticle * idTrack() const
Get the ID track as a bare pointer.
Gaudi::Property< double > m_WeightPhi_g4
Scale factor for the Phi matching window in LUT backextrapolator.
float rMS() const
Get the R at muon spectrometer.
ToolHandle< GenericMonitoringTool > m_monTool
Declare a monitored scalar variable.
double getCombinedAverageSigma(double sp1, double sp2)
Get sigma of weighted mean.
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
ToolHandle< Trk::IExtrapolator > m_backExtrapolatorG4
Handle to the G4 backExtrapolator tool.
void setErrorFlag(int value)
set algorithm error flag
double getChi2(int &ndof, double ipt, double eta1, double seta1, double phi1, double sphi1, double ipt1, double sipt1, double eta2, double seta2, double phi2, double sphi2, double ipt2, double sipt2, bool useAbsPt)
Get OLD style (i.e. muFast time) Chi2.
float superPointZ(int chamber) const
Get the measured Z position of the muon in one particular super point.
size_type size() const noexcept
Returns the number of elements in the collection.
@ BarrelMiddle
Middle station in the barrel spectrometer.
int isTgcFailure() const
Get flag to see if TGC is properly read.
Gaudi::Property< double > m_WeightEta_g4
Scale factor for the Eta matching window in LUT backextrapolator.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
SG::ReadHandleKey< xAOD::L2StandAloneMuonContainer > m_muonCollKey
Gaudi::Property< double > m_WinEta
Number of sigmas for the Eta matching window LUT backextrapolator (Barrel)