ATLAS Offline Software
Loading...
Searching...
No Matches
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}
TH1F * CreateControlPlot(const char *sName, const char *sTitle, int iBins, double dXLow, double dXUp)
DiTauSelectionCut(const std::string &sName, TauAnalysisTools::DiTauSelectionTool *tDTST)

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}
#define endmsg

◆ 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{
38 if (m_tDTST->m_bCreateControlPlots)
39 {
40 TH1F* hHist = new TH1F(sName, sTitle, iBins, dXLow, dXUp);
41 hHist->SetDirectory(0);
42 return hHist;
43 }
44
45 return nullptr;
46}
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)

◆ 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}
std::map< std::string, std::string & > m_mProperties

◆ 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}
virtual void fillHistogram(const xAOD::DiTauJet &xTau, TH1F &hHist) const =0

◆ fillHistogramCutPre()

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

Definition at line 49 of file DiTauSelectionCuts.cxx.

50{
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{
80 std::map<std::string, std::string&>::iterator it = m_mProperties.find(name);
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{
64 std::map<std::string, std::string&>::iterator it = m_mProperties.find(name);
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: