52 if ( (*muSAEL)->muonType() != xAOD::Muon::MuonType::MuonStandAlone )
continue;
58 EFSAPt = (*muSAEL)->pt()/1
e3 * (*muSAEL)->charge();
59 EFSAEta = (*muSAEL)->eta();
60 EFSAPhi = (*muSAEL)->phi();
80 EFCBPt = (*muCBEL)->pt()/1
e3 * (*muCBEL)->charge();
81 EFCBEta = (*muCBEL)->eta();
82 EFCBPhi = (*muCBEL)->phi();
102 float ptcone30 = muonIso30(*(*muIsoEL));
106 PtCone03overMuonPt =
ptcone30 / (*muIsoEL)->pt();
113 return StatusCode::SUCCESS;
123 const xAOD::TrackParticle* OfflineSATrack =
mu->trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
124 const xAOD::TrackParticle* OfflineCBTrack =
mu->trackParticle(xAOD::Muon::TrackParticleType::CombinedTrackParticle);
150 OfflineSAPt = OfflineSATrack->
pt()/1
e3 * OfflineSATrack->
charge();
151 OfflineSAEta = OfflineSATrack->
eta();
152 OfflineSAPhi = OfflineSATrack->
phi();
157 if( EFSAMuonLinkInfo.
isValid() ){
162 MatchedEFSAPt = EFSATrack->
pt()/1
e3 * EFSATrack->
charge();
163 MatchedEFSAEta = EFSATrack->
eta();
164 MatchedEFSAPhi = EFSATrack->
phi();
167 SAdPt = std::abs(OfflineSAPt) - std::abs(MatchedEFSAPt);
168 SAdEta = OfflineSAEta - MatchedEFSAEta;
169 SAdPhi = OfflineSAPhi - MatchedEFSAPhi;
175 const std::vector<TrigCompositeUtils::LinkInfo<xAOD::L2StandAloneMuonContainer>> L2SALinkInfo = TrigCompositeUtils::findLinks<xAOD::L2StandAloneMuonContainer>(EFSAMuonDecision,
"feature");
176 if(L2SALinkInfo.size() > 1) {
177 ATH_MSG_DEBUG(
"More than one L2SA candidate associated to the EFSA");
179 ATH_CHECK( L2SALinkInfo.at(0).isValid());
184 if (OfflineSAmatchedL2SA){
185 const xAOD::TrackParticle* OfflineSATrackmatchedL2SA = OfflineSAmatchedL2SA->
trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
186 if ( OfflineSATrackmatchedL2SA ){
188 OfflineSAmatchedL2SAPt = OfflineSATrackmatchedL2SA->
pt()/1
e3 * OfflineSATrackmatchedL2SA->
charge();
189 OfflineSAmatchedL2SAEta = OfflineSATrackmatchedL2SA->
eta();
190 OfflineSAmatchedL2SAPhi = OfflineSATrackmatchedL2SA->
phi();
195 fill(
m_group+
"_"+
chain, OfflineSAPt, OfflineSAEta, OfflineSAPhi, OfflineSAmatchedL2SAPt, OfflineSAmatchedL2SAEta, OfflineSAmatchedL2SAPhi,
196 MatchedEFSAPt, MatchedEFSAEta, MatchedEFSAPhi, SAdPt, SAdEta, SAdPhi, SAdR, matchedEFSA, matchedL2SA);
223 OfflineCBPt = OfflineCBTrack->
pt()/1
e3 * OfflineCBTrack->
charge();
224 OfflineCBEta = OfflineCBTrack->
eta();
225 OfflineCBPhi = OfflineCBTrack->
phi();
230 if( EFCBMuonLinkInfo.
isValid() ){
235 MatchedEFCBPt = EFCBTrack->
pt()/1
e3 * EFCBTrack->
charge();
236 MatchedEFCBEta = EFCBTrack->
eta();
237 MatchedEFCBPhi = EFCBTrack->
phi();
240 CBdPt = std::abs(OfflineCBPt) - std::abs(MatchedEFCBPt);
241 CBdEta = OfflineCBEta - MatchedEFCBEta;
242 CBdPhi = OfflineCBPhi - MatchedEFCBPhi;
248 const std::vector<TrigCompositeUtils::LinkInfo<xAOD::L2CombinedMuonContainer>>L2CBLinkInfo = TrigCompositeUtils::findLinks<xAOD::L2CombinedMuonContainer>(EFCBMuonDecision,
"feature");
249 if(L2CBLinkInfo.size() >1) {
250 ATH_MSG_DEBUG(
"More than one L2CB muon associated to EFCBMuon");
252 ATH_CHECK( L2CBLinkInfo.at(0).isValid() );
257 if (OfflineCBmatchedL2CB){
259 if ( OfflineCBTrackmatchedL2CB ){
261 OfflineCBmatchedL2CBPt = OfflineCBTrackmatchedL2CB->
pt()/1
e3 * OfflineCBTrackmatchedL2CB->
charge();
262 OfflineCBmatchedL2CBEta = OfflineCBTrackmatchedL2CB->
eta();
263 OfflineCBmatchedL2CBPhi = OfflineCBTrackmatchedL2CB->
phi();
268 fill(
m_group+
"_"+
chain, OfflineCBPt, OfflineCBEta, OfflineCBPhi, OfflineCBmatchedL2CBPt, OfflineCBmatchedL2CBEta, OfflineCBmatchedL2CBPhi,
269 MatchedEFCBPt, MatchedEFCBEta, MatchedEFCBPhi, CBdPt, CBdEta, CBdPhi, CBdR, matchedEFCB, matchedL2CB);
274 float OfflineIsoptcone30=-1.;
283 OfflineIsoPtCone03 = OfflineIsoptcone30/1
e3;
284 OfflineIsoPtCone03overMuonPt = OfflineIsoptcone30 /
mu->pt();
288 if( EFIsoMuonLinkInfo.
isValid() ){
292 float EFIsoptcone30 = muonIso30(*(*EFIsoMuon));
295 MatchedEFIsoPtCone03 = EFIsoptcone30/1
e3;
296 MatchedEFIsoPtCone03overMuonPt = EFIsoptcone30 / (*EFIsoMuon)->pt();
299 fill(
m_group+
"_"+
chain, OfflineIsoPtCone03, OfflineIsoPtCone03overMuonPt, MatchedEFIsoPtCone03, MatchedEFIsoPtCone03overMuonPt);
302 return StatusCode::SUCCESS;
313 return StatusCode::SUCCESS;
320 ATH_CHECK( fillVariablesRatioPlots<xAOD::Muon>(ctx,
mu,
"EFSA", xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle,
324 ATH_CHECK( fillVariablesRatioPlots<xAOD::Muon>(ctx,
mu,
"EFCB", xAOD::Muon::TrackParticleType::CombinedTrackParticle,
328 return StatusCode::SUCCESS;