ATLAS Offline Software
Loading...
Searching...
No Matches
TCS::cTauMultiplicity Class Reference

#include <cTauMultiplicity.h>

Inheritance diagram for TCS::cTauMultiplicity:
Collaboration diagram for TCS::cTauMultiplicity:

Public Member Functions

 cTauMultiplicity (const std::string &name)
virtual ~cTauMultiplicity ()=default
virtual StatusCode initialize () override
virtual StatusCode processBitCorrect (const TCS::InputTOBArray &input, Count &count) override final
virtual StatusCode process (const TCS::InputTOBArray &input, Count &count) override final
unsigned int numberOutputBits () const
void setNumberOutputBits (unsigned int numberOutputBits)
void setThreshold (const TrigConf::L1Threshold &thr)
const TrigConf::L1ThresholdgetThreshold ()
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
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.
MsgStreamTC & msg () const
 The standard message stream.
MsgStreamTC & msg (const MSGTC::Level lvl) const
 The standard message stream.
const std::string & getName () const
 name accessor

Static Public Member Functions

static size_t cTauMatching (const xAOD::eFexTauRoI &eTau, const xAOD::jFexTauRoIContainer &jTauRoIs)
static bool cTauMatching (const xAOD::eFexTauRoI &eTau, const xAOD::jFexTauRoI &jTau)
static bool checkIsolationWP (const xAOD::eFexTauRoI &eTau, const xAOD::jFexTauRoI &jTau, const TrigConf::L1Threshold_cTAU &thr)
static bool checkeTAUWP (const xAOD::eFexTauRoI &eTau, const TrigConf::L1Threshold_cTAU &thr)

Protected Types

enum  AlgType { NONE , SORT , DECISION , COUNT }

Protected Member Functions

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

std::vector< std::string > m_histAccept

Private Types

using WP = TrigConf::Selection::WP

Private Member Functions

bool checkIsolationWP (const TCS::cTauTOB *etauCand, const TCS::cTauTOB *jtauCand) const
bool checkeTAUWP (const TCS::cTauTOB *etauCand) const
bool cTauMatching (const TCS::cTauTOB *etauCand, const TCS::cTauTOB *jtauCand) const
virtual StatusCode doReset ()
void defineParameter (const Parameter &)
std::string ToString (const int val)

Private Attributes

const TrigConf::L1Threshold_cTAUm_threshold {nullptr}
std::shared_ptr< TrigConf::L1ThrExtraInfo_cTAUm_extraInfo
std::vector< std::string > m_histcTauEt
std::vector< std::string > m_histcTauPhiEta
std::vector< std::string > m_histcTauEtEta
std::vector< std::string > m_histcTauIsoFraction
std::vector< std::string > m_histcTauIsoMatchedPass
unsigned int m_numberOutputBits {1}
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)

Detailed Description

Definition at line 28 of file cTauMultiplicity.h.

Member Typedef Documentation

◆ WP

Definition at line 68 of file cTauMultiplicity.h.

Member Enumeration Documentation

◆ AlgType

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

Definition at line 32 of file ConfigurableAlg.h.

Constructor & Destructor Documentation

◆ cTauMultiplicity()

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

Definition at line 23 of file cTauMultiplicity.cxx.

23 : CountingAlg(name) {
24 setNumberOutputBits(12); //To-Do: Make this flexible to adapt to the menu. Each counting requires more than one bit
25}
const std::string & name() const
CountingAlg(const std::string &name)
Definition CountingAlg.h:28
void setNumberOutputBits(unsigned int numberOutputBits)
Definition CountingAlg.h:41

◆ ~cTauMultiplicity()

virtual TCS::cTauMultiplicity::~cTauMultiplicity ( )
virtualdefault

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}
std::string ToString(const int val)
std::unique_ptr< ConfigurableAlgImpl > m_impl
double xmax
Definition listroot.cxx:61
double xmin
Definition listroot.cxx:60
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)

◆ 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}
double ymin
Definition listroot.cxx:63
double ymax
Definition listroot.cxx:64
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)

