ATLAS Offline Software
IDHitSummaryPlots.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <utility>
6 
9 
10 namespace Muon{
11 
13 HitFracTypePlots::HitFracTypePlots(PlotBase* pParent,std::string sHitType, std::string sHitLabel):
14  PlotBase(pParent, ""), m_sHitType(std::move(sHitType)), m_sHitLabel(std::move(sHitLabel))
15 {}
17 {
18  fracHits = Book1D(m_sHitType, m_sHitLabel + ";" + m_sHitLabel + ";Entries", 30 ,0., 0.6);
19  fracHitsVsEta = Book2D(m_sHitType + "vsEta", m_sHitLabel + ";" + m_sHitLabel + ";#eta;Entries", 30 , 0., 0.3, 54, -2.7, 2.7);
20 }
21  void HitFracTypePlots::fill(float fHits, float fEta, float weight)
22 {
23  fracHits->Fill(fHits, weight);
24  // unclear how to weight this
25  fracHitsVsEta->Fill(fHits, fEta);
26 }
28 
29 IDHitSummaryPlots::IDHitSummaryPlots(PlotBase* pParent, const std::string& sDir):
30  PlotBase(pParent, sDir)
31  , nBLayerHitsIfExpected(this, "nBLayerHitsIfExpected", "B-Layer clusters",0,4)
32  , nPixelHitsPlusDead(this, "nPixelHitsPlusDead","Pixel clusters",0,9)
33  , nSCTHitsPlusDead(this, "nSCTHitsPlusDead","SCT clusters",0,20)
34  , nTRTHitsPlusDead(this, "nTRTHitsPlusDead","TRT clusters",0,60)
35  , nTRTHitsPlusOutliers(this, "nTRTHitsPlusOutliers","TRT hits+Outliers",0,60)
36  , nPixSCTHoles(this, "nPixSCTHoles","Pix+SCT holes",0,5)
37  , fPixelOutliers(this, "fPixelOutliers","Fraction of Pix Outliers")
38  , fSCTOutliers(this, "fSCTOutliers","Fraction of SCT outliers")
39  , fTRTOutliers(this, "fTRTOutliers","Fraction of TRT Outliers")
40 {}
41 
43 {
44  float eta=trk.eta();
45  float phi=trk.phi();
46 
47  uint8_t iBLayerHits(0),bExpectBLayerHit(0);
50  nBLayerHitsIfExpected.fill(bExpectBLayerHit*iBLayerHits,eta,phi,weight);
51 
52  uint8_t iPixHits(0),iPixDead(0);
55  nPixelHitsPlusDead.fill(iPixHits+iPixDead,eta,phi,weight);
56 
57  uint8_t iSCTHits(0),iSCTDead(0);
58  trk.summaryValue(iSCTHits,xAOD::numberOfSCTHits);
60  nSCTHitsPlusDead.fill(iSCTHits+iSCTDead,eta,phi,weight);
61 
62  uint8_t iTRTHits(0),iTRTDead(0),iTRTOutliers(0);
63  trk.summaryValue(iTRTHits,xAOD::numberOfTRTHits);
65  trk.summaryValue(iTRTOutliers,xAOD::numberOfTRTOutliers);
66  nTRTHitsPlusDead.fill(iTRTHits+iTRTDead,eta,phi,weight);
67  nTRTHitsPlusOutliers.fill(iTRTHits+iTRTOutliers,eta,phi,weight);
68 
69  uint8_t iPixHoles(0),iSCTHoles(0);
71  trk.summaryValue(iSCTHoles,xAOD::numberOfSCTHoles);
72  nPixSCTHoles.fill(iPixHoles+iSCTHoles,eta,phi,weight);
73 
74  uint8_t iPixelOutliers(0);
75  trk.summaryValue(iPixelOutliers,xAOD::numberOfPixelOutliers);
76  float nPix=(int)iPixelOutliers+(int)iPixHits;
77  float fracPixOutliers = (nPix>0)? 1.*((int)iPixelOutliers)/nPix : 0;
78  fPixelOutliers.fill(fracPixOutliers,eta,weight);
79 
80  uint8_t iSCTOutliers(0);
81  trk.summaryValue(iSCTOutliers,xAOD::numberOfSCTOutliers);
82  float nSCT=(int)iSCTOutliers+(int)iSCTHits;
83  float fracSCTOutliers = (nSCT>0)? 1.*((int)iSCTOutliers)/nSCT : 0;
84  fSCTOutliers.fill(fracSCTOutliers,eta,weight);
85 
86  float nTRT=((int)iTRTOutliers)+((int)iTRTHits);
87  float fracTRTOutliers = (nTRT>0)? ((int)iTRTOutliers)/nTRT : 0;
88  fTRTOutliers.fill(fracTRTOutliers,eta,weight);
89 }
90 
91 
92 
93 }
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
PlotBase::Book1D
TH1F * 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:88
Muon::HitFracTypePlots::fracHitsVsEta
TH1 * fracHitsVsEta
Definition: IDHitSummaryPlots.h:20
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
PlotBase
Definition: PlotBase.h:33
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Muon::HitFracTypePlots::fracHits
TH1 * fracHits
Definition: IDHitSummaryPlots.h:19
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
xAOD::TrackParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TrackParticle_v1.cxx:77
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition: TrackParticle_v1.cxx:736
Muon::HitFracTypePlots::HitFracTypePlots
HitFracTypePlots(PlotBase *pParent, std::string sHitType, std::string sHitLabel)
Definition: IDHitSummaryPlots.cxx:13
Muon::HitFracTypePlots::initializePlots
void initializePlots()
Definition: IDHitSummaryPlots.cxx:16
Muon::IDHitSummaryPlots::IDHitSummaryPlots
IDHitSummaryPlots(PlotBase *pParent, const std::string &sDir)
Definition: IDHitSummaryPlots.cxx:29
PlotBase::Book2D
TH2F * Book2D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2D histogram.
Definition: PlotBase.cxx:117
IDHitSummaryPlots.h
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:236
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
Muon::IDHitSummaryPlots::nPixSCTHoles
Trk::HitTypePlots nPixSCTHoles
Definition: IDHitSummaryPlots.h:37
Muon::IDHitSummaryPlots::nSCTHitsPlusDead
Trk::HitTypePlots nSCTHitsPlusDead
Definition: IDHitSummaryPlots.h:34
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::HitFracTypePlots::m_sHitLabel
std::string m_sHitLabel
Definition: IDHitSummaryPlots.h:24
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
Muon::IDHitSummaryPlots::fill
void fill(const xAOD::TrackParticle &trk, float weight=1.0)
Definition: IDHitSummaryPlots.cxx:42
Trk::HitTypePlots::fill
void fill(int iHits, float fEta, float fPhi, float weight=1.0)
Definition: HitTypePlots.cxx:32
xAOD::numberOfPixelOutliers
@ numberOfPixelOutliers
these are the pixel outliers, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:260
xAOD::numberOfSCTHoles
@ numberOfSCTHoles
number of SCT holes [unit8_t].
Definition: TrackingPrimitives.h:270
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
Muon::IDHitSummaryPlots::fTRTOutliers
HitFracTypePlots fTRTOutliers
Definition: IDHitSummaryPlots.h:41
Muon::HitFracTypePlots::fill
void fill(float hitval, float trketa, float weight=1.0)
Definition: IDHitSummaryPlots.cxx:21
Muon::IDHitSummaryPlots::fSCTOutliers
HitFracTypePlots fSCTOutliers
Definition: IDHitSummaryPlots.h:40
Muon::IDHitSummaryPlots::fPixelOutliers
HitFracTypePlots fPixelOutliers
Definition: IDHitSummaryPlots.h:39
Muon::IDHitSummaryPlots::nTRTHitsPlusDead
Trk::HitTypePlots nTRTHitsPlusDead
Definition: IDHitSummaryPlots.h:35
Muon::IDHitSummaryPlots::nBLayerHitsIfExpected
Trk::HitTypePlots nBLayerHitsIfExpected
Definition: IDHitSummaryPlots.h:32
Muon::IDHitSummaryPlots::nTRTHitsPlusOutliers
Trk::HitTypePlots nTRTHitsPlusOutliers
Definition: IDHitSummaryPlots.h:36
xAOD::numberOfTRTOutliers
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
Definition: TrackingPrimitives.h:276
xAOD::numberOfSCTOutliers
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
Definition: TrackingPrimitives.h:269
xAOD::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:273
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
Muon::HitFracTypePlots::m_sHitType
std::string m_sHitType
Definition: IDHitSummaryPlots.h:23
xAOD::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:266
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
TrackingPrimitives.h
xAOD::numberOfTRTDeadStraws
@ numberOfTRTDeadStraws
number of dead TRT straws crossed [unit8_t].
Definition: TrackingPrimitives.h:282
xAOD::TrackParticle_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
Muon::IDHitSummaryPlots::nPixelHitsPlusDead
Trk::HitTypePlots nPixelHitsPlusDead
Definition: IDHitSummaryPlots.h:33