ATLAS Offline Software
Loading...
Searching...
No Matches
Trigger
TrigT1
L1Topo
L1TopoConfig
Root
L1TopoMenu.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
L1TopoConfig/L1TopoMenu.h
"
6
#include "
L1TopoCommon/Exception.h
"
7
8
#include <iostream>
9
#include <fstream>
10
11
using namespace
std
;
12
using namespace
TXC
;
13
14
L1TopoMenu::L1TopoMenu
() {}
15
16
L1TopoMenu::L1TopoMenu
(
const
std::string & name,
const
std::string & version) :
17
m_name
(name),
18
m_version
(version),
19
m_smk
(0)
20
{}
21
22
23
24
L1TopoMenu::~L1TopoMenu
() {}
25
26
void
27
L1TopoMenu::addAlgorithm
(
TXC::L1TopoConfigAlg
&&alg) {
28
m_algos
.emplace_back(std::move(alg));
29
}
30
31
const
L1TopoConfigAlg
&
32
L1TopoMenu::algorithm
(
const
std::string& name)
const
{
33
for
(
const
L1TopoConfigAlg
& alg:
m_algos
)
34
if
(alg.name() == name)
return
alg;
35
TCS_EXCEPTION
(
"L1TopoMenu: algorithm of name "
<< name <<
" doesn't exist"
);
36
}
37
38
39
TCS::StatusCode
40
L1TopoMenu::setTriggerList
() {
41
42
for
(
const
OutputListElement
& out:
m_outputlist
.getOutputList() ) {
43
44
const
L1TopoConfigAlg
& alg =
algorithm
( out.algoname() );
45
46
if
(! alg.isDecAlg()) {
47
TCS_EXCEPTION
(
"L1TopoMenu: output list contains an algorithm "
<< out.algoname() <<
" that is not an decision algorithm"
);
48
}
49
50
unsigned
int
bit = out.firstbit();
51
for
(
const
string
& outputname : alg.getOutputNames() ) {
52
m_outputlist
.addTriggerLine(
TriggerLine
(outputname, out.algoname(),
53
out.algoid(), out.module(), out.fpga(), out.clock(),
54
bit++) );
55
}
56
}
57
58
m_outputlist
.sort();
59
60
return
TCS::StatusCode::SUCCESS
;
61
}
62
63
// print menu
64
void
TXC::L1TopoMenu::print
()
const
{
65
66
cout <<
"=========================================="
<< endl
67
<<
"Menu Name : "
<<
getName
() << endl
68
<<
"Menu Version: "
<<
getVersion
() << endl
69
<<
m_topoconfig
<< endl;
70
71
for
(
const
TXC::L1TopoConfigAlg
& alg:
getL1TopoConfigAlgs
())
72
cout << alg << endl;
73
74
cout <<
m_outputlist
<< endl;
75
76
}
L1TopoMenu.h
Exception.h
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:14
TCS::StatusCode
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TXC::L1TopoConfigAlg
Definition
L1TopoConfigAlg.h:56
TXC::L1TopoMenu::m_smk
unsigned int m_smk
Definition
L1TopoMenu.h:91
TXC::L1TopoMenu::getVersion
const std::string & getVersion() const
Definition
L1TopoMenu.h:47
TXC::L1TopoMenu::setTriggerList
TCS::StatusCode setTriggerList()
Definition
L1TopoMenu.cxx:40
TXC::L1TopoMenu::m_name
std::string m_name
Definition
L1TopoMenu.h:89
TXC::L1TopoMenu::algorithm
const L1TopoConfigAlg & algorithm(const std::string &name) const
Definition
L1TopoMenu.cxx:32
TXC::L1TopoMenu::getL1TopoConfigAlgs
const std::vector< TXC::L1TopoConfigAlg > & getL1TopoConfigAlgs() const
Definition
L1TopoMenu.h:53
TXC::L1TopoMenu::addAlgorithm
void addAlgorithm(TXC::L1TopoConfigAlg &&alg)
add algorithm
Definition
L1TopoMenu.cxx:27
TXC::L1TopoMenu::getName
const std::string & getName() const
Definition
L1TopoMenu.h:46
TXC::L1TopoMenu::print
void print() const
print menu
Definition
L1TopoMenu.cxx:64
TXC::L1TopoMenu::m_outputlist
TXC::L1TopoConfigOutputList m_outputlist
Definition
L1TopoMenu.h:96
TXC::L1TopoMenu::m_version
std::string m_version
Definition
L1TopoMenu.h:90
TXC::L1TopoMenu::m_topoconfig
TXC::L1TopoConfigGlobal m_topoconfig
Definition
L1TopoMenu.h:95
TXC::L1TopoMenu::m_algos
std::vector< TXC::L1TopoConfigAlg > m_algos
Definition
L1TopoMenu.h:94
TXC::L1TopoMenu::L1TopoMenu
L1TopoMenu()
Definition
L1TopoMenu.cxx:14
TXC::L1TopoMenu::~L1TopoMenu
~L1TopoMenu()
Definition
L1TopoMenu.cxx:24
TXC::OutputListElement
Definition
L1TopoConfigOutputList.h:57
TXC::TriggerLine
Definition
L1TopoConfigOutputList.h:15
algorithm
std::string algorithm
Definition
hcg.cxx:85
TXC
Definition
IL1TopoMenuLoader.h:10
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.14.0