ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1NSWSimTools
src
TriggerProcessorTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TriggerProcessorTool.h
"
6
7
namespace
NSWL1
{
8
9
TriggerProcessorTool::TriggerProcessorTool
(
const
std::string&
type
,
const
std::string& name,
const
IInterface* parent) :
10
base_class(
type
,name,parent) {}
11
12
StatusCode
TriggerProcessorTool::initialize
() {
13
14
ATH_MSG_DEBUG
(
"In initialize()"
);
15
return
StatusCode::SUCCESS;
16
}
17
18
StatusCode
TriggerProcessorTool::mergeRDO
(
const
Muon::NSW_PadTriggerDataContainer
* padTriggerContainer,
19
const
Muon::NSW_TrigRawDataContainer
* stripTriggerContainer,
20
const
Muon::NSW_TrigRawDataContainer
* MMTriggerContainer,
21
Muon::NSW_TrigRawDataContainer
* trigRdoContainer)
const
{
22
ATH_MSG_DEBUG
(
"------------- TriggerProcessorTool::mergeRDO ---------------------"
);
23
ATH_MSG_DEBUG
(
"Pad Trigger Container size: "
<< padTriggerContainer->
size
());
24
constexpr
bool
HAS_PHI_RESOLUTION{
true
};
25
constexpr
uint8_t SPARE_IS_PAD{1};
26
for
(
const
auto
padTriggerData : *padTriggerContainer ) {
27
ATH_MSG_DEBUG
(
"Pad Trigger data: "
<< *padTriggerData);
28
const
char
sectorSide = (padTriggerData->sideA()) ?
'A'
:
'C'
;
29
auto
trigRawData =
new
Muon::NSW_TrigRawData
(padTriggerData->getSecid(), sectorSide, padTriggerData->getBcid());
30
for
(
size_t
it = 0; it < padTriggerData->getNumberOfTriggers(); ++it) {
31
auto
trigRawDataSegment =
new
Muon::NSW_TrigRawDataSegment
();
32
trigRawDataSegment->setRIndex(padTriggerData->getTriggerBandIds().at(it));
33
trigRawDataSegment->setPhiIndex(padTriggerData->getTriggerPhiIds().at(it));
34
trigRawDataSegment->setPhiRes(HAS_PHI_RESOLUTION);
35
trigRawDataSegment->setSpare(SPARE_IS_PAD);
36
trigRawData->push_back(trigRawDataSegment);
37
}
38
ATH_MSG_DEBUG
(
"L1NSW-Pad Trigger Output: "
39
<<
"sectorSide="
<< trigRawData->sectorSide() <<
" "
40
<<
"sectorId="
<< trigRawData->sectorId() <<
" "
41
<<
"bcId="
<< trigRawData->bcId());
42
for
(
const
auto
seg : *trigRawData){
43
ATH_MSG_DEBUG
(
"\tPadSegment: "
44
<<
"deltaTheta="
<<
static_cast<
int16_t
>
(seg->deltaTheta()) <<
" "
45
<<
"phiIndex="
<<
static_cast<
int16_t
>
(seg->phiIndex()) <<
" "
46
<<
"rIndex="
<<
static_cast<
int16_t
>
(seg->rIndex()) <<
" "
47
<<
"spare="
<<
static_cast<
int16_t
>
(seg->spare()) <<
" "
48
<<
"lowRes="
<< seg->lowRes() <<
" "
49
<<
"phiRes="
<< seg->phiRes() <<
" "
50
<<
"monitor="
<< seg->monitor());
51
}
52
trigRdoContainer->
push_back
(trigRawData);
53
}
54
ATH_MSG_DEBUG
(
"After PadTrigger filling -> NSW Trigger RDO size: "
<< trigRdoContainer->
size
());
55
56
for
(
const
auto
rawData : *stripTriggerContainer) {
57
Muon::NSW_TrigRawData
* trigRawData =
new
Muon::NSW_TrigRawData
(*rawData,
true
);
58
ATH_MSG_DEBUG
(
"L1NSW-Strip Trigger Output: "
59
<<
"sectorSide="
<< trigRawData->
sectorSide
() <<
" "
60
<<
"sectorId="
<< trigRawData->
sectorId
() <<
" "
61
<<
"bcId="
<< trigRawData->
bcId
());
62
for
(
const
auto
seg : *trigRawData){
63
ATH_MSG_DEBUG
(
"\tStripSegment: "
64
<<
"deltaTheta="
<<
static_cast<
int16_t
>
(seg->deltaTheta()) <<
" "
65
<<
"phiIndex="
<<
static_cast<
int16_t
>
(seg->phiIndex()) <<
" "
66
<<
"rIndex="
<<
static_cast<
int16_t
>
(seg->rIndex()) <<
" "
67
<<
"spare="
<<
static_cast<
int16_t
>
(seg->spare()) <<
" "
68
<<
"lowRes="
<< seg->lowRes() <<
" "
69
<<
"phiRes="
<< seg->phiRes() <<
" "
70
<<
"monitor="
<< seg->monitor());
71
}
72
trigRdoContainer->
push_back
(trigRawData);
73
}
74
ATH_MSG_DEBUG
(
"After sTGC strip trigger filling -> NSW Trigger RDO size: "
<< trigRdoContainer->
size
());
75
76
for
(
const
auto
rawData : *MMTriggerContainer) {
77
Muon::NSW_TrigRawData
* trigRawData =
new
Muon::NSW_TrigRawData
(*rawData,
false
);
78
ATH_MSG_DEBUG
(
"L1NSW-MM Trigger Output: "
79
<<
"sectorSide="
<< trigRawData->
sectorSide
() <<
" "
80
<<
"sectorId="
<< trigRawData->
sectorId
() <<
" "
81
<<
"bcId="
<< trigRawData->
bcId
());
82
for
(
const
auto
seg : *trigRawData){
83
ATH_MSG_DEBUG
(
"\tMMSegment: "
84
<<
"deltaTheta="
<<
static_cast<
int16_t
>
(seg->deltaTheta()) <<
" "
85
<<
"phiIndex="
<<
static_cast<
int16_t
>
(seg->phiIndex()) <<
" "
86
<<
"rIndex="
<<
static_cast<
int16_t
>
(seg->rIndex()) <<
" "
87
<<
"spare="
<<
static_cast<
int16_t
>
(seg->spare()) <<
" "
88
<<
"lowRes="
<< seg->lowRes() <<
" "
89
<<
"phiRes="
<< seg->phiRes() <<
" "
90
<<
"monitor="
<< seg->monitor());
91
}
92
trigRdoContainer->
push_back
(trigRawData);
93
}
94
ATH_MSG_DEBUG
(
"After MMTrigger filling -> NSW Trigger RDO size: "
<< trigRdoContainer->
size
());
95
96
return
StatusCode::SUCCESS;
97
}
98
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
TriggerProcessorTool.h
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
IdentifiableContainerMT::size
size_t size() const
Duplicate of fullSize for backwards compatability.
Definition
IdentifiableContainerMT.h:209
Muon::NSW_PadTriggerDataContainer
Definition
NSW_PadTriggerDataContainer.h:15
Muon::NSW_TrigRawDataContainer
Definition
NSW_TrigRawDataContainer.h:14
Muon::NSW_TrigRawDataSegment
Definition
NSW_TrigRawDataSegment.h:15
Muon::NSW_TrigRawData
Definition
NSW_TrigRawData.h:15
Muon::NSW_TrigRawData::bcId
uint16_t bcId() const
Definition
NSW_TrigRawData.h:27
Muon::NSW_TrigRawData::sectorSide
char sectorSide() const
Definition
NSW_TrigRawData.h:26
Muon::NSW_TrigRawData::sectorId
uint16_t sectorId() const
Definition
NSW_TrigRawData.h:25
NSWL1::TriggerProcessorTool::initialize
virtual StatusCode initialize() override
Definition
TriggerProcessorTool.cxx:12
NSWL1::TriggerProcessorTool::TriggerProcessorTool
TriggerProcessorTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition
TriggerProcessorTool.cxx:9
NSWL1::TriggerProcessorTool::mergeRDO
StatusCode mergeRDO(const Muon::NSW_PadTriggerDataContainer *padTriggerContainer, const Muon::NSW_TrigRawDataContainer *stripTriggerContainer, const Muon::NSW_TrigRawDataContainer *MMTriggerContainer, Muon::NSW_TrigRawDataContainer *trigRdoContainer) const override
Definition
TriggerProcessorTool.cxx:18
NSWL1
PadEmulatorCoincidences.
Definition
NSWL1Simulation.cxx:7
type
Generated on
for ATLAS Offline Software by
1.17.0