36 const std::vector<TrigCompositeUtils::LinkInfo<xAOD::L2StandAloneMuonContainer>> saLinkInfo = TrigCompositeUtils::findLinks<xAOD::L2StandAloneMuonContainer>(muDecision,
"feature");
37 if(saLinkInfo.size()>1){
50 cbPt = (*muEL)->pt()/1
e3 * (*muEL)->charge();
51 cbEta = (*muEL)->eta();
52 cbPhi = (*muEL)->phi();
59 saEta = (*saEL)->eta();
60 saPhi = (*saEL)->phi();
65 float SATrackPt = -999.;
66 if( (*muEL)->muSATrackLink().isValid() ) {
67 SATrack = (*muEL)->muSATrack();
68 SATrackPt = SATrack->
pt();
77 bool off_cb_match =
false;
78 bool off_sa_match =
false;
86 if( RecMuonCBmatchL2SA && L2SA_success) off_sa_match =
true;
87 if( RecMuonCBmatchL2CB && L2CB_success) off_cb_match =
true;
91 if(!off_cb_match) L2CBOFFmatching_failure =
true;
93 else if (off_sa_match) L2CB_failure =
true;
100 fill(
m_group+
"_"+
chain, cbPt, cbEta, cbPhi, L2CB_success, L2CBOFFmatching_failure);
109 if( (*muEL)->muSATrackLink().isValid() && std::abs(saPt) >
ZERO_LIMIT ){
110 ptratio_toSA = std::abs(cbPt / saPt);
111 dEta_toSA = cbEta - saEta;
113 dR_toSA = sqrt(dEta_toSA*dEta_toSA + dPhi_toSA*dPhi_toSA);
127 if( (*muEL)->idTrackLink().isValid() ) {
128 idtrk = (*muEL)->idTrack();
130 trkEta = idtrk->
eta();
131 trkPhi = idtrk->
phi0();
146 if( (*muEL)->idTrackLink().isValid() && std::abs(saPt) >
ZERO_LIMIT ){
147 ptratio_TrktoSA = std::abs(cbPt / saPt);
148 dEta_TrktoSA = cbEta - saEta;
150 dR_TrktoSA = sqrt(dEta_TrktoSA*dEta_TrktoSA + dPhi_TrktoSA*dPhi_TrktoSA);
152 fill(
m_group+
"_"+
chain, ptratio_TrktoSA, dEta_TrktoSA, dPhi_TrktoSA, dR_TrktoSA);
157 std::vector<int> vec_MF_error;
163 vec_MF_error.push_back(2);
167 vec_MF_error.push_back(1);
171 vec_MF_error.push_back(3);
174 if(!
error) vec_MF_error.push_back(0);
180 return StatusCode::SUCCESS;
194 float offPt =
mu->pt()/1
e3;
201 if ( !muLinkInfo.
isValid() )
return StatusCode::SUCCESS;
209 if( !
m_matchTool->isMatchedL2CB(*muEL,
mu) )
return StatusCode::SUCCESS;
213 float cbPt = (*muEL)->pt()/1
e3;
214 if ( std::abs(offPt) >
ZERO_LIMIT && std::abs(cbPt) >
ZERO_LIMIT ) ptresol = std::abs(cbPt)/std::abs(offPt) - 1.;
239 return StatusCode::SUCCESS;
249 return StatusCode::SUCCESS;
256 ATH_CHECK( fillVariablesRatioPlots<xAOD::L2CombinedMuon>(ctx,
mu,
"L2CB", xAOD::Muon::TrackParticleType::CombinedTrackParticle,
260 return StatusCode::SUCCESS;