ATLAS Offline Software
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
TCS::jEmSort Class Reference

#include <jEmSort.h>

Inheritance diagram for TCS::jEmSort:
Collaboration diagram for TCS::jEmSort:

Public Member Functions

 jEmSort (const std::string &name)
 
virtual ~jEmSort ()
 
virtual TCS::StatusCode initialize () override
 
virtual TCS::StatusCode sort (const InputTOBArray &input, TOBArray &output) override final
 
virtual TCS::StatusCode sortBitCorrect (const InputTOBArray &input, TOBArray &output)
 
bool overflow () const
 whether an overlflow occurred More...
 
SortingAlgsetOverflow (const bool v)
 setter, to propagate bit from input event More...
 
void setClassName (const std::string &className)
 
void setLegacyMode (bool isLegacyTopo)
 
const std::string & name () const
 
const std::string & className () const
 
std::string fullname () const
 
unsigned int algoId () const
 
StatusCode reset ()
 
bool isSortingAlg () const
 
bool isDecisionAlg () const
 
bool isCountingAlg () const
 
bool isLegacyTopo () const
 
unsigned int calcDeltaPhiBW (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcDeltaEtaBW (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcInvMassBW (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcTMassBW (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcDeltaR2BW (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned long quadraticSumBW (int i1, int i2)
 
unsigned int calcDeltaPhi (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcDeltaEta (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcInvMass (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcTMass (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
unsigned int calcDeltaR2 (const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
 
const Parameterparameter (const std::string &parameterName) const
 
const Parameterparameter (const std::string &parameterName, unsigned int selection) const
 
const ParameterSpaceparameters () const
 
void setParameters (const ParameterSpace &)
 
void setAlgoId (unsigned int algoId)
 
void setL1TopoHistSvc (std::shared_ptr< IL1TopoHistSvc >)
 sets the external hist service More...
 
void bookHistMult (std::vector< std::string > &regName, const std::string &name, const std::string &title, const std::string &xtitle, const int binx, const int xmin, const int xmax)
 
void bookHistMult (std::vector< std::string > &regName, const std::string &name, const std::string &title, const std::string &xtitle, const std::string &ytitle, const int binx, const int xmin, const int xmax, const int biny, const int ymin, const int ymax)
 
void bookHist (std::vector< std::string > &regName, const std::string &name, const std::string &title, const int binx, const int xmin, const int xmax)
 
void bookHist (std::vector< std::string > &regName, const std::string &name, const std::string &title, const int binx, const int xmin, const int xmax, const int biny, const int ymin, const int ymax)
 
bool msgLvl (const MSGTC::Level lvl) const
 Test the output level. More...
 
MsgStreamTC & msg () const
 The standard message stream. More...
 
MsgStreamTC & msg (const MSGTC::Level lvl) const
 The standard message stream. More...
 

Protected Types

enum  AlgType { NONE, SORT, DECISION, COUNT }
 

Protected Member Functions

virtual StatusCode doReset ()
 
void defineParameter (const std::string &name, TCS::parType_t value)
 
void defineParameter (const std::string &name, TCS::parType_t value, unsigned int selection)
 
void registerHist (TH1 *)
 
void registerHist (TH2 *)
 
void fillHist1D (const std::string &histName, double x)
 
void fillHist2D (const std::string &histName, double x, double y)
 
bool isocut (const std::string &threshold, const unsigned int bit) const
 
bool isocut (const unsigned int threshold, const unsigned int bit) const
 

Protected Attributes

bool m_overflow
 whether an overflow occurred during the current execution. More...
 

Private Member Functions

void defineParameter (const Parameter &)
 
std::string ToString (const int val)
 

Private Attributes

parType_t m_numberOfJets = { 0 }
 
parType_t m_minEta = { 0 }
 
parType_t m_maxEta = { 0 }
 
parType_t m_iso = { 0 }
 
parType_t m_frac1 = { 0 }
 
parType_t m_frac2 = { 0 }
 
std::unique_ptr< ConfigurableAlgImplm_impl
 
std::string m_name {""}
 
std::string m_className {""}
 
unsigned int m_algoId {0}
 
ParameterSpace m_parameters {""}
 
AlgType m_algType
 
bool m_isLegacyTopo
 
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
 MsgStreamTC instance (a std::cout like with print-out levels) More...
 

Detailed Description

Definition at line 19 of file jEmSort.h.

Member Enumeration Documentation

◆ AlgType

enum TCS::ConfigurableAlg::AlgType
protectedinherited
Enumerator
NONE 
SORT 
DECISION 
COUNT 

Definition at line 32 of file ConfigurableAlg.h.

32 { NONE, SORT, DECISION, COUNT };

Constructor & Destructor Documentation

◆ jEmSort()

TCS::jEmSort::jEmSort ( const std::string &  name)

Definition at line 22 of file jEmSort.cxx.

22  :
24 {
25  defineParameter( "InputWidth", 64 ); // for FW
26  defineParameter( "InputWidth1stStage", 16 ); // for FW
27  defineParameter( "OutputWidth", 10 );
28  defineParameter( "MinEta", 0 );
29  defineParameter( "MaxEta", 196 );
30  defineParameter( "IsoMin", 0 );
31  defineParameter( "Frac1Min", 0 );
32  defineParameter( "Frac2Min", 0 );
33 }

◆ ~jEmSort()

TCS::jEmSort::~jEmSort ( )
virtual

Definition at line 36 of file jEmSort.cxx.

37 {}

Member Function Documentation

◆ algoId()

unsigned int TCS::ConfigurableAlg::algoId ( ) const
inlineinherited

Definition at line 53 of file ConfigurableAlg.h.

53 { return m_algoId; }

◆ bookHist() [1/2]

void ConfigurableAlg::bookHist ( std::vector< std::string > &  regName,
const std::string &  name,
const std::string &  title,
const int  binx,
const int  xmin,
const int  xmax 
)
inherited

Definition at line 270 of file ConfigurableAlg.cxx.

270  {
271  std::string xmin_str = ToString(xmin);
272  std::string xmax_str = ToString(xmax);
273  std::string newTitle = title;
274  std::string newName = name;
275 
276  newTitle = xmin_str+title+xmax_str;
277  newName = name+"_"+xmin_str+title+xmax_str;
278  std::replace( newName.begin(), newName.end(), '-', 'n');
279  std::replace( newName.begin(), newName.end(), ' ', '_');
280 
281  regName.push_back(m_name+"/"+newName);
282 
283  // Add units to axis labels
284  std::string xTitle = title;
285  if (m_isLegacyTopo) {
286  if (title == "ETA" || title == "DETA" || title == "PHI" || title == "DPHI" || title == "DR") { xTitle = title+"#times10"; }
287  if (title == "PT" || title == "ET" || title == "HT" || title == "INVM" || title == "MT") { xTitle = title+" [GeV]"; }
288  }
289  else {
290  if (title == "ETA" || title == "DETA" || title == "DR") { xTitle = title+"#times40"; }
291  if (title == "PHI" || title == "DPHI") { xTitle = title+"#times20"; }
292  if (title == "PT" || title == "ET" || title == "HT" || title == "INVM" || title == "MT") { xTitle = title+" [100 MeV]"; }
293  }
294 
295  int xmin_new,xmax_new,binx_new=binx;
296  if ( xmin > 0.0)
297  { xmin_new=0.0; }
298  else
299  { xmin_new=1.5*xmin; }
300 
301  // if the maximum inv. mass cut defined by the menu over 4000 MeV,
302  // set x-axis range maximum to 4000 MeV. This is only for legacy triggers,
303  // phase1 does not exceed this limit- asonay 08/2022
304  if (xmax > 4000 && m_isLegacyTopo) {
305  xmax_new = 4000;
306  binx_new = 200;
307  }
308  else {xmax_new = 1.5*xmax;}
309 
310  // if angular kinematics, use fixed range
311  int eta_max = 50;
312  int phi_max = 64;
313  int dr_max = 30;
314  if (not m_isLegacyTopo) {
315  eta_max *= 4;
316  phi_max *= 2;
317  dr_max *= 4;
318  }
319 
320  if ( title.find("ETA") != std::string::npos ){
321  xmin_new=-eta_max;
322  xmax_new=eta_max;
323  }
324  if ( title.find("PHI") != std::string::npos || title.find("DPHI") != std::string::npos ){
325  xmin_new=0;
326  xmax_new=phi_max;
327  }
328  if ( title.find("DETA") != std::string::npos || title.find("DR") != std::string::npos ){
329  xmin_new=0;
330  xmax_new=dr_max;
331  }
332 
333  TH1 *h = new TH1F(newName.c_str(), newTitle.c_str(), binx_new, xmin_new, xmax_new);
334  h->GetXaxis()->SetTitle(xTitle.c_str());
335  m_impl->registerHist(h);
336 }

◆ bookHist() [2/2]

void ConfigurableAlg::bookHist ( std::vector< std::string > &  regName,
const std::string &  name,
const std::string &  title,
const int  binx,
const int  xmin,
const int  xmax,
const int  biny,
const int  ymin,
const int  ymax 
)
inherited

Definition at line 347 of file ConfigurableAlg.cxx.

347  {
348  auto usPos = title.find(" vs ");
349  std::string xName = title.substr(0,usPos);
350  std::string yName = title.substr(usPos+4);
351  std::string xmin_str = ToString(xmin);
352  std::string xmax_str = ToString(xmax);
353  std::string ymin_str = ToString(ymin);
354  std::string ymax_str = ToString(ymax);
355  std::string newTitle = title;
356  std::string newName = name;
357 
358  newTitle = xmin_str+xName+xmax_str+" vs "+ymin_str+yName+ymax_str;
359  newName = name+"_"+xmin_str+xName+xmax_str+"_"+ymin_str+yName+ymax_str;
360  std::replace( newName.begin(), newName.end(), '-', 'n');
361  std::replace( newName.begin(), newName.end(), ' ', '_');
362 
363  regName.push_back(m_name+"/"+newName);
364 
365  // Add units to axis labels
366  std::string xTitle = xName;
367  std::string yTitle = yName;
368  if (m_isLegacyTopo) {
369  if (xName == "ETA" || xName == "DETA" || xName == "PHI" || xName == "DPHI" || xName == "DR") { xTitle = xName+"#times10"; }
370  if (xName == "PT" || xName == "ET" || xName == "HT" || xName == "INVM" || xName == "MT") { xTitle = xName+" [GeV]"; }
371 
372  if (yName == "ETA" || yName == "DETA" || yName == "PHI" || yName == "DPHI" || yName == "DR") { yTitle = yName+"#times10"; }
373  if (yName == "PT" || yName == "ET" || yName == "HT" || yName == "INVM" || yName == "MT") { yTitle = yName+" [GeV]"; }
374  }
375  else {
376  if (xName == "ETA" || xName == "DETA" || xName == "DR") { xTitle = xName+"#times40"; }
377  if (xName == "PHI" || xName == "DPHI") { xTitle = xName+"#times20"; }
378  if (xName == "PT" || xName == "ET" || xName == "HT" || xName == "INVM" || xName == "MT") { xTitle = xName+" [100 MeV]"; }
379 
380  if (yName == "ETA" || yName == "DETA" || yName == "DR") { yTitle = yName+"#times40"; }
381  if (yName == "PHI" || yName == "DPHI") { yTitle = yName+"#times20"; }
382  if (yName == "PT" || yName == "ET" || yName == "HT" || yName == "INVM" || yName == "MT") { yTitle = yName+" [100 MeV]"; }
383  }
384 
385  int xmin_new,xmax_new,binx_new=binx;
386  if ( xmin > 0.0)
387  { xmin_new=0.0; }
388  else
389  { xmin_new=1.5*xmin; }
390 
391  // if the maximum inv. mass cut defined by the menu over 4000 MeV,
392  // set x-axis range maximum to 4000 MeV. This is only for legacy triggers,
393  // phase1 does not exceed this limit- asonay 08/2022
394  if (xmax > 4000 && m_isLegacyTopo) {
395  xmax_new = 4000;
396  binx_new = 200;
397  }
398  else {xmax_new = 1.5*xmax;}
399 
400  int ymin_new,ymax_new,biny_new=biny;
401  if ( ymin > 0.0)
402  { ymin_new=0.0; }
403  else
404  { ymin_new=1.5*ymin; }
405 
406  // if the maximum inv. mass cut defined by the menu over 4000 MeV,
407  // set y-axis range maximum to 4000 MeV. This is only for legacy triggers,
408  // phase1 does not exceed this limit- asonay 08/2022
409  if (ymax > 4000 && m_isLegacyTopo) {
410  ymax_new = 4000;
411  biny_new = 200;
412  }
413  else {ymax_new = 1.5*ymax;}
414 
415 
416  // if angular kinematics, use fixed range
417  int eta_max = 50;
418  int phi_max = 64;
419  int dr_max = 30;
420  if (not m_isLegacyTopo) {
421  eta_max *= 4;
422  phi_max *= 2;
423  dr_max *= 4;
424  }
425 
426  if ( xName.find("ETA") != std::string::npos ){
427  xmin_new=-eta_max;
428  xmax_new=eta_max;
429  }
430  if ( yName.find("ETA") != std::string::npos ){
431  ymin_new=-eta_max;
432  ymax_new=eta_max;
433  }
434  if ( xName.find("PHI") != std::string::npos || xName.find("DPHI") != std::string::npos ){
435  xmin_new=0;
436  xmax_new=phi_max;
437  }
438  if ( yName.find("PHI") != std::string::npos || yName.find("DPHI") != std::string::npos ){
439  ymin_new=0;
440  ymax_new=phi_max;
441  }
442  if ( xName.find("DETA") != std::string::npos || xName.find("DR") != std::string::npos ){
443  xmin_new=0;
444  xmax_new=dr_max;
445  }
446  if ( yName.find("DETA") != std::string::npos || yName.find("DR") != std::string::npos ){
447  ymin_new=0;
448  ymax_new=dr_max;
449  }
450 
451  TH2 *h = new TH2F(newName.c_str(), newTitle.c_str(), binx_new, xmin_new, xmax_new, biny_new, ymin_new, ymax_new);
452  h->GetXaxis()->SetTitle(xTitle.c_str());
453  h->GetYaxis()->SetTitle(yTitle.c_str());
454  m_impl->registerHist(h);
455 }

◆ bookHistMult() [1/2]

void ConfigurableAlg::bookHistMult ( std::vector< std::string > &  regName,
const std::string &  name,
const std::string &  title,
const std::string &  xtitle,
const int  binx,
const int  xmin,
const int  xmax 
)
inherited

Definition at line 338 of file ConfigurableAlg.cxx.

338  {
339 
340  regName.push_back(m_name+"/"+name);
341 
342  TH1 *h = new TH1F(name.c_str(), title.c_str(), binx, xmin, xmax);
343  h->GetXaxis()->SetTitle(xtitle.c_str());
344  m_impl->registerHist(h);
345 }

◆ bookHistMult() [2/2]

void ConfigurableAlg::bookHistMult ( std::vector< std::string > &  regName,
const std::string &  name,
const std::string &  title,
const std::string &  xtitle,
const std::string &  ytitle,
const int  binx,
const int  xmin,
const int  xmax,
const int  biny,
const int  ymin,
const int  ymax 
)
inherited

Definition at line 457 of file ConfigurableAlg.cxx.

457  {
458 
459  regName.push_back(m_name+"/"+name);
460 
461  TH2 *h = new TH2F(name.c_str(), title.c_str(), binx, xmin, xmax, biny, ymin, ymax);
462  h->GetXaxis()->SetTitle(xtitle.c_str());
463  h->GetYaxis()->SetTitle(ytitle.c_str());
464  m_impl->registerHist(h);
465 }

◆ calcDeltaEta()

unsigned int ConfigurableAlg::calcDeltaEta ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 173 of file ConfigurableAlg.cxx.

173  {
174  if (m_isLegacyTopo)
175  {return TSU::Kinematics::calcDeltaEtaLegacy(tob1,tob2);}
176  else
177  {return TSU::Kinematics::calcDeltaEta(tob1,tob2);}
178 }

◆ calcDeltaEtaBW()

unsigned int ConfigurableAlg::calcDeltaEtaBW ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 128 of file ConfigurableAlg.cxx.

128  {
129  if (m_isLegacyTopo)
130  {return TSU::Kinematics::calcDeltaEtaBWLegacy(tob1,tob2);}
131  else
132  {return TSU::Kinematics::calcDeltaEtaBW(tob1,tob2);}
133 }

◆ calcDeltaPhi()

unsigned int ConfigurableAlg::calcDeltaPhi ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 165 of file ConfigurableAlg.cxx.

165  {
166  if (m_isLegacyTopo)
167  {return TSU::Kinematics::calcDeltaPhiLegacy(tob1,tob2);}
168  else
169  {return TSU::Kinematics::calcDeltaPhi(tob1,tob2);}
170 }

◆ calcDeltaPhiBW()

unsigned int ConfigurableAlg::calcDeltaPhiBW ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 120 of file ConfigurableAlg.cxx.

120  {
121  if (m_isLegacyTopo)
122  {return TSU::Kinematics::calcDeltaPhiBWLegacy(tob1,tob2);}
123  else
124  {return TSU::Kinematics::calcDeltaPhiBW(tob1,tob2);}
125 }

◆ calcDeltaR2()

unsigned int ConfigurableAlg::calcDeltaR2 ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 191 of file ConfigurableAlg.cxx.

191  {
192  if (m_isLegacyTopo)
193  {return TSU::Kinematics::calcDeltaR2Legacy(tob1,tob2);}
194  else
195  {return TSU::Kinematics::calcDeltaR2(tob1,tob2);}
196 }

◆ calcDeltaR2BW()

unsigned int ConfigurableAlg::calcDeltaR2BW ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 152 of file ConfigurableAlg.cxx.

152  {
153  if (m_isLegacyTopo)
154  {return TSU::Kinematics::calcDeltaR2BWLegacy(tob1,tob2);}
155  else
156  {return TSU::Kinematics::calcDeltaR2BW(tob1,tob2);}
157 }

◆ calcInvMass()

unsigned int ConfigurableAlg::calcInvMass ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 181 of file ConfigurableAlg.cxx.

181  {
182  return TSU::Kinematics::calcInvMass(tob1,tob2);
183 }

◆ calcInvMassBW()

unsigned int ConfigurableAlg::calcInvMassBW ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 136 of file ConfigurableAlg.cxx.

136  {
137  if (m_isLegacyTopo)
138  {return TSU::Kinematics::calcInvMassBWLegacy(tob1,tob2);}
139  else
140  {return TSU::Kinematics::calcInvMassBW(tob1,tob2);}
141 }

◆ calcTMass()

unsigned int ConfigurableAlg::calcTMass ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 186 of file ConfigurableAlg.cxx.

186  {
187  return TSU::Kinematics::calcTMass(tob1,tob2);
188 }

◆ calcTMassBW()

unsigned int ConfigurableAlg::calcTMassBW ( const TCS::GenericTOB tob1,
const TCS::GenericTOB tob2 
)
inherited

Definition at line 144 of file ConfigurableAlg.cxx.

144  {
145  if (m_isLegacyTopo)
146  {return TSU::Kinematics::calcTMassBWLegacy(tob1,tob2);}
147  else
148  {return TSU::Kinematics::calcTMassBW(tob1,tob2);}
149 }

◆ className()

const std::string& TCS::ConfigurableAlg::className ( ) const
inlineinherited

Definition at line 49 of file ConfigurableAlg.h.

49 { return m_className; }

◆ defineParameter() [1/3]

void ConfigurableAlg::defineParameter ( const Parameter parameter)
privateinherited

Definition at line 213 of file ConfigurableAlg.cxx.

213  {
215  TCS_EXCEPTION("Duplicate parameter definition '" << parameter.name() << "' for algorithm '" << name() << "'");
216  }
218 }

◆ defineParameter() [2/3]

void ConfigurableAlg::defineParameter ( const std::string &  name,
TCS::parType_t  value 
)
protectedinherited

Definition at line 201 of file ConfigurableAlg.cxx.

201  {
203 }

◆ defineParameter() [3/3]

void ConfigurableAlg::defineParameter ( const std::string &  name,
TCS::parType_t  value,
unsigned int  selection 
)
protectedinherited

Definition at line 207 of file ConfigurableAlg.cxx.

207  {
209 }

◆ doReset()

TCS::StatusCode TCS::SortingAlg::doReset ( )
protectedvirtualinherited

Implements TCS::ConfigurableAlg.

Definition at line 12 of file SortingAlg.cxx.

12  {
13  m_overflow = false;
14  return StatusCode::SUCCESS;
15 }

◆ fillHist1D()

void ConfigurableAlg::fillHist1D ( const std::string &  histName,
double  x 
)
protectedinherited

Definition at line 467 of file ConfigurableAlg.cxx.

467  {
468  m_impl->fillHist1D(histName,x);
469 }

◆ fillHist2D()

void ConfigurableAlg::fillHist2D ( const std::string &  histName,
double  x,
double  y 
)
protectedinherited

Definition at line 471 of file ConfigurableAlg.cxx.

471  {
472  m_impl->fillHist2D(histName,x,y);
473 }

◆ fullname()

std::string TCS::ConfigurableAlg::fullname ( ) const
inlineinherited

Definition at line 50 of file ConfigurableAlg.h.

50 { return m_className + "/" + m_name; }

◆ initialize()

TCS::StatusCode TCS::jEmSort::initialize ( )
overridevirtual

Reimplemented from TCS::ConfigurableAlg.

Definition at line 42 of file jEmSort.cxx.

42  {
43  m_numberOfJets = parameter("OutputWidth").value();
44  m_minEta = parameter("MinEta").value();
45  m_maxEta = parameter("MaxEta").value();
46  m_iso = parameter("IsoMin").value();
47  m_frac1 = parameter("Frac1Min").value();
48  m_frac2 = parameter("Frac2Min").value();
50 }

◆ isCountingAlg()

bool TCS::ConfigurableAlg::isCountingAlg ( ) const
inlineinherited

Definition at line 64 of file ConfigurableAlg.h.

64 { return m_algType == COUNT; }

◆ isDecisionAlg()

bool TCS::ConfigurableAlg::isDecisionAlg ( ) const
inlineinherited

Definition at line 62 of file ConfigurableAlg.h.

62 { return m_algType == DECISION; }

◆ isLegacyTopo()

bool TCS::ConfigurableAlg::isLegacyTopo ( ) const
inlineinherited

Definition at line 66 of file ConfigurableAlg.h.

66 { return m_isLegacyTopo; }

◆ isocut() [1/2]

bool ConfigurableAlg::isocut ( const std::string &  threshold,
const unsigned int  bit 
) const
protectedinherited

Definition at line 484 of file ConfigurableAlg.cxx.

484  {
485  unsigned int value = 0;
486  if (threshold == "None") {value = 0;}
487  else if (threshold == "Loose") {value = 1;}
488  else if (threshold == "Medium") {value = 2;}
489  else if (threshold == "HadMedium") {value = 2;}
490  else if (threshold == "Tight") {value = 3;}
491  else {
492  TRG_MSG_WARNING("No isolation defined as " << threshold);
493  }
494 
495  if (bit >= value) {return true;}
496  else {return false;}
497 }

◆ isocut() [2/2]

bool ConfigurableAlg::isocut ( const unsigned int  threshold,
const unsigned int  bit 
) const
protectedinherited

Definition at line 500 of file ConfigurableAlg.cxx.

500  {
501  if (bit >= threshold) {return true;}
502  else {return false;}
503 }

◆ isSortingAlg()

bool TCS::ConfigurableAlg::isSortingAlg ( ) const
inlineinherited

Definition at line 60 of file ConfigurableAlg.h.

60 { return m_algType == SORT; }

◆ msg() [1/2]

MsgStreamTC & TrigConf::TrigConfMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 81 of file TrigConfMessaging.h.

82  {
83  MsgStreamTC* ms = m_msg_tls.get();
84  if (!ms) {
85  ms = new MsgStreamTC(m_name);
86  m_msg_tls.reset(ms);
87  }
88  return *ms;
89  }

◆ msg() [2/2]

MsgStreamTC & TrigConf::TrigConfMessaging::msg ( const MSGTC::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 91 of file TrigConfMessaging.h.

92  {
93  return msg() << lvl;
94  }

◆ msgLvl()

bool TrigConf::TrigConfMessaging::msgLvl ( const MSGTC::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicting if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 70 of file TrigConfMessaging.h.

71  {
72  if (msg().level() <= lvl) {
73  msg() << lvl;
74  return true;
75  }
76  else {
77  return false;
78  }
79  }

◆ name()

const std::string& TCS::ConfigurableAlg::name ( ) const
inlineinherited

Definition at line 48 of file ConfigurableAlg.h.

48 { return m_name; }

◆ overflow()

bool TCS::SortingAlg::overflow ( ) const
inlineinherited

whether an overlflow occurred

In practice propagate the overflow bits from the input collections

Definition at line 35 of file SortingAlg.h.

35 { return m_overflow; }

◆ parameter() [1/2]

const TCS::Parameter & ConfigurableAlg::parameter ( const std::string &  parameterName) const
inherited

Definition at line 243 of file ConfigurableAlg.cxx.

243  {
244  return parameters().parameter(parameterName);
245 }

◆ parameter() [2/2]

const TCS::Parameter & ConfigurableAlg::parameter ( const std::string &  parameterName,
unsigned int  selection 
) const
inherited

Definition at line 249 of file ConfigurableAlg.cxx.

249  {
250  return parameters().parameter(parameterName, selection);
251 }

◆ parameters()

const ParameterSpace& TCS::ConfigurableAlg::parameters ( ) const
inlineinherited

Definition at line 87 of file ConfigurableAlg.h.

87 { return m_parameters; }

◆ quadraticSumBW()

unsigned long ConfigurableAlg::quadraticSumBW ( int  i1,
int  i2 
)
inherited

Definition at line 160 of file ConfigurableAlg.cxx.

160  {
161  return TSU::Kinematics::quadraticSumBW(i1, i2);
162 }

◆ registerHist() [1/2]

void ConfigurableAlg::registerHist ( TH1 h)
protectedinherited

Definition at line 262 of file ConfigurableAlg.cxx.

262  {
263  m_impl->registerHist(h);
264 }

◆ registerHist() [2/2]

void ConfigurableAlg::registerHist ( TH2 h)
protectedinherited

Definition at line 266 of file ConfigurableAlg.cxx.

266  {
267  m_impl->registerHist(h);
268 }

◆ reset()

StatusCode TCS::ConfigurableAlg::reset ( )
inlineinherited

Definition at line 58 of file ConfigurableAlg.h.

58 { return doReset(); }

◆ setAlgoId()

void TCS::ConfigurableAlg::setAlgoId ( unsigned int  algoId)
inlineinherited

Definition at line 93 of file ConfigurableAlg.h.

93 { m_algoId = algoId; }

◆ setClassName()

void TCS::ConfigurableAlg::setClassName ( const std::string &  className)
inlineinherited

Definition at line 43 of file ConfigurableAlg.h.

◆ setL1TopoHistSvc()

void ConfigurableAlg::setL1TopoHistSvc ( std::shared_ptr< IL1TopoHistSvc histSvc)
inherited

sets the external hist service

forwarding public interface

Definition at line 258 of file ConfigurableAlg.cxx.

258  {
259  m_impl->setL1TopoHistSvc(histSvc);
260 }

◆ setLegacyMode()

void TCS::ConfigurableAlg::setLegacyMode ( bool  isLegacyTopo)
inlineinherited

Definition at line 45 of file ConfigurableAlg.h.

◆ setOverflow()

SortingAlg& TCS::SortingAlg::setOverflow ( const bool  v)
inlineinherited

setter, to propagate bit from input event

Definition at line 37 of file SortingAlg.h.

37 { m_overflow = v; return *this; }

◆ setParameters()

void ConfigurableAlg::setParameters ( const ParameterSpace parameters)
inherited

Definition at line 222 of file ConfigurableAlg.cxx.

222  {
223 
224  // check if parameterspace is for this algorithm
225  if(name() != parameters.algName()) {
226  TCS_EXCEPTION("Name of parameter set (" << parameters.algName() << ") do not match configurable name (" << name() << ")" );
227  }
228 
229  // copy parameters
230  for(const Parameter & p : parameters) {
231  try {
233  }
234  catch(const TCS::Exception& e) {
235  TCS_EXCEPTION("Algorithm configuration failed for " << name() << "! Caught exception: " << e.what());
236  }
237  }
238 }

◆ sort()

TCS::StatusCode TCS::jEmSort::sort ( const InputTOBArray input,
TOBArray output 
)
finaloverridevirtual

Implements TCS::SortingAlg.

Definition at line 54 of file jEmSort.cxx.

54  {
55 
56  const jEmTOBArray & jets = dynamic_cast<const jEmTOBArray&>(input);
57 
58  // fill output array with GenericTOBs builds from jets
59  for(jEmTOBArray::const_iterator jet = jets.begin(); jet!= jets.end(); ++jet ) {
60  // Isolation cuts
61  if ( !isocut(m_iso, (*jet)-> isolation()) ) continue;
62  if ( !isocut(m_frac1, (*jet)-> frac1()) ) continue;
63  if ( !isocut(m_frac2, (*jet)-> frac2()) ) continue;
64  // Eta cut
65  if ( parType_t(std::abs((*jet)-> eta())) < m_minEta ) continue;
66  if ( parType_t(std::abs((*jet)-> eta())) > m_maxEta ) continue;
67 
68  output.push_back( GenericTOB(**jet) );
69  }
70 
71  // sort
73 
74  // keep only max number of jets
75  int par = m_numberOfJets;
76  unsigned int maxNumberOfJets = std::clamp(par, 0, std::abs(par));
77  if(maxNumberOfJets>0) {
78  while( output.size()> maxNumberOfJets ) {
79  if (output.size() == (maxNumberOfJets+1)) {
80  bool isAmbiguous = output[maxNumberOfJets-1].EtDouble() == output[maxNumberOfJets].EtDouble();
81  if (isAmbiguous) { output.setAmbiguityFlag(true); }
82  }
83  output.pop_back();
84  }
85  }
87 }

◆ sortBitCorrect()

TCS::StatusCode TCS::SortingAlg::sortBitCorrect ( const InputTOBArray input,
TOBArray output 
)
virtualinherited

Reimplemented in TCS::MetSort, and TCS::jXESort.

Definition at line 17 of file SortingAlg.cxx.

18 {
19  return sort(input, output);
20 }

◆ ToString()

std::string ConfigurableAlg::ToString ( const int  val)
privateinherited

Definition at line 475 of file ConfigurableAlg.cxx.

476 {
477  const int val_int = static_cast<int>(val);
478  std::ostringstream temp;
479  temp << val_int;
480  return temp.str();
481 }

Member Data Documentation

◆ m_algoId

unsigned int TCS::ConfigurableAlg::m_algoId {0}
privateinherited

Definition at line 138 of file ConfigurableAlg.h.

◆ m_algType

AlgType TCS::ConfigurableAlg::m_algType
privateinherited

Definition at line 142 of file ConfigurableAlg.h.

◆ m_className

std::string TCS::ConfigurableAlg::m_className {""}
privateinherited

Definition at line 135 of file ConfigurableAlg.h.

◆ m_frac1

parType_t TCS::jEmSort::m_frac1 = { 0 }
private

Definition at line 35 of file jEmSort.h.

◆ m_frac2

parType_t TCS::jEmSort::m_frac2 = { 0 }
private

Definition at line 36 of file jEmSort.h.

◆ m_impl

std::unique_ptr<ConfigurableAlgImpl> TCS::ConfigurableAlg::m_impl
privateinherited

Definition at line 129 of file ConfigurableAlg.h.

◆ m_isLegacyTopo

bool TCS::ConfigurableAlg::m_isLegacyTopo
privateinherited

Definition at line 144 of file ConfigurableAlg.h.

◆ m_iso

parType_t TCS::jEmSort::m_iso = { 0 }
private

Definition at line 34 of file jEmSort.h.

◆ m_maxEta

parType_t TCS::jEmSort::m_maxEta = { 0 }
private

Definition at line 33 of file jEmSort.h.

◆ m_minEta

parType_t TCS::jEmSort::m_minEta = { 0 }
private

Definition at line 32 of file jEmSort.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStreamTC> TrigConf::TrigConfMessaging::m_msg_tls
mutableprivateinherited

MsgStreamTC instance (a std::cout like with print-out levels)

Definition at line 66 of file TrigConfMessaging.h.

◆ m_name

std::string TCS::ConfigurableAlg::m_name {""}
privateinherited

Definition at line 134 of file ConfigurableAlg.h.

◆ m_numberOfJets

parType_t TCS::jEmSort::m_numberOfJets = { 0 }
private

Definition at line 31 of file jEmSort.h.

◆ m_overflow

bool TCS::SortingAlg::m_overflow
protectedinherited

whether an overflow occurred during the current execution.

Definition at line 42 of file SortingAlg.h.

◆ m_parameters

ParameterSpace TCS::ConfigurableAlg::m_parameters {""}
privateinherited

Definition at line 140 of file ConfigurableAlg.h.


The documentation for this class was generated from the following files:
TCS::ConfigurableAlg::SORT
@ SORT
Definition: ConfigurableAlg.h:32
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
temp
Definition: JetEventDict.h:21
TSU::Kinematics::calcTMassBW
static unsigned int calcTMassBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:122
TCS::ConfigurableAlg::className
const std::string & className() const
Definition: ConfigurableAlg.h:49
TCS::Parameter
Definition: Parameter.h:24
TSU::Kinematics::calcDeltaR2BWLegacy
static unsigned int calcDeltaR2BWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:62
ymin
double ymin
Definition: listroot.cxx:63
TSU::Kinematics::calcInvMass
static unsigned int calcInvMass(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:244
TSU::Kinematics::calcTMass
static unsigned int calcTMass(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:256
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::ParameterSpace::parameter
const Parameter & parameter(const std::string &parameterName) const
Definition: ParameterSpace.cxx:101
TSU::Kinematics::calcDeltaPhiBW
static unsigned int calcDeltaPhiBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:82
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TCS::ConfigurableAlg::m_name
std::string m_name
Definition: ConfigurableAlg.h:134
TCS::parType_t
uint32_t parType_t
Definition: Parameter.h:22
AddEmptyComponent.histName
string histName
Definition: AddEmptyComponent.py:64
TCS::DataArrayImpl< jEmTOB >::const_iterator
data_t::const_iterator const_iterator
Definition: DataArrayImpl.h:18
TCS::ConfigurableAlg::parameters
const ParameterSpace & parameters() const
Definition: ConfigurableAlg.h:87
TCS::ParameterSpace::addParameter
ParameterSpace & addParameter(const Parameter &p)
Definition: ParameterSpace.cxx:29
TrigConf::TrigConfMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)
Definition: TrigConfMessaging.h:66
TCS::ConfigurableAlg::m_impl
std::unique_ptr< ConfigurableAlgImpl > m_impl
Definition: ConfigurableAlg.h:128
TCS::SortingAlg::m_overflow
bool m_overflow
whether an overflow occurred during the current execution.
Definition: SortingAlg.h:42
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
TCS::Parameter::name
const std::string & name() const
Definition: Parameter.h:33
TCS::jEmSort::m_frac2
parType_t m_frac2
Definition: jEmSort.h:36
TCS::ConfigurableAlg::ToString
std::string ToString(const int val)
Definition: ConfigurableAlg.cxx:475
TCS::ConfigurableAlg::isLegacyTopo
bool isLegacyTopo() const
Definition: ConfigurableAlg.h:66
TCS::SortingAlg::SortingAlg
SortingAlg(const std::string &name)
Definition: SortingAlg.h:21
TSU::Kinematics::calcDeltaPhi
static unsigned int calcDeltaPhi(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:231
athena.value
value
Definition: athena.py:122
TSU::Kinematics::calcInvMassBWLegacy
static unsigned int calcInvMassBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:34
TSU::Kinematics::calcDeltaEtaBWLegacy
static unsigned int calcDeltaEtaBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:29
plotting.yearwise_luminosity.ytitle
string ytitle
Definition: yearwise_luminosity.py:76
TSU::Kinematics::calcDeltaR2BW
static unsigned int calcDeltaR2BW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:131
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
x
#define x
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
TCS::ConfigurableAlg::parameter
const Parameter & parameter(const std::string &parameterName) const
Definition: ConfigurableAlg.cxx:243
TSU::Kinematics::calcDeltaEtaBW
static unsigned int calcDeltaEtaBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:92
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
TSU::Kinematics::calcDeltaR2Legacy
static unsigned int calcDeltaR2Legacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:222
TCS::Parameter::selection
unsigned int selection() const
Definition: Parameter.h:34
SortByEtLargestjEm
bool SortByEtLargestjEm(TCS::GenericTOB *tob1, TCS::GenericTOB *tob2)
Definition: jEmSort.cxx:16
TSU::Kinematics::calcDeltaR2
static unsigned int calcDeltaR2(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:266
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
TCS::ConfigurableAlg::m_isLegacyTopo
bool m_isLegacyTopo
Definition: ConfigurableAlg.h:144
TSU::Kinematics::calcDeltaPhiBWLegacy
static unsigned int calcDeltaPhiBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:19
TCS::ConfigurableAlg::doReset
virtual StatusCode doReset()=0
TCS::Exception
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:21
TrigConf::TrigConfMessaging::m_name
std::string m_name
Definition: TrigConfMessaging.h:67
TCS::ConfigurableAlg::name
const std::string & name() const
Definition: ConfigurableAlg.h:48
TCS::ConfigurableAlg::m_algType
AlgType m_algType
Definition: ConfigurableAlg.h:142
xmin
double xmin
Definition: listroot.cxx:60
h
TCS::ConfigurableAlg::NONE
@ NONE
Definition: ConfigurableAlg.h:32
TCS::ParameterSpace::setParameter
ParameterSpace & setParameter(const Parameter &p)
Definition: ParameterSpace.cxx:49
TrigConf::TrigConfMessaging::msg
MsgStreamTC & msg() const
The standard message stream.
Definition: TrigConfMessaging.h:81
TSU::Kinematics::calcDeltaEtaLegacy
static unsigned int calcDeltaEtaLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:217
TCS::ConfigurableAlg::defineParameter
void defineParameter(const std::string &name, TCS::parType_t value)
Definition: ConfigurableAlg.cxx:201
covarianceTool.title
title
Definition: covarianceTool.py:542
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
contains
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition: hcg.cxx:111
MuonSegmentReaderConfig.histSvc
histSvc
Definition: MuonSegmentReaderConfig.py:96
TCS::ConfigurableAlg::isocut
bool isocut(const std::string &threshold, const unsigned int bit) const
Definition: ConfigurableAlg.cxx:484
TSU::Kinematics::calcInvMassBW
static unsigned int calcInvMassBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:97
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:14
selection
std::string selection
Definition: fbtTestBasics.cxx:73
TCS::jEmSort::m_iso
parType_t m_iso
Definition: jEmSort.h:34
merge.output
output
Definition: merge.py:17
TRG_MSG_WARNING
#define TRG_MSG_WARNING(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:28
TSU::Kinematics::quadraticSumBW
static unsigned long quadraticSumBW(int i1, int i2)
compute the sum in quadrature of two ints
Definition: Kinematics.cxx:146
TCS::ConfigurableAlg::m_algoId
unsigned int m_algoId
Definition: ConfigurableAlg.h:138
TSU::Kinematics::calcDeltaPhiLegacy
static unsigned int calcDeltaPhiLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:209
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
threshold
Definition: chainparser.cxx:74
MakeNewFileFromOldAndSubstitution.newName
dictionary newName
Definition: ICHEP2016/MakeNewFileFromOldAndSubstitution.py:95
TCS::ConfigurableAlg::m_className
std::string m_className
Definition: ConfigurableAlg.h:135
python.PyAthena.v
v
Definition: PyAthena.py:157
TSU::Kinematics::calcTMassBWLegacy
static unsigned int calcTMassBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:53
TCS::ConfigurableAlg::COUNT
@ COUNT
Definition: ConfigurableAlg.h:32
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
TCS::SortingAlg::sort
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output)=0
y
#define y
TCS::jEmSort::m_frac1
parType_t m_frac1
Definition: jEmSort.h:35
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
plotting.yearwise_efficiency.xtitle
string xtitle
Definition: yearwise_efficiency.py:38
TSU::Kinematics::calcDeltaEta
static unsigned int calcDeltaEta(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
Definition: Kinematics.cxx:239
TCS::jEmSort::m_maxEta
parType_t m_maxEta
Definition: jEmSort.h:33
xmax
double xmax
Definition: listroot.cxx:61
TCS::ParameterSpace::algName
const std::string & algName() const
Definition: ParameterSpace.h:36
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
TCS::jEmSort::m_numberOfJets
parType_t m_numberOfJets
Definition: jEmSort.h:31
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
TCS::Parameter::value
parType_t value() const
Definition: Parameter.h:35
TCS::ConfigurableAlg::DECISION
@ DECISION
Definition: ConfigurableAlg.h:32
TCS::jEmSort::m_minEta
parType_t m_minEta
Definition: jEmSort.h:32
TCS::ConfigurableAlg::m_parameters
ParameterSpace m_parameters
Definition: ConfigurableAlg.h:140
ymax
double ymax
Definition: listroot.cxx:64
TCS::ConfigurableAlg::algoId
unsigned int algoId() const
Definition: ConfigurableAlg.h:53