ATLAS Offline Software
Loading...
Searching...
No Matches
ResultBuilder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5
6#ifndef TRIGT1CTP_RESULTBUILDER_H
7#define TRIGT1CTP_RESULTBUILDER_H
8
9// local includes
10//#include "./SpecialTrigger.h"
11#include "./ThresholdMap.h"
12#include "./ItemMap.h"
13
14#include <stdint.h>
15
16// For handling different CTP versions:
17#include "CTPfragment/CTPdataformatVersion.h"
18#include "GaudiKernel/EventIDBase.h"
19
21
22// L1 configuration data
23#include "TrigConfData/L1Menu.h"
24
25// Output to the RoIB:
27
28// Output to the DAQ:
29#include "TrigT1Result/CTP_RDO.h" // TODO: obsolete it in favour of xAOD::CTPResult --> see line below
33
34#include "CLHEP/Random/RandomEngine.h"
35
36namespace LVL1CTP {
37
50
51 class ResultBuilder : public AthAlgTool {
52
53 public:
54
55 ResultBuilder( const std::string& type, const std::string& name, const IInterface* parent );
57
58 void setRandomEngine( CLHEP::HepRandomEngine* rndmEngine );
59
60 StatusCode setConfiguration( const TrigConf::L1Menu& l1menu );
61
62 StatusCode buildItemDecision( const std::map<std::string, unsigned int> & thrMultiMap,
63 std::map<std::string, unsigned int> & itemDecisionMap,
64 CLHEP::HepRandomEngine* rndmEngine ) const;
65
66
67 StatusCode constructResultVectors( const std::map<std::string, unsigned int> & itemDecisionMap,
68 std::vector<uint32_t> & tbp, std::vector<uint32_t> & tap, std::vector<uint32_t> & tav,
69 unsigned char & triggerType ) const;
70
71
72 StatusCode constructTIPVector( const std::map<std::string, unsigned int> & thrMultiMap,
73 std::vector<uint32_t> & tip ) const;
74
75
77 std::unique_ptr<CTPSLink> constructRoIResult( const EventIDBase & eventID,
78 const std::vector<uint32_t> & tbp, const std::vector<uint32_t> & tap,
79 const std::vector<uint32_t> & tav, const std::vector<uint32_t> & tip,
80 const std::vector<uint32_t> & extra,
81 const unsigned char triggerType ) const;
82
84 std::unique_ptr<CTP_RDO> constructRDOResult( const EventIDBase & eventID,
85 const std::vector<uint32_t> & tbp, const std::vector<uint32_t> & tap,
86 const std::vector<uint32_t> & tav, const std::vector<uint32_t> & tip,
87 const std::vector<uint32_t> & extra ) const;
88
90 std::pair< std::unique_ptr<xAOD::CTPResult>, std::unique_ptr<xAOD::CTPResultAuxInfo> > constructCTPResult( const EventIDBase & eventID,
91 const std::vector<uint32_t> & tbp, const std::vector<uint32_t> & tap,
92 const std::vector<uint32_t> & tav, const std::vector<uint32_t> & tip,
93 const std::vector<uint32_t> & extra, const unsigned char triggerType ) const;
94
95
96 private:
97
98 enum WrdType { TBP = 0x01, TAP = 0x02, TAV = 0x04 };
99
100 StatusCode createTriggerConfigMaps(const TrigConf::L1Menu& l1menu);
101
103 std::vector<std::string> firedItems(const std::vector<uint32_t>& triggerWords) const;
104
105 // configuration information
106 std::unique_ptr<ThresholdMap> m_thrConfigMap{ nullptr };
107 std::unique_ptr<ItemMap> m_itemConfigMap{ nullptr };
109 unsigned int m_ctpVersionNumber { 4 };
110 CTPdataformatVersion* m_ctpDataFormat { nullptr };
111 };
112
113
114 // typedefs
115
116 // generic typedef for easy access to TIP/TBP/TAP/TAV information
117 typedef std::vector<uint32_t> (ResultBuilder::*Result)() const;
118
119} // namespace LVL1CTP
120
121#endif // TRIGT1CTP_RESULTBUILDER_H
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Class used to create the CTP output (RDO, SLink and TriggerInfo)
StatusCode createTriggerConfigMaps(const TrigConf::L1Menu &l1menu)
ResultBuilder(const std::string &type, const std::string &name, const IInterface *parent)
void setRandomEngine(CLHEP::HepRandomEngine *rndmEngine)
StatusCode setConfiguration(const TrigConf::L1Menu &l1menu)
StatusCode constructResultVectors(const std::map< std::string, unsigned int > &itemDecisionMap, std::vector< uint32_t > &tbp, std::vector< uint32_t > &tap, std::vector< uint32_t > &tav, unsigned char &triggerType) const
std::pair< std::unique_ptr< xAOD::CTPResult >, std::unique_ptr< xAOD::CTPResultAuxInfo > > constructCTPResult(const EventIDBase &eventID, const std::vector< uint32_t > &tbp, const std::vector< uint32_t > &tap, const std::vector< uint32_t > &tav, const std::vector< uint32_t > &tip, const std::vector< uint32_t > &extra, const unsigned char triggerType) const
build RDO result (CTPResult)
StatusCode constructTIPVector(const std::map< std::string, unsigned int > &thrMultiMap, std::vector< uint32_t > &tip) const
InternalTriggerMap m_internalTrigger
internal triggers BGRP and RNDM
std::unique_ptr< ItemMap > m_itemConfigMap
Map between item objects and their CTP-internal description.
CTPdataformatVersion * m_ctpDataFormat
CTP data format details.
StatusCode buildItemDecision(const std::map< std::string, unsigned int > &thrMultiMap, std::map< std::string, unsigned int > &itemDecisionMap, CLHEP::HepRandomEngine *rndmEngine) const
std::vector< std::string > firedItems(const std::vector< uint32_t > &triggerWords) const
build list of fired items and dump to string
unsigned int m_ctpVersionNumber
CTP data format version (4 in most of Run 2 and in Run 3)
std::unique_ptr< CTP_RDO > constructRDOResult(const EventIDBase &eventID, const std::vector< uint32_t > &tbp, const std::vector< uint32_t > &tap, const std::vector< uint32_t > &tav, const std::vector< uint32_t > &tip, const std::vector< uint32_t > &extra) const
build RDO result (CTP_RDO) - TODO obsolete it in favor of xAOD::CTPResult
std::unique_ptr< CTPSLink > constructRoIResult(const EventIDBase &eventID, const std::vector< uint32_t > &tbp, const std::vector< uint32_t > &tap, const std::vector< uint32_t > &tav, const std::vector< uint32_t > &tip, const std::vector< uint32_t > &extra, const unsigned char triggerType) const
build RoI result (LVL1CTP::CTPSLink)
std::unique_ptr< ThresholdMap > m_thrConfigMap
Map between threshold objects and their CTP-internal description.
L1 menu configuration.
Definition L1Menu.h:28
std::map< std::string, const ISpecialTrigger * > InternalTriggerMap
std::vector< uint32_t >(ResultBuilder::* Result)() const