ATLAS Offline Software
SVTag.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 SVTag
7  ***************************************************************************/
8 
9 #ifndef JETTAGTOOLS_SVTAG_H
10 #define JETTAGTOOLS_SVTAG_H
11 
13 #include "GaudiKernel/ToolHandle.h"
14 #include "JetTagTools/ITagTool.h"
15 #include "xAODJet/Jet.h"
16 #include "xAODTracking/Vertex.h"
17 
18 #include <vector>
19 #include <map>
20 
21 namespace Analysis
22 {
23  class SVInfo;
24  class NewLikelihoodTool;
25  class HistoHelperRoot;
26 
27  class SVTag : public extends<AthAlgTool, ITagTool>
28  {
29  public:
30  SVTag(const std::string&,const std::string&,const IInterface*);
31  virtual ~SVTag();
32  virtual StatusCode initialize() override;
33  virtual StatusCode finalize() override;
34 
35  virtual StatusCode tagJet(const xAOD::Vertex& priVtx,
36  const xAOD::Jet& jetToTag,
38  const std::string &jetName) const override;
39  virtual void finalizeHistos() override {};
40 
41  private:
42 
43  //GP: calculate the 3d significance on the fly
44  double get3DSignificance(const xAOD::Vertex& priVertex,
45  std::vector<const xAOD::Vertex*>& secVertex,
46  const Amg::Vector3D jetDirection) const;
47 
48  double get3DSignificanceCorr(const xAOD::Vertex& priVertex,
49  std::vector<const xAOD::Vertex*>& secVertex,
50  const Amg::Vector3D jetDirection) const;
51 
52 
53  ToolHandle< NewLikelihoodTool > m_likelihoodTool;
55 
56  double m_c_mom;
57  float m_expos;
58 
59  std::string m_runModus;
60  std::string m_refType;
61  std::string m_SVmode;
62  float m_pTjetmin;
65 
68 
69  // for debugging:
70  mutable std::atomic<int> m_nbjet;
71  mutable std::atomic<int> m_ncjet;
72  mutable std::atomic<int> m_nljet;
73 
74  bool m_useCHypo;
75  bool m_usePtSV2;
76 
77  std::vector<std::string> m_jetCollectionList;
78  std::vector<std::string> m_hypotheses;
79 
81  std::string m_ForcedCalibName;
82  //name of the VKalVrt secondary vertex in Jet instance
83  //(needed to retrieve the ISvxConstituent written
84  //out by the finder and attached to the ParticleJet)
85  std::string m_secVxFinderName;
86  std::string m_xAODBaseName;
87 
88  // flag to turn ON/OFF the use of \DeltaR(jet,PV-SV) in the likelihood
89  bool m_useDRJPVSV;
90  bool m_isFlipped; // true if tagger is configured in flipped mode. in that case adjusts DRJPVSV computation
92 
93  }; // End class
94 
95 } // End namespace
96 
97 #endif
Analysis::SVTag::m_expos
float m_expos
Definition: SVTag.h:59
Jet.h
Analysis::SVTag::m_likelihoodTool
ToolHandle< NewLikelihoodTool > m_likelihoodTool
Definition: SVTag.h:55
Analysis::HistoHelperRoot
Helper class for histograming.
Definition: HistoHelperRoot.h:36
Analysis::SVTag::finalizeHistos
virtual void finalizeHistos() override
Definition: SVTag.h:41
Analysis::SVTag::m_ForcedCalibName
std::string m_ForcedCalibName
Definition: SVTag.h:83
Analysis::SVTag::m_histoHelper
HistoHelperRoot * m_histoHelper
Definition: SVTag.h:56
Analysis::SVTag::m_usePtSV2
bool m_usePtSV2
Definition: SVTag.h:77
Analysis::SVTag::tagJet
virtual StatusCode tagJet(const xAOD::Vertex &priVtx, const xAOD::Jet &jetToTag, xAOD::BTagging &BTag, const std::string &jetName) const override
Definition: SVTag.cxx:161
Analysis::SVTag::m_purificationDeltaR
double m_purificationDeltaR
Definition: SVTag.h:66
Analysis::SVTag::printParameterSettings
void printParameterSettings()
just print some info at the beginning
Definition: SVTag.cxx:468
Analysis::SVTag::SVTag
SVTag(const std::string &, const std::string &, const IInterface *)
Definition: SVTag.cxx:27
Analysis::SVTag::m_ncjet
std::atomic< int > m_ncjet
Definition: SVTag.h:73
Analysis::SVTag::initialize
virtual StatusCode initialize() override
Definition: SVTag.cxx:60
Analysis::SVTag::get3DSignificance
double get3DSignificance(const xAOD::Vertex &priVertex, std::vector< const xAOD::Vertex * > &secVertex, const Amg::Vector3D jetDirection) const
Definition: SVTag.cxx:475
Analysis::SVTag::m_nbjet
std::atomic< int > m_nbjet
Definition: SVTag.h:72
Analysis::SVTag::m_SVmode
std::string m_SVmode
Definition: SVTag.h:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Analysis::SVTag::m_isFlipped
bool m_isFlipped
Definition: SVTag.h:92
Analysis::SVTag::m_refType
std::string m_refType
Definition: SVTag.h:62
ITagTool.h
Analysis::SVTag::m_hypotheses
std::vector< std::string > m_hypotheses
Definition: SVTag.h:80
AthAlgTool.h
Analysis::SVTag::m_c_mom
double m_c_mom
Definition: SVTag.h:58
Analysis::SVTag::~SVTag
virtual ~SVTag()
Definition: SVTag.cxx:56
xAOD::BTagging_v1
Definition: BTagging_v1.h:39
Vertex.h
Analysis::SVTag::m_jetCollectionList
std::vector< std::string > m_jetCollectionList
Definition: SVTag.h:79
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition: BTaggingCnvAlg.h:20
Analysis::SVTag::m_save_probabilities
bool m_save_probabilities
Definition: SVTag.h:93
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Analysis::SVTag::m_doForcedCalib
bool m_doForcedCalib
Definition: SVTag.h:82
Analysis::SVTag::finalize
virtual StatusCode finalize() override
Definition: SVTag.cxx:151
Analysis::SVTag::m_checkOverflows
bool m_checkOverflows
Definition: SVTag.h:65
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Analysis::SVTag::get3DSignificanceCorr
double get3DSignificanceCorr(const xAOD::Vertex &priVertex, std::vector< const xAOD::Vertex * > &secVertex, const Amg::Vector3D jetDirection) const
Definition: SVTag.cxx:545
Analysis::SVTag::m_xAODBaseName
std::string m_xAODBaseName
Definition: SVTag.h:88
Analysis::SVTag::m_useDRJPVSV
bool m_useDRJPVSV
Definition: SVTag.h:91
Analysis::SVTag::m_nljet
std::atomic< int > m_nljet
Definition: SVTag.h:74
Analysis::SVTag::m_secVxFinderName
std::string m_secVxFinderName
Definition: SVTag.h:87
xAODType::BTag
@ BTag
The object is a b-tagging object.
Definition: ObjectType.h:60
Analysis::SVTag::m_useCHypo
bool m_useCHypo
Definition: SVTag.h:76
Analysis::SVTag::m_pTjetmin
float m_pTjetmin
Definition: SVTag.h:64
Analysis::SVTag::m_runModus
std::string m_runModus
Definition: SVTag.h:61