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

#include <DiTauSelectionCuts.h>

Inheritance diagram for TauAnalysisTools::DiTauSelectionCutAbsCharge:
Collaboration diagram for TauAnalysisTools::DiTauSelectionCutAbsCharge:

Public Member Functions

 DiTauSelectionCutAbsCharge (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
 

Private Attributes

float m_bDiTauCharge
 

Detailed Description

Definition at line 102 of file DiTauSelectionCuts.h.

Constructor & Destructor Documentation

◆ DiTauSelectionCutAbsCharge()

DiTauSelectionCutAbsCharge::DiTauSelectionCutAbsCharge ( DiTauSelectionTool tDTST)

Definition at line 230 of file DiTauSelectionCuts.cxx.

231  : DiTauSelectionCut("CutAbsCharge", tDTST),
232  m_bDiTauCharge(-1234)
233 {
234  m_hHistCutPre = CreateControlPlot("hCharge_pre","Charge_pre;charge; events",7,-3.5,3.5);
235  m_hHistCut = CreateControlPlot("hCharge_cut","Charge_cut;charge; events",7,-3.5,3.5);
236 }

Member Function Documentation

◆ accept()

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

Implements TauAnalysisTools::DiTauSelectionCut.

Definition at line 251 of file DiTauSelectionCuts.cxx.

253 {
254  m_bDiTauCharge = 0;
255  for (const auto& xTrack : xTau.trackLinks()) {
256  if (!xTrack.isValid())
257  continue;
258 
259  if(xTau.nSubjets() >= 2){
260  for (int i = 0; i < 2; ++i) { // loop over two leading subjets
261  TLorentzVector tlvSubjet = TLorentzVector();
262  tlvSubjet.SetPtEtaPhiE(xTau.subjetPt(i), xTau.subjetEta(i),
263  xTau.subjetPhi(i), xTau.subjetE(i));
264  double dR = tlvSubjet.DeltaR((*xTrack)->p4());
265  if (dR < 0.1) {
266  m_bDiTauCharge += (*xTrack)->charge();
267  break; //prevents double counting of tracks
268  }
269  } // loop over subjets
270  }
271  } // loop over tracks
272 
273  // check charge, if ditau has one of the charges requiered then return true; false otherwise
274  for( unsigned int iCharge = 0; iCharge < m_tDTST->m_vAbsCharges.size(); iCharge++ )
275  {
276  if ( std::abs( m_bDiTauCharge ) == m_tDTST->m_vAbsCharges.at(iCharge) )
277  {
278  acceptData.setCutResult( "AbsCharge", true );
279  return true;
280  }
281  }
282  m_tDTST->msg() << MSG::VERBOSE << "DiTau failed charge requirement, ditau charge: " << m_bDiTauCharge << endmsg;
283  return false;
284 
285 }

◆ CreateControlPlot()

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

Definition at line 40 of file DiTauSelectionCuts.cxx.

41 {
43  {
44  TH1F* hHist = new TH1F(sName, sTitle, iBins, dXLow, dXUp);
45  hHist->SetDirectory(0);
46  return hHist;
47  }
48 
49  return nullptr;
50 }

◆ declareProperty()

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

Definition at line 75 of file DiTauSelectionCuts.cxx.

76 {
77  std::pair<std::string, std::string&> p(name, loc);
78  m_mProperties.insert(p);
79 }

◆ fillHistogram()

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

Implements TauAnalysisTools::DiTauSelectionCut.

Definition at line 239 of file DiTauSelectionCuts.cxx.

240 {
241  hHist.Fill(m_bDiTauCharge);
242 }

◆ fillHistogramCut()

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

Definition at line 59 of file DiTauSelectionCuts.cxx.

60 {
61  fillHistogram(xDiTau, *m_hHistCut);
62 }

◆ fillHistogramCutPre()

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

Definition at line 53 of file DiTauSelectionCuts.cxx.

54 {
55  fillHistogram(xDiTau, *m_hHistCutPre);
56 }

◆ 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 82 of file DiTauSelectionCuts.cxx.

83 {
85  if(it == m_mProperties.end() )
86  throw std::runtime_error (("Undeclared property: " + name + "\n").c_str());
87 
88  return it->second;
89 }

◆ setAcceptInfo()

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

Implements TauAnalysisTools::DiTauSelectionCut.

Definition at line 245 of file DiTauSelectionCuts.cxx.

246 {
247  info.addCut( "AbsCharge",
248  "Selection of taus according to their absolute charge" );
249 }

◆ setProperty()

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

Definition at line 66 of file DiTauSelectionCuts.cxx.

67 {
69  if(it == m_mProperties.end() )
70  throw std::runtime_error (("Undeclared property: " + name + "\n").c_str());
71  it->second = value;
72 }

◆ writeControlHistograms()

void DiTauSelectionCut::writeControlHistograms ( )
inherited

Definition at line 33 of file DiTauSelectionCuts.cxx.

34 {
35  m_hHistCutPre->Write();
36  m_hHistCut->Write();
37 }

Member Data Documentation

◆ m_bDiTauCharge

float TauAnalysisTools::DiTauSelectionCutAbsCharge::m_bDiTauCharge
private

Definition at line 111 of file DiTauSelectionCuts.h.

◆ 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:144
xAOD::DiTauJet_v1::subjetPhi
float subjetPhi(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:111
skel.it
it
Definition: skel.GENtoEVGEN.py:407
athena.value
value
Definition: athena.py:124
TauAnalysisTools::DiTauSelectionCut::CreateControlPlot
TH1F * CreateControlPlot(const char *sName, const char *sTitle, int iBins, double dXLow, double dXUp)
Definition: DiTauSelectionCuts.cxx:40
TauAnalysisTools::DiTauSelectionTool::m_vAbsCharges
std::vector< int > m_vAbsCharges
Definition: DiTauSelectionTool.h:108
xAOD::DiTauJet_v1::nSubjets
float nSubjets() const
Definition: DiTauJet_v1.cxx:131
TauAnalysisTools::DiTauSelectionCut::m_sName
std::string m_sName
Definition: DiTauSelectionCuts.h:51
xAOD::DiTauJet_v1::subjetE
float subjetE(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:121
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:16
lumiFormat.i
int i
Definition: lumiFormat.py:85
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
xAOD::DiTauJet_v1::subjetEta
float subjetEta(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:101
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
AthCommonMsg::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
TauAnalysisTools::DiTauSelectionCutAbsCharge::m_bDiTauCharge
float m_bDiTauCharge
Definition: DiTauSelectionCuts.h:111
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
xAOD::DiTauJet_v1::subjetPt
float subjetPt(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:91
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:13
xAOD::DiTauJet_v1::trackLinks
const TrackParticleLinks_t & trackLinks() const
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87