1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#ifndef L1GlobalTrigger_L1GlobalTriggerRecord_h
#define L1GlobalTrigger_L1GlobalTriggerRecord_h
/**
* \class L1GlobalTriggerRecord
*
*
* Description: stripped-down record for L1 Global Trigger.
*
* Implementation:
* <TODO: enter implementation details>
*
* \author: Vasile Mihai Ghete - HEPHY Vienna
*
*
*/
// system include files
#include <vector>
#include <iosfwd>
// user include files
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
// forward declarations
namespace edm {
template <typename T>
class Handle;
}
// class interface
class L1GlobalTriggerRecord {
public:
/// constructors
L1GlobalTriggerRecord();
L1GlobalTriggerRecord(const unsigned int numberPhysTriggers, const unsigned int numberTechnicalTriggers);
/// copy constructor
L1GlobalTriggerRecord(const L1GlobalTriggerRecord&);
/// destructor
virtual ~L1GlobalTriggerRecord();
/// assignment operator
L1GlobalTriggerRecord& operator=(const L1GlobalTriggerRecord&);
/// equal operator
bool operator==(const L1GlobalTriggerRecord&) const;
/// unequal operator
bool operator!=(const L1GlobalTriggerRecord&) const;
public:
/// get Global Trigger decision, decision word and technical trigger word
/// for bunch cross with L1Accept (BxInEvent = 0)
inline const bool decision() const { return m_gtGlobalDecision; }
inline const DecisionWord decisionWord() const { return m_gtDecisionWord; }
inline const TechnicalTriggerWord technicalTriggerWord() const { return m_gtTechnicalTriggerWord; }
inline const DecisionWord decisionWordBeforeMask() const { return m_gtDecisionWordBeforeMask; }
inline const TechnicalTriggerWord technicalTriggerWordBeforeMask() const {
return m_gtTechnicalTriggerWordBeforeMask;
}
/// set global decision, decision word and technical trigger word
/// for bunch cross with L1Accept (BxInEvent = 0)
void setDecision(const bool& dValue);
void setDecisionWord(const DecisionWord& dWordValue);
void setTechnicalTriggerWord(const TechnicalTriggerWord& ttWordValue);
void setDecisionWordBeforeMask(const DecisionWord& dWordValue);
void setTechnicalTriggerWordBeforeMask(const TechnicalTriggerWord& ttWordValue);
/// get/set index of the set of prescale factors
inline const unsigned int gtPrescaleFactorIndexTech() const { return m_gtPrescaleFactorIndexTech; }
void setGtPrescaleFactorIndexTech(const unsigned int& gtPrescaleFactorIndexTechValue) {
m_gtPrescaleFactorIndexTech = gtPrescaleFactorIndexTechValue;
}
inline const unsigned int gtPrescaleFactorIndexAlgo() const { return m_gtPrescaleFactorIndexAlgo; }
void setGtPrescaleFactorIndexAlgo(const unsigned int& gtPrescaleFactorIndexAlgoValue) {
m_gtPrescaleFactorIndexAlgo = gtPrescaleFactorIndexAlgoValue;
}
/// print global decision and algorithm decision word
void printGtDecision(std::ostream& myCout) const;
/// print technical triggers
void printTechnicalTrigger(std::ostream& myCout) const;
// other methods
/// clear the record
void reset();
/// pretty print the content of a L1GlobalTriggerRecord
void print(std::ostream& myCout) const;
/// output stream operator
friend std::ostream& operator<<(std::ostream&, const L1GlobalTriggerRecord&);
private:
/// global decision for L1A bunch cross
bool m_gtGlobalDecision;
/// algorithm decision word for L1A bunch cross
DecisionWord m_gtDecisionWord;
/// technical trigger word for L1A bunch cross
TechnicalTriggerWord m_gtTechnicalTriggerWord;
/// algorithm decision word for L1A bunch cross before applying the masks
DecisionWord m_gtDecisionWordBeforeMask;
/// technical trigger word for L1A bunch cross before applying the masks
TechnicalTriggerWord m_gtTechnicalTriggerWordBeforeMask;
/// index of the set of prescale factors in the DB/EventSetup
/// for algorithm triggers and technical triggers
unsigned int m_gtPrescaleFactorIndexTech;
unsigned int m_gtPrescaleFactorIndexAlgo;
};
#endif
|