|
ATLAS Offline Software
|
#include <MultivariateTagManager.h>
|
typedef std::map< std::string, double > | var_map |
|
|
void | fill_ip2d (var_map &inputs, xAOD::BTagging &BTag) const |
|
void | fill_ip3d (var_map &inputs, xAOD::BTagging &BTag) const |
|
void | fill_sv0 (const xAOD::Vertex &priVtx, var_map &inputs, xAOD::BTagging &BTag) const |
|
void | fill_sv1 (var_map &inputs, xAOD::BTagging &BTag) const |
|
void | fill_jetfitter (var_map &inputs, xAOD::BTagging &BTag) const |
|
void | fill_mvb (var_map &inputs, xAOD::Jet &jet, xAOD::BTagging &BTag) const |
|
void | fill_trkSum (var_map &inputs, xAOD::BTagging &BTag) const |
|
void | fill_softmuon (var_map &inputs, xAOD::BTagging &BTag) const |
|
void | fill_arbitrary_aux_data (var_map &inputs, xAOD::BTagging &BTag) const |
|
Definition at line 36 of file MultivariateTagManager.h.
◆ var_map
◆ MultivariateTagManager()
Analysis::MultivariateTagManager::MultivariateTagManager |
( |
const std::string & |
name, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~MultivariateTagManager()
virtual Analysis::MultivariateTagManager::~MultivariateTagManager |
( |
| ) |
|
|
virtualdefault |
◆ fill_arbitrary_aux_data()
void Analysis::MultivariateTagManager::fill_arbitrary_aux_data |
( |
var_map & |
inputs, |
|
|
xAOD::BTagging & |
BTag |
|
) |
| const |
|
private |
Definition at line 558 of file MultivariateTagManager.cxx.
568 std::string valid_key =
key +
"IsValid";
571 if ( ! keyAcc.isAvailable(
BTag) ) {
573 " tagger inputs may be incomplete");
574 }
else if (!valid_keyAcc.isAvailable(
BTag)) {
576 " may be interperated incorrectly");
578 }
else if (!valid_keyAcc(
BTag)) {
◆ fill_ip2d()
Definition at line 278 of file MultivariateTagManager.cxx.
289 float ip2_c_nan = NAN;
290 float ip2_cu_nan= NAN;
292 std::vector<float> weightBofTracksIP2D;
294 if(!weightBofTracksIP2D.empty()) {
297 ip2d_pb =
BTag.IP2D_pb();
298 ip2d_pc =
BTag.IP2D_pc();
299 ip2d_pu =
BTag.IP2D_pu();
307 ip2 =
BTag.calcLLR(ip2d_pb,ip2d_pu);
308 ip2_c =
BTag.calcLLR(ip2d_pb,ip2d_pc);
309 ip2_cu =
BTag.calcLLR(ip2d_pc,ip2d_pu);
311 if(ip2d_pb<=0. or ip2d_pu<=0. or ip2d_pb==NAN or ip2d_pu==NAN) {
314 ip2_nan =
log(ip2d_pb/ip2d_pu);
317 if(ip2d_pb<=0. or ip2d_pc<=0. or ip2d_pb==NAN or ip2d_pc==NAN) {
320 ip2_c_nan =
log(ip2d_pb/ip2d_pc);
323 if(ip2d_pc<=0. or ip2d_pu<=0. or ip2d_pc==NAN or ip2d_pu==NAN) {
326 ip2_cu_nan =
log(ip2d_pc/ip2d_pu);
331 inputs[btagvar::IP2D_PB] = ip2d_pb;
332 inputs[btagvar::IP2D_PC] = ip2d_pc;
333 inputs[btagvar::IP2D_PU] = ip2d_pu;
334 inputs[btagvar::IP2] = ip2;
335 inputs[btagvar::IP2_C] = ip2_c;
336 inputs[btagvar::IP2_CU] = ip2_cu;
337 inputs[btagvar::IP2_NAN] = ip2_nan;
338 inputs[btagvar::IP2_C_NAN] = ip2_c_nan;
339 inputs[btagvar::IP2_CU_NAN] = ip2_cu_nan;
◆ fill_ip3d()
Definition at line 343 of file MultivariateTagManager.cxx.
354 float ip3_c_nan = NAN;
355 float ip3_cu_nan = NAN;
357 std::vector<float> weightBofTracksIP3D;
359 if(!weightBofTracksIP3D.empty()) {
361 ip3d_pb =
BTag.IP3D_pb();
362 ip3d_pc =
BTag.IP3D_pc();
363 ip3d_pu =
BTag.IP3D_pu();
371 ip3 =
BTag.calcLLR(ip3d_pb,ip3d_pu);
372 ip3_c =
BTag.calcLLR(ip3d_pb,ip3d_pc);
373 ip3_cu =
BTag.calcLLR(ip3d_pc,ip3d_pu);
375 if(ip3d_pb<=0. or ip3d_pu<=0. or ip3d_pb==NAN or ip3d_pu==NAN) {
378 ip3_nan =
log(ip3d_pb/ip3d_pu);
381 if(ip3d_pb<=0. or ip3d_pc<=0. or ip3d_pb==NAN or ip3d_pc==NAN) {
384 ip3_c_nan =
log(ip3d_pb/ip3d_pc);
387 if(ip3d_pc<=0. or ip3d_pu<=0. or ip3d_pc==NAN or ip3d_pu==NAN) {
390 ip3_cu_nan =
log(ip3d_pc/ip3d_pu);
395 inputs[btagvar::IP3D_PB] = ip3d_pb;
396 inputs[btagvar::IP3D_PC] = ip3d_pc;
397 inputs[btagvar::IP3D_PU] = ip3d_pu;
398 inputs[btagvar::IP3] = ip3;
399 inputs[btagvar::IP3_C] = ip3_c;
400 inputs[btagvar::IP3_CU] = ip3_cu;
401 inputs[btagvar::IP3_NAN] = ip3_nan;
402 inputs[btagvar::IP3_C_NAN] = ip3_c_nan;
403 inputs[btagvar::IP3_CU_NAN] = ip3_cu_nan;
◆ fill_jetfitter()
Definition at line 197 of file MultivariateTagManager.cxx.
199 int jf_nvtx = INT_MISSING;
200 int jf_nvtx1t = INT_MISSING;
201 int jf_ntrkAtVx = INT_MISSING;
202 int jf_n2tv = INT_MISSING;
206 float jf_dR_flight = NAN;
209 float jf_mass_uncor = NAN;
210 float jf_sig3d = NAN;
213 int jf_nvtx_tmp(INT_MISSING), jf_nvtx1t_tmp(INT_MISSING);
214 bool jfitter_ok(
false);
215 std::vector< ElementLink< xAOD::BTagVertexContainer > > jf_vertices;
216 BTag.variable<std::vector<ElementLink<xAOD::BTagVertexContainer> > >(
m_jftNN_infosource,
"JFvertices", jf_vertices);
226 if(!jf_vertices.empty() && jf_vertices[0].isValid() &&
227 (jf_nvtx_tmp > 0 || jf_nvtx1t_tmp > 0)) jfitter_ok =
true;
256 jf_dR = std::hypot(jf_dphi,jf_deta);
262 inputs[btagvar::JF_NVTX] = nan_if_placeholder(jf_nvtx);
263 inputs[btagvar::JF_NVTX1T] = nan_if_placeholder(jf_nvtx1t);
264 inputs[btagvar::JF_NTRKV] = nan_if_placeholder(jf_ntrkAtVx);
265 inputs[btagvar::JF_EFRC] = jf_efrc;
266 inputs[btagvar::JF_MASS] = jf_mass;
267 inputs[btagvar::JF_MASS_UNCOR] = jf_mass_uncor;
268 inputs[btagvar::JF_N2TV] = nan_if_placeholder(jf_n2tv);
269 inputs[btagvar::JF_SIG3D] = jf_sig3d;
270 inputs[btagvar::JF_DR] = jf_dR;
271 inputs[btagvar::JF_DR_FLIGHT]= jf_dR_flight;
272 inputs[btagvar::JF_DPHI] = jf_dphi;
273 inputs[btagvar::JF_DETA] = jf_deta;
◆ fill_mvb()
◆ fill_softmuon()
Definition at line 135 of file MultivariateTagManager.cxx.
136 float sm_mu_pt = NAN;
138 float sm_qOverPratio = NAN;
139 float sm_mombalsignif = NAN;
140 float sm_scatneighsignif = NAN;
141 float sm_pTrel = NAN;
142 float sm_mu_d0 = NAN;
143 float sm_mu_z0 = NAN;
144 float sm_ID_qOverP = NAN;
147 if(!std::isnan(sm_mu_pt) && sm_mu_pt>0){
160 inputs[btagvar::SM_MU_PT] = sm_mu_pt;
161 inputs[btagvar::SM_DR] = sm_dR;
162 inputs[btagvar::SM_QOVERP] = sm_qOverPratio;
163 inputs[btagvar::SM_MOMBALSIG] = sm_mombalsignif;
164 inputs[btagvar::SM_SCATNEIGH] = sm_scatneighsignif;
165 inputs[btagvar::SM_PTREL] = sm_pTrel;
166 inputs[btagvar::SM_MU_D0] = sm_mu_d0;
167 inputs[btagvar::SM_MU_Z0] = sm_mu_z0;
168 inputs[btagvar::SM_ID_QOVERP] = sm_ID_qOverP;
◆ fill_sv0()
Definition at line 408 of file MultivariateTagManager.cxx.
412 int sv0_n2t = INT_MISSING;
413 int sv0_ntrkv = INT_MISSING;
414 float sv0_efrc = NAN;
415 float sv0_mass = NAN;
416 float sv0_radius = NAN;
417 float sv0_sig3d = NAN;
418 float sv0_pv_x = NAN, sv0_pv_y = NAN;
422 std::vector< ElementLink< xAOD::VertexContainer > > myVertices_SV0;
423 BTag.variable<std::vector<ElementLink<xAOD::VertexContainer> > >(
m_sv1_infosource,
"vertices", myVertices_SV0);
425 if ( !myVertices_SV0.empty() && myVertices_SV0[0].isValid() ) {
447 sv0_radius = sqrt(
pow(sv0_pv_x,2)+
pow(sv0_pv_y,2));
451 inputs[btagvar::SV0_MASS] = sv0_mass;
452 inputs[btagvar::SV0_EFRC] = sv0_efrc;
453 inputs[btagvar::SV0_N2T] = nan_if_placeholder(sv0_n2t);
454 inputs[btagvar::SV0_NTRKV] = nan_if_placeholder(sv0_ntrkv);
455 inputs[btagvar::SV0_SIG3D] = sv0_sig3d;
456 inputs[btagvar::SV0_RADIUS] = sv0_radius;
◆ fill_sv1()
Definition at line 460 of file MultivariateTagManager.cxx.
462 float sv1_pb = NAN, sv1_pc = NAN, sv1_pu = NAN;
463 float sv1 = NAN, sv1_c = NAN, sv1_cu = NAN;
464 float sv1_nan = NAN, sv1_c_nan = NAN, sv1_cu_nan = NAN;
466 int sv1_n2t = INT_MISSING;
467 int sv1_ntrkv = INT_MISSING;
468 float sv1_efrc = NAN;
469 float sv1_mass = NAN;
472 float sv1_sig3d = NAN;
474 float sv1_distmatlay = NAN;
478 std::vector< ElementLink< xAOD::VertexContainer > > myVertices_SV1;
479 BTag.variable<std::vector<ElementLink<xAOD::VertexContainer> > >(
m_sv1_infosource,
"vertices", myVertices_SV1);
480 if ( !myVertices_SV1.empty() && myVertices_SV1[0].isValid() ) {
487 sv1_pb=
BTag.SV1_pb();
488 sv1_pu=
BTag.SV1_pu();
489 sv1_pc=
BTag.SV1_pc();
513 sv1 =
BTag.calcLLR(sv1_pb,sv1_pu);
514 sv1_c =
BTag.calcLLR(sv1_pb,sv1_pc);
515 sv1_cu =
BTag.calcLLR(sv1_pc,sv1_pu);
517 if(sv1_pb<=0. or sv1_pu<=0. or sv1_pb==NAN or sv1_pu==NAN) {
520 sv1_nan =
log(sv1_pb/sv1_pu);
523 if(sv1_pb<=0. or sv1_pc<=0. or sv1_pb==NAN or sv1_pc==NAN) {
526 sv1_c_nan =
log(sv1_pb/sv1_pc);
529 if(sv1_pc<=0. or sv1_pu<=0. or sv1_pc==NAN or sv1_pu==NAN) {
532 sv1_cu_nan =
log(sv1_pc/sv1_pu);
537 inputs[btagvar::SV1_PB] = sv1_pb;
538 inputs[btagvar::SV1_PC] = sv1_pc;
539 inputs[btagvar::SV1_PU] = sv1_pu;
540 inputs[btagvar::SV1] = sv1;
541 inputs[btagvar::SV1_C] = sv1_c;
542 inputs[btagvar::SV1_CU] = sv1_cu;
543 inputs[btagvar::SV1_NAN] = sv1_nan;
544 inputs[btagvar::SV1_C_NAN] = sv1_c_nan;
545 inputs[btagvar::SV1_CU_NAN] = sv1_cu_nan;
547 inputs[btagvar::SV1_EFRC] = sv1_efrc;
548 inputs[btagvar::SV1_MASS] = sv1_mass;
549 inputs[btagvar::SV1_N2T] = nan_if_placeholder(sv1_n2t);
550 inputs[btagvar::SV1_NTRKV] = nan_if_placeholder(sv1_ntrkv);
551 inputs[btagvar::SV1_LXY] = sv1_Lxy;
552 inputs[btagvar::SV1_L3D] = sv1_L3d;
553 inputs[btagvar::SV1_SIG3D] = sv1_sig3d;
554 inputs[btagvar::SV1_DR] = sv1_dR;
555 inputs[btagvar::SV1_DISTMATLAY] = sv1_distmatlay;
◆ fill_trkSum()
Definition at line 172 of file MultivariateTagManager.cxx.
173 float trkSum_ntrk = NAN;
174 float trkSum_sPt = NAN;
175 float trkSum_vPt = NAN;
176 float trkSum_vAbsEta =NAN;
180 trkSum_ntrk = ntrkAcc.isAvailable(
BTag) ? ntrkAcc(
BTag) : NAN;
181 trkSum_sPt = SPtAcc.isAvailable(
BTag) ? SPtAcc(
BTag): NAN;
183 if (!std::isnan(trkSum_ntrk)){
186 trkSum_vPt = VPtAcc.isAvailable(
BTag) ? VPtAcc(
BTag) : NAN;
187 trkSum_vAbsEta= VEtaAcc.isAvailable(
BTag) ? VEtaAcc(
BTag) : NAN;
190 inputs[btagvar::TRKSUM_NTRK] = trkSum_ntrk;
191 inputs[btagvar::TRKSUM_SPT] = trkSum_sPt;
192 inputs[btagvar::TRKSUM_VPT] = trkSum_vPt;
193 inputs[btagvar::TRKSUM_ABSETA] = trkSum_vAbsEta;
◆ finalizeHistos()
virtual void Analysis::MultivariateTagManager::finalizeHistos |
( |
| ) |
|
|
inlineoverridevirtual |
◆ initialize()
StatusCode Analysis::MultivariateTagManager::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 56 of file MultivariateTagManager.cxx.
61 return StatusCode::FAILURE;
66 return StatusCode::FAILURE;
76 ATH_MSG_WARNING(
"Retrieving in the initialization of MultivariateTagManager failed.");
77 return StatusCode::FAILURE;
81 ATH_MSG_INFO(
" #BTAG# Initialization of MultivariateTagManager successfull" );
82 return StatusCode::SUCCESS;
◆ tagJet()
Definition at line 88 of file MultivariateTagManager.cxx.
95 if ( jetName.empty() ) {
97 " No likelihood value given back. ");
100 double jetpT = jetToTag.
pt();
101 double jeteta = jetToTag.
eta();
105 inputs[btagvar::JET_ETA] = jeteta;
106 inputs[btagvar::JET_ABS_ETA] = std::fabs(jeteta);
107 inputs[btagvar::JET_PT] = jetpT;
126 itr->assignProbability(&
BTag,
inputs, jetName);
131 return StatusCode::SUCCESS;
◆ m_arbitrary_aux_data
std::vector<std::string> Analysis::MultivariateTagManager::m_arbitrary_aux_data |
|
private |
◆ m_aux_data_name_map
std::map<std::string, std::string> Analysis::MultivariateTagManager::m_aux_data_name_map |
|
private |
◆ m_ip2d_infosource
std::string Analysis::MultivariateTagManager::m_ip2d_infosource |
|
private |
◆ m_ip3d_infosource
std::string Analysis::MultivariateTagManager::m_ip3d_infosource |
|
private |
◆ m_jftNN_infosource
std::string Analysis::MultivariateTagManager::m_jftNN_infosource |
|
private |
◆ m_MultivariateTaggerHandleArray
◆ m_softmuon_infosource
std::string Analysis::MultivariateTagManager::m_softmuon_infosource |
|
private |
◆ m_sv0_infosource
std::string Analysis::MultivariateTagManager::m_sv0_infosource |
|
private |
◆ m_sv1_infosource
std::string Analysis::MultivariateTagManager::m_sv1_infosource |
|
private |
The documentation for this class was generated from the following files:
@ JetFitter_deltaeta
JetFitter : Delta eta between jet and momentum sum of all tracks associated with displaced vertices r...
float x() const
Returns the x position.
std::string m_sv0_infosource
std::map< std::string, std::string > m_aux_data_name_map
@ JetFitter_nSingleTracks
JetFitter : Number of single tracks.
@ SV1_N2Tpair
SV1 : Number of 2-track pairs.
Helper class to provide constant type-safe access to aux data.
void fill_sv0(const xAOD::Vertex &priVtx, var_map &inputs, xAOD::BTagging &BTag) const
@ SV1_normdist
SV1 : 3D vertex significance.
void fill_arbitrary_aux_data(var_map &inputs, xAOD::BTagging &BTag) const
void fill_jetfitter(var_map &inputs, xAOD::BTagging &BTag) const
@ JetFitter_energyFraction
JetFitter : Jet efrac.
@ JetFitter_nVTX
JetFitter : Number of vertices.
void fill_softmuon(var_map &inputs, xAOD::BTagging &BTag) const
std::vector< std::string > m_arbitrary_aux_data
::StatusCode StatusCode
StatusCode definition for legacy code.
@ SV0_NGTinSvx
SV0 : Number of good tracks in vertex.
void fill_sv1(var_map &inputs, xAOD::BTagging &BTag) const
@ JetFitter_mass
JetFitter : Jet mass.
@ JetFitter_nTracksAtVtx
JetFitter : Number of tracks at vertex.
@ SV1_efracsvx
SV1 : energy fraction.
@ SV0_N2Tpair
SV0 : Number of 2-track pairs.
std::string m_softmuon_infosource
std::string m_ip3d_infosource
@ SV0_efracsvx
SV0 : energy fraction.
virtual double eta() const
The pseudorapidity ( ) of the particle.
@ JetFitter_significance3d
JetFitter : 3D vertex significance.
@ JetFitter_N2Tpair
JetFitter : Number of 2-track pairs.
std::string m_jftNN_infosource
@ SV1_NGTinSvx
SV1 : Number of good tracks in vertex.
ToolHandleArray< IMultivariateJetTagger > m_MultivariateTaggerHandleArray
void fill_ip3d(var_map &inputs, xAOD::BTagging &BTag) const
std::map< std::string, double > var_map
#define ATH_MSG_WARNING(x)
std::string m_sv1_infosource
std::string m_ip2d_infosource
float y() const
Returns the y position.
@ SV0_masssvx
SV0 : vertex mass.
@ JetFitter_deltaphi
JetFitter : Delta phi between jet and momentum sum of all tracks associated with displaced vertices r...
void fill_ip2d(var_map &inputs, xAOD::BTagging &BTag) const
@ BTag
The object is a b-tagging object.
virtual double pt() const
The transverse momentum ( ) of the particle.
void fill_trkSum(var_map &inputs, xAOD::BTagging &BTag) const
@ SV1_masssvx
SV1 : vertex mass.