ATLAS Offline Software
InDetGlobalTopBottomMonTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
19 //Local
21 //Framework
22 #include "GaudiKernel/StatusCode.h"
24 //Standard c++
25 #include <string>
26 //Root
27 #include "TH1F.h"
28 #include <cmath>
29 
31 
32 
34  const std::string & type,
35  const std::string & name,
36  const IInterface* parent)
38  m_detector("ID"),
39  m_tracks_top(nullptr), m_tracks_bottom(nullptr),
40  m_nTopTrks(nullptr),
41  m_nBottomTrks(nullptr),
42  m_top_d0(nullptr),
43  m_top_z0(nullptr),
44  m_top_phi(nullptr),
45  m_top_eta(nullptr),
46  m_top_chi2(nullptr),
47  m_bottom_d0(nullptr),
48  m_bottom_z0(nullptr),
49  m_bottom_phi(nullptr),
50  m_bottom_eta(nullptr),
51  m_bottom_chi2(nullptr),
52  m_top_d0_1trk(nullptr),
53  m_top_z0_1trk(nullptr),
54  m_top_phi_1trk(nullptr),
55  m_top_eta_1trk(nullptr),
56  m_top_chi2_1trk(nullptr),
57  m_bottom_d0_1trk(nullptr),
58  m_bottom_z0_1trk(nullptr),
59  m_bottom_phi_1trk(nullptr),
60  m_bottom_eta_1trk(nullptr),
61  m_bottom_chi2_1trk(nullptr),
62  m_top_bottom_dd0(nullptr),
63  m_top_bottom_dz0(nullptr),
64  m_top_bottom_dphi(nullptr),
65  m_top_bottom_deta(nullptr),
66  m_top_bottom_d0_pull(nullptr),
67  m_top_bottom_z0_pull(nullptr),
68  m_top_bottom_phi_pull(nullptr),
69  m_top_bottom_eta_pull(nullptr),
70  m_Top_eta(),
71  m_Top_phi(),
72  m_Top_d0(),
73  m_Top_z0(),
74  m_Top_chi2(),
75  m_Bottom_eta(),
76  m_Bottom_phi(),
77  m_Bottom_d0(),
78  m_Bottom_z0(),
79  m_Bottom_chi2(),
80  m_Top_deta(),
81  m_Top_dphi(),
82  m_Top_dd0(),
83  m_Top_dz0(),
84  m_Bottom_deta(),
85  m_Bottom_dphi(),
86  m_Bottom_dd0(),
87  m_Bottom_dz0(),
88  m_doTopBottom(false)
89 {
90  declareProperty("SCTTrackName", m_SCTTracksName="ResolvedSCTTracks");
91  declareProperty("TRTTrackName", m_TRTTracksName="StandaloneTRTTracks");
92  declareProperty("PixelTrackName", m_PIXTracksName="ResolvedPixelTracks");
93  declareProperty("CombinedTrackName", m_CombinedTracksName="CombinedInDetTracks");
94  declareProperty("doTopBottom", m_doTopBottom);
95  declareProperty("Detector", m_detector);
96 }
97 
98 
108 
109  ATH_CHECK( m_sctTracksUpKey.initialize(m_detector == "sct") );
110  ATH_CHECK( m_sctTracksLowKey.initialize(m_detector == "sct") );
111  ATH_CHECK( m_trtTracksUpKey.initialize(m_detector == "trt") );
112  ATH_CHECK( m_trtTracksLowKey.initialize(m_detector == "trt") );
113  ATH_CHECK( m_pixTracksUpKey.initialize(m_detector == "pixel") );
114  ATH_CHECK( m_pixTracksLowKey.initialize(m_detector == "pixel") );
115  ATH_CHECK( m_combinedTracksUpKey.initialize(m_detector == "ID") );
116  ATH_CHECK( m_combinedTracksLowKey.initialize(m_detector == "ID") );
117 
118  return StatusCode::SUCCESS;
119 }
120 
121 
122 //---------------------------------------------------------
124 {
125  MonGroup monGr_shift ( this, "InDetGlobal/TopBottom", run);
126  MonGroup monGr_exp ( this, "InDetGlobal/TopBottom", run);
127 
128  bool status = true;
129 
130  if (newRunFlag()) {
131  // Number of tracks
132 
133  status &= registerHist(
134  monGr_shift,m_nBottomTrks=
135  new TH1F("m_nBottomTrks","number of bottom segments",5,0,5));
136  status &= registerHist(
137  monGr_shift,m_nTopTrks=
138  new TH1F("m_nTopTrks","number of top segments",5,0,5));
139 
140  // Track parameters at perigee
141 
142  status &= registerHist(
143  monGr_exp,m_top_phi=
144  new TH1F("m_top_phi","phi of top segment",100,-M_PI,M_PI));
145  status &= registerHist(monGr_exp,m_top_eta=
146  new TH1F("m_top_eta","eta of top segment",100,-1.,1.));
147  status &= registerHist(
148  monGr_exp,m_top_d0=
149  new TH1F("m_top_d0","transverse impact parameter of top segment",
150  200,-500,500));
151  status &= registerHist(monGr_exp,m_top_z0=
152  new TH1F("m_top_z0","z0 of top segment",200,-1000,1000));
153  status &= registerHist(monGr_exp,m_top_chi2=
154  new TH1F("m_top_chi2","chi2 of top segment",100,0,100));
155  status &= registerHist(
156  monGr_exp,m_bottom_phi=new TH1F(
157  "m_bottom_phi","phi of bottom segment",100,-M_PI,M_PI));
158  status &= registerHist(
159  monGr_exp,m_bottom_eta=
160  new TH1F("m_bottom_eta","eta of bottom segment",100,-1.,1.));
161  status &= registerHist(
162  monGr_exp,m_bottom_d0=new TH1F(
163  "m_bottom_d0","transverse impact parameter of bottom segment",
164  200,-500,500));
165  status &= registerHist(
166  monGr_exp,m_bottom_z0=
167  new TH1F("m_bottom_z0","z0 of bottom segment",200,-1000,1000));
168  status &= registerHist(
169  monGr_exp,m_bottom_chi2=
170  new TH1F("m_bottom_chi2","chi2 of bottom segment",100,0,100));
171 
172  status &= registerHist(
173  monGr_exp,m_top_phi_1trk=new TH1F(
174  "m_top_phi_1trk",
175  "phi of top segment-only 1 segment per event",
176  100,-M_PI,M_PI));
177  status &= registerHist(
178  monGr_exp,m_top_eta_1trk=new TH1F(
179  "m_top_eta_1trk",
180  "eta of top segment-only 1 segment per event",
181  100,-1.,1.));
182  status &= registerHist(
183  monGr_exp,m_top_d0_1trk=new TH1F(
184  "m_top_d0_1trk","transverse impact parameter of top segment"
185  "-only 1 segment per event",200,-500,500));
186  status &= registerHist(
187  monGr_exp,m_top_z0_1trk=
188  new TH1F("m_top_z0_1trk",
189  "z0 of top segment-only 1 segment per event",
190  200,-1000,1000));
191  status &= registerHist(
192  monGr_exp,m_top_chi2_1trk=new TH1F(
193  "m_top_chi2_1trk",
194  "chi2 of top segment-only 1 segment per event"
195  ,100,0,100));
196  status &= registerHist(
197  monGr_exp,m_bottom_phi_1trk=new TH1F(
198  "m_bottom_phi_1trk","phi of bottom segment-"
199  "only 1 segment per event",100,-M_PI,M_PI));
200  status &= registerHist(
201  monGr_exp,m_bottom_eta_1trk=new TH1F(
202  "m_bottom_eta_1trk",
203  "eta of bottom segment-only 1 segment per event",
204  100,-1.,1.));
205  status &= registerHist(
206  monGr_exp,m_bottom_d0_1trk=new TH1F(
207  "m_bottom_d0_1trk",
208  "transverse impact parameter of bottom segment "
209  "- only 1 segment per event",200,-500,500));
210  status &= registerHist(
211  monGr_exp,m_bottom_z0_1trk=new TH1F(
212  "m_bottom_z0_1trk",
213  "z0 of bottom segment-only 1 segment per event"
214  ,200,-1000,1000));
215  status &= registerHist(
216  monGr_exp,m_bottom_chi2_1trk=new TH1F(
217  "m_bottom_chi2_1trk",
218  "chi2 of bottom segment-only 1 segment per event",
219  100,0,100));
220  status &= registerHist(
221  monGr_exp,m_top_bottom_dphi=new TH1F(
222  "m_top_bottom_dphi",
223  "Delta(phi) between top and bottom segments",
224  100,-0.05,0.05));
225  status &= registerHist(
226  monGr_exp,m_top_bottom_deta=new TH1F(
227  "m_top_bottom_deta",
228  "Delta(eta) between top and bottom segments",
229  100,-0.2,0.2));
230  status &= registerHist(
231  monGr_exp,m_top_bottom_dd0=new TH1F(
232  "m_top_bottom_dd0","Delta(d0) between top and bottom segments",
233  400,-10,10));
234  status &= registerHist(
235  monGr_exp,m_top_bottom_dz0=new TH1F(
236  "m_top_bottom_dz0","Delta(z0) between top and bottom segments",
237  200,-100,100));
238  status &= registerHist(
239  monGr_exp,m_top_bottom_phi_pull=new TH1F(
240  "m_top_bottom_phi_pull",
241  "Delta(phi) pull between top and bottom segments",
242  200,-100,100));
243  status &= registerHist(
244  monGr_exp,m_top_bottom_eta_pull=new TH1F(
245  "m_top_bottom_eta_pull",
246  "Delta(eta) pull between top and bottom segments",
247  200,-0.1,0.1));
248  status &= registerHist(
249  monGr_exp,m_top_bottom_d0_pull=new TH1F(
250  "m_top_bottom_d0_pull",
251  "Delta(d0) pull between top and bottom segments",100,-50,50));
252  status &= registerHist(
253  monGr_exp,m_top_bottom_z0_pull=new TH1F(
254  "m_top_bottom_z0_pull",
255  "Delta(z0) pull between top and bottom segments",
256  200,-30,30));
257  }
258 
259  if (status) return StatusCode::SUCCESS;
260  else return StatusCode::FAILURE;
261 }
262 
263 
264 //---------------------------------------------------------
266 {
267 
268 
269  StatusCode sc;
270 
271  if (m_detector == "sct") {
272 
274  if (!sctTracksUp.isValid()) {
275  ATH_MSG_DEBUG("No SCT segments in StoreGate ");
276  return StatusCode::SUCCESS;
277  } else {
278  ATH_MSG_ERROR("found SCT segments in StoreGate " <<
279  m_sctTracksUpKey.key() << " " << sctTracksUp->size());
280  }
281 
283  if (!sctTracksLow.isValid()) {
284  ATH_MSG_DEBUG("No SCT segments in StoreGate ");
285  return StatusCode::SUCCESS;
286  } else {
287  ATH_MSG_DEBUG("found SCT segments in StoreGate " <<
288  m_sctTracksLowKey.key() << " " << sctTracksLow->size());
289  }
290 
291  m_tracks_top = sctTracksUp.get();
292  m_tracks_bottom = sctTracksLow.get();
293 
294  }
295 
296  else if (m_detector == "pixel") {
297 
299  if (!pixTracksUp.isValid()) {
300  ATH_MSG_DEBUG("No PIX segments in StoreGate ");
301  return StatusCode::SUCCESS;
302  } else {
303  ATH_MSG_DEBUG("found PIX segments in StoreGate " <<
304  m_pixTracksUpKey.key() << " " << pixTracksUp->size());
305  }
306 
308  if (!pixTracksLow.isValid()) {
309  ATH_MSG_DEBUG("No PIX segments in StoreGate ");
310  return StatusCode::SUCCESS;
311  } else {
312  ATH_MSG_DEBUG("found PIX segments in StoreGate " <<
313  m_pixTracksLowKey.key() << " " << pixTracksLow->size());
314  }
315 
316  m_tracks_top = pixTracksUp.get();
317  m_tracks_bottom = pixTracksLow.get();
318 
319  }
320 
321  else if(m_detector=="trt"){
322 
324  if (!trtTracksUp.isValid()) {
325  ATH_MSG_DEBUG("No TRT segments in StoreGate ");
326  return StatusCode::SUCCESS;
327  } else {
328  ATH_MSG_DEBUG("found TRT segments in StoreGate " <<
329  m_trtTracksUpKey.key() << " " << trtTracksUp->size());
330  }
331 
333  if (!trtTracksLow.isValid()) {
334  ATH_MSG_DEBUG("No TRT segments in StoreGate ");
335  return StatusCode::SUCCESS;
336  } else {
337  ATH_MSG_DEBUG("found TRT segments in StoreGate " <<
338  m_trtTracksLowKey.key() << " " << trtTracksLow->size());
339  }
340 
341 
342  m_tracks_top = trtTracksUp.get();
343  m_tracks_bottom = trtTracksLow.get();
344 
345  }
346 
347  else{
348 
350  if (!combinedTracksUp.isValid()) {
351  ATH_MSG_DEBUG("No combined segments in StoreGate ");
352  if(m_detector=="ID") return StatusCode::SUCCESS;
353  } else {
354  ATH_MSG_DEBUG("found combined segments in StoreGate " <<
355  m_combinedTracksUpKey.key() << " " << combinedTracksUp->size());
356  }
357 
359  if (!combinedTracksLow.isValid()) {
360  ATH_MSG_DEBUG("No combined segments in StoreGate ");
361  if(m_detector=="ID") return StatusCode::SUCCESS;
362  } else {
363  ATH_MSG_DEBUG("found combined segments in StoreGate " <<
364  m_combinedTracksLowKey.key() << " " << combinedTracksLow->size());
365  }
366  m_tracks_top = nullptr;
367  m_tracks_bottom = nullptr;
368  }
369 
370  //------------ Loop over bottom segments ------------------
371 
372  unsigned int nBottomTracks=0;
373 
374  if (m_tracks_bottom) {
376  ibottom != m_tracks_bottom->end(); ++ibottom) {
377  const Trk::Track *track_bottom=(*ibottom);
378 
379  if (track_bottom == nullptr) {
380  msg(MSG::WARNING)
381  << "no pointer to bottom track!!!" << endmsg;
382  continue;
383  }
384 
385  // Track at perigee
386 
387  const Trk::Perigee *measPerigee=
388  dynamic_cast<const Trk::Perigee *>(
389  track_bottom->perigeeParameters());
390 
391  if (measPerigee&&nBottomTracks<s_nMaxTracks) {
392  m_Bottom_eta[nBottomTracks]=
393  measPerigee->eta();
394  m_Bottom_phi[nBottomTracks]=
395  measPerigee->parameters()[Trk::phi0];
396  m_Bottom_d0 [nBottomTracks]=
397  measPerigee->parameters()[Trk::d0];
398  m_Bottom_z0 [nBottomTracks]=
399  measPerigee->parameters()[Trk::z0];
400  const AmgSymMatrix(5) * ErrorMat =
401  measPerigee->covariance();
402  if ( ErrorMat )
403  {
404  m_Bottom_deta[nBottomTracks]= -log(tan( Amg::error( *ErrorMat, Trk::theta ) / 2. ) );
405  m_Bottom_dphi[nBottomTracks]=Amg::error( *ErrorMat, Trk::phi0);
406  m_Bottom_dd0 [nBottomTracks]=Amg::error( *ErrorMat, Trk::d0 );
407  m_Bottom_dz0 [nBottomTracks]=Amg::error( *ErrorMat, Trk::z0 );
408  }
409  } else {
410  msg(MSG::ERROR)
411  << "no measurement at perigee !!!" << endmsg;
412  }
413  if ( nBottomTracks<s_nMaxTracks)
414  m_Bottom_chi2[nBottomTracks]=
415  (track_bottom->fitQuality()->chiSquared())/
416  (track_bottom->fitQuality()->numberDoF());
417 
418  nBottomTracks++;
419  }
420  }
421 
422  m_nBottomTrks->Fill(nBottomTracks);
423 
424 
425  //------------ Loop over top segments ------------------
426 
427  unsigned int nTopTracks=0;
428 
429  if (m_tracks_top) {
431  itop != m_tracks_top->end(); ++itop) {
432  const Trk::Track *track_top=(*itop);
433  if (track_top == nullptr){
434  msg(MSG::WARNING)
435  << "no pointer to top track!!!" << endmsg;
436  continue;
437  }
438  // Track at perigee
439  const Trk::Perigee *measPerigee=
440  dynamic_cast<const Trk::Perigee *>(
441  track_top->perigeeParameters());
442  if (measPerigee&&nTopTracks<s_nMaxTracks) {
443  m_Top_eta[nTopTracks]=measPerigee->eta();
444  m_Top_phi[nTopTracks]=measPerigee->parameters()[Trk::phi0];
445  m_Top_d0 [nTopTracks]=measPerigee->parameters()[Trk::d0];
446  m_Top_z0 [nTopTracks]=measPerigee->parameters()[Trk::z0];
447 
448  const AmgSymMatrix(5) * ErrorMat=
449  measPerigee->covariance();
450  if ( ErrorMat )
451  {
452  m_Top_deta[nTopTracks]= -log(tan( Amg::error( *ErrorMat, Trk::theta )/2. ) );
453  m_Top_dphi[nTopTracks]=Amg::error( *ErrorMat, Trk::phi0 );
454  m_Top_dd0 [nTopTracks]=Amg::error( *ErrorMat, Trk::d0 );
455  m_Top_dz0 [nTopTracks]=Amg::error( *ErrorMat, Trk::z0 );
456  }
457  } else {
458  msg(MSG::ERROR)
459  << "no measurement at perigee !!!" << endmsg;
460  }
461  if ( nTopTracks<s_nMaxTracks) {
462  m_Top_chi2[nTopTracks]=
463  (track_top->fitQuality()->chiSquared())/
464  (track_top->fitQuality()->numberDoF());
465  }
466  nTopTracks++;
467  }
468  }
469 
470  m_nTopTrks->Fill(nTopTracks);
471 
472  // Fill remaining histograms
473  if(nTopTracks>0) {
474  m_top_d0->Fill(m_Top_d0[0]);
475  m_top_z0->Fill(m_Top_z0[0]);
476  m_top_phi->Fill(m_Top_phi[0]);
477  m_top_eta->Fill(m_Top_eta[0]);
478  m_top_chi2->Fill(m_Top_chi2[0]);
479  }
480 
481  if(nBottomTracks>0) {
482  m_bottom_d0->Fill(m_Bottom_d0[0]);
483  m_bottom_z0->Fill(m_Bottom_z0[0]);
484  m_bottom_phi->Fill(m_Bottom_phi[0]);
485  m_bottom_eta->Fill(m_Bottom_eta[0]);
486  m_bottom_chi2->Fill(m_Bottom_chi2[0]);
487  }
488 
489  if (nTopTracks==1 && nBottomTracks==1) {
494  m_top_bottom_eta_pull->Fill(
495  (m_Top_eta[0]- m_Bottom_eta[0])/sqrt(
496  (pow(m_Top_deta[0],2)+pow(m_Bottom_deta[0],2))));
497  m_top_bottom_phi_pull->Fill(
498  (m_Top_phi[0]- m_Bottom_phi[0])/sqrt(
499  (pow(m_Top_dphi[0],2)+pow(m_Bottom_dphi[0],2))));
500  m_top_bottom_d0_pull->Fill(
501  (m_Top_d0[0]-m_Bottom_d0[0])/sqrt(
502  (pow(m_Top_dd0[0],2)+pow(m_Bottom_dd0[0],2))));
503  m_top_bottom_z0_pull->Fill(
504  (m_Top_z0[0]-m_Bottom_z0[0])/sqrt(
505  (pow(m_Top_dz0[0],2)+pow(m_Bottom_dz0[0],2))));
506 
507  m_top_d0_1trk->Fill(m_Top_d0[0]);
508  m_top_z0_1trk->Fill(m_Top_z0[0]);
509  m_top_phi_1trk->Fill(m_Top_phi[0]);
510  m_top_eta_1trk->Fill(m_Top_eta[0]);
511  m_top_chi2_1trk->Fill(m_Top_chi2[0]);
512 
513  m_bottom_d0_1trk->Fill(m_Bottom_d0[0]);
514  m_bottom_z0_1trk->Fill(m_Bottom_z0[0]);
516  m_bottom_eta_1trk->Fill(m_Bottom_eta[0]);
518  }
519 
520  return StatusCode::SUCCESS;
521 }
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
InDetGlobalTopBottomMonTool::m_top_bottom_d0_pull
TH1F * m_top_bottom_d0_pull
Definition: InDetGlobalTopBottomMonTool.h:110
InDetGlobalTopBottomMonTool::m_top_bottom_dd0
TH1F * m_top_bottom_dd0
Definition: InDetGlobalTopBottomMonTool.h:103
InDetGlobalTopBottomMonTool::m_detector
std::string m_detector
Definition: InDetGlobalTopBottomMonTool.h:66
InDetGlobalTopBottomMonTool::m_top_eta
TH1F * m_top_eta
Definition: InDetGlobalTopBottomMonTool.h:81
InDetGlobalTopBottomMonTool::m_top_bottom_deta
TH1F * m_top_bottom_deta
Definition: InDetGlobalTopBottomMonTool.h:106
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
InDetGlobalTopBottomMonTool::m_Bottom_dz0
float m_Bottom_dz0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:139
Trk::Track::fitQuality
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
InDetGlobalTopBottomMonTool::m_PIXTracksName
std::string m_PIXTracksName
Name of pixel tracks container.
Definition: InDetGlobalTopBottomMonTool.h:148
InDetGlobalTopBottomMonTool::m_combinedTracksUpKey
SG::ReadHandleKey< TrackCollection > m_combinedTracksUpKey
Definition: InDetGlobalTopBottomMonTool.h:159
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDetGlobalTopBottomMonTool::m_bottom_z0
TH1F * m_bottom_z0
Definition: InDetGlobalTopBottomMonTool.h:85
InDetGlobalTopBottomMonTool::m_top_bottom_eta_pull
TH1F * m_top_bottom_eta_pull
Definition: InDetGlobalTopBottomMonTool.h:113
InDetGlobalTopBottomMonTool::m_Bottom_z0
float m_Bottom_z0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:127
InDetGlobalTopBottomMonTool::m_bottom_chi2
TH1F * m_bottom_chi2
Definition: InDetGlobalTopBottomMonTool.h:88
InDetGlobalTopBottomMonTool::m_Bottom_dphi
float m_Bottom_dphi[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:137
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
InDetGlobalTopBottomMonTool::m_top_chi2_1trk
TH1F * m_top_chi2_1trk
Definition: InDetGlobalTopBottomMonTool.h:95
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDetGlobalTopBottomMonTool::m_Top_z0
float m_Top_z0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:121
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
InDetGlobalMotherMonTool::registerHist
StatusCode registerHist(MonGroup &theGroup, TH1 *h1)
Register single histogram.
Definition: InDetGlobalMotherMonTool.cxx:121
InDetGlobalTopBottomMonTool::m_Bottom_phi
float m_Bottom_phi[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:125
InDetGlobalTopBottomMonTool::m_SCTTracksName
std::string m_SCTTracksName
Name of SCT tracks container.
Definition: InDetGlobalTopBottomMonTool.h:142
EventPrimitivesHelpers.h
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
InDetGlobalTopBottomMonTool::m_sctTracksLowKey
SG::ReadHandleKey< TrackCollection > m_sctTracksLowKey
Definition: InDetGlobalTopBottomMonTool.h:154
InDetGlobalTopBottomMonTool::m_sctTracksUpKey
SG::ReadHandleKey< TrackCollection > m_sctTracksUpKey
Definition: InDetGlobalTopBottomMonTool.h:153
M_PI
#define M_PI
Definition: ActiveFraction.h:11
InDetGlobalTopBottomMonTool::m_top_z0_1trk
TH1F * m_top_z0_1trk
Definition: InDetGlobalTopBottomMonTool.h:92
Trk::z0
@ z0
Definition: ParamDefs.h:70
InDetGlobalTopBottomMonTool::m_top_bottom_z0_pull
TH1F * m_top_bottom_z0_pull
Definition: InDetGlobalTopBottomMonTool.h:111
InDetGlobalTopBottomMonTool::m_top_phi_1trk
TH1F * m_top_phi_1trk
Definition: InDetGlobalTopBottomMonTool.h:93
InDetGlobalTopBottomMonTool::m_Top_phi
float m_Top_phi[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:119
InDetGlobalTopBottomMonTool::m_Bottom_eta
float m_Bottom_eta[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:124
InDetGlobalTopBottomMonTool::m_combinedTracksLowKey
SG::ReadHandleKey< TrackCollection > m_combinedTracksLowKey
Definition: InDetGlobalTopBottomMonTool.h:160
InDetGlobalTopBottomMonTool::m_bottom_phi
TH1F * m_bottom_phi
Definition: InDetGlobalTopBottomMonTool.h:86
InDetGlobalTopBottomMonTool::m_bottom_phi_1trk
TH1F * m_bottom_phi_1trk
Definition: InDetGlobalTopBottomMonTool.h:99
InDetGlobalTopBottomMonTool::m_trtTracksUpKey
SG::ReadHandleKey< TrackCollection > m_trtTracksUpKey
Definition: InDetGlobalTopBottomMonTool.h:155
InDetGlobalTopBottomMonTool::m_Top_eta
float m_Top_eta[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:118
InDetGlobalTopBottomMonTool::initialize
virtual StatusCode initialize()
Definition: InDetGlobalTopBottomMonTool.cxx:99
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition: EventPrimitives.h:52
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
InDetGlobalTopBottomMonTool::bookHistogramsRecurrent
virtual StatusCode bookHistogramsRecurrent()
An inheriting class should either override this function or bookHists().
Definition: InDetGlobalTopBottomMonTool.cxx:123
InDetGlobalTopBottomMonTool::m_Top_chi2
float m_Top_chi2[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:122
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
InDetGlobalMotherMonTool
This tool derives from InDetGlobalMonitorToolBase The Mother tool interfaces to all subtools.
Definition: InDetGlobalMotherMonTool.h:75
InDetGlobalTopBottomMonTool::m_tracks_bottom
const TrackCollection * m_tracks_bottom
Definition: InDetGlobalTopBottomMonTool.h:72
InDetGlobalTopBottomMonTool::m_Bottom_d0
float m_Bottom_d0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:126
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDetGlobalTopBottomMonTool::m_nBottomTrks
TH1F * m_nBottomTrks
Definition: InDetGlobalTopBottomMonTool.h:76
InDetGlobalTopBottomMonTool::m_CombinedTracksName
std::string m_CombinedTracksName
Name of combined inner detector tracks container.
Definition: InDetGlobalTopBottomMonTool.h:151
InDetGlobalTopBottomMonTool.h
Trk::theta
@ theta
Definition: ParamDefs.h:72
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::ReadHandle::get
const_pointer_type get() const
Dereference the pointer, but don't cache anything.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDetGlobalTopBottomMonTool::m_bottom_z0_1trk
TH1F * m_bottom_z0_1trk
Definition: InDetGlobalTopBottomMonTool.h:98
InDetGlobalTopBottomMonTool::m_bottom_chi2_1trk
TH1F * m_bottom_chi2_1trk
Definition: InDetGlobalTopBottomMonTool.h:101
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDetGlobalTopBottomMonTool::m_bottom_eta_1trk
TH1F * m_bottom_eta_1trk
Definition: InDetGlobalTopBottomMonTool.h:100
run
Definition: run.py:1
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
InDetGlobalTopBottomMonTool::m_Bottom_deta
float m_Bottom_deta[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:136
InDetGlobalTopBottomMonTool::m_pixTracksLowKey
SG::ReadHandleKey< TrackCollection > m_pixTracksLowKey
Definition: InDetGlobalTopBottomMonTool.h:158
InDetGlobalTopBottomMonTool::m_bottom_eta
TH1F * m_bottom_eta
Definition: InDetGlobalTopBottomMonTool.h:87
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
InDetGlobalTopBottomMonTool::m_Top_deta
float m_Top_deta[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:131
InDetGlobalTopBottomMonTool::m_bottom_d0
TH1F * m_bottom_d0
Definition: InDetGlobalTopBottomMonTool.h:84
InDetGlobalTopBottomMonTool::m_TRTTracksName
std::string m_TRTTracksName
Name of TRT tracks container.
Definition: InDetGlobalTopBottomMonTool.h:145
InDetGlobalTopBottomMonTool::m_top_bottom_dz0
TH1F * m_top_bottom_dz0
Definition: InDetGlobalTopBottomMonTool.h:104
InDetGlobalTopBottomMonTool::InDetGlobalTopBottomMonTool
InDetGlobalTopBottomMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: InDetGlobalTopBottomMonTool.cxx:33
InDetGlobalTopBottomMonTool::m_pixTracksUpKey
SG::ReadHandleKey< TrackCollection > m_pixTracksUpKey
Definition: InDetGlobalTopBottomMonTool.h:157
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
InDetGlobalTopBottomMonTool::m_Bottom_chi2
float m_Bottom_chi2[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:128
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
Trk::d0
@ d0
Definition: ParamDefs.h:69
Amg::error
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Definition: EventPrimitivesHelpers.h:40
InDetGlobalTopBottomMonTool::m_doTopBottom
bool m_doTopBottom
Definition: InDetGlobalTopBottomMonTool.h:162
InDetGlobalTopBottomMonTool::m_top_chi2
TH1F * m_top_chi2
Definition: InDetGlobalTopBottomMonTool.h:82
InDetGlobalTopBottomMonTool::m_top_bottom_phi_pull
TH1F * m_top_bottom_phi_pull
Definition: InDetGlobalTopBottomMonTool.h:112
InDetGlobalTopBottomMonTool::m_Top_d0
float m_Top_d0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:120
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
InDetGlobalTopBottomMonTool::m_Bottom_dd0
float m_Bottom_dd0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:138
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
InDetGlobalTopBottomMonTool::m_bottom_d0_1trk
TH1F * m_bottom_d0_1trk
Definition: InDetGlobalTopBottomMonTool.h:97
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
InDetGlobalTopBottomMonTool::m_top_bottom_dphi
TH1F * m_top_bottom_dphi
Definition: InDetGlobalTopBottomMonTool.h:105
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
Trk::FitQuality::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
InDetGlobalTopBottomMonTool::m_Top_dphi
float m_Top_dphi[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:132
InDetGlobalTopBottomMonTool::m_Top_dz0
float m_Top_dz0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:134
InDetGlobalTopBottomMonTool::m_trtTracksLowKey
SG::ReadHandleKey< TrackCollection > m_trtTracksLowKey
Definition: InDetGlobalTopBottomMonTool.h:156
Trk::FitQuality::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
merge.status
status
Definition: merge.py:17
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
InDetGlobalTopBottomMonTool::m_tracks_top
const TrackCollection * m_tracks_top
Definition: InDetGlobalTopBottomMonTool.h:69
InDetGlobalTopBottomMonTool::fillHistograms
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: InDetGlobalTopBottomMonTool.cxx:265
InDetGlobalTopBottomMonTool::m_nTopTrks
TH1F * m_nTopTrks
Definition: InDetGlobalTopBottomMonTool.h:75
InDetGlobalTopBottomMonTool::m_top_phi
TH1F * m_top_phi
Definition: InDetGlobalTopBottomMonTool.h:80
InDetGlobalTopBottomMonTool::m_Top_dd0
float m_Top_dd0[s_nMaxTracks]
Definition: InDetGlobalTopBottomMonTool.h:133
InDetGlobalTopBottomMonTool::s_nMaxTracks
static const unsigned int s_nMaxTracks
Definition: InDetGlobalTopBottomMonTool.h:116
InDetGlobalTopBottomMonTool::m_top_z0
TH1F * m_top_z0
Definition: InDetGlobalTopBottomMonTool.h:79
Trk::phi0
@ phi0
Definition: ParamDefs.h:71
InDetGlobalTopBottomMonTool::m_top_eta_1trk
TH1F * m_top_eta_1trk
Definition: InDetGlobalTopBottomMonTool.h:94
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
InDetGlobalTopBottomMonTool::m_top_d0
TH1F * m_top_d0
Definition: InDetGlobalTopBottomMonTool.h:78
ManagedMonitorToolBase::newRunFlag
bool newRunFlag() const
Definition: ManagedMonitorToolBase.h:854
InDetGlobalTopBottomMonTool::m_top_d0_1trk
TH1F * m_top_d0_1trk
Definition: InDetGlobalTopBottomMonTool.h:91