|
ATLAS Offline Software
|
Go to the documentation of this file.
22 , m_hHistCutPre(nullptr)
48 TH1F* hHist =
new TH1F(sName, sTitle, iBins, dXLow, dXUp);
49 hHist->SetDirectory(0);
74 throw std::runtime_error ((
"Undeclared property: " +
name +
"\n").c_str());
81 std::pair<std::string, std::string&>
p(
name, loc);
90 throw std::runtime_error ((
"Undeclared property: " +
name +
"\n").c_str());
108 hHist.Fill(xTau.
pt()/1000.);
115 "Selection of taus according to their transverse momentum" );
122 double pt = xTau.
pt() / 1000.;
133 for(
unsigned int iPtRegion = 0; iPtRegion < iNumPtRegion; iPtRegion++ )
135 if (
pt >=
m_tTST->
m_vPtRegion.at(iPtRegion*2) and pt <= m_tTST->m_vPtRegion.at(iPtRegion*2+1))
157 hHist.Fill(xTau.
eta());
163 info.addCut(
"AbsEta",
164 "Selection of taus according to their absolute pseudorapidity" );
172 for(
unsigned int iEtaRegion = 0; iEtaRegion < iNumEtaRegion; iEtaRegion++ )
196 hHist.Fill(xTau.
charge());
202 info.addCut(
"AbsCharge",
203 "Selection of taus according to their absolute charge" );
240 info.addCut(
"NTrack",
241 "Selection of taus according to their number of associated tracks" );
248 for(
size_t iNumTrack = 0; iNumTrack <
m_tTST->
m_vNTracks.size(); iNumTrack++ )
276 info.addCut(
"JetRNNScoreSigTrans",
277 "Selection of taus according to their JetRNNScore" );
286 for(
unsigned int iJetRNNSigTransRegion = 0; iJetRNNSigTransRegion < iNumJetRNNSigTransRegion; iJetRNNSigTransRegion++ )
288 if ( dJetRNNScoreSigTrans >=
m_tTST->
m_vJetRNNSigTransRegion.at(iJetRNNSigTransRegion*2) and dJetRNNScoreSigTrans <= m_tTST->m_vJetRNNSigTransRegion.at(iJetRNNSigTransRegion*2+1))
310 hHist.Fill(acc_GNTauScoreSigTrans(xTau));
315 info.addCut(
"GNTauScoreSigTrans",
316 "Selection of taus according to their GNTauScore" );
324 float dGNTauScoreSigTrans =
acc(xTau);
326 for(
unsigned int iGNTauSigTransRegion = 0; iGNTauSigTransRegion < iNumGNTauSigTransRegion; iGNTauSigTransRegion++ )
328 if ( dGNTauScoreSigTrans >=
m_tTST->
m_vGNTauSigTransRegion.at(iGNTauSigTransRegion*2) and dGNTauScoreSigTrans <= m_tTST->m_vGNTauSigTransRegion.at(iGNTauSigTransRegion*2+1))
357 m_hHistCut->GetXaxis()->SetBinLabel(1,
"!VeryLoose");
358 m_hHistCut->GetXaxis()->SetBinLabel(2,
"VeryLoose");
359 m_hHistCut->GetXaxis()->SetBinLabel(3,
"!Loose");
360 m_hHistCut->GetXaxis()->SetBinLabel(4,
"Loose");
361 m_hHistCut->GetXaxis()->SetBinLabel(5,
"!Medium");
362 m_hHistCut->GetXaxis()->SetBinLabel(6,
"Medium");
363 m_hHistCut->GetXaxis()->SetBinLabel(7,
"!Tight");
364 m_hHistCut->GetXaxis()->SetBinLabel(8,
"Tight");
380 info.addCut(
"JetIDWP",
381 "Selection of taus according to their JetIDScore" );
412 else bPass = acc_gnTauVeryLoose(xTau);
417 else bPass = acc_gnTauLoose(xTau);
422 else bPass = acc_gnTauMedium(xTau);
427 else bPass = acc_gnTauTight(xTau);
456 hHist.Fill(
acc(xTau));
465 info.addCut(
"EleRNNScore",
466 "Selection of taus according to their EleRNNScore" );
473 float fEleRNNScore = 0.;
475 fEleRNNScore =
acc(xTau);
480 for(
unsigned int iEleRNNRegion = 0; iEleRNNRegion < iNumEleRNNRegion; iEleRNNRegion++ )
482 if ( fEleRNNScore >=
m_tTST->
m_vEleRNNRegion.at(iEleRNNRegion*2) and fEleRNNScore <= m_tTST->m_vEleRNNRegion.at(iEleRNNRegion*2+1))
508 m_hHistCut->GetXaxis()->SetBinLabel(1,
"!Loose");
509 m_hHistCut->GetXaxis()->SetBinLabel(2,
"Loose");
510 m_hHistCut->GetXaxis()->SetBinLabel(3,
"!Medium");
511 m_hHistCut->GetXaxis()->SetBinLabel(4,
"Medium");
512 m_hHistCut->GetXaxis()->SetBinLabel(5,
"!Tight");
513 m_hHistCut->GetXaxis()->SetBinLabel(6,
"Tight");
523 hHist.Fill((accLoose(xTau) == 1));
524 hHist.Fill((accMedium(xTau) == 1)+2);
525 hHist.Fill((accTight(xTau) == 1)+4);
537 info.addCut(
"EleIDWP",
538 "Selection of taus according to their EleID working point" );
557 if (accLoose(xTau) == 1)bPass =
true;
564 if (accMedium(xTau) == 1)bPass =
true;
571 if (accTight(xTau) == 1)bPass =
true;
594 , m_bTauMuonOLR(true)
603 m_hHistCut->GetXaxis()->SetBinLabel(1,
"!MuonOLR");
604 m_hHistCut->GetXaxis()->SetBinLabel(2,
"MuonOLR");
616 info.addCut(
"MuonOLR",
617 "Selection of taus according to their MuonOLR" );
633 if (!muonContainerHandle.
isValid()) {
634 m_tTST->
msg() << MSG::ERROR <<
"Could not retrieve xAOD::MuonContainer with key " << muonContainerHandle.
key() <<
endmsg;
641 if(xMuon->pt() < 2000.)
continue;
642 if(xMuon->muonType() == xAOD::Muon::CaloTagged)
continue;
643 if(xMuon->p4().DeltaR( xTau.
p4() ) > 0.2 )
continue;
xAOD::MuonContainer * muonContainer
JetConstituentVector::iterator iterator
@ RNNJetScoreSigTrans
RNN score which is signal transformed/flattened.
@ RNNEleScoreSigTrans
RNN score which is signal transformed/flattened.
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
const_pointer_type cptr()
Dereference the pointer.
virtual double eta() const
The pseudorapidity ( ) of the particle.
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
virtual double pt() const
The transverse momentum ( ) of the particle.
Class describing a tau jet.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
std::string to_string(const DetectorType &type)
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
void setCutResult(const std::string &cutName, bool cutResult)
Set the result of a cut, based on the cut name (safer)
virtual FourMom_t p4() const
The full 4-momentum of the particle.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Helper class to provide constant type-safe access to aux data.