ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
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 }

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 }

◆ 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 {
47  {
48  TH1F* hHist = new TH1F(sName, sTitle, iBins, dXLow, dXUp);
49  hHist->SetDirectory(0);
50  return hHist;
51  }
52 
53  return nullptr;
54 }

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

◆ 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{
535  hHist.Fill(xTau.isTau(xAOD::TauJetParameters::EleRNNLoose));
536  hHist.Fill(xTau.isTau(xAOD::TauJetParameters::EleRNNMedium)+2);
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 {
65  fillHistogram(xTau, *m_hHistCut);
66 }

◆ 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 {
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 {
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:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TauAnalysisTools::TauSelectionTool::m_bCreateControlPlots
Gaudi::Property< bool > m_bCreateControlPlots
Definition: TauSelectionTool.h:187
TauAnalysisTools::TauSelectionCut::CreateControlPlot
TH1F * CreateControlPlot(const char *sName, const char *sTitle, int iBins, double dXLow, double dXUp)
Definition: TauSelectionCuts.cxx:44
TauAnalysisTools::TauSelectionCut::m_mProperties
std::map< std::string, std::string & > m_mProperties
Definition: TauSelectionCuts.h:58
TauAnalysisTools::ELEIDNONEUNCONFIGURED
@ ELEIDNONEUNCONFIGURED
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:40
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition: TauJet_v3.cxx:488
skel.it
it
Definition: skel.GENtoEVGEN.py:407
athena.value
value
Definition: athena.py:124
SG::ConstAccessor< char >
MuonR4::to_string
std::string to_string(const SectorProjector proj)
Definition: MsTrackSeeder.cxx:66
TauAnalysisTools::ELEIDRNNLOOSE
@ ELEIDRNNLOOSE
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:42
xAOD::TauJetParameters::EleRNNTight
@ EleRNNTight
Definition: TauDefs.h:134
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
TauAnalysisTools::ELEIDNONE
@ ELEIDNONE
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:41
TauAnalysisTools::TauSelectionTool::m_iEleIDVersion
Gaudi::Property< int > m_iEleIDVersion
Definition: TauSelectionTool.h:154
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
TauAnalysisTools::TauSelectionCut::m_hHistCutPre
TH1F * m_hHistCutPre
Definition: TauSelectionCuts.h:52
xAOD::TauJetParameters::EleRNNMedium
@ EleRNNMedium
Definition: TauDefs.h:133
TauAnalysisTools::ELEIDRNNMEDIUM
@ ELEIDRNNMEDIUM
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:43
TauAnalysisTools::ELEIDRNNTIGHT
@ ELEIDRNNTIGHT
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:44
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TauAnalysisTools::TauSelectionCut::TauSelectionCut
TauSelectionCut(const std::string &sName, TauAnalysisTools::TauSelectionTool *tTST)
Definition: TauSelectionCuts.cxx:20
xAOD::TauJet_v3::isTau
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
Definition: TauJet_v3.cxx:245
xAOD::TauJetParameters::EleRNNLoose
@ EleRNNLoose
Definition: TauDefs.h:132
TauAnalysisTools::TauSelectionCut::m_sName
std::string m_sName
Definition: TauSelectionCuts.h:50
AthCommonMsg::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:13
TauAnalysisTools::TauSelectionCut::m_hHistCut
TH1F * m_hHistCut
Definition: TauSelectionCuts.h:53
TauAnalysisTools::TauSelectionTool::m_iEleIDWP
Gaudi::Property< int > m_iEleIDWP
Definition: TauSelectionTool.h:153
TauAnalysisTools::TauSelectionCut::fillHistogram
virtual void fillHistogram(const xAOD::TauJet &xTau, TH1F &hHist) const =0
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87
TauAnalysisTools::TauSelectionCut::m_tTST
TauSelectionTool * m_tTST
Definition: TauSelectionCuts.h:55