51 if ( (*muSAEL)->muonType() != xAOD::Muon::MuonType::MuonStandAlone )
continue;
57 EFSAPt = (*muSAEL)->pt()/1
e3 * (*muSAEL)->charge();
58 EFSAEta = (*muSAEL)->eta();
59 EFSAPhi = (*muSAEL)->phi();
79 EFCBPt = (*muCBEL)->pt()/1
e3 * (*muCBEL)->charge();
80 EFCBEta = (*muCBEL)->eta();
81 EFCBPhi = (*muCBEL)->phi();
101 float ptcone30 = muonIso30(*(*muIsoEL));
105 PtCone03overMuonPt =
ptcone30 / (*muIsoEL)->pt();
112 return StatusCode::SUCCESS;
122 const xAOD::TrackParticle* OfflineSATrack =
mu->trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
123 const xAOD::TrackParticle* OfflineCBTrack =
mu->trackParticle(xAOD::Muon::TrackParticleType::CombinedTrackParticle);
149 OfflineSAPt = OfflineSATrack->
pt()/1
e3 * OfflineSATrack->
charge();
150 OfflineSAEta = OfflineSATrack->
eta();
151 OfflineSAPhi = OfflineSATrack->
phi();
156 if( EFSAMuonLinkInfo.
isValid() ){
161 MatchedEFSAPt = EFSATrack->
pt()/1
e3 * EFSATrack->
charge();
162 MatchedEFSAEta = EFSATrack->
eta();
163 MatchedEFSAPhi = EFSATrack->
phi();
166 SAdPt = std::abs(OfflineSAPt) - std::abs(MatchedEFSAPt);
167 SAdEta = OfflineSAEta - MatchedEFSAEta;
168 SAdPhi = OfflineSAPhi - MatchedEFSAPhi;
174 const std::vector<TrigCompositeUtils::LinkInfo<xAOD::L2StandAloneMuonContainer>> L2SALinkInfo = TrigCompositeUtils::findLinks<xAOD::L2StandAloneMuonContainer>(EFSAMuonDecision,
"feature");
175 if(L2SALinkInfo.size() > 1) {
176 ATH_MSG_DEBUG(
"More than one L2SA candidate associated to the EFSA");
178 ATH_CHECK( L2SALinkInfo.at(0).isValid());
183 if (OfflineSAmatchedL2SA){
184 const xAOD::TrackParticle* OfflineSATrackmatchedL2SA = OfflineSAmatchedL2SA->
trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
185 if ( OfflineSATrackmatchedL2SA ){
187 OfflineSAmatchedL2SAPt = OfflineSATrackmatchedL2SA->
pt()/1
e3 * OfflineSATrackmatchedL2SA->
charge();
188 OfflineSAmatchedL2SAEta = OfflineSATrackmatchedL2SA->
eta();
189 OfflineSAmatchedL2SAPhi = OfflineSATrackmatchedL2SA->
phi();
194 fill(
m_group+
"_"+
chain, OfflineSAPt, OfflineSAEta, OfflineSAPhi, OfflineSAmatchedL2SAPt, OfflineSAmatchedL2SAEta, OfflineSAmatchedL2SAPhi,
195 MatchedEFSAPt, MatchedEFSAEta, MatchedEFSAPhi, SAdPt, SAdEta, SAdPhi, SAdR, matchedEFSA, matchedL2SA);
222 OfflineCBPt = OfflineCBTrack->
pt()/1
e3 * OfflineCBTrack->
charge();
223 OfflineCBEta = OfflineCBTrack->
eta();
224 OfflineCBPhi = OfflineCBTrack->
phi();
229 if( EFCBMuonLinkInfo.
isValid() ){
234 MatchedEFCBPt = EFCBTrack->
pt()/1
e3 * EFCBTrack->
charge();
235 MatchedEFCBEta = EFCBTrack->
eta();
236 MatchedEFCBPhi = EFCBTrack->
phi();
239 CBdPt = std::abs(OfflineCBPt) - std::abs(MatchedEFCBPt);
240 CBdEta = OfflineCBEta - MatchedEFCBEta;
241 CBdPhi = OfflineCBPhi - MatchedEFCBPhi;
247 const std::vector<TrigCompositeUtils::LinkInfo<xAOD::L2CombinedMuonContainer>>L2CBLinkInfo = TrigCompositeUtils::findLinks<xAOD::L2CombinedMuonContainer>(EFCBMuonDecision,
"feature");
248 if(L2CBLinkInfo.size() >1) {
249 ATH_MSG_DEBUG(
"More than one L2CB muon associated to EFCBMuon");
251 ATH_CHECK( L2CBLinkInfo.at(0).isValid() );
256 if (OfflineCBmatchedL2CB){
258 if ( OfflineCBTrackmatchedL2CB ){
260 OfflineCBmatchedL2CBPt = OfflineCBTrackmatchedL2CB->
pt()/1
e3 * OfflineCBTrackmatchedL2CB->
charge();
261 OfflineCBmatchedL2CBEta = OfflineCBTrackmatchedL2CB->
eta();
262 OfflineCBmatchedL2CBPhi = OfflineCBTrackmatchedL2CB->
phi();
267 fill(
m_group+
"_"+
chain, OfflineCBPt, OfflineCBEta, OfflineCBPhi, OfflineCBmatchedL2CBPt, OfflineCBmatchedL2CBEta, OfflineCBmatchedL2CBPhi,
268 MatchedEFCBPt, MatchedEFCBEta, MatchedEFCBPhi, CBdPt, CBdEta, CBdPhi, CBdR, matchedEFCB, matchedL2CB);
273 float OfflineIsoptcone30=-1.;
282 OfflineIsoPtCone03 = OfflineIsoptcone30/1
e3;
283 OfflineIsoPtCone03overMuonPt = OfflineIsoptcone30 /
mu->pt();
287 if( EFIsoMuonLinkInfo.
isValid() ){
291 float EFIsoptcone30 = muonIso30(*(*EFIsoMuon));
294 MatchedEFIsoPtCone03 = EFIsoptcone30/1
e3;
295 MatchedEFIsoPtCone03overMuonPt = EFIsoptcone30 / (*EFIsoMuon)->pt();
298 fill(
m_group+
"_"+
chain, OfflineIsoPtCone03, OfflineIsoPtCone03overMuonPt, MatchedEFIsoPtCone03, MatchedEFIsoPtCone03overMuonPt);
301 return StatusCode::SUCCESS;
312 return StatusCode::SUCCESS;
319 ATH_CHECK( fillVariablesRatioPlots<xAOD::Muon>(ctx,
mu,
"EFSA", xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle,
323 ATH_CHECK( fillVariablesRatioPlots<xAOD::Muon>(ctx,
mu,
"EFCB", xAOD::Muon::TrackParticleType::CombinedTrackParticle,
327 return StatusCode::SUCCESS;