ATLAS Offline Software
Loading...
Searching...
No Matches
InnerDetProbeCollectorTool.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7//================ Constructor =================================================
8namespace Muon {
10 const std::string& n,
11 const IInterface* p )
12 :
13 AthAlgTool(t,n,p),
14 m_InsituPerformanceTools("InsituTrackPerformanceTools/TestTool")
15 {
16 declareInterface<IProbeCollectorTool>(this);
17
18 declareProperty("InnerTrackContainerName", m_InnerTrackContainerName = "TrackParticleCandidate");
19 declareProperty("MSTrackContainerName", m_MSTrackContainerName = "MuonboyTrackParticles" );
20 declareProperty("CombinedMuonTracksContainerName", m_CombinedMuonTracksContainerName = "StacoMuonCollection");
21 declareProperty("RequireTrigger", m_RequireTrigger = false);
22 declareProperty("InsituPerformanceTools", m_InsituPerformanceTools);
23 declareProperty("MuonPtCut", m_muonPtCut=20000.);
24 }
25
26 //================ Initialisation =================================================
27
29 {
30 ATH_CHECK(AlgTool::initialize());
31
34
35 ATH_MSG_INFO("initialize() successful");
36 return StatusCode::SUCCESS;
37 }
38
39 //============================================================================================
40
42 {
43 ATH_MSG_DEBUG("createProbeCollection() for Inner Detector");
46 ATH_CHECK(evtStore()->record(m_IDProbeTrackContainer,"InnerDetectorProbeTracks"));
47 ATH_MSG_DEBUG("InnerDetectorProbeTracks Container recorded in evtStore.");
48
50 const Rec::TrackParticleContainer* trackTES=nullptr;
51 ATH_CHECK(evtStore()->retrieve( trackTES, m_MSTrackContainerName));
52 if (!trackTES) {
53 ATH_MSG_WARNING("No " << m_MSTrackContainerName << " container found in TDS");
54 return StatusCode::FAILURE;
55 }
56 ATH_MSG_DEBUG("MuonTrack Container successfully retrieved");
57
59 const Analysis::MuonContainer* muonTDS=nullptr;
61 if (!muonTDS ) {
62 ATH_MSG_WARNING("No AOD "<<m_CombinedMuonTracksContainerName<<" container of muons found in TDS");
63 return StatusCode::FAILURE;
64 }
65 ATH_MSG_DEBUG("MuonContainer successfully retrieved");
66
68 Analysis::MuonContainer::const_iterator muonItr = muonTDS->begin();
69 Analysis::MuonContainer::const_iterator muonItrE = muonTDS->end();
70 for (; muonItr != muonItrE; ++muonItr)
71 {
72 if (((*muonItr)->pt()>m_muonPtCut) && ((*muonItr)->isCombinedMuon()))
73 {
74 const Rec::TrackParticle *muonTrack = (*muonItr)->track();
75 if ((m_RequireTrigger==false) || (m_InsituPerformanceTools->isTriggeredMuon(muonTrack)==true))
76 {
78 Rec::TrackParticleContainer::const_iterator MSTrackItrE = trackTES->end();
79 for (; MSTrackItr != MSTrackItrE; ++MSTrackItr)
80 {
81 const Rec::TrackParticle *MSTrack = (*MSTrackItr);
82 if (MSTrack->pt()>m_muonPtCut)
83 {
84
85 if (m_InsituPerformanceTools->isZBosonCandidate(MSTrack, muonTrack)==true)
86 {
87 m_IDProbeTrackContainer->push_back( new Rec::TrackParticle(**MSTrackItr) );
88 }
89 }
90 }
91 }
92 }
93 }
95 return StatusCode::SUCCESS;
96 }
97}//namespace
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
definition of StoreGate container holding a vector of Analysis::Muon
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
virtual double pt() const =0
transverse momentum
Rec::TrackParticleContainer * m_IDProbeTrackContainer
InnerDetProbeCollectorTool(const std::string &, const std::string &, const IInterface *)
virtual StatusCode initialize()
standard Athena-Algorithm method
std::string m_InnerTrackContainerName
member variables for algorithm properties:
ToolHandle< IInsituTrackTools > m_InsituPerformanceTools
get a handle to the InnerDetProbeCollectorTool
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.