41 parType_t inputWidth = parameter(
"InputWidth").value();
42 p_MaxTob = parameter(
"MaxTob").value();
43 if(p_MaxTob>inputWidth) {
45 <<
" is larger than InputWidth ("<<inputWidth<<
")"
46 <<
" : restricting to InputWidth");
47 p_MaxTob = inputWidth;
49 p_MinET = parameter(
"MinET").value();
50 p_EtaMin = parameter(
"EtaMin").value();
51 p_EtaMax = parameter(
"EtaMax").value();
52 p_PhiMin = parameter(
"PhiMin").value();
53 p_PhiMax = parameter(
"PhiMax").value();
61 TRG_MSG_INFO(
"number of output bits : "<<numberOutputBits());
64 for(
unsigned int i=0;
i<numberOutputBits(); ++
i) {
65 std::string hname_accept =
"hEtaPhiWindow_accept_bit"+
std::to_string((
int)
i);
66 std::string hname_reject =
"hEtaPhiWindow_reject_bit"+
std::to_string((
int)
i);
68 bookHist(m_histAccept, hname_accept,
"ETA vs PHI", 100, p_EtaMin, p_EtaMax, 100, p_PhiMin, p_PhiMax);
69 bookHist(m_histReject, hname_reject,
"ETA vs PHI", 100, p_EtaMin, p_EtaMax, 100, p_PhiMin, p_PhiMax);
77 const std::vector<TCS::TOBArray *> &
output,
81 if(
input.size() == 1) {
83 const unsigned int nLeading = p_MaxTob;
86 tob1 !=
input[0]->end();
89 if(nLeading!=0 and iTob>=nLeading)
continue;
90 if(
parType_t((*tob1)->Et()) <= p_MinET )
continue;
91 if( (
int)
parType_t((*tob1)->eta()) < (
int)p_EtaMin )
continue;
92 if( (
int)
parType_t((*tob1)->eta()) >= (
int)p_EtaMax )
continue;
93 if( (
int)
parType_t((*tob1)->phi()) < (
int)p_PhiMin )
continue;
94 if( (
int)
parType_t((*tob1)->phi()) >= (
int)p_PhiMax )
continue;
96 const bool fillAccept = fillHistos() and (fillHistosBasedOnHardware() ? getDecisionHardwareBit(0) :
accept);
97 const bool fillReject = fillHistos() and not fillAccept;
98 const bool alreadyFilled = decision.
bit(0);
100 if(fillAccept and not alreadyFilled) {
101 fillHist2D(m_histAccept[0],(
float)(*tob1)->eta(),(
float)(*tob1)->phi());
102 }
else if(fillReject) {
103 fillHist2D(m_histReject[0],(
float)(*tob1)->eta(),(
float)(*tob1)->phi());
106 <<
" ET = "<<(*tob1)->Et()
107 <<
" Eta = "<<(*tob1)->eta()
108 <<
" phi = "<<(*tob1)->phi());
119 const std::vector<TCS::TOBArray *> &
output,
122 if(
input.size() == 1) {
124 const unsigned int nLeading = p_MaxTob;
127 tob1 !=
input[0]->end();
130 if(nLeading!=0 and iTob>=nLeading)
continue;
131 if(
parType_t((*tob1)->Et()) <= p_MinET )
continue;
132 if( (
int)
parType_t((*tob1)->eta()) < (
int)p_EtaMin )
continue;
133 if( (
int)
parType_t((*tob1)->eta()) >= (
int)p_EtaMax )
continue;
134 if( (
int)
parType_t((*tob1)->phi()) < (
int)p_PhiMin )
continue;
135 if( (
int)
parType_t((*tob1)->phi()) >= (
int)p_PhiMax )
continue;
137 const bool fillAccept = fillHistos() and (fillHistosBasedOnHardware() ? getDecisionHardwareBit(0) :
accept);
138 const bool fillReject = fillHistos() and not fillAccept;
139 const bool alreadyFilled = decision.
bit(0);
141 if(fillAccept and not alreadyFilled) {
142 fillHist2D(m_histAccept[0],(
float)(*tob1)->eta(),(
float)(*tob1)->phi());
143 }
else if(fillReject) {
144 fillHist2D(m_histReject[0],(
float)(*tob1)->eta(),(
float)(*tob1)->phi());
147 <<
" ET = "<<(*tob1)->Et()
148 <<
" Eta = "<<(*tob1)->eta()
149 <<
" phi = "<<(*tob1)->phi());