◆ 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}
static unsigned int calcDeltaEta(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcDeltaEtaLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcDeltaEtaBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcDeltaEtaBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcDeltaPhi(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcDeltaPhiLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcDeltaPhiBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcDeltaPhiBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcDeltaR2Legacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcDeltaR2(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcDeltaR2BW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcDeltaR2BWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcInvMass(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcInvMassBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcInvMassBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcTMass(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ 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}
static unsigned int calcTMassBWLegacy(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)
static unsigned int calcTMassBW(const TCS::GenericTOB *tob1, const TCS::GenericTOB *tob2)

◆ checkeTAUWP() [1/2]

bool TCS::cTauMultiplicity::checkeTAUWP ( const TCS::cTauTOB * etauCand) const
private

Definition at line 148 of file cTauMultiplicity.cxx.

148 {
149 if(m_threshold->isolation() == WP::NONE) return true;
150 auto iso_wp = m_extraInfo->isolation(m_threshold->isolation(), etauCand->etaDouble());
151 return etauCand->RCore() >= iso_wp.eTAU_rCoreMin_WP_fw() && etauCand->RHad() >= iso_wp.eTAU_rHadMin_WP_fw();
152}
std::shared_ptr< TrigConf::L1ThrExtraInfo_cTAU > m_extraInfo
const TrigConf::L1Threshold_cTAU * m_threshold
unsigned int RCore() const
Definition cTauTOB.h:41
double etaDouble() const
Definition cTauTOB.h:38
unsigned int RHad() const
Definition cTauTOB.h:42

◆ checkeTAUWP() [2/2]

bool TCS::cTauMultiplicity::checkeTAUWP ( const xAOD::eFexTauRoI & eTau,
const TrigConf::L1Threshold_cTAU & thr )
static

Definition at line 249 of file cTauMultiplicity.cxx.

249 {
250 if(thr.isolation() == WP::NONE) return true;
251 auto iso_wp = thr.getExtraInfo()->isolation(thr.isolation(), eTau.eta());
252 return eTau.tauOneThresholds() >= iso_wp.eTAU_rCoreMin_WP_fw() && eTau.tauTwoThresholds() >= iso_wp.eTAU_rHadMin_WP_fw();
253}
unsigned int tauOneThresholds() const
Tau Condition 1 (generic) results.
float eta() const
setter for the above
unsigned int tauTwoThresholds() const
Tau Condition 2 (generic) results.

◆ checkIsolationWP() [1/2]

bool TCS::cTauMultiplicity::checkIsolationWP ( const TCS::cTauTOB * etauCand,
const TCS::cTauTOB * jtauCand ) const
private

Definition at line 141 of file cTauMultiplicity.cxx.

141 {
142 if(m_threshold->isolation() == WP::NONE) return true;
143 auto iso_wp = m_extraInfo->isolation(m_threshold->isolation(), etauCand->etaDouble());
144 return jtauCand->EtIso()*1024 + jtauCand->Et()*iso_wp.isolation_jTAUCoreScale_fw() < etauCand->Et()*iso_wp.isolation_fw();
145}
unsigned int Et() const
Definition cTauTOB.h:33
unsigned int EtIso() const
Definition cTauTOB.h:44

◆ checkIsolationWP() [2/2]

bool TCS::cTauMultiplicity::checkIsolationWP ( const xAOD::eFexTauRoI & eTau,
const xAOD::jFexTauRoI & jTau,
const TrigConf::L1Threshold_cTAU & thr )
static

Definition at line 242 of file cTauMultiplicity.cxx.

242 {
243 if(thr.isolation() == WP::NONE) return true;
244 auto iso_wp = thr.getExtraInfo()->isolation(thr.isolation(), eTau.eta());
245 return jTau.tobIso()*2*1024 + jTau.tobEt()*2*iso_wp.isolation_jTAUCoreScale_fw() < eTau.etTOB()*iso_wp.isolation_fw();
246}
unsigned int etTOB() const
Cluster ET (TOB ET scale, 100 MeV/count)
uint16_t tobIso() const
uint16_t tobEt() const

◆ className()

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

Definition at line 49 of file ConfigurableAlg.h.

49{ return m_className; }

◆ cTauMatching() [1/3]

bool TCS::cTauMultiplicity::cTauMatching ( const TCS::cTauTOB * etauCand,
const TCS::cTauTOB * jtauCand ) const
private

Definition at line 155 of file cTauMultiplicity.cxx.

155 {
156
157 bool matching = false;
158
159 // Matching is done comparing eta_tower and phi_tower (granularity = 0.1)
160 // These coordinates represent the lower edge of the towers (both for eFEX and jFEX)
161
162 // eTau eta = 4*eta_tower + seed, eta from -25 to 24
163 int eTauEtaTower;
164 if(etauCand->eta()%4 >= 0 ) eTauEtaTower = etauCand->eta() - etauCand->eta()%4;
165 else eTauEtaTower = etauCand->eta() - etauCand->eta()%4 - 4;
166 int jTauEtaTower;
167 if (jtauCand->eta()%4 >= 0 ) jTauEtaTower = jtauCand->eta() - jtauCand->eta()%4;
168 else jTauEtaTower = jtauCand->eta() - jtauCand->eta()%4 - 4;
169
170 //int jTauEtaTower = jtauCand->eta(); // jTau eta = 4*eta_tower
171 unsigned int eTauPhiTower = etauCand->phi() >> 1; // eTau phi = 2*phi_tower
172 unsigned int jTauPhiTower = jtauCand->phi() >> 1; // jTau phi = 2*phi_tower + 1 (jTau coordinates are at center of tower)
173
174 matching = (eTauEtaTower == jTauEtaTower) && (eTauPhiTower == jTauPhiTower);
175
176 return matching;
177
178}
int eta() const
Definition cTauTOB.h:34
unsigned int phi() const
Definition cTauTOB.h:35

◆ cTauMatching() [2/3]

bool TCS::cTauMultiplicity::cTauMatching ( const xAOD::eFexTauRoI & eTau,
const xAOD::jFexTauRoI & jTau )
static

Definition at line 219 of file cTauMultiplicity.cxx.

219 {
220
221 // eFEX: etaTower = iEta, phiTower = iPhi
222 // jFEX: etaTower = globalEta, phiTower = globalPhi
223
224 int eTauEtaTower;
225 if(eTau.iEtaTopo()%4 >= 0 ) eTauEtaTower = eTau.iEtaTopo() - eTau.iEtaTopo()%4;
226 else eTauEtaTower = eTau.iEtaTopo() - eTau.iEtaTopo()%4 - 4;
227
228 int jTauEtaTopo = TSU::toTopoEta(jTau.eta());
229 int jTauEtaTower;
230 if(jTauEtaTopo%4 >= 0 ) jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4;
231 else jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4 - 4;
232
233 unsigned int jTauPhiTower = TSU::toTopoPhi(jTau.phi()) >> 1; //ignore lowest bit as jTau coordinates are taken at tower center
234 unsigned int eTauPhiTower = static_cast<unsigned int>(eTau.iPhiTopo()) >> 1; //shift eTau location in the same way to stay consistent
235
236 bool matching = ( eTauEtaTower == jTauEtaTower ) && ( eTauPhiTower == jTauPhiTower );
237 return matching;
238
239}
int iPhiTopo() const
Return phi index in the range used by L1Topo (0->127)
int iEtaTopo() const
Getter for integer phi index (0-63)
float phi() const
float eta() const
int toTopoEta(float eta)
unsigned int toTopoPhi(float phi)

◆ cTauMatching() [3/3]

size_t TCS::cTauMultiplicity::cTauMatching ( const xAOD::eFexTauRoI & eTau,
const xAOD::jFexTauRoIContainer & jTauRoIs )
static

Definition at line 183 of file cTauMultiplicity.cxx.

183 {
184
185 // Return the index of the matched jTau if existent (otherwise return std::numeric_limits<size_t>::max())
186 size_t i_matched{std::numeric_limits<size_t>::max()};
187 size_t i_jTau{0};
188
189 int eTauEtaTower;
190 if(eTau.iEtaTopo()%4 >= 0 ) eTauEtaTower = eTau.iEtaTopo() - eTau.iEtaTopo()%4;
191 else eTauEtaTower = eTau.iEtaTopo() - eTau.iEtaTopo()%4 - 4;
192
193 for(const xAOD::jFexTauRoI* jTau : jTauRoIs) {
194
195 // eFEX: etaTower = iEta, phiTower = iPhi
196 // jFEX: etaTower = globalEta, phiTower = globalPhi
197
198 int jTauEtaTopo = TSU::toTopoEta(jTau->eta());
199 int jTauEtaTower;
200 if(jTauEtaTopo%4 >= 0 ) jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4;
201 else jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4 - 4;
202
203 unsigned int jTauPhiTower = TSU::toTopoPhi(jTau->phi()) >> 1; //ignore lowest bit as jTau coordinates are taken at tower center
204 unsigned int eTauPhiTower = static_cast<unsigned int>(eTau.iPhiTopo()) >> 1; //shift eTau location in the same way to stay consistent
205 bool matching = ( eTauEtaTower == jTauEtaTower ) && ( eTauPhiTower == jTauPhiTower );
206
207 if(matching) {
208 i_matched = i_jTau;
209 break; // Break the loop when a match is found
210 }
211 ++i_jTau;
212 }
213
214 return i_matched;
215
216}
jFexTauRoI_v1 jFexTauRoI
Define the latest version of the jFexSRJetRoI class.
Definition jFexTauRoI.h:13

◆ defineParameter() [1/3]

void ConfigurableAlg::defineParameter ( const Parameter & parameter)
privateinherited

Definition at line 213 of file ConfigurableAlg.cxx.

213 {
214 if( parameters().contains( parameter.name(), parameter.selection() ) ) {
215 TCS_EXCEPTION("Duplicate parameter definition '" << parameter.name() << "' for algorithm '" << name() << "'");
216 }
217 m_parameters.addParameter(parameter);
218}
const ParameterSpace & parameters() const
const Parameter & parameter(const std::string &parameterName) const
ParameterSpace m_parameters
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition hcg.cxx:114

◆ defineParameter() [2/3]

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

Definition at line 201 of file ConfigurableAlg.cxx.

201 {
202 defineParameter( Parameter(name, value) );
203}
void defineParameter(const std::string &name, TCS::parType_t value)

◆ 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 {
208 defineParameter( Parameter(name, value, selection) );
209}
const std::string selection

◆ doReset()

TCS::StatusCode TCS::CountingAlg::doReset ( )
privatevirtualinherited

◆ 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}
#define x

◆ 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}
#define y

◆ fullname()

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

Definition at line 50 of file ConfigurableAlg.h.

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

◆ getName()

const std::string & TrigConf::TrigConfMessaging::getName ( ) const
inlineinherited

name accessor

Returns
the name

Definition at line 101 of file TrigConfMessaging.h.

101 {
102 return m_name;
103 }

◆ getThreshold()

const TrigConf::L1Threshold * TCS::CountingAlg::getThreshold ( )
inlineinherited

Definition at line 47 of file CountingAlg.h.

47{ return m_threshold; }
TrigConf::L1Threshold const * m_threshold
Definition CountingAlg.h:63

◆ initialize()

TCS::StatusCode TCS::cTauMultiplicity::initialize ( )
overridevirtual

Reimplemented from TCS::ConfigurableAlg.

Definition at line 28 of file cTauMultiplicity.cxx.

28 {
29 m_threshold = dynamic_cast<const TrigConf::L1Threshold_cTAU*>(getThreshold());
30 if (not m_threshold){
31 TRG_MSG_ERROR("Dynamic cast failed in TCS::cTauMultiplicity::initialize");
33 }
34
35 m_extraInfo = m_threshold->getExtraInfo();
36
37 // Book monitoring histograms
38 bookHistMult(m_histAccept, "cTauMultiplicity_accept_EtaPt_"+m_threshold->name(), "Mult_"+m_threshold->name(), "#eta#times40", "E_{t} [GeV]", 200, -200, 200, 100, 0, 100);
39 bookHistMult(m_histAccept, "cTauMultiplicity_accept_counts_"+m_threshold->name(), "Mult_"+m_threshold->name(), "counts", 15, 0, 15);
40
41 // cTau TOB monitoring histograms
42 bookHistMult(m_histcTauEt, "cTauTOBEt", "Matched cTau TOB Et", "E_{t} [GeV]", 200, 0, 400);
43 bookHistMult(m_histcTauPhiEta, "cTauTOBPhiEta", "Matched cTau TOB location", "#eta#times40", "#phi#times20", 200, -200, 200, 128, 0, 128);
44 bookHistMult(m_histcTauEtEta, "cTauTOBEtEta", "Matched cTau TOB Et vs eta", "#eta#times40", "E_{t} [GeV]", 200, -200, 200, 200, 0, 400);
45
46 const std::string wp_name = m_threshold->isolation() != WP::NONE ? TrigConf::Selection::wpToString(m_threshold->isolation()) : "NoIso";
47 bookHistMult(m_histcTauIsoFraction, "cTauTOBIsoFraction", std::string("Matched cTAU ") + wp_name + " isolation fraction", wp_name + " isolation fraction", 200, 0, 10);
48
49 bookHistMult(m_histcTauIsoMatchedPass, "cTauTOBIsoMatchedPass", "Matched cTau isolation pass", "isolation pass", 2, 0, 2);
50
52}
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)
const TrigConf::L1Threshold * getThreshold()
Definition CountingAlg.h:47
std::vector< std::string > m_histAccept
Definition CountingAlg.h:51
std::vector< std::string > m_histcTauPhiEta
std::vector< std::string > m_histcTauEtEta
std::vector< std::string > m_histcTauEt
std::vector< std::string > m_histcTauIsoMatchedPass
std::vector< std::string > m_histcTauIsoFraction
static std::string wpToString(WP)

◆ 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 86 of file TrigConfMessaging.h.

87 {
88 MsgStreamTC* ms = m_msg_tls.get();
89 if (!ms) {
90 ms = new MsgStreamTC(m_name);
91 m_msg_tls.reset(ms);
92 }
93 return *ms;
94 }
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)

