30 m_Active(thr.m_Active),
31 m_Mapping(thr.m_Mapping),
32 m_CableName(thr.m_CableName),
33 m_CableCtpin(thr.m_CableCtpin),
34 m_CableConnector(thr.m_CableConnector),
35 m_CableStart(thr.m_CableStart),
36 m_CableEnd(thr.m_CableEnd),
38 m_ThresholdNumber(thr.m_ThresholdNumber),
39 m_ZBSeedingThresholdName(thr.m_ZBSeedingThresholdName),
40 m_ZBSeedingThresholdMulti(thr.m_ZBSeedingThresholdMulti),
41 m_BCDelay(thr.m_BCDelay),
42 m_Bitnum(thr.m_Bitnum),
51 clearThresholdValues();
70 if(input!=
"ctpin" && input!=
"ctpcore")
71 throw runtime_error(
"Threshold input must be either 'ctpin' or 'ctpcore' but value was '"+input+
"'" );
86 float eta =
float(eta_i)+0.5;
87 float phi =
float(phi_i)+0.5;
91 if( thrV->contains(eta, phi) ) {
93 if( ttv != 0 && ttv->
priority()==thrV->priority() ) {
94 cerr <<
"TriggerThreshold '" <<
name() <<
"' has overlapping values of same priority at eta = "
95 << eta <<
", phi = " << phi << endl;
96 throw runtime_error(
"Overlapping thresholdValues of the same priority" );
98 if( ttv==0 || ttv->
priority()<thrV->priority() ) {
104 cerr <<
"TriggerThreshold::triggerThresholdValue: did not find threshold value at eta = "
105 << eta <<
", phi = " << phi <<
" for threshold " <<
name() << endl;
106 throw runtime_error(
"Did not find threshold value" );
113 std::vector<TrigConf::TriggerThresholdValue*>&
115 return m_TriggerThresholdValueVector;
120 m_TriggerThresholdValueVector.push_back(
value);
127 addThresholdValue(thrV);
162 cout <<
"TriggerThreshold::createThresholdValue: ERROR Unknown trigger value type: " <<
type << endl;
163 throw std::runtime_error(
"TriggerThreshold::createThresholdValue: Unknown trigger value type.");
172 m_TriggerThresholdValueVector.clear();
177 cout <<
indent <<
"TriggerThreshold " <<
name() << endl;
181 cout <<
indent <<
"==================================" << endl;
182 cout <<
indent <<
"TriggerThreshold "; printNameIdV(
indent);
184 cout <<
indent <<
" Type: " <<
type() << endl;
186 cout <<
indent <<
" seed: " << m_ZBSeedingThresholdName << endl;
187 cout <<
indent <<
" seed multi: " << m_ZBSeedingThresholdMulti << endl;
188 cout <<
indent <<
" BC delay: " << m_BCDelay << endl;
190 cout <<
indent <<
" active: " << m_Active << endl;
191 cout <<
indent <<
" mapping " << m_Mapping << endl;
192 cout <<
indent <<
" number of values: " << numberofValues() << endl;
193 cout <<
indent <<
" cable name: " << m_CableName << endl;
194 cout <<
indent <<
" cable ctpin: " << m_CableCtpin << endl;
195 cout <<
indent <<
" cable connector: " << m_CableConnector << endl;
196 cout <<
indent <<
" cable start: " << m_CableStart << endl;
197 cout <<
indent <<
" cable end: " << m_CableEnd << endl;
198 cout <<
indent <<
" threshold number: " << m_ThresholdNumber << endl;
199 for(
unsigned int i=0;
i < m_TriggerThresholdValueVector.size();
i++)
209 if(
x->priority() !=
y->priority())
210 return x->priority() <
y->priority();
211 if(
x->etamin() !=
y->etamin())
212 return x->etamin() <
y->etamin();
213 return x->name() <
y->name();
221 indent(xmlfile, indentLevel, indentWidth)
222 <<
"<TriggerThreshold active=\"" << m_Active
223 <<
"\" bitnum=\"" << bitnum()
224 <<
"\" id=\"" <<
id()
225 <<
"\" mapping=\"" << m_Mapping
226 <<
"\" name=\"" <<
name()
227 <<
"\" type=\"" <<
type()
228 <<
"\" input=\"" << input();
231 xmlfile <<
"\" seed=\"" << m_ZBSeedingThresholdName
232 <<
"\" seed_multi=\"" << m_ZBSeedingThresholdMulti
233 <<
"\" bcdelay=\"" << m_BCDelay;
235 xmlfile <<
"\" version=\"" <<
version() <<
"\">" << endl;
237 auto sortedThresholdValues = m_TriggerThresholdValueVector;
238 sort(sortedThresholdValues.begin(),sortedThresholdValues.end(),compThrValues);
241 thrV->writeXML(xmlfile, indentLevel+1, indentWidth);
243 if(m_CableName!=
"") {
244 if(input()==
"ctpin") {
245 indent(xmlfile, indentLevel+1, indentWidth)
246 <<
"<Cable connector=\"" << m_CableConnector <<
"\" input=\"" << m_CableCtpin <<
"\" name=\"" << m_CableName <<
"\">" << endl;
247 indent(xmlfile, indentLevel+2, indentWidth)
248 <<
"<Signal range_begin=\"" << m_CableStart <<
"\" range_end=\"" << m_CableEnd <<
"\"/>" << endl;
250 indent(xmlfile, indentLevel+1, indentWidth)
251 <<
"<Cable connector=\"" << m_CableConnector <<
"\" input=\"" << m_CableCtpin <<
"\" name=\"" << m_CableName <<
"\">" << endl;
252 indent(xmlfile, indentLevel+2, indentWidth)
253 <<
"<Signal range_begin=\"" << m_CableStart <<
"\" range_end=\"" << m_CableEnd <<
"\" clock=\"" << m_Clock <<
"\"/>" << endl;
255 indent(xmlfile, indentLevel+1, indentWidth) <<
"</Cable>" << endl;
258 indent(xmlfile, indentLevel, indentWidth)
259 <<
"</TriggerThreshold>" << endl;