ATLAS Offline Software
NewCorePlots.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <utility>
6 #include <algorithm>
7 
8 #include "NewCorePlots.h"
11 
12 namespace Tau{
13 
14  NewCorePlots::NewCorePlots(PlotBase* pParent, const std::string& sDir, std::string sTauJetContainerName):
15  PlotBase(pParent, sDir),
16  m_ipZ0SinThetaSigLeadTrk(nullptr),
17  m_etOverPtLeadTrk(nullptr),
18  m_ipSigLeadTrk(nullptr),
19  m_massTrkSys(nullptr),
20  m_trkWidth2(nullptr),
21  m_trFlightPathSig(nullptr),
22  m_etEflow(nullptr),
23  m_nPi0(nullptr),
24  m_tauDRMax(nullptr),
25  m_EMRadius(nullptr),
26  m_hadRadius(nullptr),
27  m_isolFrac(nullptr),
28  m_centFrac(nullptr),
29  m_stripWidth2(nullptr),
30  m_nStrip(nullptr),
31  m_trkAvgDist(nullptr),
32  m_lead2ClusterEOverAllClusterE(nullptr),
33  m_lead3ClusterEOverAllClusterE(nullptr),
34  m_caloIso(nullptr),
35  m_mEflowTopo(nullptr),
36  m_ptRatioEflowTopo(nullptr),
37  m_nPi0Topo(nullptr),
38  m_PSSFraction(nullptr),
39  m_ChPiEMEOverCaloEME(nullptr),
40  m_EMPOverTrkSysP(nullptr),
41  m_innerTrkAvgDist(nullptr),
42  m_ptRatioEflowApprox(nullptr),
43  m_mEflowApprox(nullptr),
44  m_sTauJetContainerName(std::move(sTauJetContainerName))
45  {
46  }
47 
49  {
50  }
51 
53 
54  m_ipZ0SinThetaSigLeadTrk = Book1D("ipZ0SinThetaSigLeadTrk",m_sTauJetContainerName + "Tau ipZ0SinThetaSigLeadTrk ;ipZ0SinThetaSigLeadTrk ;# of Taus", 50, -10, 10);
55  m_etOverPtLeadTrk = Book1D("etOverPtLeadTrk",m_sTauJetContainerName + "Tau etOverPtLeadTrk ;etOverPtLeadTrk ;# of Taus", 50, 0, 4.);
56  m_ipSigLeadTrk = Book1D("ipSigLeadTrk",m_sTauJetContainerName + "Tau ipSigLeadTrk ;ipSigLeadTrk ;# of Taus", 50, -15, 15);
57  m_massTrkSys = Book1D("massTrkSys",m_sTauJetContainerName + "Tau massTrkSys ;massTrkSys ;# of Taus", 40, 0., 2.);
58  m_trkWidth2 = Book1D("trkWidth2",m_sTauJetContainerName + "Tau trkWidth2 ;trkWidth2 ;# of Taus", 50, 0, 0.1);
59  m_trFlightPathSig = Book1D("trFlightPathSig",m_sTauJetContainerName + "Tau trFlightPathSig ;trFlightPathSig ;# of Taus", 100, -5, 30);
60  m_EMRadius = Book1D("Seed_Calo_EMRadius",m_sTauJetContainerName + "Tau Seed Calo EMRadius ;EMRadius ;# of Taus", 50, -0.2, 0.4);
61  m_hadRadius = Book1D("Seed_Calo_hadRadius",m_sTauJetContainerName + "Tau Seed Calo hadRadius ;hadRadius ;# of Taus", 50, -0.2, 0.5);
62  m_isolFrac = Book1D("Seed_Calo_isolFrac",m_sTauJetContainerName + "Tau Seed Calo isolFrac ;isolFrac ;# of Taus", 40, 0., 1.);
63  m_centFrac = Book1D("Seed_Calo_centFrac",m_sTauJetContainerName + "Tau Seed Calo centFrac ;centFrac ;# of Taus", 40, 0., 1.2);
64  m_stripWidth2 = Book1D("Seed_Calo_stripWidth2",m_sTauJetContainerName + "Tau Seed Calo stripWidth2 ;stripWidth2 ;# of Taus", 10, -0.5, 2.5);
65  m_nStrip = Book1D("Seed_Calo_nStrip",m_sTauJetContainerName + "Tau Seed Calo nStrip ;nStrip ;# of Taus", 20, 0, 100);
66  m_trkAvgDist = Book1D("Seed_Calo_trkavgdist",m_sTauJetContainerName + "Tau Seed Calo trkavgdist ;trkavgdist ;# of Taus", 50, 0., 0.4);
67  m_lead2ClusterEOverAllClusterE = Book1D("Seed_Calo_lead2ClusterEOverAllClusterE",m_sTauJetContainerName + "Tau Seed Calo lead2ClusterEOverAllClusterE ;lead2ClusterEOverAllClusterE ;# of Taus",40, 0.5, 1.);
68  m_lead3ClusterEOverAllClusterE = Book1D("Seed_Calo_lead3ClusterEOverAllClusterE",m_sTauJetContainerName + "Tau Seed Calo lead3ClusterEOverAllClusterE ;lead3ClusterEOverAllClusterE ;# of Taus",40, 0.5, 1.);
69  m_caloIso = Book1D("Seed_Calo_caloIso",m_sTauJetContainerName + "Tau Seed Calo caloIso ;caloIso ;# of Taus", 15, 0, 200);
70  m_tauDRMax = Book1D("DRMax",m_sTauJetContainerName + " Tau DR Max track-seed; DRMax; # Taus",20,0.,0.4);
71  m_PSSFraction = Book1D("PSSFraction",m_sTauJetContainerName + "Tau PSSFraction; PSSFraction; # of Taus", 30, -15, 15);
72  m_ChPiEMEOverCaloEME = Book1D("ChPiEMEOverCaloEME",m_sTauJetContainerName + "Tau ChPiEMEOverCaloEME; ChPiEMEOverCaloEME; # of Taus", 40, -5, 5);
73  m_EMPOverTrkSysP = Book1D("EMPOverTrkSysP",m_sTauJetContainerName + "Tau EMPOverTrkSysP; EMPOverTrkSysP; # of Taus", 62, -1, 30);
74  m_innerTrkAvgDist = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus",40,0.,0.2);
75  m_ptRatioEflowApprox = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 40, 0, 3.);
76  m_mEflowApprox = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; # Taus", 30, 0., 10000.);
77 
78  // track variables used for track classification and RNN tau ID
79  m_logSeedJetPt = Book1D("logSeedJetPt" , "log(ptJetSeed);log(ptJetSeed);Entries",50,10.,14.5);
80  m_track_logPt = Book1D("track_logPt" , "track log(p_{T});track log(p_{T});Entries",50,6.,15);
81  m_track_eta = Book1D("track_eta" , "track eta;track eta;Entries",50,-2.6,2.6);
82  m_track_d0TJVA = Book1D("track_d0TJVA" , "track tanh(d0TJVA);track tanh(d0TJVA);Entries",50,-0.1,0.1);
83  m_track_z0SinthetaTJVA = Book1D("track_z0SinthetaTJVA" , "track z0SinthetaTJVA;track z0SinthetaTJVA;Entries",50,-100.,100);
84  m_track_d0SigTJVA = Book1D("track_d0SigTJVA" , "track d0SigTJVA;track d0SigTJVA;Entries",50,-10.,10.);
85  m_track_z0sinthetaSigTJVA = Book1D("track_z0sinthetaSigTJVA", "track z0sinthetaSigTJVA;track z0sinthetaSigTJVA;Entries",50,-10.,10.);
86  m_track_charge = Book1D("track_charge" , "track charge;track charge;Entries",8,-4.,4.);
87  m_track_qOverP = Book1D("track_qOverP" , "track qOverP;track qOverP;Entries",50,-2.,2.);
88  m_track_logRConv = Book1D("track_logRConv" , "track log(rConv);track log(rConv);Entries",50,0.,7.);
89  m_track_tanhRConvII = Book1D("track_tanhRConvII" , "track tanh(rConvII/500);track tanh(rConvII/500);Entries",50,-0.4,0.4);
90  m_track_ptRatioSeedJet = Book1D("track_ptRatioSeedJet" , "(track p_{T})/(ptJetSeed);(track p_{T})/(ptJetSeed);Entries",50,0.,0.1);
91  m_track_dRJetSeedAxis = Book1D("track_dRJetSeedAxis" , "#DeltaR(tau,track);#DeltaR(tau,track);Entries",50,0.,0.5);
92  m_track_nInnermostPixHits = Book1D("track_nInnermostPixHits" , "track nInnermostPixHits;track nInnermostPixHits;Entries",5,0.,5.);
93  m_track_nPixHits = Book1D("track_nPixHits" , "track nPixHits;track nPixHits;Entries",10,0.,10.);
94  m_track_nPixelSharedHits = Book1D("track_nPixelSharedHits" , "track nPixelSharedHits;track nPixelSharedHits;Entries",6,0.,6.);
95  m_track_nSiHits = Book1D("track_nSiHits" , "track nSiHits;track nSiHits;Entries",20,0.,20.);
96  m_track_nSCTSharedHits = Book1D("track_nSCTSharedHits" , "track nSCTSharedHits;track nSCTSharedHits;Entries",10,0.,10.);
97  m_track_nTRTHits = Book1D("track_nTRTHits" , "track nTRTHits;track nTRTHits;Entries",60,0.,60.);
98  m_track_eProbabilityHT = Book1D("track_eProbabilityHT" , "track eProbabilityHT;track eProbabilityHT;Entries",50,0.,1.);
99  m_track_eProbabilityNN = Book1D("track_eProbabilityNN" , "track eProbabilityNN;track eProbabilityNN;Entries",50,0.,1.);
100  m_track_eProbabilityHTorNN = Book1D("track_eProbabilityHTorNN" , "track eProbabilityHTorNN;track eProbabilityHTorNN;Entries",50,0.,1.);
101  m_track_idScoreCharged = Book1D("track_idScoreCharged" , "track RNN idScoreCharged;track idScoreCharged;Entries",50,0.,1.);
102  m_track_idScoreIso = Book1D("track_idScoreIso" , "track RNN idScoreIso;track idScoreIso;Entries",50,0.,1.);
103  m_track_idScoreConv = Book1D("track_idScoreConv" , "track RNN idScoreConv;track idScoreConv;Entries",50,0.,1.);
104  m_track_idScoreFake = Book1D("track_idScoreFake" , "track RNN idScoreFake;track idScoreFake;Entries",50,0.,1.);
105 
106  // cluster variables used for RNN tau ID
107  m_cluster_logEt = Book1D("cluster_logEt" , "log(cluster E_{T});log(cluster E_{T});Entries",50,1.5,6.5);
108  m_cluster_eta = Book1D("cluster_eta" , "cluster eta;cluster eta;Entries",50,-2.6,2.6);
109  m_cluster_phi = Book1D("cluster_phi" , "cluster phi;cluster phi;Entries",32,-3.2,3.2);
110  m_cluster_secondR = Book1D("cluster_secondR" , "cluster SECOND_R;cluster SECOND_R;Entries",50,-1.,6.);
111  m_cluster_secondLambda = Book1D("cluster_secondLambda" , "cluster SECOND_LAMBDA;cluster SECOND_LAMBDA;Entries",50,2.,6.5);
112  m_cluster_centerLambda = Book1D("cluster_centerLambda" , "cluster CENTER_LAMBDA;cluster CENTER_LAMBDA;Entries",50,1.,4.);
113  m_cluster_firstEngDens = Book1D("cluster_firstEngDens" , "cluster FIRST_ENG_DENS;cluster FIRST_ENG_DENS;Entries",50,-6.,1.);
114  m_cluster_EMproba = Book1D("cluster_EMproba" , "cluster EM_PROBABILITY;cluster EM_PROBABILITY;Entries",20,0.,1.);
115 
116  // Et-weighted average of cluster moments used in MVA TES
117  m_clustersMeanCenterLambda = Book1D("clustersMeanCenterLambda" , "clustersMeanCenterLambda;clustersMeanCenterLambda;Entries",40,0.,2500.);
118  m_clustersMeanFirstEngDens = Book1D("clustersMeanFirstEngDens" , "clustersMeanFirstEngDens;clustersMeanFirstEngDens;Entries",40,-8.7,-5.5);
119  m_clustersMeanEMProbability = Book1D("clustersMeanEMProbability" , "clustersMeanEMProbability;clustersMeanEMProbability;Entries",20,0.,1.);
120  m_clustersMeanSecondLambda = Book1D("clustersMeanSecondLambda" , "clustersMeanSecondLambda;clustersMeanSecondLambda;Entries",20,0.,6e5);
121  m_clustersMeanPresamplerFrac = Book1D("clustersMeanPresamplerFrac" , "clustersMeanPresamplerFrac;clustersMeanPresamplerFrac;Entries",20,0.,0.2);
122  m_PFOEngRelDiff = Book1D("PFOEngRelDiff", "PFOEngRelDiff;PFOEngRelDiff;Entries",20,-1.,1.);
123 
124  m_TVz = Book1D("tauVertexZ", "tau vertex z:tau vertex z [mmm]",24,-120.,120.);
125  }
126 
127  void NewCorePlots::fill(const xAOD::TauJet& tau, float weight) {
128 
129  float avariable = 0.;
130  int bvariable = 0;
131 
132  static const SG::ConstAccessor<float> acc_z0sinthetaSigTJVA("z0sinthetaSigTJVA");
133  if(tau.nTracks()>0 && acc_z0sinthetaSigTJVA.isAvailable(*tau.track(0))) {
135  m_ipSigLeadTrk->Fill(tau.track(0)->d0SigTJVA(), weight);
136  }
137 
138  bool test = tau.detail(xAOD::TauJetParameters::etOverPtLeadTrk, avariable);
139  if(test) m_etOverPtLeadTrk->Fill(avariable, weight);
140 
142  if(test) m_massTrkSys->Fill(avariable/1000., weight);
143 
145  if(test) m_trkWidth2->Fill(avariable, weight);
146 
148  if(test) m_trFlightPathSig->Fill(avariable, weight);
149 
150  test = tau.detail(xAOD::TauJetParameters::EMRadius, avariable);
151  if(test) m_EMRadius->Fill(avariable, weight);
152 
154  if(test) m_hadRadius->Fill(avariable, weight);
155 
156  test = tau.detail(xAOD::TauJetParameters::isolFrac, avariable);
157  if(test) m_isolFrac->Fill(avariable, weight);
158 
159  test = tau.detail(xAOD::TauJetParameters::centFrac, avariable);
160  if(test) m_centFrac->Fill(avariable, weight);
161 
163  if(test) m_stripWidth2->Fill(avariable, weight);
164 
165  test = tau.detail(xAOD::TauJetParameters::nStrip, bvariable);
166  if(test) m_nStrip->Fill(bvariable, weight);
167 
169  if(test) m_trkAvgDist->Fill(avariable, weight);
170 
172  if(test) m_lead2ClusterEOverAllClusterE->Fill(avariable, weight);
173 
175  if(test) m_lead3ClusterEOverAllClusterE->Fill(avariable, weight);
176 
177  test = tau.detail(xAOD::TauJetParameters::caloIso, avariable);
178  if(test) m_caloIso->Fill(avariable, weight);
179 
181  if(test) m_PSSFraction->Fill(avariable, weight);
182 
184  if(test) m_ChPiEMEOverCaloEME->Fill(avariable, weight);
185 
187  if(test) m_EMPOverTrkSysP->Fill(avariable, weight);
188 
189  test = tau.detail(xAOD::TauJetParameters::dRmax, avariable);
190  if(test) m_tauDRMax->Fill(avariable, weight);
191 
193  if(test) m_innerTrkAvgDist->Fill(avariable, weight);
194 
196  if(test) m_ptRatioEflowApprox->Fill(avariable, weight);
197 
199  if(test) m_mEflowApprox->Fill(avariable, weight);
200 
201 
202  double tauSeedPt = tau.ptJetSeed();
203  double logTauSeedPt = std::log(tauSeedPt);
204  m_logSeedJetPt->Fill(logTauSeedPt, weight);
205 
206  // tracks
207  static const SG::ConstAccessor<float> acc_trackScoreCharged("rnn_chargedScore");
208  static const SG::ConstAccessor<float> acc_trackScoreIso("rnn_isolationScore");
209  static const SG::ConstAccessor<float> acc_trackScoreConv("rnn_conversionScore");
210  static const SG::ConstAccessor<float> acc_z0sinthetaTJVA("z0sinthetaTJVA");
211  // rnn_fakeScore may not be available (it is not provided by the TauJets smart slimming list), it can be obtained from unitarity
212 
213  for(const xAOD::TauTrack* track : tau.allTracks()) {
214 
215  // protection against thinned tracks
216  static const SG::Accessor< xAOD::TauTrack::TrackParticleLinks_t > trackAcc( "trackLinks" );
217  if(!trackAcc(*track)[0]) {
218  continue;
219  }
220 
221  const xAOD::TrackParticle* trackParticle = track->track();
222 
223  // old vs new track IPs... initialise to old
224  float d0TJVA = track->track()->d0();
225  float z0SinthetaTJVA = track->z0sinThetaTJVA(tau);
226  float d0SigTJVA = 999.;
227  float z0sinthetaSigTJVA = 999.;
228  float rConv = 999.;
229  float rConvII = 999.;
230  if(acc_z0sinthetaTJVA.isAvailable(*track)) {
231  d0TJVA = track->d0TJVA();
232  z0SinthetaTJVA = track->z0sinthetaTJVA();
233  d0SigTJVA = track->d0SigTJVA();
234  z0sinthetaSigTJVA = track->z0sinthetaSigTJVA();
235  rConv = track->rConv();
236  rConvII = track->rConvII();
237  }
238 
239  double dRJetSeedAxis = track->p4().DeltaR(tau.p4(xAOD::TauJetParameters::JetSeed));
240  double qOverP = trackParticle->qOverP();
241  double trackPt = trackParticle->pt();
242 
243  uint8_t nInnermostPixelLayerHits = 0;
244  trackParticle->summaryValue(nInnermostPixelLayerHits, xAOD::numberOfInnermostPixelLayerHits);
245  uint8_t nPixelHits = 0;
249  uint8_t nPixelDeadSensors = 0;
250  trackParticle->summaryValue(nPixelDeadSensors, xAOD::numberOfPixelDeadSensors);
251  uint8_t nSCTHits = 0;
255  uint8_t nSCTDeadSensors = 0;
256  trackParticle->summaryValue(nSCTDeadSensors, xAOD::numberOfSCTDeadSensors);
259  uint8_t nTRTHits = 0;
265  float eProbabilityHT = 0.;
267  static const SG::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
268  float eProbabilityNN = acc_eProbabilityNN.withDefault(*trackParticle, -1);
269  // hybrid variable (eProbabilityNN is not computed for tracks with pt < 2 GeV)
270  float eProbabilityHTorNN = (trackPt>2000.) ? eProbabilityNN : eProbabilityHT;
271 
273  m_track_eta->Fill(track->eta(), weight);
274  m_track_d0TJVA->Fill(std::tanh(d0TJVA/10.), weight);
275  m_track_z0SinthetaTJVA->Fill(z0SinthetaTJVA, weight);
278  m_track_charge->Fill(trackParticle->charge(), weight);
279  m_track_qOverP->Fill(qOverP*1000., weight);
280  m_track_logRConv->Fill(std::log(rConv), weight);
281  m_track_tanhRConvII->Fill( std::tanh(rConvII/500.0), weight);
282  m_track_ptRatioSeedJet->Fill(trackPt/tauSeedPt, weight);
283  m_track_dRJetSeedAxis->Fill(dRJetSeedAxis, weight);
284  m_track_nInnermostPixHits->Fill(nInnermostPixelLayerHits, weight);
285  m_track_nPixHits->Fill(nPixelHits + nPixelDeadSensors, weight);
287  m_track_nSiHits->Fill(nPixelHits + nPixelDeadSensors + nSCTHits + nSCTDeadSensors, weight);
292  m_track_eProbabilityHTorNN->Fill(eProbabilityHTorNN);
293 
294  if (acc_trackScoreCharged.isAvailable(*track)) {
295  float chargedScore = acc_trackScoreCharged(*track);
296  float isolationScore = acc_trackScoreIso(*track);
297  float conversionScore = acc_trackScoreConv(*track);
298  float fakeScore = 1. - chargedScore - isolationScore - conversionScore;
299  // ensure the probability is within [0.,1.]
300  fakeScore = std::max(0.f, fakeScore);
301  fakeScore = std::min(1.f, fakeScore);
302  m_track_idScoreCharged->Fill(chargedScore, weight);
303  m_track_idScoreIso->Fill(isolationScore, weight);
304  m_track_idScoreConv->Fill(conversionScore, weight);
305  m_track_idScoreFake->Fill(fakeScore, weight);
306  }
307  }
308 
309 
310  // clusters
311  std::vector<const xAOD::IParticle*> particleList = tau.clusters();
312  std::vector<xAOD::CaloVertexedTopoCluster> clusters;
313  const xAOD::Vertex* vertex = nullptr;
314  if(tau.vertexLink().isValid()) vertex = tau.vertex();
315 
316  for (const xAOD::IParticle* particle : particleList) {
317  const xAOD::CaloCluster* cluster = static_cast<const xAOD::CaloCluster*>(particle);
318  if (vertex) {
319  clusters.emplace_back(*cluster, xAOD::CaloCluster::State::CALIBRATED, vertex->position());
320  }
321  else {
322  clusters.emplace_back(*cluster, xAOD::CaloCluster::State::CALIBRATED);
323  }
324  }
325 
326  // sort by decreasing Et
327  auto et_cmp = [](const xAOD::CaloVertexedTopoCluster& lhs,
328  const xAOD::CaloVertexedTopoCluster& rhs) {
329  return lhs.p4().Et() > rhs.p4().Et();
330  };
331  std::sort(clusters.begin(), clusters.end(), et_cmp);
332 
333  // keep first 6 leading clusters as in RNN ID
334  if (clusters.size() > 6) {
335  clusters.resize(6, clusters[0]);
336  }
337 
338  double moment;
339  for(const auto& vertexedCluster : clusters) {
340  m_cluster_logEt->Fill(std::log10(vertexedCluster.p4().Et()), weight);
341  m_cluster_eta->Fill(vertexedCluster.eta(), weight);
342  m_cluster_phi->Fill(vertexedCluster.phi(), weight);
343 
344  const xAOD::CaloCluster& cluster = vertexedCluster.clust();
345 
347  m_cluster_secondR->Fill(std::log10(moment + 0.1), weight);
348 
350  m_cluster_secondLambda->Fill(std::log10(moment + 0.1), weight);
351 
353  m_cluster_centerLambda->Fill(std::log10(moment + 1e-6), weight);
354 
356  if(moment!=0.) moment = std::log10(std::abs(moment));
357  m_cluster_firstEngDens->Fill(moment, weight);
358 
360  m_cluster_EMproba->Fill(moment, weight);
361  }
362 
363  // Et-weighted average of cluster moments (MVA TES)
365  if(test) m_clustersMeanCenterLambda->Fill(avariable, weight);
366 
368  if(test) m_clustersMeanFirstEngDens->Fill(avariable, weight);
369 
371  if(test) m_clustersMeanEMProbability->Fill(avariable, weight);
372 
374  if(test) m_clustersMeanSecondLambda->Fill(avariable, weight);
375 
377  if(test) m_clustersMeanPresamplerFrac->Fill(avariable, weight);
378 
380  if(test) m_PFOEngRelDiff->Fill(avariable, weight);
381 
382  // tau vertex
383  if(vertex) {
384  m_TVz->Fill(vertex->z(), weight);
385  }
386  }
387 }
Tau::NewCorePlots::m_stripWidth2
TH1 * m_stripWidth2
Definition: NewCorePlots.h:32
xAOD::TrackParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TrackParticle_v1.cxx:73
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
Tau::NewCorePlots::m_track_nSCTSharedHits
TH1 * m_track_nSCTSharedHits
Definition: NewCorePlots.h:65
Tau::NewCorePlots::m_mEflowApprox
TH1 * m_mEflowApprox
Definition: NewCorePlots.h:46
Tau::NewCorePlots::m_track_eProbabilityHT
TH1 * m_track_eProbabilityHT
Definition: NewCorePlots.h:67
TauGNNUtils::Variables::Cluster::CENTER_LAMBDA
bool CENTER_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:840
xAOD::TauJetParameters::PFOEngRelDiff
@ PFOEngRelDiff
Definition: TauDefs.h:318
xAOD::CaloVertexedClusterBase::p4
virtual FourMom_t p4() const final
The full 4-momentum of the particle.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloVertexedClusterBase.h:88
Tau::NewCorePlots::m_sTauJetContainerName
std::string m_sTauJetContainerName
Definition: NewCorePlots.h:95
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
xAOD::TauJetParameters::trkWidth2
@ trkWidth2
Definition: TauDefs.h:162
Tau::NewCorePlots::m_track_charge
TH1 * m_track_charge
Definition: NewCorePlots.h:55
Tau::NewCorePlots::m_track_d0TJVA
TH1 * m_track_d0TJVA
Definition: NewCorePlots.h:51
max
#define max(a, b)
Definition: cfImp.cxx:41
Tau::NewCorePlots::m_lead2ClusterEOverAllClusterE
TH1 * m_lead2ClusterEOverAllClusterE
Definition: NewCorePlots.h:35
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:272
Tau::NewCorePlots::m_track_idScoreConv
TH1 * m_track_idScoreConv
Definition: NewCorePlots.h:72
PlotBase
Definition: PlotBase.h:34
Tau::NewCorePlots::m_track_nInnermostPixHits
TH1 * m_track_nInnermostPixHits
Definition: NewCorePlots.h:61
xAOD::TauJetParameters::trFlightPathSig
@ trFlightPathSig
Definition: TauDefs.h:163
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
TauGNNUtils::Variables::Cluster::EM_PROBABILITY
bool EM_PROBABILITY(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:909
xAOD::TauJetParameters::lead2ClusterEOverAllClusterE
@ lead2ClusterEOverAllClusterE
Get sum of 2 leading cluster energy over all cluster energy.
Definition: TauDefs.h:218
xAOD::TauTrack_v1::d0SigTJVA
float d0SigTJVA() const
Definition: TauTrack_v1.cxx:129
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
xAOD::TrackParticle_v1::charge
float charge() const
Returns the charge.
Definition: TrackParticle_v1.cxx:150
xAOD::TauJetParameters::ClustersMeanSecondLambda
@ ClustersMeanSecondLambda
Definition: TauDefs.h:315
Tau::NewCorePlots::m_cluster_centerLambda
TH1 * m_cluster_centerLambda
Definition: NewCorePlots.h:80
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
Tau::NewCorePlots::m_cluster_logEt
TH1 * m_cluster_logEt
Definition: NewCorePlots.h:75
Tau::NewCorePlots::m_track_idScoreIso
TH1 * m_track_idScoreIso
Definition: NewCorePlots.h:71
Tau::NewCorePlots::m_trkAvgDist
TH1 * m_trkAvgDist
Definition: NewCorePlots.h:34
Tau::NewCorePlots::m_track_nTRTHits
TH1 * m_track_nTRTHits
Definition: NewCorePlots.h:66
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition: TrackParticle_v1.cxx:736
Tau::NewCorePlots::m_centFrac
TH1 * m_centFrac
Definition: NewCorePlots.h:31
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition: TauJet_v3.cxx:526
Tau::NewCorePlots::m_cluster_eta
TH1 * m_cluster_eta
Definition: NewCorePlots.h:76
Tau::NewCorePlots::m_track_logRConv
TH1 * m_track_logRConv
Definition: NewCorePlots.h:57
Tau::NewCorePlots::m_ChPiEMEOverCaloEME
TH1 * m_ChPiEMEOverCaloEME
Definition: NewCorePlots.h:42
xAOD::TauJetParameters::ClustersMeanPresamplerFrac
@ ClustersMeanPresamplerFrac
Definition: TauDefs.h:316
xAOD::TauTrack_v1::z0sinthetaSigTJVA
float z0sinthetaSigTJVA() const
Definition: TauTrack_v1.cxx:139
Tau::NewCorePlots::m_track_qOverP
TH1 * m_track_qOverP
Definition: NewCorePlots.h:56
xAOD::TauJetParameters::mEflowApprox
@ mEflowApprox
Definition: TauDefs.h:292
Tau::NewCorePlots::m_track_logPt
TH1 * m_track_logPt
Definition: NewCorePlots.h:49
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
Tau
Definition: EfficiencyPtPlots.cxx:9
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
xAOD::TauJetParameters::lead3ClusterEOverAllClusterE
@ lead3ClusterEOverAllClusterE
Get sum of 3 leading cluster energy over all cluster energy.
Definition: TauDefs.h:220
SG::ConstAccessor< float >
TrigInDetValidation_Base.test
test
Definition: TrigInDetValidation_Base.py:147
Tau::NewCorePlots::m_track_idScoreCharged
TH1 * m_track_idScoreCharged
Definition: NewCorePlots.h:70
InDetAccessor::qOverP
@ qOverP
perigee
Definition: InDetAccessor.h:35
xAOD::TauJet_v3::ptJetSeed
double ptJetSeed() const
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
Tau::NewCorePlots::m_trkWidth2
TH1 * m_trkWidth2
Definition: NewCorePlots.h:23
Tau::NewCorePlots::m_etOverPtLeadTrk
TH1 * m_etOverPtLeadTrk
Definition: NewCorePlots.h:20
xAOD::TauJetParameters::ptRatioEflowApprox
@ ptRatioEflowApprox
Definition: TauDefs.h:293
IDTPM::nPixelHits
float nPixelHits(const U &p)
Definition: TrackParametersHelper.h:326
Tau::NewCorePlots::m_track_d0SigTJVA
TH1 * m_track_d0SigTJVA
Definition: NewCorePlots.h:53
xAOD::TauJetParameters::hadRadius
@ hadRadius
Get hadron calorimeter radius.
Definition: TauDefs.h:192
xAOD::TauJetParameters::JetSeed
@ JetSeed
Definition: TauDefs.h:336
xAOD::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
Definition: TrackingPrimitives.h:278
xAOD::TauJet_v3::clusters
std::vector< const IParticle * > clusters() const
Definition: TauJet_v3.cxx:585
xAOD::TauJetParameters::stripWidth2
@ stripWidth2
Get strip width ^2.
Definition: TauDefs.h:202
Tau::NewCorePlots::initializePlots
void initializePlots()
Definition: NewCorePlots.cxx:52
Tau::NewCorePlots::~NewCorePlots
virtual ~NewCorePlots()
Definition: NewCorePlots.cxx:48
IDTPM::nSCTSharedHits
float nSCTSharedHits(const U &p)
Definition: TrackParametersHelper.h:385
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:189
PlotBase::Book1D
TH1D * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:94
xAOD::TauJetParameters::centFrac
@ centFrac
Get centrality fraction.
Definition: TauDefs.h:200
xAOD::TauJetParameters::dRmax
@ dRmax
Get maximal dR of tracks associated to calo-seeded tau.
Definition: TauDefs.h:226
Tau::NewCorePlots::m_track_z0sinthetaSigTJVA
TH1 * m_track_z0sinthetaSigTJVA
Definition: NewCorePlots.h:54
Tau::NewCorePlots::m_clustersMeanFirstEngDens
TH1 * m_clustersMeanFirstEngDens
Definition: NewCorePlots.h:85
Tau::NewCorePlots::NewCorePlots
NewCorePlots(PlotBase *pParent, const std::string &sDir, std::string sTauJetContainerName)
Definition: NewCorePlots.cxx:14
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:262
Tau::NewCorePlots::m_track_nSiHits
TH1 * m_track_nSiHits
Definition: NewCorePlots.h:64
Tau::NewCorePlots::m_tauDRMax
TH1 * m_tauDRMax
Definition: NewCorePlots.h:27
Tau::NewCorePlots::m_cluster_phi
TH1 * m_cluster_phi
Definition: NewCorePlots.h:77
Tau::NewCorePlots::m_EMRadius
TH1 * m_EMRadius
Definition: NewCorePlots.h:28
xAOD::TauJetParameters::caloIso
@ caloIso
Get sum of transvers energy of clusters around jet seed within 0.2 < dR < 0.4
Definition: TauDefs.h:222
Tau::NewCorePlots::m_nStrip
TH1 * m_nStrip
Definition: NewCorePlots.h:33
IDTPM::nSCTHits
float nSCTHits(const U &p)
Definition: TrackParametersHelper.h:365
IDTPM::nTRTHits
float nTRTHits(const U &p)
Definition: TrackParametersHelper.h:409
TauGNNUtils::Variables::Track::z0sinthetaSigTJVA
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:512
Tau::NewCorePlots::m_track_z0SinthetaTJVA
TH1 * m_track_z0SinthetaTJVA
Definition: NewCorePlots.h:52
xAOD::TauJetParameters::trkAvgDist
@ trkAvgDist
Get calibrated EM transverse energy (DEPRECATED since r19)
Definition: TauDefs.h:214
Trk::eProbabilityNN
@ eProbabilityNN
Electron probability from NN.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:217
Tau::NewCorePlots::m_ipSigLeadTrk
TH1 * m_ipSigLeadTrk
Definition: NewCorePlots.h:21
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
Tau::NewCorePlots::m_track_eProbabilityNN
TH1 * m_track_eProbabilityNN
Definition: NewCorePlots.h:68
Tau::NewCorePlots::m_innerTrkAvgDist
TH1 * m_innerTrkAvgDist
Definition: NewCorePlots.h:44
xAOD::TauJet_v3::track
const TauTrack * track(size_t i, TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged, int *container_index=0) const
Get the pointer to a given tauTrack associated with this tau /*container index needed by trackNonCons...
Definition: TauJet_v3.cxx:450
Tau::NewCorePlots::m_TVz
TH1 * m_TVz
Definition: NewCorePlots.h:91
xAOD::TauJetParameters::etOverPtLeadTrk
@ etOverPtLeadTrk
Definition: TauDefs.h:158
hist_file_dump.f
f
Definition: hist_file_dump.py:135
xAOD::CaloCluster_v1::retrieveMoment
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
Definition: CaloCluster_v1.cxx:738
Tau::NewCorePlots::m_clustersMeanSecondLambda
TH1 * m_clustersMeanSecondLambda
Definition: NewCorePlots.h:87
TauGNNUtils::Variables::Cluster::SECOND_LAMBDA
bool SECOND_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:835
Tau::NewCorePlots::m_clustersMeanPresamplerFrac
TH1 * m_clustersMeanPresamplerFrac
Definition: NewCorePlots.h:88
xAOD::numberOfSCTHoles
@ numberOfSCTHoles
number of SCT holes [unit8_t].
Definition: TrackingPrimitives.h:270
Tau::NewCorePlots::m_track_nPixelSharedHits
TH1 * m_track_nPixelSharedHits
Definition: NewCorePlots.h:63
xAOD::TauJetParameters::massTrkSys
@ massTrkSys
Definition: TauDefs.h:161
TauGNNUtils::Variables::Track::trackPt
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:472
min
#define min(a, b)
Definition: cfImp.cxx:40
Tau::NewCorePlots::m_cluster_firstEngDens
TH1 * m_cluster_firstEngDens
Definition: NewCorePlots.h:81
xAOD::TauJet_v3::detail
bool detail(TauJetParameters::Detail detail, int &value) const
Set veto flag.
Definition: TauJet_v3.cxx:292
xAOD::TrackParticle_v1::qOverP
float qOverP() const
Returns the parameter.
Tau::NewCorePlots::m_cluster_secondR
TH1 * m_cluster_secondR
Definition: NewCorePlots.h:78
Tau::NewCorePlots::m_track_idScoreFake
TH1 * m_track_idScoreFake
Definition: NewCorePlots.h:73
Tau::NewCorePlots::m_logSeedJetPt
TH1 * m_logSeedJetPt
Definition: NewCorePlots.h:48
xAOD::TauJetParameters::ClustersMeanEMProbability
@ ClustersMeanEMProbability
Definition: TauDefs.h:313
xAOD::TauJetParameters::ClustersMeanCenterLambda
@ ClustersMeanCenterLambda
Definition: TauDefs.h:312
TauGNNUtils::Variables::Cluster::SECOND_R
bool SECOND_R(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:830
Tau::NewCorePlots::m_caloIso
TH1 * m_caloIso
Definition: NewCorePlots.h:37
xAOD::TauJetParameters::nStrip
@ nStrip
Get number of strips.
Definition: TauDefs.h:204
Tau::NewCorePlots::m_massTrkSys
TH1 * m_massTrkSys
Definition: NewCorePlots.h:22
CaloVertexedTopoCluster.h
Evaluate cluster kinematics with a different vertex / signal state.
Tau::NewCorePlots::m_track_nPixHits
TH1 * m_track_nPixHits
Definition: NewCorePlots.h:62
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
IDTPM::nPixelSharedHits
float nPixelSharedHits(const U &p)
Definition: TrackParametersHelper.h:346
xAOD::TauJetParameters::innerTrkAvgDist
@ innerTrkAvgDist
Definition: TauDefs.h:287
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Tau::NewCorePlots::m_hadRadius
TH1 * m_hadRadius
Definition: NewCorePlots.h:29
Tau::NewCorePlots::m_lead3ClusterEOverAllClusterE
TH1 * m_lead3ClusterEOverAllClusterE
Definition: NewCorePlots.h:36
Tau::NewCorePlots::fill
void fill(const xAOD::TauJet &tau, float weight)
Definition: NewCorePlots.cxx:127
xAOD::TauJet_v3::vertex
const Vertex * vertex() const
xAOD::TauJetParameters::ChPiEMEOverCaloEME
@ ChPiEMEOverCaloEME
Definition: TauDefs.h:278
xAOD::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:273
xAOD::TauTrack_v1
Definition: TauTrack_v1.h:27
xAOD::TauJet_v3::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: TauJet_v3.cxx:97
Tau::NewCorePlots::m_isolFrac
TH1 * m_isolFrac
Definition: NewCorePlots.h:30
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
Tau::NewCorePlots::m_ipZ0SinThetaSigLeadTrk
TH1 * m_ipZ0SinThetaSigLeadTrk
Definition: NewCorePlots.h:19
Tau::NewCorePlots::m_ptRatioEflowApprox
TH1 * m_ptRatioEflowApprox
Definition: NewCorePlots.h:45
Tau::NewCorePlots::m_cluster_EMproba
TH1 * m_cluster_EMproba
Definition: NewCorePlots.h:82
TauGNNUtils::Variables::Cluster::FIRST_ENG_DENS
bool FIRST_ENG_DENS(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:902
xAOD::TauJetParameters::ClustersMeanFirstEngDens
@ ClustersMeanFirstEngDens
Definition: TauDefs.h:314
xAOD::eProbabilityHT
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
Definition: TrackingPrimitives.h:301
xAOD::TauJetParameters::isolFrac
@ isolFrac
Get isolation fraction.
Definition: TauDefs.h:198
Tau::NewCorePlots::m_track_eProbabilityHTorNN
TH1 * m_track_eProbabilityHTorNN
Definition: NewCorePlots.h:69
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
xAOD::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:266
TauGNNUtils::Variables::Track::d0TJVA
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:517
Tau::NewCorePlots::m_track_ptRatioSeedJet
TH1 * m_track_ptRatioSeedJet
Definition: NewCorePlots.h:59
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
IDTPM::nTRTHighThresholdHits
float nTRTHighThresholdHits(const U &p)
Definition: TrackParametersHelper.h:440
xAOD::CaloVertexedTopoCluster
Evaluate cluster kinematics with a different vertex / signal state.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloVertexedTopoCluster.h:38
xAOD::TauJetParameters::PSSFraction
@ PSSFraction
Definition: TauDefs.h:277
Tau::NewCorePlots::m_PSSFraction
TH1 * m_PSSFraction
Definition: NewCorePlots.h:41
xAOD::TauJetParameters::EMRadius
@ EMRadius
Get E_T radius.
Definition: TauDefs.h:190
Tau::NewCorePlots::m_cluster_secondLambda
TH1 * m_cluster_secondLambda
Definition: NewCorePlots.h:79
Tau::NewCorePlots::m_trFlightPathSig
TH1 * m_trFlightPathSig
Definition: NewCorePlots.h:24
Tau::NewCorePlots::m_clustersMeanCenterLambda
TH1 * m_clustersMeanCenterLambda
Definition: NewCorePlots.h:84
Tau::NewCorePlots::m_PFOEngRelDiff
TH1 * m_PFOEngRelDiff
Definition: NewCorePlots.h:89
xAOD::TauJet_v3::allTracks
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
Definition: TauJet_v3.cxx:514
xAOD::TauJet_v3::vertexLink
const VertexLink_t & vertexLink() const
xAOD::TauJetParameters::EMPOverTrkSysP
@ EMPOverTrkSysP
Definition: TauDefs.h:279
Tau::NewCorePlots::m_track_eta
TH1 * m_track_eta
Definition: NewCorePlots.h:50
TauGNNUtils::Variables::Track::d0SigTJVA
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:522
Tau::NewCorePlots::m_EMPOverTrkSysP
TH1 * m_EMPOverTrkSysP
Definition: NewCorePlots.h:43
Tau::NewCorePlots::m_clustersMeanEMProbability
TH1 * m_clustersMeanEMProbability
Definition: NewCorePlots.h:86
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
NewCorePlots.h
SG::ConstAccessor::withDefault
const_reference_type withDefault(const ELT &e, const T &deflt) const
Fetch the variable for one element, as a const reference, with a default.
Tau::NewCorePlots::m_track_dRJetSeedAxis
TH1 * m_track_dRJetSeedAxis
Definition: NewCorePlots.h:60
Tau::NewCorePlots::m_track_tanhRConvII
TH1 * m_track_tanhRConvII
Definition: NewCorePlots.h:58