ATLAS Offline Software
TrigMonL1Item.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGMON_L1ITEM_H
6 #define TRIGMON_L1ITEM_H
7 
15 // Framework
16 #include "AthenaKernel/CLASS_DEF.h"
17 
18 // C/C++
19 #include <stdint.h>
20 
21 // Local
23 
25 {
26  public:
27 
28  enum Decision {
29  kReset = 0x0,
30  kPassed = 0x6000, // not stored
31  kPrescaled = 0x5000, // not stored
32  kL1AfterVeto = 0x4000,
34  kL1AfterPrescale = 0x1000
35  };
36 
37  TrigMonL1Item();
38  explicit TrigMonL1Item(uint16_t encoded);
39  ~TrigMonL1Item() = default;
40 
41  void setCtpId(unsigned int ctpid);
43 
44  uint16_t getCtpId() const;
45  uint16_t getEncoded() const { return m_encoded; }
46  uint16_t getCounter() const { return getCtpId(); }
47  uint16_t getEncodedId() const;
48 
49  bool isPassed(Decision value) const;
50 
53  bool isPassedAfterVeto() const { return isPassed(kL1AfterVeto); }
54  bool isPassed() const { return isPassedAfterVeto(); }
55  bool isPrescaled() const { return isPassedBeforePrescale() && !isPassedAfterPrescale(); }
56  bool isVeto() const { return isPassedAfterPrescale() && !isPassedAfterVeto(); }
57 
58  void print(std::ostream &os = std::cout) const;
59 
60  private:
61 
62  uint16_t m_encoded; // Encoded ctp id and decisions
63 };
64 
65 std::string str(const TrigMonL1Item &);
66 
67 //
68 // m_encoded stores encoded ctp id and decisions
69 //
70 // m_encoded = adddcccccccccccc
71 //
72 // ctp id [c] low 12 bits
73 // decision [d] mid 3 bits
74 // available [a] top 1 bit
75 //
76 
77 //
78 // Inlined member and global functions
79 //
81 {
82  return Trig::getEncodedId(1, getCounter());
83 }
84 
85 inline bool operator==(const TrigMonL1Item &lhs, const TrigMonL1Item &rhs) {
86  return lhs.getEncodedId() == rhs.getEncodedId();
87 }
88 inline bool operator <(const TrigMonL1Item &lhs, const TrigMonL1Item &rhs) {
89  return lhs.getEncodedId() < rhs.getEncodedId();
90 }
91 
92 inline bool operator==(const TrigMonL1Item &d, const TrigConfChain &c) {
93  return d.getEncodedId() == c.getEncodedId();
94 }
95 inline bool operator==(const TrigConfChain &c, const TrigMonL1Item &d) {
96  return d.getEncodedId() == c.getEncodedId();
97 }
98 
99 CLASS_DEF( TrigMonL1Item , 98029077 , 1 )
100 
101 #endif
TrigMonL1Item::isPassedBeforePrescale
bool isPassedBeforePrescale() const
Definition: TrigMonL1Item.h:51
TrigMonL1Item::isPrescaled
bool isPrescaled() const
Definition: TrigMonL1Item.h:55
TrigMonL1Item::getCounter
uint16_t getCounter() const
Definition: TrigMonL1Item.h:46
hist_file_dump.d
d
Definition: hist_file_dump.py:137
TrigMonL1Item::Decision
Decision
Definition: TrigMonL1Item.h:28
TrigMonL1Item::kL1BeforePrescale
@ kL1BeforePrescale
Definition: TrigMonL1Item.h:33
TrigMonL1Item::kReset
@ kReset
Definition: TrigMonL1Item.h:29
TrigMonL1Item::TrigMonL1Item
TrigMonL1Item()
Definition: TrigMonL1Item.cxx:18
athena.value
value
Definition: athena.py:122
operator==
bool operator==(const TrigMonL1Item &lhs, const TrigMonL1Item &rhs)
Definition: TrigMonL1Item.h:85
TrigMonL1Item::kL1AfterVeto
@ kL1AfterVeto
Definition: TrigMonL1Item.h:32
TrigMonL1Item::kL1AfterPrescale
@ kL1AfterPrescale
Definition: TrigMonL1Item.h:34
TrigMonL1Item::~TrigMonL1Item
~TrigMonL1Item()=default
TrigMonL1Item::kPrescaled
@ kPrescaled
Definition: TrigMonL1Item.h:31
TrigMonL1Item::isPassedAfterVeto
bool isPassedAfterVeto() const
Definition: TrigMonL1Item.h:53
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
TrigConfChain
Definition: TrigConfChain.h:32
TrigConfChain.h
TrigMonL1Item::setCtpId
void setCtpId(unsigned int ctpid)
Definition: TrigMonL1Item.cxx:30
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
TrigMonL1Item::getCtpId
uint16_t getCtpId() const
Definition: TrigMonL1Item.cxx:58
str
std::string str(const TrigMonL1Item &)
Definition: TrigMonL1Item.cxx:85
TrigMonL1Item::kPassed
@ kPassed
Definition: TrigMonL1Item.h:30
TrigMonL1Item::getEncoded
uint16_t getEncoded() const
Definition: TrigMonL1Item.h:45
TrigMonL1Item::m_encoded
uint16_t m_encoded
Definition: TrigMonL1Item.h:62
operator<
bool operator<(const TrigMonL1Item &lhs, const TrigMonL1Item &rhs)
Definition: TrigMonL1Item.h:88
TrigMonL1Item::getEncodedId
uint16_t getEncodedId() const
Definition: TrigMonL1Item.h:80
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
TrigMonL1Item
Encoded L1 decision for one item.
Definition: TrigMonL1Item.h:25
TrigMonL1Item::isPassed
bool isPassed() const
Definition: TrigMonL1Item.h:54
TrigMonL1Item::isPassedAfterPrescale
bool isPassedAfterPrescale() const
Definition: TrigMonL1Item.h:52
TrigMonL1Item::isVeto
bool isVeto() const
Definition: TrigMonL1Item.h:56
TrigMonL1Item::addDecision
void addDecision(Decision value)
Definition: TrigMonL1Item.cxx:46
Trig::getEncodedId
uint16_t getEncodedId(int level, int counter)
Definition: TrigConfChain.cxx:15
python.compressB64.c
def c
Definition: compressB64.py:93
CLASS_DEF.h
macros to associate a CLID to a type
TrigMonL1Item::print
void print(std::ostream &os=std::cout) const
Definition: TrigMonL1Item.cxx:79