ATLAS Offline Software
Loading...
Searching...
No Matches
PhotonConversionPlots.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
8
9namespace Egamma {
10 PhotonConversionPlots::PhotonConversionPlots(PlotBase* pParent, const std::string& sDir, const std::string& sParticleType):
11 PlotBase(pParent, sDir),
12 m_sParticleType(sParticleType),
13 m_nVtx(nullptr),
14 m_convR(nullptr),
15 m_convZ(nullptr),
16 m_convRvsEta(nullptr),
17 m_convRvsType(nullptr),
18 m_convType(nullptr),
19 m_convDeltaEta(nullptr),
20 m_convDeltaPhi(nullptr)
21 {}
22
24 m_nVtx = Book1D("nVtx", "Number of vertices; Number of conversion vertices; Entries", 10, 0., 10);
25 m_convR = Book1D("convR", "Conversion radius; Conversion radius (mm); Entries", 100, 0., 1000);
26 m_convZ = Book1D("convZ", "Conversion z; Conversion z (mm); Entries", 100, -1000., 1000);
27 m_convRvsEta = Book2D("convRvsEta", "Conversion radius vs #eta; #eta; Conversion radius (mm)", 1000, -5., 5., 100, 0., 1000);
28 m_convRvsType = Book2D("convRvsType", "Conversion radius vs type; Type; Conversion radius (mm)", 10, 0., 10., 100, 0., 1000);
29 m_convType = Book1D("convType", "Conversion type; Conversion type; Entries", 10, 0., 10);
30 m_convDeltaEta = Book1D("convDeltaEta", "Conversion #Delta#eta; Conversion #Delta#eta; Entries", 250, -0.5, 0.5);
31 m_convDeltaPhi = Book1D("convDeltaPhi", "Conversion #Delta#phi; Conversion #Delta#phi; Entries", 250, -0.5, 0.5);
32 }
33
34 void PhotonConversionPlots::fill(const xAOD::Photon& photon, const xAOD::EventInfo& eventInfo) {
35 const float weight = eventInfo.beamSpotWeight();
36
37 m_nVtx->Fill(photon.nVertices(), weight);
38 const auto* vertex = photon.vertex();
39
40 const float vtxRad = xAOD::EgammaHelpers::conversionRadius(&photon);
41 m_convR->Fill(vtxRad, weight);
42 m_convZ->Fill(vertex ? vertex->position().z() : -9999., weight);
43 m_convRvsEta->Fill(photon.eta(), vtxRad, weight);
45 m_convRvsType->Fill(xAOD::EgammaHelpers::conversionType(&photon), vtxRad, weight);
46
47 float cnvDeltaEta1;
48 float cnvDeltaPhi1;
49 photon.vertexCaloMatchValue(cnvDeltaEta1, xAOD::EgammaParameters::convMatchDeltaEta1);
50 photon.vertexCaloMatchValue(cnvDeltaPhi1, xAOD::EgammaParameters::convMatchDeltaPhi1);
51 m_convDeltaEta->Fill(cnvDeltaEta1, weight);
52 m_convDeltaPhi->Fill(cnvDeltaPhi1, weight);
53
54 }
55}
void fill(const xAOD::Photon &photon, const xAOD::EventInfo &eventInfo)
PhotonConversionPlots(PlotBase *pParent, const std::string &sDir, const std::string &sParticleType)
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
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
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 TH2F histogram.
Definition PlotBase.cxx:123
float beamSpotWeight() const
Weight for beam spot size reweighting.
xAOD::EgammaParameters::ConversionType conversionType(const xAOD::Photon *ph)
return the photon conversion type (see EgammaEnums)
float conversionRadius(const xAOD::Vertex *vx)
return the conversion radius or 9999.
@ convMatchDeltaPhi1
difference between the cluster phi and the phi of the first track of the vertex extrapolated to the s...
@ convMatchDeltaEta1
difference between the cluster eta and the eta of the first track of the vertex extrapolated to the s...
EventInfo_v1 EventInfo
Definition of the latest event info version.
Photon_v1 Photon
Definition of the current "egamma version".