◆ 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 96 of file TrigConfMessaging.h.

97 {
98 return msg() << lvl;
99 }
MsgStreamTC & msg() const
The standard message stream.

◆ 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 75 of file TrigConfMessaging.h.

76 {
77 if (msg().level() <= lvl) {
78 msg() << lvl;
79 return true;
80 }
81 else {
82 return false;
83 }
84 }

◆ name()

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

Definition at line 48 of file ConfigurableAlg.h.

48{ return m_name; }

◆ numberOutputBits()

unsigned int TCS::CountingAlg::numberOutputBits ( ) const
inlineinherited

Definition at line 40 of file CountingAlg.h.

40{ return m_numberOutputBits; }
unsigned int m_numberOutputBits
Definition CountingAlg.h:60

◆ 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}
const Parameter & parameter(const std::string &parameterName) const

◆ 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; }

◆ process()

TCS::StatusCode TCS::cTauMultiplicity::process ( const TCS::InputTOBArray & input,
Count & count )
finaloverridevirtual

Implements TCS::CountingAlg.

Definition at line 62 of file cTauMultiplicity.cxx.

63{
64 const cTauTOBArray& cTaus = dynamic_cast<const cTauTOBArray&>(input);
65
66 int counting = 0;
67 // Loop over eTau candidates
68 for(cTauTOBArray::const_iterator etauCand = cTaus.begin(); etauCand != cTaus.end(); ++etauCand) {
69 if((*etauCand)->tobType() != TCS::ETAU) continue;
70
71 bool accept = false; // accept = (isMatched==true && isIsolated==true) || (isMatched==false)
72 bool isMatched = false; // Is the eTau matched to a jTau?
73 bool isIsolated = false; // If matched: does the resulting cTau pass the isolation cut?
74 float isolation_fraction = 0; // cTAU isolation fraction
75
76 // Loop over jTau candidates
77 for(cTauTOBArray::const_iterator jtauCand = cTaus.begin(); jtauCand != cTaus.end(); ++jtauCand) {
78 if((*jtauCand)->tobType() != TCS::JTAU) continue;
79
80 isMatched = cTauMatching(*etauCand, *jtauCand);
81
82 if(isMatched) {
83 float etauCand_et = static_cast<float>((*etauCand)->Et());
84 float etauCand_eta = static_cast<float>((*etauCand)->etaDouble());
85 float jtauCand_et = static_cast<float>((*jtauCand)->Et());
86 float jtauCand_etIso = static_cast<float>((*jtauCand)->EtIso());
87
88 // Updated isolation condition, WP-dependent (ATR-28641)
89 // I = (E_T^{jTAU Iso} + jTAUCoreScale * (E_T^{jTAU Core} - E_T^{eTAU})) / E_T^{eTAU}
90 if(m_threshold->isolation() != WP::NONE) {
91 isolation_fraction = (jtauCand_etIso + m_extraInfo->isolation(m_threshold->isolation(), etauCand_eta).isolation_jTAUCoreScale_d() * (jtauCand_et - etauCand_et)) / etauCand_et;
92 }
93 // Old isolation condition coded as in firmware: https://indico.cern.ch/event/1079697/contributions/4541419/attachments/2315137/3940824/cTAU_FirmwareAlgoProposal.pdf page 8
94
95 // Check the isolation WP
96 isIsolated = checkIsolationWP(*etauCand, *jtauCand);
97
98 break; // Break loop when a match is found
99 }
100
101 } // End of jTau loop
102
103 // Fill cTau TOB histograms before threshold cuts (matched cTaus only)
104 if(isMatched) {
105 fillHist1D(m_histcTauEt[0], (*etauCand)->EtDouble());
106 fillHist2D(m_histcTauPhiEta[0], (*etauCand)->eta(), (*etauCand)->phi());
107 fillHist2D(m_histcTauEtEta[0], (*etauCand)->eta(), (*etauCand)->EtDouble());
108 fillHist1D(m_histcTauIsoFraction[0], isolation_fraction);
109 fillHist1D(m_histcTauIsoMatchedPass[0], isMatched && isIsolated);
110 }
111
112 if(isMatched && isIsolated) accept = true; // This is a good matched cTau
113 if(!isMatched) accept = true; // This is a non-matched eTau
114
115 if(!checkeTAUWP(*etauCand)) accept = false; // Check eTAU rCore/BDT and rHad WP
116
117 // Menu threshold uses 0.1 eta granularity but eFex objects have 0.025 eta granularity
118 // eFex eta is calculated as 4*eta_tower (0.1 gran.) + seed (0.025 gran.), eta from -25 to 24
119 int eta_thr;
120 if((*etauCand)->eta()%4 >= 0) eta_thr = (*etauCand)->eta() - (*etauCand)->eta()%4;
121 else eta_thr = (*etauCand)->eta() - (*etauCand)->eta()%4 - 4;
122
123 accept = accept && (*etauCand)->Et() > m_threshold->thrValue100MeV(eta_thr/4); // Convert eta_thr to units of 0.1 to pass as an argument
124
125 if(accept) {
126 counting++;
127 fillHist2D(m_histAccept[0], (*etauCand)->eta(), (*etauCand)->EtDouble());
128 }
129
130 } // End of eTau loop
131
132 fillHist1D(m_histAccept[1], counting);
133
134 // Pass counting to TCS::Count object - output bits are composed there
135 count.setSizeCount(counting);
136
138}
void fillHist1D(const std::string &histName, double x)
void fillHist2D(const std::string &histName, double x, double y)
data_t::const_iterator const_iterator
static size_t cTauMatching(const xAOD::eFexTauRoI &eTau, const xAOD::jFexTauRoIContainer &jTauRoIs)
static bool checkeTAUWP(const xAOD::eFexTauRoI &eTau, const TrigConf::L1Threshold_cTAU &thr)
static bool checkIsolationWP(const xAOD::eFexTauRoI &eTau, const xAOD::jFexTauRoI &jTau, const TrigConf::L1Threshold_cTAU &thr)
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
StatusCode accept(const xAOD::Muon *mu)

