ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
TauAnalysisTools::DiTauSelectionCutOmniIDWP Class Reference

#include <DiTauSelectionCuts.h>

Inheritance diagram for TauAnalysisTools::DiTauSelectionCutOmniIDWP:
Collaboration diagram for TauAnalysisTools::DiTauSelectionCutOmniIDWP:

Public Member Functions

 DiTauSelectionCutOmniIDWP (DiTauSelectionTool *tDTST)
 
virtual void setAcceptInfo (asg::AcceptInfo &info) const override
 
virtual bool accept (const xAOD::DiTauJet &xTau, asg::AcceptData &accept) override
 
void writeControlHistograms ()
 
void fillHistogramCutPre (const xAOD::DiTauJet &xTau)
 
void fillHistogramCut (const xAOD::DiTauJet &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
 
DiTauSelectionToolm_tDTST
 
std::map< std::string, std::string & > m_mProperties
 

Private Member Functions

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

Detailed Description

Definition at line 132 of file DiTauSelectionCuts.h.

Constructor & Destructor Documentation

◆ DiTauSelectionCutOmniIDWP()

DiTauSelectionCutOmniIDWP::DiTauSelectionCutOmniIDWP ( DiTauSelectionTool tDTST)

Definition at line 330 of file DiTauSelectionCuts.cxx.

331  : DiTauSelectionCut("CutOmniIDWP", tDTST)
332 {
333  m_hHistCutPre = CreateControlPlot("hOmniIDWP_pre","OmniIDWP_pre;; events",8,-.5,7.5);
334  m_hHistCut = CreateControlPlot("hOmniIDWP_cut","OmniIDWP_cut;; events",8,-.5,7.5);
335  // only proceed if histograms are defined
336  if (!m_hHistCutPre or !m_hHistCut)
337  return;
338 
339  m_hHistCutPre->GetXaxis()->SetBinLabel(1,"!VeryLoose");
340  m_hHistCutPre->GetXaxis()->SetBinLabel(2,"VeryLoose");
341  m_hHistCutPre->GetXaxis()->SetBinLabel(3,"!Loose");
342  m_hHistCutPre->GetXaxis()->SetBinLabel(4,"Loose");
343  m_hHistCutPre->GetXaxis()->SetBinLabel(5,"!Medium");
344  m_hHistCutPre->GetXaxis()->SetBinLabel(6,"Medium");
345  m_hHistCutPre->GetXaxis()->SetBinLabel(7,"!Tight");
346  m_hHistCutPre->GetXaxis()->SetBinLabel(8,"Tight");
347  m_hHistCut->GetXaxis()->SetBinLabel(1,"!VeryLoose");
348  m_hHistCut->GetXaxis()->SetBinLabel(2,"VeryLoose");
349  m_hHistCut->GetXaxis()->SetBinLabel(3,"!Loose");
350  m_hHistCut->GetXaxis()->SetBinLabel(4,"Loose");
351  m_hHistCut->GetXaxis()->SetBinLabel(5,"!Medium");
352  m_hHistCut->GetXaxis()->SetBinLabel(6,"Medium");
353  m_hHistCut->GetXaxis()->SetBinLabel(7,"!Tight");
354  m_hHistCut->GetXaxis()->SetBinLabel(8,"Tight");
355 }

Member Function Documentation

◆ accept()

bool DiTauSelectionCutOmniIDWP::accept ( const xAOD::DiTauJet xTau,
asg::AcceptData accept 
)
overridevirtual

Implements TauAnalysisTools::DiTauSelectionCut.

Definition at line 379 of file DiTauSelectionCuts.cxx.

381 {
382  // check Omni ID working point, if ditau passes OmniID working point then return true; false otherwise
383  bool bPass = false;
384  switch (m_tDTST->m_iOmniIDWP)
385  {
386  case OMNIIDNONE:
387  bPass = true;
388  break;
389  case OMNIIDVERYLOOSE:
390  static const SG::ConstAccessor<char> acc_OmniVeryLoose("omni_score_VL");
391  if (!acc_OmniVeryLoose.isAvailable(xTau)) m_tDTST->msg() << MSG::WARNING << "Omni VeryLoose WP not available" << endmsg;
392  else bPass = acc_OmniVeryLoose(xTau);
393  break;
394  case OMNIIDLOOSE:
395  static const SG::ConstAccessor<char> acc_OmniLoose("omni_score_L");
396  if (!acc_OmniLoose.isAvailable(xTau)) m_tDTST->msg() << MSG::WARNING << "Omni Loose WP not available" << endmsg;
397  else bPass = acc_OmniLoose(xTau);
398  break;
399  case OMNIIDMEDIUM:
400  static const SG::ConstAccessor<char> acc_OmniMedium("omni_score_M");
401  if (!acc_OmniMedium.isAvailable(xTau)) m_tDTST->msg() << MSG::WARNING << "Omni Medium WP not available" << endmsg;
402  else bPass = acc_OmniMedium(xTau);
403  break;
404  case OMNIIDTIGHT:
405  static const SG::ConstAccessor<char> acc_OmniTight("omni_score_T");
406  if (!acc_OmniTight.isAvailable(xTau)) m_tDTST->msg() << MSG::WARNING << "Omni Tight WP not available" << endmsg;
407  else bPass = acc_OmniTight(xTau);
408  break;
409  default:
410  m_tDTST->msg() << MSG::WARNING << "The Omni ID working point with the enum " << m_tDTST->m_iOmniIDWP << " is not available" << endmsg;
411  break;
412  }
413  if (bPass)
414  {
415  acceptData.setCutResult( "OmniIDWP", true );
416  return true;
417  }
418  m_tDTST->msg() << MSG::VERBOSE << "DiTau failed OmniIDWP requirement" << endmsg;
419  return false;
420 }

◆ CreateControlPlot()

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

Definition at line 36 of file DiTauSelectionCuts.cxx.

37 {
39  {
40  TH1F* hHist = new TH1F(sName, sTitle, iBins, dXLow, dXUp);
41  hHist->SetDirectory(0);
42  return hHist;
43  }
44 
45  return nullptr;
46 }

◆ declareProperty()

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

Definition at line 71 of file DiTauSelectionCuts.cxx.

72 {
73  std::pair<std::string, std::string&> p(name, loc);
74  m_mProperties.insert(p);
75 }

◆ fillHistogram()

void DiTauSelectionCutOmniIDWP::fillHistogram ( const xAOD::DiTauJet xTau,
TH1F &  hHist 
) const
overrideprivatevirtual

Implements TauAnalysisTools::DiTauSelectionCut.

Definition at line 358 of file DiTauSelectionCuts.cxx.

359 {
360  if(m_tDTST->m_useOmniScore){
361  static const SG::ConstAccessor<char> acc_OmniVeryLoose("omni_score_VL");
362  static const SG::ConstAccessor<char> acc_OmniLoose("omni_score_L");
363  static const SG::ConstAccessor<char> acc_OmniMedium("omni_score_M");
364  static const SG::ConstAccessor<char> acc_OmniTight("omni_score_T");
365  hHist.Fill(acc_OmniVeryLoose(xTau));
366  hHist.Fill(acc_OmniLoose(xTau)+2);
367  hHist.Fill(acc_OmniMedium(xTau)+4);
368  hHist.Fill(acc_OmniTight(xTau)+6);
369  }
370 }

◆ fillHistogramCut()

void DiTauSelectionCut::fillHistogramCut ( const xAOD::DiTauJet xTau)
inherited

Definition at line 55 of file DiTauSelectionCuts.cxx.

56 {
57  fillHistogram(xDiTau, *m_hHistCut);
58 }

◆ fillHistogramCutPre()

void DiTauSelectionCut::fillHistogramCutPre ( const xAOD::DiTauJet xTau)
inherited

Definition at line 49 of file DiTauSelectionCuts.cxx.

50 {
51  fillHistogram(xDiTau, *m_hHistCutPre);
52 }

◆ getName()

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

Definition at line 43 of file DiTauSelectionCuts.h.

44  {
45  return m_sName;
46  };

◆ getProperty()

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

Definition at line 78 of file DiTauSelectionCuts.cxx.

79 {
81  if(it == m_mProperties.end() )
82  throw std::runtime_error (("Undeclared property: " + name + "\n").c_str());
83 
84  return it->second;
85 }

◆ setAcceptInfo()

void DiTauSelectionCutOmniIDWP::setAcceptInfo ( asg::AcceptInfo info) const
overridevirtual

Implements TauAnalysisTools::DiTauSelectionCut.

Definition at line 373 of file DiTauSelectionCuts.cxx.

374 {
375  info.addCut( "OmniIDWP",
376  "Selection of ditaus according to their OmniIDScore" );
377 }

◆ setProperty()

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

Definition at line 62 of file DiTauSelectionCuts.cxx.

63 {
65  if(it == m_mProperties.end() )
66  throw std::runtime_error (("Undeclared property: " + name + "\n").c_str());
67  it->second = value;
68 }

◆ writeControlHistograms()

void DiTauSelectionCut::writeControlHistograms ( )
inherited

Definition at line 29 of file DiTauSelectionCuts.cxx.

30 {
31  m_hHistCutPre->Write();
32  m_hHistCut->Write();
33 }

Member Data Documentation

◆ m_hHistCut

TH1F* TauAnalysisTools::DiTauSelectionCut::m_hHistCut
protectedinherited

Definition at line 54 of file DiTauSelectionCuts.h.

◆ m_hHistCutPre

TH1F* TauAnalysisTools::DiTauSelectionCut::m_hHistCutPre
protectedinherited

Definition at line 53 of file DiTauSelectionCuts.h.

◆ m_mProperties

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

Definition at line 59 of file DiTauSelectionCuts.h.

◆ m_sName

std::string TauAnalysisTools::DiTauSelectionCut::m_sName
protectedinherited

Definition at line 51 of file DiTauSelectionCuts.h.

◆ m_tDTST

DiTauSelectionTool* TauAnalysisTools::DiTauSelectionCut::m_tDTST
protectedinherited

Definition at line 56 of file DiTauSelectionCuts.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TauAnalysisTools::DiTauSelectionTool::m_bCreateControlPlots
Gaudi::Property< bool > m_bCreateControlPlots
Definition: DiTauSelectionTool.h:151
TauAnalysisTools::OMNIIDNONE
@ OMNIIDNONE
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:31
TauAnalysisTools::OMNIIDTIGHT
@ OMNIIDTIGHT
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:35
skel.it
it
Definition: skel.GENtoEVGEN.py:407
athena.value
value
Definition: athena.py:124
SG::ConstAccessor< char >
TauAnalysisTools::DiTauSelectionCut::CreateControlPlot
TH1F * CreateControlPlot(const char *sName, const char *sTitle, int iBins, double dXLow, double dXUp)
Definition: DiTauSelectionCuts.cxx:36
TauAnalysisTools::OMNIIDLOOSE
@ OMNIIDLOOSE
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:33
TauAnalysisTools::DiTauSelectionCut::m_sName
std::string m_sName
Definition: DiTauSelectionCuts.h:51
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
TauAnalysisTools::DiTauSelectionCut::m_hHistCut
TH1F * m_hHistCut
Definition: DiTauSelectionCuts.h:54
TauAnalysisTools::DiTauSelectionCut::DiTauSelectionCut
DiTauSelectionCut(const std::string &sName, TauAnalysisTools::DiTauSelectionTool *tDTST)
Definition: DiTauSelectionCuts.cxx:13
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
TauAnalysisTools::DiTauSelectionCut::m_mProperties
std::map< std::string, std::string & > m_mProperties
Definition: DiTauSelectionCuts.h:59
TauAnalysisTools::DiTauSelectionCut::m_hHistCutPre
TH1F * m_hHistCutPre
Definition: DiTauSelectionCuts.h:53
TauAnalysisTools::OMNIIDMEDIUM
@ OMNIIDMEDIUM
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:34
TauAnalysisTools::DiTauSelectionTool::m_iOmniIDWP
Gaudi::Property< int > m_iOmniIDWP
Definition: DiTauSelectionTool.h:129
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TauAnalysisTools::DiTauSelectionCut::m_tDTST
DiTauSelectionTool * m_tDTST
Definition: DiTauSelectionCuts.h:56
TauAnalysisTools::DiTauSelectionCut::fillHistogram
virtual void fillHistogram(const xAOD::DiTauJet &xTau, TH1F &hHist) const =0
TauAnalysisTools::DiTauSelectionTool::m_useOmniScore
bool m_useOmniScore
Definition: DiTauSelectionTool.h:116
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
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87
TauAnalysisTools::OMNIIDVERYLOOSE
@ OMNIIDVERYLOOSE
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:32