ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
Muon
L0MuonS1TGC
src
TGCSimulation.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TGCSimulation.h
"
6
7
#include "
StoreGate/ReadHandle.h
"
8
#include "
StoreGate/WriteHandle.h
"
9
#include "
TgcL0MdtCandidateSelector.h
"
10
#include "
xAODL0MuonCand/TGCCandDataAuxContainer.h
"
11
#include "
xAODMuonViews/FillContainer.h
"
12
13
#include <memory>
14
15
namespace
L0Muon
{
16
17
StatusCode
TGCSimulation::initialize
() {
18
ATH_CHECK
(
m_keyTgcRdo
.initialize());
19
ATH_CHECK
(
m_outputKey
.initialize());
20
ATH_CHECK
(
m_outputToMdtKey
.initialize());
21
ATH_CHECK
(
m_validationCandidateKey
.initialize(!
m_validationCandidateKey
.empty()));
22
ATH_CHECK
(
m_validationSegmentKey
.initialize(!
m_validationSegmentKey
.empty()));
23
ATH_CHECK
(
m_candidateBuilderTool
.retrieve());
24
ATH_CHECK
(
m_innerCoincidenceTool
.retrieve());
25
ATH_CHECK
(
m_trackSelectorTool
.retrieve());
26
if
(!
m_monTool
.empty())
ATH_CHECK
(
m_monTool
.retrieve());
27
return
StatusCode::SUCCESS;
28
}
29
30
StatusCode
TGCSimulation::execute
(
const
EventContext& ctx)
const
{
31
const
TgcRdoContainer
* tgcRdoContainer{};
32
ATH_CHECK
(
SG::get
(tgcRdoContainer,
m_keyTgcRdo
, ctx));
33
34
auto
nTgcRdoCollections =
Monitored::Scalar<unsigned int>
(
35
"nTgcRdoCollections"
, tgcRdoContainer->
size
());
36
Monitored::Group
(
m_monTool
, nTgcRdoCollections);
37
38
TgcL0CandidateContainer
candidates;
39
std::unique_ptr<TgcL0SegmentContainer> validationSegments;
40
if
(!
m_validationSegmentKey
.empty()) {
41
validationSegments = std::make_unique<TgcL0SegmentContainer>();
42
}
43
ATH_CHECK
(
m_candidateBuilderTool
->build(
44
*tgcRdoContainer, candidates, validationSegments.get(), ctx));
45
if
(validationSegments) {
46
SG::WriteHandle<TgcL0SegmentContainer>
segmentHandle{
47
m_validationSegmentKey
, ctx};
48
ATH_CHECK
(segmentHandle.
record
(std::move(validationSegments)));
49
}
50
if
(!
m_validationCandidateKey
.empty()) {
51
SG::WriteHandle<TgcL0CandidateContainer>
validationCandidates{
52
m_validationCandidateKey
, ctx};
53
ATH_CHECK
(validationCandidates.
record
(
54
std::make_unique<TgcL0CandidateContainer>(candidates)));
55
}
56
ATH_CHECK
(
m_innerCoincidenceTool
->apply(candidates, ctx));
57
58
xAOD::FillContainer
<
xAOD::TGCCandDataContainer
,
59
xAOD::TGCCandDataAuxContainer
>
60
output{};
61
ATH_CHECK
(
m_trackSelectorTool
->select(candidates, *output, ctx));
62
const
TgcL0MdtCandidateSelector
mdtCandidateSelector;
63
std::unique_ptr<xAOD::TGCCandDataContainer> outputToMdt =
64
mdtCandidateSelector.
select
(*output);
65
66
ATH_CHECK
(output.record(
m_outputKey
, ctx));
67
SG::WriteHandle<xAOD::TGCCandDataContainer>
outputToMdtHandle{
68
m_outputToMdtKey
, ctx};
69
ATH_CHECK
(outputToMdtHandle.
record
(std::move(outputToMdt)));
70
return
StatusCode::SUCCESS;
71
}
72
73
}
// namespace L0Muon
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
FillContainer.h
ReadHandle.h
Handle class for reading from StoreGate.
WriteHandle.h
Handle class for recording to StoreGate.
TGCCandDataAuxContainer.h
TGCSimulation.h
TgcL0MdtCandidateSelector.h
IdentifiableContainerMT::size
size_t size() const
Duplicate of fullSize for backwards compatability.
Definition
IdentifiableContainerMT.h:209
L0Muon::TGCSimulation::m_validationCandidateKey
SG::WriteHandleKey< TgcL0CandidateContainer > m_validationCandidateKey
Definition
TGCSimulation.h:29
L0Muon::TGCSimulation::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition
TGCSimulation.h:49
L0Muon::TGCSimulation::m_candidateBuilderTool
ToolHandle< ITgcL0CandidateBuilderTool > m_candidateBuilderTool
Definition
TGCSimulation.h:42
L0Muon::TGCSimulation::initialize
StatusCode initialize() override
Definition
TGCSimulation.cxx:17
L0Muon::TGCSimulation::m_outputToMdtKey
SG::WriteHandleKey< xAOD::TGCCandDataContainer > m_outputToMdtKey
Definition
TGCSimulation.h:38
L0Muon::TGCSimulation::m_keyTgcRdo
SG::ReadHandleKey< TgcRdoContainer > m_keyTgcRdo
Definition
TGCSimulation.h:27
L0Muon::TGCSimulation::m_innerCoincidenceTool
ToolHandle< ITgcL0InnerCoincidenceTool > m_innerCoincidenceTool
Definition
TGCSimulation.h:44
L0Muon::TGCSimulation::m_outputKey
SG::WriteHandleKey< xAOD::TGCCandDataContainer > m_outputKey
Definition
TGCSimulation.h:35
L0Muon::TGCSimulation::m_validationSegmentKey
SG::WriteHandleKey< TgcL0SegmentContainer > m_validationSegmentKey
Definition
TGCSimulation.h:32
L0Muon::TGCSimulation::m_trackSelectorTool
ToolHandle< ITgcL0TrackSelectorTool > m_trackSelectorTool
Definition
TGCSimulation.h:46
L0Muon::TGCSimulation::execute
StatusCode execute(const EventContext &ctx) const override
Definition
TGCSimulation.cxx:30
L0Muon::TgcL0MdtCandidateSelector
Select the TGC candidates sent to MDTTP.
Definition
TgcL0MdtCandidateSelector.h:15
L0Muon::TgcL0MdtCandidateSelector::select
std::unique_ptr< xAOD::TGCCandDataContainer > select(xAOD::TGCCandDataContainer &candidates) const
Create a non-owning view of the three candidates with the highest encoded pT per sector for one BC pr...
Definition
TgcL0MdtCandidateSelector.cxx:28
Monitored::Group
Group of local monitoring quantities and retain correlation when filling histograms
Definition
MonitoredGroup.h:53
Monitored::Scalar
Declare a monitored scalar variable.
Definition
MonitoredScalar.h:34
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
TgcRdoContainer
Definition
TgcRdoContainer.h:25
xAOD::FillContainer
Definition
FillContainer.h:39
L0Muon
Definition
NSWTPBits.h:7
L0Muon::TgcL0CandidateContainer
std::vector< TgcL0Candidate > TgcL0CandidateContainer
Event-local candidate collection.
Definition
TgcL0Candidate.h:103
SG::get
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Definition
ReadCondHandle.h:282
xAOD::TGCCandDataContainer
TGCCandDataContainer_v1 TGCCandDataContainer
Definition
MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODL0MuonCand/xAODL0MuonCand/TGCCandDataContainer.h:13
xAOD::TGCCandDataAuxContainer
TGCCandDataAuxContainer_v1 TGCCandDataAuxContainer
Definition
TGCCandDataAuxContainer.h:11
Generated on
for ATLAS Offline Software by
1.17.0