ATLAS Offline Software
TrackQualitySelectionTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
13 
15 #include "GaudiKernel/ISvcLocator.h"
16 #include "GaudiKernel/Service.h"
17 
18 
23  const std::string& name ) :
24  asg::AsgTool( name ) { }
25 
26 
31 
33 
34  ATH_MSG_INFO( "Initializing " << name() );
35 
36  ATH_CHECK( m_objSelectionTool.retrieve( EnableTool{ m_doObjSelection.value() } ) );
37  ATH_CHECK( m_truthSelectionTool.retrieve( EnableTool{ not m_truthSelectionTool.empty() } ) );
38 
39  ATH_CHECK( m_offlineSelectionTool.retrieve(EnableTool{ not m_offlineSelectionTool.empty() } ));
40 
41  return StatusCode::SUCCESS;
42 }
43 
44 
49  TrackAnalysisCollections& trkAnaColls ) {
50 
51  ATH_MSG_DEBUG( "Initially copying collections to FullScan vectors" );
52 
53  ITrackAnalysisDefinitionSvc* trkAnaDefSvc( nullptr );
54  ISvcLocator* svcLoc = Gaudi::svcLocator();
55  ATH_CHECK( svcLoc->service( "TrkAnaDefSvc" + trkAnaColls.anaTag(), trkAnaDefSvc ) );
56 
58  if( trkAnaDefSvc->useOffline() ) {
59  ATH_CHECK( trkAnaColls.fillOfflTrackVec(
62  }
63 
64  if( trkAnaDefSvc->useEFTrigger() ) {
65  ATH_CHECK( trkAnaColls.fillTrigTrackVec(
68  }
69 
70  if( trkAnaDefSvc->useTruth() ) {
71  ATH_CHECK( trkAnaColls.fillTruthPartVec(
74  ATH_CHECK (m_truthSelectionTool->selectTracks( trkAnaColls ));
75  }
76 
78  ATH_MSG_DEBUG( "Tracks after initial FullScan copy: " <<
79  trkAnaColls.printInfo( TrackAnalysisCollections::FS ) );
80 
82  if( trkAnaDefSvc->useOffline() and m_doObjSelection.value() ) {
83  ATH_CHECK( m_objSelectionTool->selectTracks( trkAnaColls ) );
84  }
85 
86  if ( m_offlineSelectionTool ) {
87  ATH_CHECK(m_offlineSelectionTool->selectTracks(trkAnaColls));
88  }
89 
90  return StatusCode::SUCCESS;
91 }
ITrackAnalysisDefinitionSvc::useEFTrigger
virtual bool useEFTrigger() const =0
IDTPM::TrackAnalysisCollections::fillTrigTrackVec
StatusCode fillTrigTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
Trigger tracks.
Definition: TrackAnalysisCollections.cxx:273
ITrackAnalysisDefinitionSvc::useOffline
virtual bool useOffline() const =0
IDTPM::TrackAnalysisCollections
Definition: TrackAnalysisCollections.h:41
ITrackAnalysisDefinitionSvc
Athena include(s).
Definition: ITrackAnalysisDefinitionSvc.h:26
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
IDTPM::TrackQualitySelectionTool::TrackQualitySelectionTool
TrackQualitySelectionTool(const std::string &name)
Constructor.
Definition: TrackQualitySelectionTool.cxx:22
asg
Definition: DataHandleTestTool.h:28
TrackQualitySelectionTool.h
Tool to handle all required tracks and truth particle quality selections in this package.
IDTPM::TrackAnalysisCollections::trigTrackVec
const std::vector< const xAOD::TrackParticle * > & trigTrackVec(Stage stage=FULL)
Definition: TrackAnalysisCollections.h:154
TrackAnalysisCollections.h
Class to hold for each event collections needed in the TrkAnalsis.
IDTPM::TrackQualitySelectionTool::initialize
virtual StatusCode initialize() override
Initialize.
Definition: TrackQualitySelectionTool.cxx:30
IDTPM::TrackAnalysisCollections::fillOfflTrackVec
StatusCode fillOfflTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
Offline tracks.
Definition: TrackAnalysisCollections.cxx:256
IDTPM::TrackAnalysisCollections::fillTruthPartVec
StatusCode fillTruthPartVec(const std::vector< const xAOD::TruthParticle * > &vec, Stage stage=FULL)
get truth/offline/trigger track vector (TEST or REFERENCE)
Definition: TrackAnalysisCollections.cxx:239
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
IDTPM::TrackAnalysisCollections::FS
@ FS
Definition: TrackAnalysisCollections.h:49
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IDTPM::TrackAnalysisCollections::offlTrackVec
const std::vector< const xAOD::TrackParticle * > & offlTrackVec(Stage stage=FULL)
Definition: TrackAnalysisCollections.h:152
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
IDTPM::TrackQualitySelectionTool::selectTracks
virtual StatusCode selectTracks(TrackAnalysisCollections &trkAnaColls) override
Main Track selection method.
Definition: TrackQualitySelectionTool.cxx:48
ITrackAnalysisDefinitionSvc::useTruth
virtual bool useTruth() const =0
IDTPM::TrackAnalysisCollections::truthPartVec
const std::vector< const xAOD::TruthParticle * > & truthPartVec(Stage stage=FULL)
get truth/offline/trigger track vector (TEST or REFERENCE)
Definition: TrackAnalysisCollections.h:150
IDTPM::TrackAnalysisCollections::printInfo
std::string printInfo(Stage stage=FULL) const
print Information about tracks in the collection(s)
Definition: TrackAnalysisCollections.cxx:488
IDTPM::TrackAnalysisCollections::FULL
@ FULL
Definition: TrackAnalysisCollections.h:49
IDTPM::TrackAnalysisCollections::anaTag
const std::string & anaTag()
— Getter methods —
Definition: TrackAnalysisCollections.h:123
asg::AsgTool::initialize
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: AsgTool.h:133