ATLAS Offline Software
JetTagMonitorAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef JETTAGMONITORALGORITHM_H
6 #define JETTAGMONITORALGORITHM_H
7 
11 #include "StoreGate/ReadHandle.h"
12 
15 
16 #include "xAODTracking/Vertex.h"
18 #include "VxVertex/VxContainer.h"
21 
24 #include "TrkTrack/Track.h"
29 
31 #include "xAODMuon/MuonContainer.h"
32 
33 #include "xAODJet/Jet.h"
34 #include "xAODJet/JetContainer.h"
35 #include "xAODJet/JetAttributes.h"
36 #include "xAODBTagging/BTagging.h"
38 
40 #include "GaudiKernel/ToolHandle.h"
41 #include "GaudiKernel/ServiceHandle.h"
42 #include "GaudiKernel/SystemOfUnits.h"
43 
44 #include "TH1F.h"
45 #include "TH2F.h"
46 #include "TMath.h"
47 #include "TEfficiency.h"
48 
49 #include <vector>
50 #include <string>
51 #include <sstream>
52 #include <bitset>
53 #include <map>
54 
56  public:
57  JetTagMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
58  virtual ~JetTagMonitorAlgorithm();
59  virtual StatusCode initialize() override;
60  virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
61 
62  private:
63 
64  SG::ReadHandleKey<xAOD::VertexContainer> m_VertContainerKey{this,"VerticesKey","PrimaryVertices","RHK for primary vertices"};
65  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_TrackContainerKey{this,"TracksKey","InDetTrackParticles","RHK for ID tracks"};
66 
70  SG::ReadDecorHandleKey<xAOD::JetContainer> m_btagLinkKey{this,"BTagLinkKey","","RDHK for btag links"};
71  SG::ReadDecorHandleKey<xAOD::BTaggingContainer> m_btagResultKey{this,"BTagResultKey","","RDHK for monitored BTag variables"};
72 
73  SG::ReadDecorHandleKey<xAOD::MuonContainer> m_MuonEtIsoDecorKey {this,"MuonEtIsoDecorKey","Muons.topoetcone20"};
74  SG::ReadDecorHandleKey<xAOD::MuonContainer> m_MuonPtIsoDecorKey {this,"MuonPtIsoDecorKey","Muons.ptvarcone30"};
75  SG::ReadDecorHandleKey<xAOD::ElectronContainer> m_EleEtIsoDecorKey {this,"EleEtIsoDecorKey","Electrons.topoetcone20"};
76  SG::ReadDecorHandleKey<xAOD::ElectronContainer> m_ElePtIsoDecorKey {this,"ElePtIsoDecorKey","Electrons.ptvarcone20"};
77 
78  ToolHandle<InDet::IInDetTrackSelectionTool> m_TrackSelectionTool{this, "TrackSelectionTool", "InDetTrackSelectionTool", "Tool for selecting tracks"};
79 
80  bool m_SkipPreSelection; //true for HI/HI-p collisions, false for pp collisions
81  bool m_SkipJetFilter; //true for HI/HI-p collisions, false for pp collisions
82 
83  bool m_DoExtraTaggerHistos; //true if interested in extra tagger histograms
84 
86  float m_TrackPtCut;
87  float m_Trackd0Cut;
90 
91  float m_JetPtCut;
92  float m_JetEtaCut;
95  float m_MuonPtCut;
96  float m_MuonEtaCut;
105  float m_JVTCut;
106  float m_JVTpTCut;
107  float m_JVTetaCut;
108 
109  std::string m_TaggerName;
110  float m_cFraction;
111  float m_WP60Cut;
112  float m_WP70Cut;
113  float m_WP77Cut;
114  float m_WP85Cut;
115 
117  void fillGoodJetHistos(const xAOD::Jet *jet) const;
118  void fillSuspectJetHistos(const xAOD::Jet *jet) const;
119  void fillExtraTaggerHistos(const xAOD::Jet *jet) const;
120  void fillTTbarEventJetHistos(const xAOD::Jet *jet) const;
121  bool passJetFilterCut(const xAOD::Jet *jet) const;
122  bool passKinematicCut(const xAOD::Jet *jet) const;
123  bool passJVTCut(const xAOD::Jet *jet) const;
124  double getTaggerWeight(const xAOD::Jet *jet) const;
125  Jet_t getQualityLabel(const xAOD::Jet *jet, float PV_Z) const;
126 
127 };
128 #endif
JetTagMonitorAlgorithm::m_WP60Cut
float m_WP60Cut
Definition: JetTagMonitorAlgorithm.h:111
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
JetTagMonitorAlgorithm::m_JVTpTCut
float m_JVTpTCut
Definition: JetTagMonitorAlgorithm.h:106
BTaggingUtilities.h
JetTagMonitorAlgorithm::m_MuonContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
Definition: JetTagMonitorAlgorithm.h:68
JetTagMonitorAlgorithm::goodJet
@ goodJet
Definition: JetTagMonitorAlgorithm.h:116
JetTagMonitorAlgorithm::suspectJet
@ suspectJet
Definition: JetTagMonitorAlgorithm.h:116
Jet.h
JetTagMonitorAlgorithm
Definition: JetTagMonitorAlgorithm.py:1
JetTagMonitorAlgorithm::m_JetEtaCut
float m_JetEtaCut
Definition: JetTagMonitorAlgorithm.h:92
JetTagMonitorAlgorithm::fillExtraTaggerHistos
void fillExtraTaggerHistos(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:1083
BTagging.h
JetTagMonitorAlgorithm::m_WP77Cut
float m_WP77Cut
Definition: JetTagMonitorAlgorithm.h:113
JetTagMonitorAlgorithm::m_MuonEtaCut
float m_MuonEtaCut
Definition: JetTagMonitorAlgorithm.h:96
JetTagMonitorAlgorithm::m_WP85Cut
float m_WP85Cut
Definition: JetTagMonitorAlgorithm.h:114
JetTagMonitorAlgorithm::passJVTCut
bool passJVTCut(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:679
JetTagMonitorAlgorithm::m_ElectronContainerKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
Definition: JetTagMonitorAlgorithm.h:69
JetTagMonitorAlgorithm::m_ElectronEtaCut
float m_ElectronEtaCut
Definition: JetTagMonitorAlgorithm.h:98
JetAttributes.h
JetTagMonitorAlgorithm::Jet_t
Jet_t
Definition: JetTagMonitorAlgorithm.h:116
JetTagMonitorAlgorithm::m_TrackHitIBLCut
int m_TrackHitIBLCut
Definition: JetTagMonitorAlgorithm.h:89
JetTagMonitorAlgorithm::fillSuspectJetHistos
void fillSuspectJetHistos(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:932
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
JetTagMonitorAlgorithm::m_MuonEtIsoDecorKey
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_MuonEtIsoDecorKey
Definition: JetTagMonitorAlgorithm.h:73
JetTagMonitorAlgorithm::m_cFraction
float m_cFraction
Definition: JetTagMonitorAlgorithm.h:110
LArEventBitInfo.h
Track.h
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
AthAlgorithm.h
JetTagMonitorAlgorithm::passKinematicCut
bool passKinematicCut(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:667
JetTagMonitorAlgorithm::m_JVTCut
float m_JVTCut
Definition: JetTagMonitorAlgorithm.h:105
JetTagMonitorAlgorithm::JetTagMonitorAlgorithm
JetTagMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: JetTagMonitorAlgorithm.cxx:7
JetTagMonitorAlgorithm::m_btagResultKey
SG::ReadDecorHandleKey< xAOD::BTaggingContainer > m_btagResultKey
Definition: JetTagMonitorAlgorithm.h:71
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
JetTagMonitorAlgorithm::m_TrackSelectionTool
ToolHandle< InDet::IInDetTrackSelectionTool > m_TrackSelectionTool
Definition: JetTagMonitorAlgorithm.h:78
ElectronContainer.h
JetTagMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: JetTagMonitorAlgorithm.cxx:87
JetTagMonitorAlgorithm::m_btagLinkKey
SG::ReadDecorHandleKey< xAOD::JetContainer > m_btagLinkKey
Definition: JetTagMonitorAlgorithm.h:70
JetTagMonitorAlgorithm::m_DoExtraTaggerHistos
bool m_DoExtraTaggerHistos
Definition: JetTagMonitorAlgorithm.h:83
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
JetTagMonitorAlgorithm::m_WP70Cut
float m_WP70Cut
Definition: JetTagMonitorAlgorithm.h:112
AthMonitorAlgorithm.h
JetTagMonitorAlgorithm::m_SoftMuonPtMin
float m_SoftMuonPtMin
Definition: JetTagMonitorAlgorithm.h:93
JetTagMonitorAlgorithm::m_TrackPtCut
float m_TrackPtCut
Definition: JetTagMonitorAlgorithm.h:86
TrackCollection.h
VxSecVertexInfo.h
JetTagMonitorAlgorithm::fillTTbarEventJetHistos
void fillTTbarEventJetHistos(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:715
JetTagMonitorAlgorithm::m_SkipPreSelection
bool m_SkipPreSelection
Definition: JetTagMonitorAlgorithm.h:80
VxContainer.h
JetTagMonitorAlgorithm::m_MinGoodTrackCut
int m_MinGoodTrackCut
Definition: JetTagMonitorAlgorithm.h:85
JetTagMonitorAlgorithm::m_Trackd0Cut
float m_Trackd0Cut
Definition: JetTagMonitorAlgorithm.h:87
Vertex.h
IInDetTrackSelectionTool.h
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
JetTagMonitorAlgorithm::m_MuonPtCut
float m_MuonPtCut
Definition: JetTagMonitorAlgorithm.h:95
LinkToTrackParticleBase.h
JetTagMonitorAlgorithm::m_TaggerName
std::string m_TaggerName
Definition: JetTagMonitorAlgorithm.h:109
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
JetTagMonitorAlgorithm::m_MuonPtVarCone30Cut
float m_MuonPtVarCone30Cut
Definition: JetTagMonitorAlgorithm.h:104
JetTagMonitorAlgorithm::getTaggerWeight
double getTaggerWeight(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:692
JetTagMonitorAlgorithm::m_ElePtIsoDecorKey
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_ElePtIsoDecorKey
Definition: JetTagMonitorAlgorithm.h:76
JetTagMonitorAlgorithm::m_JetPtCut
float m_JetPtCut
Definition: JetTagMonitorAlgorithm.h:91
JetTagMonitorAlgorithm::m_JetContainerKey
SG::ReadHandleKey< xAOD::JetContainer > m_JetContainerKey
Definition: JetTagMonitorAlgorithm.h:67
JetTagMonitorAlgorithm::getQualityLabel
Jet_t getQualityLabel(const xAOD::Jet *jet, float PV_Z) const
Definition: JetTagMonitorAlgorithm.cxx:1112
EventInfo.h
MuonContainer.h
JetTagMonitorAlgorithm::m_MuonPtIsoDecorKey
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_MuonPtIsoDecorKey
Definition: JetTagMonitorAlgorithm.h:74
TrackParticle.h
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
JetTagMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: JetTagMonitorAlgorithm.cxx:55
VertexContainer.h
JetTagMonitorAlgorithm::~JetTagMonitorAlgorithm
virtual ~JetTagMonitorAlgorithm()
Definition: JetTagMonitorAlgorithm.cxx:53
VxSecVKalVertexInfo.h
JetContainer.h
JetTagMonitorAlgorithm::m_ElectronPtCut
float m_ElectronPtCut
Definition: JetTagMonitorAlgorithm.h:97
JetTagMonitorAlgorithm::m_JVTetaCut
float m_JVTetaCut
Definition: JetTagMonitorAlgorithm.h:107
ITrackToVertexIPEstimator.h
JetTagMonitorAlgorithm::m_ElectronTopoEtCone20Cut
float m_ElectronTopoEtCone20Cut
Definition: JetTagMonitorAlgorithm.h:101
JetTagMonitorAlgorithm::m_EleEtIsoDecorKey
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_EleEtIsoDecorKey
Definition: JetTagMonitorAlgorithm.h:75
JetTagMonitorAlgorithm::m_SoftMuonPtMax
float m_SoftMuonPtMax
Definition: JetTagMonitorAlgorithm.h:94
JetTagMonitorAlgorithm::m_ElectronPtVarCone20Cut
float m_ElectronPtVarCone20Cut
Definition: JetTagMonitorAlgorithm.h:102
JetTagMonitorAlgorithm::fillGoodJetHistos
void fillGoodJetHistos(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:783
JetTagMonitorAlgorithm::m_VertContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_VertContainerKey
Definition: JetTagMonitorAlgorithm.h:64
JetTagMonitorAlgorithm::m_ElectronEtaCrackLowCut
float m_ElectronEtaCrackLowCut
Definition: JetTagMonitorAlgorithm.h:99
ReadHandle.h
Handle class for reading from StoreGate.
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
JetTagMonitorAlgorithm::passJetFilterCut
bool passJetFilterCut(const xAOD::Jet *jet) const
Definition: JetTagMonitorAlgorithm.cxx:633
JetTagMonitorAlgorithm::badJet
@ badJet
Definition: JetTagMonitorAlgorithm.h:116
JetTagMonitorAlgorithm::m_ElectronEtaCrackHighCut
float m_ElectronEtaCrackHighCut
Definition: JetTagMonitorAlgorithm.h:100
JetTagMonitorAlgorithm::m_MuonTopoEtCone20Cut
float m_MuonTopoEtCone20Cut
Definition: JetTagMonitorAlgorithm.h:103
JetTagMonitorAlgorithm::m_Trackz0sinCut
float m_Trackz0sinCut
Definition: JetTagMonitorAlgorithm.h:88
TrackParticleContainer.h
JetTagMonitorAlgorithm::m_TrackContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackContainerKey
Definition: JetTagMonitorAlgorithm.h:65
JetTagMonitorAlgorithm::m_SkipJetFilter
bool m_SkipJetFilter
Definition: JetTagMonitorAlgorithm.h:81