ATLAS Offline Software
Loading...
Searching...
No Matches
TauAnalysisTools::TauSelectionCutEleIDWP Class Reference

#include <TauSelectionCuts.h>

Inheritance diagram for TauAnalysisTools::TauSelectionCutEleIDWP:
Collaboration diagram for TauAnalysisTools::TauSelectionCutEleIDWP:

Public Member Functions

 TauSelectionCutEleIDWP (TauSelectionTool *tTST)
virtual void setAcceptInfo (asg::AcceptInfo &info) const override
virtual bool accept (const xAOD::TauJet &xTau, asg::AcceptData &accept) override
void writeControlHistograms ()
void fillHistogramCutPre (const xAOD::TauJet &xTau)
void fillHistogramCut (const xAOD::TauJet &xTau)
TH1F * CreateControlPlot (const char *sName, const char *sTitle, int iBins, double dXLow, double dXUp)
const std::string & getName ()
void setProperty (const std::string &name, const std::string &value)

Protected Member Functions

void declareProperty (const std::string &name, std::string &loc)
std::string getProperty (const std::string &name)

Protected Attributes

std::string m_sName
TH1F * m_hHistCutPre
TH1F * m_hHistCut
TauSelectionToolm_tTST
std::map< std::string, std::string & > m_mProperties

Private Member Functions

virtual void fillHistogram (const xAOD::TauJet &xTau, TH1F &hHist) const override

Detailed Description

Definition at line 161 of file TauSelectionCuts.h.

Constructor & Destructor Documentation

◆ TauSelectionCutEleIDWP()

TauSelectionCutEleIDWP::TauSelectionCutEleIDWP ( TauSelectionTool * tTST)

Definition at line 501 of file TauSelectionCuts.cxx.

502 : TauSelectionCut("CutEleIDWP", tTST)
503{
504 m_hHistCutPre = CreateControlPlot("hEleIDWP_pre","EleIDWP_pre;; events",6,-.5,5.5);
505 m_hHistCut = CreateControlPlot("hEleIDWP_cut","EleIDWP_cut;; events",6,-.5,5.5);
506 // only proceed if histograms are defined
507 if (!m_hHistCutPre or !m_hHistCut)
508 return;
509 m_hHistCutPre->GetXaxis()->SetBinLabel(1,"!Loose");
510 m_hHistCutPre->GetXaxis()->SetBinLabel(2,"Loose");
511 m_hHistCutPre->GetXaxis()->SetBinLabel(3,"!Medium");
512 m_hHistCutPre->GetXaxis()->SetBinLabel(4,"Medium");
513 m_hHistCutPre->GetXaxis()->SetBinLabel(5,"!Tight");
514 m_hHistCutPre->GetXaxis()->SetBinLabel(6,"Tight");
515 m_hHistCut->GetXaxis()->SetBinLabel(1,"!Loose");
516 m_hHistCut->GetXaxis()->SetBinLabel(2,"Loose");
517 m_hHistCut->GetXaxis()->SetBinLabel(3,"!Medium");
518 m_hHistCut->GetXaxis()->SetBinLabel(4,"Medium");
519 m_hHistCut->GetXaxis()->SetBinLabel(5,"!Tight");
520 m_hHistCut->GetXaxis()->SetBinLabel(6,"Tight");
521}
TauSelectionCut(const std::string &sName, TauAnalysisTools::TauSelectionTool *tTST)
TH1F * CreateControlPlot(const char *sName, const char *sTitle, int iBins, double dXLow, double dXUp)

Member Function Documentation

◆ accept()

bool TauSelectionCutEleIDWP::accept ( const xAOD::TauJet & xTau,
asg::AcceptData & accept )
overridevirtual

Implements TauAnalysisTools::TauSelectionCut.

Definition at line 548 of file TauSelectionCuts.cxx.

550{
551 // check EleID WP, if tau passes EleID working point then return true; false otherwise
552 bool bPass = false;
553 switch (m_tTST->m_iEleIDWP)
554 {
555 case ELEIDNONE:
556 bPass = true;
557 break;
559 bPass = true;
560 break;
561 case ELEIDRNNLOOSE:
562 if (m_tTST->m_iEleIDVersion!=0){
563 SG::ConstAccessor<char> accLoose ("EleRNNLoose_v"+std::to_string(m_tTST->m_iEleIDVersion));
564 if (accLoose(xTau) == 1)bPass = true;
565 }
566 else if (xTau.isTau(xAOD::TauJetParameters::EleRNNLoose)) bPass = true;
567 break;
568 case ELEIDRNNMEDIUM:
569 if (m_tTST->m_iEleIDVersion!=0){
570 SG::ConstAccessor<char> accMedium ("EleRNNMedium_v"+std::to_string(m_tTST->m_iEleIDVersion));
571 if (accMedium(xTau) == 1)bPass = true;
572 }
573 else if (xTau.isTau(xAOD::TauJetParameters::EleRNNMedium)) bPass = true;
574 break;
575 case ELEIDRNNTIGHT:
576 if (m_tTST->m_iEleIDVersion!=0){
577 SG::ConstAccessor<char> accTight ("EleRNNTight_v"+std::to_string(m_tTST->m_iEleIDVersion));
578 if (accTight(xTau) == 1)bPass = true;
579 }
580 else if (xTau.isTau(xAOD::TauJetParameters::EleRNNTight)) bPass = true;
581 break;
582 default:
583 m_tTST->msg() << MSG::WARNING << "The electron ID working point with the enum " << m_tTST->m_iEleIDWP << " is not available" << endmsg;
584 break;
585 }
586
587 // apply eVeto cut only for 1 prong tau
588 if( xTau.nTracks() != 1){
589 bPass = true;
590 }
591
592 if (bPass)
593 {
594 acceptData.setCutResult( "EleIDWP", true );
595 return true;
596 }
597 m_tTST->msg() << MSG::VERBOSE << "Tau failed EleID WP requirement" << endmsg;
598 return false;
599}
#define endmsg
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const