◆ processBitCorrect()

TCS::StatusCode TCS::cTauMultiplicity::processBitCorrect ( const TCS::InputTOBArray & input,
Count & count )
finaloverridevirtual

Implements TCS::CountingAlg.

Definition at line 56 of file cTauMultiplicity.cxx.

57{
58 return process(input, count);
59}
const std::string process

◆ 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}
static unsigned long quadraticSumBW(int i1, int i2)
compute the sum in quadrature of two ints

◆ 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(); }
virtual StatusCode doReset()=0

◆ setAlgoId()

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

Definition at line 93 of file ConfigurableAlg.h.

93{ m_algoId = algoId; }
unsigned int algoId() const

◆ setClassName()

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

Definition at line 43 of file ConfigurableAlg.h.

const std::string & className() const

◆ 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(std::move(histSvc));
260}

◆ setLegacyMode()

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

Definition at line 45 of file ConfigurableAlg.h.

◆ setNumberOutputBits()

void TCS::CountingAlg::setNumberOutputBits ( unsigned int numberOutputBits)
inlineinherited

Definition at line 41 of file CountingAlg.h.

unsigned int numberOutputBits() const
Definition CountingAlg.h:40

◆ 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 {
232 m_parameters.setParameter(p);
233 }
234 catch(const TCS::Exception& e) {
235 TCS_EXCEPTION("Algorithm configuration failed for " << name() << "! Caught exception: " << e.what());
236 }
237 }
238}

