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
133
134
135
136
137
138
139
|
/**
* \class L1GtMuonTemplate
*
*
* Description: L1 Global Trigger muon template.
*
* Implementation:
* <TODO: enter implementation details>
*
* \author: Vasile Mihai Ghete - HEPHY Vienna
*
* $Date$
* $Revision$
*
*/
// this class header
#include "CondFormats/L1TObjects/interface/L1GtMuonTemplate.h"
// system include files
#include <iostream>
#include <iomanip>
// user include files
// base class
#include "CondFormats/L1TObjects/interface/L1GtFwd.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
// forward declarations
// constructors
L1GtMuonTemplate::L1GtMuonTemplate() : L1GtCondition() { m_condCategory = CondMuon; }
L1GtMuonTemplate::L1GtMuonTemplate(const std::string& cName) : L1GtCondition(cName) { m_condCategory = CondMuon; }
L1GtMuonTemplate::L1GtMuonTemplate(const std::string& cName, const L1GtConditionType& cType)
: L1GtCondition(cName, CondMuon, cType) {
int nObjects = nrObjects();
if (nObjects > 0) {
m_objectParameter.reserve(nObjects);
m_objectType.reserve(nObjects);
m_objectType.assign(nObjects, Mu);
}
}
// copy constructor
L1GtMuonTemplate::L1GtMuonTemplate(const L1GtMuonTemplate& cp) : L1GtCondition(cp.m_condName) { copy(cp); }
// destructor
L1GtMuonTemplate::~L1GtMuonTemplate() {
// empty now
}
// assign operator
L1GtMuonTemplate& L1GtMuonTemplate::operator=(const L1GtMuonTemplate& cp) {
copy(cp);
return *this;
}
// setConditionParameter - set the parameters of the condition
void L1GtMuonTemplate::setConditionParameter(const std::vector<ObjectParameter>& objParameter,
const CorrelationParameter& corrParameter) {
m_objectParameter = objParameter;
m_correlationParameter = corrParameter;
}
void L1GtMuonTemplate::print(std::ostream& myCout) const {
myCout << "\n L1GtMuonTemplate print..." << std::endl;
L1GtCondition::print(myCout);
int nObjects = nrObjects();
for (int i = 0; i < nObjects; i++) {
myCout << std::endl;
myCout << " Template for object " << i << " [ hex ]" << std::endl;
myCout << " ptHighThreshold = " << std::hex << m_objectParameter[i].ptHighThreshold << std::endl;
myCout << " ptLowThreshold = " << std::hex << m_objectParameter[i].ptLowThreshold << std::endl;
myCout << " enableMip = " << std::hex << m_objectParameter[i].enableMip << std::endl;
myCout << " enableIso = " << std::hex << m_objectParameter[i].enableIso << std::endl;
myCout << " requestIso = " << std::hex << m_objectParameter[i].requestIso << std::endl;
myCout << " qualityRange = " << std::hex << m_objectParameter[i].qualityRange << std::endl;
myCout << " etaRange = " << std::hex << m_objectParameter[i].etaRange << std::endl;
myCout << " phiHigh = " << std::hex << m_objectParameter[i].phiHigh << std::endl;
myCout << " phiLow = " << std::hex << m_objectParameter[i].phiLow << std::endl;
}
if (wsc()) {
myCout << " Correlation parameters "
<< "[ hex ]" << std::endl;
myCout << " chargeCorrelation = " << std::hex << m_correlationParameter.chargeCorrelation << std::endl;
myCout << " deltaEtaRange = " << std::hex << m_correlationParameter.deltaEtaRange << std::endl;
myCout << " deltaPhiRange1Word = " << std::hex << m_correlationParameter.deltaPhiRange1Word << std::endl;
myCout << " deltaPhiRange0Word = " << std::hex << m_correlationParameter.deltaPhiRange0Word << std::endl;
myCout << " deltaPhiMaxbits = " << std::hex << m_correlationParameter.deltaPhiMaxbits << std::endl;
} else {
if (m_condType == Type1s) {
myCout << " Correlation parameters "
<< "[ hex ]" << std::endl;
myCout << " chargeCorrelation = " << std::hex << m_correlationParameter.chargeCorrelation << " (charge sign) "
<< std::endl;
} else {
myCout << "\n Correlation parameters "
<< "[ hex ]" << std::endl;
myCout << " chargeCorrelation = " << std::hex << m_correlationParameter.chargeCorrelation << std::endl;
}
}
// reset to decimal output
myCout << std::dec << std::endl;
}
void L1GtMuonTemplate::copy(const L1GtMuonTemplate& cp) {
m_condName = cp.condName();
m_condCategory = cp.condCategory();
m_condType = cp.condType();
m_objectType = cp.objectType();
m_condGEq = cp.condGEq();
m_condChipNr = cp.condChipNr();
m_objectParameter = *(cp.objectParameter());
m_correlationParameter = *(cp.correlationParameter());
}
// output stream operator
std::ostream& operator<<(std::ostream& os, const L1GtMuonTemplate& result) {
result.print(os);
return os;
}
|