◆ CreateControlPlot()

TH1F * TauSelectionCut::CreateControlPlot ( const char * sName,
const char * sTitle,
int iBins,
double dXLow,
double dXUp )
inherited

Definition at line 44 of file TauSelectionCuts.cxx.

45{
46 if (m_tTST->m_bCreateControlPlots)
47 {
48 TH1F* hHist = new TH1F(sName, sTitle, iBins, dXLow, dXUp);
49 hHist->SetDirectory(0);
50 return hHist;
51 }
52
53 return nullptr;
54}
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)

◆ declareProperty()

void TauSelectionCut::declareProperty ( const std::string & name,
std::string & loc )
protectedinherited

Definition at line 79 of file TauSelectionCuts.cxx.

80{
81 std::pair<std::string, std::string&> p(name, loc);
82 m_mProperties.insert(p);
83}
std::map< std::string, std::string & > m_mProperties

◆ fillHistogram()

void TauSelectionCutEleIDWP::fillHistogram ( const xAOD::TauJet & xTau,
TH1F & hHist ) const
overrideprivatevirtual

Implements TauAnalysisTools::TauSelectionCut.

Definition at line 524 of file TauSelectionCuts.cxx.

525{
526 if (m_tTST->m_iEleIDVersion!=0){
527 SG::ConstAccessor<char> accLoose ("EleRNNLoose_v"+std::to_string(m_tTST->m_iEleIDVersion));
528 SG::ConstAccessor<char> accMedium ("EleRNNMedium_v"+std::to_string(m_tTST->m_iEleIDVersion));
529 SG::ConstAccessor<char> accTight ("EleRNNTight_v"+std::to_string(m_tTST->m_iEleIDVersion));
530 hHist.Fill((accLoose(xTau) == 1));
531 hHist.Fill((accMedium(xTau) == 1)+2);
532 hHist.Fill((accTight(xTau) == 1)+4);
533 }
534 else{
537 hHist.Fill(xTau.isTau(xAOD::TauJetParameters::EleRNNTight)+4);
538 }
539}

◆ fillHistogramCut()

void TauSelectionCut::fillHistogramCut ( const xAOD::TauJet & xTau)
inherited

Definition at line 63 of file TauSelectionCuts.cxx.

64{
66}
virtual void fillHistogram(const xAOD::TauJet &xTau, TH1F &hHist) const =0

◆ fillHistogramCutPre()

void TauSelectionCut::fillHistogramCutPre ( const xAOD::TauJet & xTau)
inherited

Definition at line 57 of file TauSelectionCuts.cxx.

58{
60}

◆ getName()

const std::string & TauAnalysisTools::TauSelectionCut::getName ( )
inlineinherited

Definition at line 42 of file TauSelectionCuts.h.

43 {
44 return m_sName;
45 };

◆ getProperty()

std::string TauSelectionCut::getProperty ( const std::string & name)
protectedinherited

Definition at line 86 of file TauSelectionCuts.cxx.

87{
88 std::map<std::string, std::string&>::iterator it = m_mProperties.find(name);
89 if(it == m_mProperties.end() )
90 throw std::runtime_error (("Undeclared property: " + name + "\n").c_str());
91
92 return it->second;
93}

◆ setAcceptInfo()

void TauSelectionCutEleIDWP::setAcceptInfo ( asg::AcceptInfo & info) const
overridevirtual

Implements TauAnalysisTools::TauSelectionCut.

Definition at line 542 of file TauSelectionCuts.cxx.

543{
544 info.addCut( "EleIDWP",
545 "Selection of taus according to their EleID working point" );
546}

◆ setProperty()

void TauSelectionCut::setProperty ( const std::string & name,
const std::string & value )
inherited

Definition at line 70 of file TauSelectionCuts.cxx.

71{
72 std::map<std::string, std::string&>::iterator it = m_mProperties.find(name);
73 if(it == m_mProperties.end() )
74 throw std::runtime_error (("Undeclared property: " + name + "\n").c_str());
75 it->second = value;
76}

◆ writeControlHistograms()

void TauSelectionCut::writeControlHistograms ( )
inherited

Definition at line 37 of file TauSelectionCuts.cxx.

38{
39 m_hHistCutPre->Write();
40 m_hHistCut->Write();
41}

Member Data Documentation

◆ m_hHistCut

TH1F* TauAnalysisTools::TauSelectionCut::m_hHistCut
protectedinherited

Definition at line 53 of file TauSelectionCuts.h.

◆ m_hHistCutPre

TH1F* TauAnalysisTools::TauSelectionCut::m_hHistCutPre
protectedinherited

Definition at line 52 of file TauSelectionCuts.h.

◆ m_mProperties

std::map<std::string, std::string&> TauAnalysisTools::TauSelectionCut::m_mProperties
protectedinherited

Definition at line 58 of file TauSelectionCuts.h.

◆ m_sName

std::string TauAnalysisTools::TauSelectionCut::m_sName
protectedinherited

Definition at line 50 of file TauSelectionCuts.h.

◆ m_tTST

TauSelectionTool* TauAnalysisTools::TauSelectionCut::m_tTST
protectedinherited

Definition at line 55 of file TauSelectionCuts.h.


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