ATLAS Offline Software
PhysValBTag.cxx
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // PhysValBTag.cxx
8 // Implementation file for class PhysValBTag
9 // Author: E.Schopf<elisabeth.schopf@cern.ch>
10 // Updates: J.Hoefer <judith.hoefer@cern.ch>
12 // JetTagDQA includes
13 #include "PhysValBTag.h"
14 
15 // STL includes
16 #include <vector>
17 
18 // FrameWork includes
19 #include "GaudiKernel/IToolSvc.h"
20 #include "xAODJet/JetContainer.h"
22 #include "xAODTracking/Vertex.h"
23 #include "xAODBTagging/BTagging.h"
26 
29 
30 namespace JetTagDQA {
31 
33  // Public methods:
35 
36  // Constructors
38 
39  PhysValBTag::PhysValBTag( const std::string& type,
40  const std::string& name,
41  const IInterface* parent ) :
43  m_muonAugmenter("Muons"),
44  m_isData(false),
45  m_antiKt4EMTopoPlots (0, "BTag/AntiKt4EMTopoJets/" , "antiKt4EMTopoJets"),
46  m_antiKt4EMPFlowJetsPlots (0, "BTag/AntiKt4EMPFlowJets/" , "antiKt4EMPFlowJets"),
47  m_antiKt10UFOCSSKSoftDropBeta100Zcut10Jets (0, "BTag/AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets/", "antiKt10UFOCSSKSoftDropBeta100Zcut10Jets"),
48  m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots (0, "BTag/AntiKtVR30Rmax4Rmin02PV0TrackJets/", "antiKtVR30Rmax4Rmin02PV0TrackJets"),
49  m_nevents(0)
50  {
51 
52  declareProperty( "isData", m_isData );
53 
54  declareProperty( "JetContainerEMTopo", m_jetNameEMTopo = "AntiKt4EMTopoJets" );
55  declareProperty( "JetContainerPFlow", m_jetNamePFlow = "AntiKt4EMPFlowJets");
56  declareProperty( "JetContainerR10", m_jetNameR10 = "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets");
57  declareProperty( "JetContainerTrackJets", m_jetNameTrackJet = "AntiKtVR30Rmax4Rmin02PV0TrackJets");
58 
59  declareProperty( "TrackContainerName", m_trackName = "InDetTrackParticles" );
60  declareProperty( "VertexContainerName", m_vertexName = "PrimaryVertices" );
61 
62  declareProperty( "JetPtCutTtbar", m_jetPtCutTtbar = 20000);
63  declareProperty( "JetPtCutZprime", m_jetPtCutZprime = 500000);
64  declareProperty( "JetPtCutR10", m_jetPtCutR10 = 200000); //pT>200 GeV for large-R jets
65  declareProperty( "JetEtaCut", m_jetEtaCut = 2.5);
66  declareProperty( "JVTCutAntiKt4EMTopoJets", m_JVTCutAntiKt4EMTopoJets = 0.59);
67  declareProperty( "JVTCutLargerEtaAntiKt4EMTopoJets", m_JVTCutLargerEtaAntiKt4EMTopoJets = 0.11);
68  declareProperty( "JVTCutAntiKt4EMPFlowJets", m_JVTCutAntiKt4EMPFlowJets = 0.2);
69  declareProperty( "truthMatchProbabilityCut", m_truthMatchProbabilityCut = 0.75);
70 
71  declareProperty( "dipsTaggerName", m_dipsName = "dipsLoose20220314v2");
72  declareProperty( "DL1dv01TaggerName", m_DL1dv01Name = "DL1dv01");
73  declareProperty( "GN2v01TaggerName", m_GN2v01Name = "GN2v01");
74  declareProperty( "GN2Xv01TaggerName", m_GN2Xv01Name = "GN2Xv01");
75 
76  }
77 
78  // Destructor
81  {}
82 
83  // Athena algtool's Hooks
86  {
87  ATH_MSG_INFO ("Initializing " << name() << "...");
89 
90  // initialize the truth-track-assoiation tool
91  ATH_CHECK(m_trackTruthOriginTool.retrieve( EnableTool {true} ));
92 
93  // convert the HistogramDefinitions vector to a map
94  for(unsigned int i = 0; i < m_HistogramDefinitionsVector.size(); i++){
95  std::string name = m_HistogramDefinitionsVector[i][0];
96  m_HistogramDefinitionsMap.insert(std::pair< std::string, std::vector< std::string > >(name, m_HistogramDefinitionsVector[i]));
97  }
98  if(!m_jetNameEMTopo.empty()){
99  m_btagplots.insert(std::make_pair(m_jetNameEMTopo, &m_antiKt4EMTopoPlots));
100  }
101  m_btagplots.insert(std::make_pair(m_jetNamePFlow, &m_antiKt4EMPFlowJetsPlots));
104 
105  for(const auto& [name, plot]: m_btagplots){
106  plot->setDetailLevel(m_detailLevel);
107  plot->setHistogramDefinitions(m_HistogramDefinitionsMap);
108  plot->setIsDataJVTCutsAndTMPCut(m_isData,
114  }
115 
116  return StatusCode::SUCCESS;
117  }
118 
120  {
121  plots.initialize();
122  std::vector<HistData> hists = plots.retrieveBookedHistograms();
123 
124  for (auto& hist : hists){
125  ATH_MSG_INFO ("Initializing " << hist.first << " " << hist.first->GetName() << " " << hist.second << "...");
126  ATH_CHECK(regHist(hist.first,hist.second,all));
127  }
128  return StatusCode::SUCCESS;
129  }
130 
132  {
133  ATH_MSG_INFO ("Booking hists " << name() << "...");
134 
135  if (m_detailLevel < 10) return StatusCode::SUCCESS;
136 
137  for(const auto& [name, plot] : m_btagplots ){
138  ATH_CHECK(book(*plot));
139  }
140 
141  return StatusCode::SUCCESS;
142  }
143 
145  {
146  ATH_MSG_INFO ("Filling hists " << name() << "...");
147 
148  if (m_detailLevel < 10) return StatusCode::SUCCESS;
149 
150  ++m_nevents;
151  //std::cout << "Number of proccessed events = " << m_nevents << std::endl;
152 
153  // event info
154  const xAOD::EventInfo* event(0);
155  ATH_CHECK(evtStore()->retrieve(event, "EventInfo"));
156 
157  // determine if the sample is ttbar or Zprime (on the first event, where the jetPtCut is still initial -1)
158  if(m_jetPtCut < 0){
159  // get the DSID
160  int dsid = event->mcChannelNumber();
161 
162  // check if it is a ttbar or Zprime sample
163  if(dsid == 410000 || dsid == 601229){
165  }
166  else if(dsid == 427080 || dsid == 427081 ||dsid == 801271 || dsid == 800030) {
168  m_onZprime = true;
169  }
170  // if none applies give a warning and use the default cut
171  else {
172  ATH_MSG_WARNING("It is checked if the sample is ttbar (has dsid 410000) or Zprime (has dsid 427080). None applies (read dsid is " << dsid << "). Applying default pT cut of 20000 MeV now.");
173  m_jetPtCut = 20000;
174  }
175 
176  // do not do the track-truth association on this Sherpa Z' sample
177  if(dsid == 361405){
178  m_doTrackTruth = false;
179  }
180  }
181 
182  // get the primary vertex
183  const xAOD::VertexContainer *vertices = 0;
184  CHECK( evtStore()->retrieve(vertices, "PrimaryVertices") );
185  int npv(0);
186  size_t indexPV = 0;
187  bool has_pv = false;
188  xAOD::VertexContainer::const_iterator vtx_itr = vertices->begin();
189  xAOD::VertexContainer::const_iterator vtx_end = vertices->end();
190  int count = -1;
191  // loop over the vertices
192  for (; vtx_itr != vtx_end; ++vtx_itr) {
193  count++;
194  if ((*vtx_itr)->nTrackParticles() >= 2) {
195  npv++;
196  if ((*vtx_itr)->vertexType() == 1) {
197  if (m_PV_x != -999.) ATH_MSG_WARNING( ".... second PV in the events ...!!!!!!");
198  indexPV = count;
199  has_pv = true;
200  m_PV_x = (*vtx_itr)->x();
201  m_PV_y = (*vtx_itr)->y();
202  m_PV_z = (*vtx_itr)->z();
203  }
204  }
205  }
206  if (!has_pv) {
207  //ATH_MSG_WARNING( ".... rejecting the event due to missing PV!!!!");
208  return StatusCode::SUCCESS;
209  }
210  const xAOD::Vertex *myVertex = vertices->at(indexPV); // the (reco?) primary vertex
211  //std::cout<<"z coordinate of PV: "<< myVertex->z() <<std::endl;
212 
213  // get the tracks
214  const xAOD::TrackParticleContainer* tracks(0);
215  ATH_CHECK(evtStore()->retrieve(tracks, m_trackName));
216 
217  // loop over the jet collections
218  for(const auto& [name, plot] : m_btagplots){
219 
220  // get the jets
221  const xAOD::JetContainer* jets(0);
222  StatusCode jetException = evtStore()->retrieve(jets, name);
223  // If StatusCode is not SUCCESS, no jet collection with this name, continue loop
224  if (jetException != StatusCode::SUCCESS) continue;
225 
226  int nJets_withCut = 0;
227  int nJets_containing_moun = 0;
228  int nJets_containing_SV = 0;
229  std::map<std::string, int> nJetsThatPassedWPCuts;
230  plot->initializeNJetsThatPassedWPCutsMap(nJetsThatPassedWPCuts);
231 
232  // check if the muon info is available on the first jet (since isAvailable gives the same result on all jets)
233  bool muon_info_available = false;
234  if(jets->size() > 0){
235  const xAOD::BTagging* btag = xAOD::BTaggingUtilities::getBTagging( *(jets->at(0)) );
237  softMuon_linkAcc("softMuon_link");
238  if(btag && softMuon_linkAcc.isAvailable(*btag) ){
239  muon_info_available = true;
240  }
241  }
242 
243  float ptCut = (name==m_jetNameR10) ? m_jetPtCutR10 : m_jetPtCut;
244  std::string label_name = "HadronConeExclTruthLabelID";
245  if(name==m_jetNameR10) label_name = "R10TruthLabel_R22v1";
246  // loop over the jets
247  for (auto jet : *jets) {
248 
249  // apply the jet pT eta and jvt cuts
250  if(jet->pt() <= ptCut) continue;
251  if(std::abs(jet->eta()) >= m_jetEtaCut) continue;
252  //Arnaud: JVT cut to remove horns in jet eta
253  if(name!=m_jetNameR10){//we don't apply JVT cuts on large-R jets
254  if (plot->m_JVT_defined && jet->getAttribute<float>("Jvt") < plot->m_JVT_cut
255  && jet->pt() > 20e3 && jet->pt() < 60e3
256  && std::abs(jet->eta()) < 2.4 ) continue;
257  if (plot->m_JVTLargerEta_defined && jet->getAttribute<float>("Jvt") < plot->m_JVTLargerEta_cut
258  && jet->pt() > 20e3 && jet->pt() < 60e3
259  && std::abs(jet->eta()) > 2.4 && std::abs(jet->eta()) < m_jetEtaCut ) continue;
260  }
261  // get the btagging
263  // count the jets that pass the cuts
264  nJets_withCut++;
265 
266  // get the jet truth label
267  int truth_label(1000);
268  if(!m_isData){
269  SG::ConstAccessor<int> acc(label_name);
270  if(acc.isAvailable(*jet)) jet->getAttribute(label_name, truth_label);
271  }
272 
273  // fill the jet related histograms
274  plot->fillJetKinVars(jet, truth_label, m_onZprime, event);
275 
276  // fill the jet, btag & vertex related plots
277  if (btag && name!=m_jetNameR10){ //small-R jets
278  // augment with muon information
279  if(! muon_info_available){
280  m_muonAugmenter.augment(*btag);
281  }
282 
283  // fill other variables
284  bool contains_muon;
285  double jet_Lxy = -1;
286  plot->fillOther(jet, btag, contains_muon, jet_Lxy, truth_label, event);
287  if(contains_muon) nJets_containing_moun++;
288 
289  // get the track to truth associations
290  std::map<const xAOD::TrackParticle*, int> track_truth_associations = getTrackTruthAssociations(btag);
291 
292  // fill track related variables
293  int num_HF_tracks_in_jet;
294  plot->fillTrackVariables(jet, btag, myVertex, track_truth_associations, contains_muon, truth_label, num_HF_tracks_in_jet, event);
295  // fill SV related vars
296  bool contains_SV;
297  plot->fillSVVariables(btag, track_truth_associations, contains_muon, truth_label, num_HF_tracks_in_jet, contains_SV, event);
298  if(contains_SV) nJets_containing_SV++;
299  // fill discriminant related vars
300  plot->fillDiscriminantVariables(btag, jet, jet_Lxy, truth_label, contains_muon, m_onZprime, nJetsThatPassedWPCuts, event);
301  }
302  else if (jet && name==m_jetNameR10){ // large-R jets
303  //fill track and hit information
304  plot->fillTrackVariables_for_largeRjet(jet, myVertex, truth_label, event);
305  // fill discriminant related vars
306  plot->fillDiscriminantVariables_for_largeRjet(jet, truth_label, m_onZprime, nJetsThatPassedWPCuts, event);
307  }
308  else{
309  ATH_MSG_WARNING("btag (obtained by xAOD::BTaggingUtilities::getBTagging(*jet)) is a null pointer.");
310  }
311  }
312 
313  // fill multiplicities
314  plot->fillMultiplicities(nJets_withCut, tracks->size(), npv, myVertex->nTrackParticles(), nJets_containing_moun, nJets_containing_SV, nJetsThatPassedWPCuts, event);
315  // fill PV variables
316  plot->fillPVVariables(m_PV_x, m_PV_y, m_PV_z, event);
317 
318  }
319 
320  return StatusCode::SUCCESS;
321  }
322 
324  {
325  ATH_MSG_INFO ("Finalising hists " << name() << "...");
326 
327  for(const auto& [name, plot] : m_btagplots ){
328  plot->finalize();
329 
330  }
331  return StatusCode::SUCCESS;
332  }
333 
335  // Const methods:
337 
338  std::map<const xAOD::TrackParticle*, int> PhysValBTag::getTrackTruthAssociations(const xAOD::BTagging* btag) const {
339 
340  // define the return vector
341  std::map<const xAOD::TrackParticle*, int> truthValues;
342 
343  // get the track links from the btag
345  BTagTrackToJetAssociatorAcc("BTagTrackToJetAssociator");
346  std::vector< ElementLink< xAOD::TrackParticleContainer > > assocTracks =
347  BTagTrackToJetAssociatorAcc(*btag);
348 
349  // loop over the tracks associated to the btag and get the truth values
350  for(unsigned int i = 0; i < assocTracks.size(); i++) {
351  if (!assocTracks.at(i).isValid()) continue;
352 
353  // get the curent track
354  const xAOD::TrackParticle* track = *(assocTracks.at(i));
355 
356  // only try accessing the truth values if not on data
357  int origin = 0;
358  if(!m_isData && m_doTrackTruth){
359  origin = m_trackTruthOriginTool->getTrackOrigin(track);
360  }
361 
362  // add the truth values to the vector
363  truthValues.insert( std::make_pair( track, origin ) );
364  }
365 
366  // also loop over the tracks associated to the MSV vertices -> can be missing in the other track list
367  // get the MSV vertices
368  std::vector< ElementLink< xAOD::VertexContainer > > MSV_vertices;
370  MSV_verticesAcc("MSV_vertices");
371  try { MSV_vertices = MSV_verticesAcc(*btag); }
372  catch(std::exception& exception) { }
373 
374  // loop over the MSV vertices
375  for (unsigned int i = 0; i < MSV_vertices.size(); i++) {
376  if (!MSV_vertices.at(i).isValid()) continue;
377  const xAOD::Vertex* vtx = *(MSV_vertices.at(i));
378 
379  // get the track links
380  std::vector<ElementLink<DataVector<xAOD::TrackParticle> > > MSV_assocTracks = vtx->trackParticleLinks();
381 
382  // loop over the tracks
383  for(unsigned int i = 0; i < MSV_assocTracks.size(); i++) {
384  if (!MSV_assocTracks.at(i).isValid()) continue;
385 
386  // get the curent track
387  const xAOD::TrackParticle* track = *(MSV_assocTracks.at(i));
388 
389  // only try accessing the truth values if not on data
390  int origin = 0;
391  if(!m_isData && m_doTrackTruth){
392  origin = m_trackTruthOriginTool->getTrackOrigin(track);
393  }
394 
395  // add the truth values to the vector
396  truthValues.insert( std::make_pair( track, origin ) );
397  }
398  }
399 
400  // return
401  return truthValues;
402  }
403 
404 
405 }
406 
407 // LocalWords: str
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
JetTagDQA::PhysValBTag::m_jetPtCutR10
float m_jetPtCutR10
Definition: PhysValBTag.h:109
BTaggingUtilities.h
JetFlavourInfo.h
JetTagDQA::PhysValBTag::m_jetPtCut
float m_jetPtCut
Definition: PhysValBTag.h:105
JetTagDQA::PhysValBTag::m_dipsName
std::string m_dipsName
Definition: PhysValBTag.h:116
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
JetTagDQA::PhysValBTag::m_antiKt10UFOCSSKSoftDropBeta100Zcut10Jets
JetTagDQA::BTaggingValidationPlots m_antiKt10UFOCSSKSoftDropBeta100Zcut10Jets
Definition: PhysValBTag.h:123
xAOD::Vertex_v1::nTrackParticles
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
Definition: Vertex_v1.cxx:270
FlavorTagDiscriminants::BTagMuonAugmenter::augment
void augment(const xAOD::BTagging &btag) const
Definition: BTagMuonAugmenter.cxx:79
JetTagDQA::PhysValBTag::m_PV_x
double m_PV_x
Definition: PhysValBTag.h:43
PlotBase
Definition: PlotBase.h:33
AthCheckMacros.h
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
BTagging.h
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:74
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
PhysValBTag.h
plotmaker.hist
hist
Definition: plotmaker.py:148
xAOD::Vertex_v1::trackParticleLinks
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
JetTagDQA::PhysValBTag::m_onZprime
bool m_onZprime
Definition: PhysValBTag.h:106
JetTagDQA::PhysValBTag::fillHistograms
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: PhysValBTag.cxx:144
JetTagDQA::PhysValBTag::m_PV_y
double m_PV_y
Definition: PhysValBTag.h:44
JetTagDQA::PhysValBTag::procHistograms
virtual StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
Definition: PhysValBTag.cxx:323
JetTagDQA::PhysValBTag::m_JVTCutAntiKt4EMTopoJets
float m_JVTCutAntiKt4EMTopoJets
Definition: PhysValBTag.h:111
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
JetTagDQA::PhysValBTag::m_JVTCutAntiKt4EMPFlowJets
float m_JVTCutAntiKt4EMPFlowJets
Definition: PhysValBTag.h:113
plot
Definition: PhysicsAnalysis/ElectronPhotonID/ElectronPhotonFourMomentumCorrection/python/plot.py:1
JetTagDQA::PhysValBTag::m_truthMatchProbabilityCut
float m_truthMatchProbabilityCut
Definition: PhysValBTag.h:114
JetTagDQA::PhysValBTag::m_jetPtCutZprime
float m_jetPtCutZprime
Definition: PhysValBTag.h:108
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
JetTagDQA::PhysValBTag::m_jetEtaCut
float m_jetEtaCut
Definition: PhysValBTag.h:110
JetTagDQA::PhysValBTag::m_JVTCutLargerEtaAntiKt4EMTopoJets
float m_JVTCutLargerEtaAntiKt4EMTopoJets
Definition: PhysValBTag.h:112
JetTagDQA::PhysValBTag::m_trackName
std::string m_trackName
Definition: PhysValBTag.h:94
JetTagDQA::PhysValBTag::m_HistogramDefinitionsVector
Gaudi::Property< std::vector< std::vector< std::string > > > m_HistogramDefinitionsVector
Definition: PhysValBTag.h:101
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
JetTagDQA::PhysValBTag::m_muonAugmenter
FlavorTagDiscriminants::BTagMuonAugmenter m_muonAugmenter
Definition: PhysValBTag.h:82
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
ManagedMonitorToolBase::initialize
virtual StatusCode initialize()
Definition: ManagedMonitorToolBase.cxx:669
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
JetTagDQA::PhysValBTag::m_btagplots
std::map< std::string, JetTagDQA::BTaggingValidationPlots * > m_btagplots
Definition: PhysValBTag.h:97
lumiFormat.i
int i
Definition: lumiFormat.py:92
Generate_dsid_ranseed.dsid
dsid
Definition: Generate_dsid_ranseed.py:6
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
JetTagDQA::PhysValBTag::m_DL1dv01Name
std::string m_DL1dv01Name
Definition: PhysValBTag.h:117
JetTagDQA::PhysValBTag::~PhysValBTag
virtual ~PhysValBTag()
Destructor:
Definition: PhysValBTag.cxx:80
JetTagDQA::PhysValBTag::m_isData
bool m_isData
Definition: PhysValBTag.h:85
JetTagDQA::PhysValBTag::m_GN2v01Name
std::string m_GN2v01Name
Definition: PhysValBTag.h:118
calibdata.exception
exception
Definition: calibdata.py:496
JetTagDQA::PhysValBTag::PhysValBTag
PhysValBTag()
Default constructor:
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
JetTagDQA::PhysValBTag::initialize
virtual StatusCode initialize()
Definition: PhysValBTag.cxx:85
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MakeTH3DFromTH2Ds.hists
hists
Definition: MakeTH3DFromTH2Ds.py:72
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
JetTagDQA::PhysValBTag::m_jetNameEMTopo
std::string m_jetNameEMTopo
Definition: PhysValBTag.h:89
xAOD::BTagging_v1
Definition: BTagging_v1.h:39
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Vertex.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
JetTagDQA::PhysValBTag::book
StatusCode book(PlotBase &plots)
Definition: PhysValBTag.cxx:119
JetTagDQA::PhysValBTag::m_trackTruthOriginTool
ToolHandle< InDet::IInDetTrackTruthOriginTool > m_trackTruthOriginTool
Definition: PhysValBTag.h:81
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
JetTagDQA::PhysValBTag::m_doTrackTruth
bool m_doTrackTruth
Definition: PhysValBTag.h:86
xAOD::BTaggingUtilities::getBTagging
const BTagging * getBTagging(const SG::AuxElement &part)
Access the default xAOD::BTagging object associated to an object.
Definition: BTaggingUtilities.cxx:37
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
TrackParticle.h
JetTagDQA::PhysValBTag::getTrackTruthAssociations
std::map< const xAOD::TrackParticle *, int > getTrackTruthAssociations(const xAOD::BTagging *btag) const
Definition: PhysValBTag.cxx:338
JetTagDQA::PhysValBTag::m_HistogramDefinitionsMap
std::map< std::string, std::vector< std::string > > m_HistogramDefinitionsMap
Definition: PhysValBTag.h:103
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
JetContainer.h
JetTagDQA::PhysValBTag::m_GN2Xv01Name
std::string m_GN2Xv01Name
Definition: PhysValBTag.h:119
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
JetTagDQA::PhysValBTag::m_jetNamePFlow
std::string m_jetNamePFlow
Definition: PhysValBTag.h:90
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
JetTagDQA::PhysValBTag::m_antiKt4EMTopoPlots
JetTagDQA::BTaggingValidationPlots m_antiKt4EMTopoPlots
Definition: PhysValBTag.h:121
ManagedMonitorToolBase::all
@ all
Definition: ManagedMonitorToolBase.h:116
covarianceTool.plots
plots
Definition: covarianceTool.py:698
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
JetTagDQA::PhysValBTag::m_nevents
int m_nevents
Definition: PhysValBTag.h:126
JetTagDQA
Definition: BTaggingValidationPlots.cxx:22
ManagedMonitorToolBase::m_detailLevel
unsigned int m_detailLevel
Definition: ManagedMonitorToolBase.h:899
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
JetTagDQA::PhysValBTag::m_jetNameR10
std::string m_jetNameR10
Definition: PhysValBTag.h:91
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
JetTagDQA::PhysValBTag::m_PV_z
double m_PV_z
Definition: PhysValBTag.h:45
JetTagDQA::PhysValBTag::m_vertexName
std::string m_vertexName
Definition: PhysValBTag.h:95
JetTagDQA::PhysValBTag::m_antiKt4EMPFlowJetsPlots
JetTagDQA::BTaggingValidationPlots m_antiKt4EMPFlowJetsPlots
Definition: PhysValBTag.h:122
JetTagDQA::PhysValBTag::bookHistograms
virtual StatusCode bookHistograms()
An inheriting class should either override this function or bookHists().
Definition: PhysValBTag.cxx:131
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
JetTagDQA::PhysValBTag::m_jetNameTrackJet
std::string m_jetNameTrackJet
Definition: PhysValBTag.h:92
ManagedMonitorToolBase::regHist
virtual StatusCode regHist(TH1 *h, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical ...
Definition: ManagedMonitorToolBase.cxx:1454
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
JetTagDQA::PhysValBTag::m_jetPtCutTtbar
float m_jetPtCutTtbar
Definition: PhysValBTag.h:107
JetTagDQA::PhysValBTag::m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots
JetTagDQA::BTaggingValidationPlots m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots
Definition: PhysValBTag.h:124