ATLAS Offline Software
Loading...
Searching...
No Matches
TriggerProcessorTool Class Reference

#include <TriggerProcessorTool.h>

Inheritance diagram for TriggerProcessorTool:
Collaboration diagram for TriggerProcessorTool:

Public Member Functions

 TriggerProcessorTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~TriggerProcessorTool () override=default
virtual StatusCode initialize () override
StatusCode mergeRDO (const Muon::NSW_PadTriggerDataContainer *padTriggerContainer, const Muon::NSW_TrigRawDataContainer *stripTriggerContainer, const Muon::NSW_TrigRawDataContainer *MMTriggerContainer, Muon::NSW_TrigRawDataContainer *trigRdoContainer) const override

Detailed Description

Definition at line 12 of file TriggerProcessorTool.h.

Constructor & Destructor Documentation

◆ TriggerProcessorTool()

NSWL1::TriggerProcessorTool::TriggerProcessorTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 9 of file TriggerProcessorTool.cxx.

9 :
10 base_class(type,name,parent) {}

◆ ~TriggerProcessorTool()

virtual NSWL1::TriggerProcessorTool::~TriggerProcessorTool ( )
overridevirtualdefault

Member Function Documentation

◆ initialize()

StatusCode NSWL1::TriggerProcessorTool::initialize ( )
overridevirtual

Definition at line 12 of file TriggerProcessorTool.cxx.

12 {
13
14 ATH_MSG_DEBUG("In initialize()");
15 return StatusCode::SUCCESS;
16 }
#define ATH_MSG_DEBUG(x)

◆ mergeRDO()

StatusCode NSWL1::TriggerProcessorTool::mergeRDO ( const Muon::NSW_PadTriggerDataContainer * padTriggerContainer,
const Muon::NSW_TrigRawDataContainer * stripTriggerContainer,
const Muon::NSW_TrigRawDataContainer * MMTriggerContainer,
Muon::NSW_TrigRawDataContainer * trigRdoContainer ) const
override

Definition at line 18 of file TriggerProcessorTool.cxx.

21 {
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 }
value_type push_back(value_type pElem)
Add an element to the end of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
size_t size() const
Duplicate of fullSize for backwards compatability.
uint16_t bcId() const
uint16_t sectorId() const
setScaleOne setStatusOne setSaturated int16_t

The documentation for this class was generated from the following files: