ATLAS Offline Software
Loading...
Searching...
No Matches
TriggerItem.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef TrigConf_TriggerItem
8#define TrigConf_TriggerItem
9
12
13#include <string>
14#include <stdexcept>
15#include <iostream>
16#include <memory>
17
18namespace TrigConf {
19
20 class DiffStruct;
21 class TriggerItem;
22
23 std::ostream & operator<<(std::ostream &, const TrigConf::TriggerItem &);
24
25 // class TriggerItem : public L1DataBaseclass {
26 class TriggerItem : public TrigConfData {
27 public:
29 virtual ~TriggerItem() override;
30
31 // getters
32 unsigned int complex_deadtime() const { return m_ComplexDeadtime; }
33 const std::string& definition() const { return m_Definition; }
34 unsigned int triggerType() const { return m_TriggerType; }
35 int ctpId() const { return m_CtpId; }
36 unsigned int partition() const { return m_Partition; }
37 const TriggerItemNode* topNode() const { return m_TopNode.get(); }
38 unsigned short monitor() const { return m_Monitor; }
39 uint16_t bunchgroupMask() const;
40
41 // setters
42 void setComplexDeadtime( unsigned int cmpldt ) { m_ComplexDeadtime = cmpldt; }
43 void setPartition( unsigned int partition ) { m_Partition = partition; }
44 void setTopNode(std::unique_ptr<TriggerItemNode> ptrnode ) { m_TopNode = std::move(ptrnode); }
45 void setTriggerType(unsigned int tt) { m_TriggerType = (tt & 0xff); }
46 void setCtpId (int id) { m_CtpId = id; }
47 void setDefinition(const std::string& def) { m_Definition = def; }
48
49 bool isTriggerTypeBitOn(int ibit) const { return ( (m_TriggerType & (1<<ibit) )!=0); }
50
51 virtual void print(const std::string& indent="", unsigned int detail=1) const override;
52
53 void writeXML(std::ostream & xmlfile, int indentLevel=0, int indentWidth=2) const;
54 void buildLogic(std::string & logic, std::vector<std::string> & conditionList) const;
55 void setCondition(const std::string& logic,
56 const std::vector<std::string>& conditions,
57 const std::vector<TrigConf::TriggerThreshold*>& thrs);
58
59 void setMonitor(unsigned short monitor) { m_Monitor = monitor; }
60
61 inline bool operator<(const TriggerItem& e) const {
62 return ctpId() < e.ctpId();
63 }
64
65 DiffStruct* compareTo(const TriggerItem* o) const;
66
67 std::string __str__() const override;
68
69 private:
70 unsigned int m_ComplexDeadtime;
71 std::string m_Definition;
72 std::unique_ptr<TriggerItemNode> m_TopNode;
74 unsigned int m_TriggerType; // 8 bit word (4 bit for secondary partitions
75 unsigned int m_Partition; // 8 bit word
76 unsigned short m_Monitor; // 0x1 TBP_LF, 0x2 TAP_LF, 0x4 TAV_LF, 0x8 TBP_LF, 0x10 TAP_LF, 0x20 TAV_LF,
77 friend std::ostream & operator<<(std::ostream &, const TrigConf::TriggerItem &);
78 };
79
80}
81#endif
82
unsigned int id() const
std::ostream & indent(std::ostream &o, int lvl, int size) const
TrigConfData(const std::string &name="")
bool operator<(const TriggerItem &e) const
Definition TriggerItem.h:61
void setPartition(unsigned int partition)
Definition TriggerItem.h:43
std::string m_Definition
Definition TriggerItem.h:71
void setTopNode(std::unique_ptr< TriggerItemNode > ptrnode)
Definition TriggerItem.h:44
std::unique_ptr< TriggerItemNode > m_TopNode
Definition TriggerItem.h:72
void setTriggerType(unsigned int tt)
Definition TriggerItem.h:45
unsigned short m_Monitor
Definition TriggerItem.h:76
void setComplexDeadtime(unsigned int cmpldt)
Definition TriggerItem.h:42
unsigned int complex_deadtime() const
Definition TriggerItem.h:32
virtual void print(const std::string &indent="", unsigned int detail=1) const override
const TriggerItemNode * topNode() const
Definition TriggerItem.h:37
void buildLogic(std::string &logic, std::vector< std::string > &conditionList) const
DiffStruct * compareTo(const TriggerItem *o) const
unsigned int m_ComplexDeadtime
Definition TriggerItem.h:70
uint16_t bunchgroupMask() const
std::string __str__() const override
void writeXML(std::ostream &xmlfile, int indentLevel=0, int indentWidth=2) const
void setDefinition(const std::string &def)
Definition TriggerItem.h:47
const std::string & definition() const
Definition TriggerItem.h:33
void setCtpId(int id)
Definition TriggerItem.h:46
bool isTriggerTypeBitOn(int ibit) const
Definition TriggerItem.h:49
unsigned int m_TriggerType
Definition TriggerItem.h:74
void setMonitor(unsigned short monitor)
Definition TriggerItem.h:59
friend std::ostream & operator<<(std::ostream &, const TrigConf::TriggerItem &)
void setCondition(const std::string &logic, const std::vector< std::string > &conditions, const std::vector< TrigConf::TriggerThreshold * > &thrs)
unsigned int partition() const
Definition TriggerItem.h:36
unsigned short monitor() const
Definition TriggerItem.h:38
unsigned int m_Partition
Definition TriggerItem.h:75
virtual ~TriggerItem() override
unsigned int triggerType() const
Definition TriggerItem.h:34
static std::vector< std::string > xmlfile
Definition iLumiCalc.h:29
Forward iterator to traverse the main components of the trigger configuration.
Definition Config.h:22
std::ostream & operator<<(std::ostream &os, const TrigConf::IsolationLegacy &iso)