ATLAS Offline Software
MultiSVTag.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /***************************************************************************
6  @class MultiSVTag
7  ***************************************************************************/
8 
9 #ifndef JETTAGTOOLS_MULTISVTAG_H
10 #define JETTAGTOOLS_MULTISVTAG_H
11 
13 #include "GaudiKernel/ToolHandle.h"
14 #include "JetTagTools/ITagTool.h"
16 #include <string>
17 #include <vector>
18 #include <map>
19 #include <list>
20 #include "MVAUtils/BDT.h"
21 
22 namespace Analysis
23 {
24 
25  class MultiSVTag : public extends<AthAlgTool, ITagTool>
26  {
27  public:
28  MultiSVTag(const std::string&,const std::string&,const IInterface*);
29  virtual ~MultiSVTag() = default;
30  virtual StatusCode initialize() override;
31 
32  virtual StatusCode tagJet(const xAOD::Vertex& priVtx,
33  const xAOD::Jet& jetToTag,
35  const std::string &jetName) const override;
36 
37  virtual void finalizeHistos() override;
38 
39  private:
40  std::string m_taggerNameBase;
41  //
42  std::string m_varStrName;
43 
45  SG::ReadCondHandleKey<JetTagCalibCondData> m_readKey{this, "HistosKey", "JetTagCalibHistosKey", "Key of input (derived) JetTag calibration data"};
46  //
47  std::string m_runModus;
48 
50  std::string m_ForcedCalibName;
51  std::string m_secVxFinderName;
52 
53  std::string m_sv1_infosource;
54 
55  struct Vars
56  {
57  //variables for bb tag
58  float m_jetpt = 0;
59  float m_nvtx = 0;
60  float m_maxefrc = 0;
61  float m_summass = 0;
62  float m_totalntrk = 0;
63  float m_diffntrkSV0 = -999;
64  float m_diffntrkSV1 = -999;
65 
66  float m_normDist = 0;
67  //properties of vertex with maximum (and 2nd max) mass:
68  float m_mmax_mass = -9;
69  float m_mmax_efrc = -9;
70 
71  float m_mmax_DRjet = -9;
72  float m_mmax_dist = -9;
73  float m_mmx2_mass = -9;
74  float m_mmx2_efrc = -9;
75 
76  float m_mmx2_DRjet = -9;
77  float m_mmx2_dist = -9;
78  // distances: max mass vertex to PV, and mx2 to max vertex
79  float m_mx12_2d12 = -9;
80  float m_mx12_DR = -9;
81  float m_mx12_Angle = -9;
82 
83  void SetVariableRefs(MsgStream& msg,
84  const std::vector<std::string>& inputVars,
85  unsigned &nConfgVar,
86  bool &badVariableFound,
87  std::vector<float*> &inputPointers);
88  };
89 
90  double GetClassResponse (MVAUtils::BDT* bdt) const { return (bdt->GetPointers().size() ? bdt->GetGradBoostMVA(bdt->GetPointers()) : -9.); }
91  }; // End class
92 
93 
94 } // End namespace
95 
96 #endif
Analysis::MultiSVTag::Vars::m_mmx2_efrc
float m_mmx2_efrc
Definition: MultiSVTag.h:78
Analysis::MultiSVTag::finalizeHistos
virtual void finalizeHistos() override
Definition: MultiSVTag.cxx:278
Analysis::MultiSVTag::m_taggerNameBase
std::string m_taggerNameBase
Definition: MultiSVTag.h:44
Analysis::MultiSVTag::Vars::m_mmax_efrc
float m_mmax_efrc
Definition: MultiSVTag.h:73
Analysis::MultiSVTag::Vars::m_maxefrc
float m_maxefrc
Definition: MultiSVTag.h:64
Analysis::MultiSVTag::Vars::m_mmax_dist
float m_mmax_dist
Definition: MultiSVTag.h:76
Analysis::MultiSVTag::Vars::m_mx12_DR
float m_mx12_DR
Definition: MultiSVTag.h:84
JetTagCalibCondData.h
Analysis::MultiSVTag::Vars::m_mmx2_DRjet
float m_mmx2_DRjet
Definition: MultiSVTag.h:80
MVAUtils::BDT
Simplified Boosted Regression Tree, support TMVA, lgbm, and xgboost.
Definition: BDT.h:34
Analysis::MultiSVTag::Vars::m_diffntrkSV0
float m_diffntrkSV0
Definition: MultiSVTag.h:67
Analysis::MultiSVTag::Vars::m_summass
float m_summass
Definition: MultiSVTag.h:65
Analysis::MultiSVTag::Vars
Definition: MultiSVTag.h:60
MVAUtils::BDT::GetPointers
const std::vector< float * > & GetPointers() const
Return stored pointers (which are used by methods with no args)
Analysis::MultiSVTag::initialize
virtual StatusCode initialize() override
Definition: MultiSVTag.cxx:44
Analysis::MultiSVTag::m_runModus
std::string m_runModus
Definition: MultiSVTag.h:51
Analysis::MultiSVTag::Vars::m_totalntrk
float m_totalntrk
Definition: MultiSVTag.h:66
Analysis::MultiSVTag::~MultiSVTag
virtual ~MultiSVTag()=default
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ITagTool.h
Analysis::MultiSVTag::Vars::m_mx12_2d12
float m_mx12_2d12
Definition: MultiSVTag.h:83
AthAlgTool.h
Analysis::MultiSVTag::MultiSVTag
MultiSVTag(const std::string &, const std::string &, const IInterface *)
Definition: MultiSVTag.cxx:32
Analysis::MultiSVTag::tagJet
virtual StatusCode tagJet(const xAOD::Vertex &priVtx, const xAOD::Jet &jetToTag, xAOD::BTagging &BTag, const std::string &jetName) const override
Definition: MultiSVTag.cxx:52
BDT.h
xAOD::BTagging_v1
Definition: BTagging_v1.h:39
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition: BTaggingCnvAlg.h:20
Analysis::MultiSVTag::Vars::SetVariableRefs
void SetVariableRefs(MsgStream &msg, const std::vector< std::string > &inputVars, unsigned &nConfgVar, bool &badVariableFound, std::vector< float * > &inputPointers)
Definition: MultiSVTag.cxx:282
Analysis::MultiSVTag::Vars::m_mx12_Angle
float m_mx12_Angle
Definition: MultiSVTag.h:85
Analysis::MultiSVTag::Vars::m_mmax_mass
float m_mmax_mass
Definition: MultiSVTag.h:72
Analysis::MultiSVTag::Vars::m_mmx2_dist
float m_mmx2_dist
Definition: MultiSVTag.h:81
SG::ReadCondHandleKey
Definition: ReadCondHandleKey.h:20
Analysis::MultiSVTag::m_varStrName
std::string m_varStrName
Definition: MultiSVTag.h:46
MVAUtils::BDT::GetGradBoostMVA
float GetGradBoostMVA(const std::vector< float > &values) const
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
Analysis::MultiSVTag::Vars::m_mmx2_mass
float m_mmx2_mass
Definition: MultiSVTag.h:77
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Analysis::MultiSVTag::m_secVxFinderName
std::string m_secVxFinderName
Definition: MultiSVTag.h:55
Analysis::MultiSVTag::Vars::m_mmax_DRjet
float m_mmax_DRjet
Definition: MultiSVTag.h:75
Analysis::MultiSVTag::m_doForcedCalib
bool m_doForcedCalib
Definition: MultiSVTag.h:53
Analysis::MultiSVTag::m_ForcedCalibName
std::string m_ForcedCalibName
Definition: MultiSVTag.h:54
Analysis::MultiSVTag::GetClassResponse
double GetClassResponse(MVAUtils::BDT *bdt) const
Definition: MultiSVTag.h:94
xAODType::BTag
@ BTag
The object is a b-tagging object.
Definition: ObjectType.h:60
Analysis::MultiSVTag::Vars::m_nvtx
float m_nvtx
Definition: MultiSVTag.h:63
Analysis::MultiSVTag::Vars::m_normDist
float m_normDist
Definition: MultiSVTag.h:70
Analysis::MultiSVTag::m_readKey
SG::ReadCondHandleKey< JetTagCalibCondData > m_readKey
Key of calibration data:
Definition: MultiSVTag.h:49
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Analysis::MultiSVTag::Vars::m_diffntrkSV1
float m_diffntrkSV1
Definition: MultiSVTag.h:68
Analysis::MultiSVTag::m_sv1_infosource
std::string m_sv1_infosource
Definition: MultiSVTag.h:57
Analysis::MultiSVTag::Vars::m_jetpt
float m_jetpt
Definition: MultiSVTag.h:62