11#include "GaudiKernel/ISvcLocator.h"
12#include "GaudiKernel/Service.h"
25 const std::string& name ) :
38 return StatusCode::SUCCESS;
50 ISvcLocator* svcLoc = Gaudi::svcLocator();
51 SmartIF<ITrackAnalysisDefinitionSvc> trkAnaDefSvc( svcLoc->service(
"TrkAnaDefSvc" + trkAnaColls.
anaTag() ) );
54 if( not trkAnaDefSvc->useOffline() ) {
55 ATH_MSG_DEBUG(
"Tool not enabled if offline tracks are not used." );
56 return StatusCode::SUCCESS;
60 std::vector< const xAOD::TrackParticle* > newVec;
72 if( trkAnaDefSvc->useEFTrigger() and
73 m_objectType.value().find(
"Truth") != std::string::npos ) {
90 return StatusCode::SUCCESS;
99 const std::vector< const xAOD::TruthParticle* >& truthVec )
const {
102 if(
m_objectType.value().find(
"Electron") != std::string::npos ) {
107 if( not ele )
return false;
111 " Electron with transverse energy = " <<
eT( *ele ) );
117 if(
m_objectType.value().find(
"Muon") != std::string::npos ) {
121 if( not mu )
return false;
125 " Muon with transverse energy = " <<
eT( *mu ) );
131 if(
m_objectType.value().find(
"Tau") != std::string::npos ) {
137 if( not tau )
return false;
142 m_tauType.value() <<
" Tau with transverse energy = " <<
149 if(
m_objectType.value().find(
"Jet") != std::string::npos ) {
153 if( not
jet )
return false;
157 " jet with pT = " <<
jet->pt() );
163 if(
m_objectType.value().find(
"Truth") != std::string::npos ) {
168 if( not truth )
return false;
170 if( truthVec.empty() ) {
176 " matches with truth particle with pt = " <<
pT( *truth ) );
179 if( std::find( truthVec.begin(), truthVec.end(),
180 truth ) == truthVec.end() )
return false;
186 " is not supported for track-object selection" );
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Utility methods to access offline object decorations.
Class to hold for each event collections needed in the TrkAnalsis.
Utility methods to access track/truth particles parmeters in a consitent way in this package.
const std::vector< const xAOD::TrackParticle * > & offlTrackVec(Stage stage=FULL)
StatusCode fillTrigTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
Trigger tracks.
const std::vector< const xAOD::TrackParticle * > & trigTrackVec(Stage stage=FULL)
const std::string & anaTag()
— Getter methods —
const std::vector< const xAOD::TruthParticle * > & truthPartVec(Stage stage=FULL)
get truth/offline/trigger track vector (TEST or REFERENCE)
StatusCode fillOfflTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
Offline tracks.
float pT(const U &p)
Accessor utility function for getting the value of pT.
const xAOD::Jet * getLinkedJet(const xAOD::TrackParticle &track, const std::string &quality)
getLinkedJet
float eT(const U &p)
Accessor utility function for getting the value of Tranverse energy.
const xAOD::Muon * getLinkedMuon(const xAOD::TrackParticle &track, const std::string &quality)
getLinkedMuon
const xAOD::Electron * getLinkedElectron(const xAOD::TrackParticle &track, const std::string &quality)
getLinkedElectron
const xAOD::TruthParticle * getLinkedTruth(const xAOD::TrackParticle &track, const float truthProbCut)
getLinkedTruth
const xAOD::TauJet * getLinkedTau(const xAOD::TrackParticle &track, const int requiredNtracks, const std::string &type, const std::string &quality)
getLinkedTau
Jet_v1 Jet
Definition of the current "jet version".
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TauJet_v3 TauJet
Definition of the current "tau version".
TruthParticle_v1 TruthParticle
Typedef to implementation.
Muon_v1 Muon
Reference the current persistent version:
Electron_v1 Electron
Definition of the current "egamma version".