◆ setThreshold()

void TCS::CountingAlg::setThreshold ( const TrigConf::L1Threshold & thr)
inlineinherited

Definition at line 44 of file CountingAlg.h.

44{ m_threshold = &thr; }

◆ 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.

138{0};

◆ 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.

135{""};

◆ m_extraInfo

std::shared_ptr<TrigConf::L1ThrExtraInfo_cTAU> TCS::cTauMultiplicity::m_extraInfo
private

Definition at line 53 of file cTauMultiplicity.h.

◆ m_histAccept

std::vector<std::string> TCS::CountingAlg::m_histAccept
protectedinherited

Definition at line 51 of file CountingAlg.h.

◆ m_histcTauEt

std::vector<std::string> TCS::cTauMultiplicity::m_histcTauEt
private

Definition at line 62 of file cTauMultiplicity.h.

◆ m_histcTauEtEta

std::vector<std::string> TCS::cTauMultiplicity::m_histcTauEtEta
private

Definition at line 64 of file cTauMultiplicity.h.

◆ m_histcTauIsoFraction

std::vector<std::string> TCS::cTauMultiplicity::m_histcTauIsoFraction
private

Definition at line 65 of file cTauMultiplicity.h.

◆ m_histcTauIsoMatchedPass

std::vector<std::string> TCS::cTauMultiplicity::m_histcTauIsoMatchedPass
private

Definition at line 66 of file cTauMultiplicity.h.

◆ m_histcTauPhiEta

std::vector<std::string> TCS::cTauMultiplicity::m_histcTauPhiEta
private

Definition at line 63 of file cTauMultiplicity.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_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 71 of file TrigConfMessaging.h.

◆ m_name

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

Definition at line 134 of file ConfigurableAlg.h.

134{""};

◆ m_numberOutputBits

unsigned int TCS::CountingAlg::m_numberOutputBits {1}
privateinherited

Definition at line 60 of file CountingAlg.h.

60{1};

◆ m_parameters

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

Definition at line 140 of file ConfigurableAlg.h.

140{""};

◆ m_threshold

const TrigConf::L1Threshold_cTAU* TCS::cTauMultiplicity::m_threshold {nullptr}
private

Definition at line 52 of file cTauMultiplicity.h.

52{nullptr};

The documentation for this class was generated from the following files: