ATLAS Offline Software
Loading...
Searching...
No Matches
photonMonTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6//
7// 2014-05-21 Author: Remi Lafaye (Annecy)
8// 2015-02-15 Author: Bertrand Laforge (LPNHE Paris)
9//
11
12#ifndef photonMonTool_H
13#define photonMonTool_H
14
16#include "GaudiKernel/MsgStream.h"
17#include "GaudiKernel/StatusCode.h"
19#include "TH1F.h"
20#include "TH2F.h"
21#include "egammaMonToolBase.h"
22#include "xAODEgamma/Electron.h"
26#include <iostream>
27#include <string>
28#include <utility>
29#include <vector>
30
32{
40
41 // Global panel histograms
42 TH1 * m_hNUnconv {}; // Histogram for number of Unconverted photons
43 TH1 * m_hNConv {}; // Histogram for number of Converted photons
44 TH1 * m_hEtUnconv {}; // Histogram for Unconverted photon transverse energies
45 TH1 * m_hEtConv {}; // Histogram for Converted photon transverse energies
46 TH1 * m_hEtaUnconv {};// Histogram for Unconverted photon eta
47 TH1 * m_hEtaConv {}; // Histogram for Converted photon eta
48 TH1 * m_hPhiUnconv {};// Histogram for Unconverted photon phi
49 TH1 * m_hPhiConv {}; // Histogram for Converted photon phi
50 TH2 * m_hEtaPhiUnconv {};// Histogram for Unconverted photon eta,phi
51 TH2 * m_hEtaPhiConv {}; // Histogram for Converted photon eta,phi
52 TH1 * m_hTopoEtCone40Unconv {};// Histogram for calo based Unconverted photon isolation energy
53 TH1 * m_hTopoEtCone40Conv {}; // Histogram for calo based Converted photon isolation energy
54 TH1 * m_hPtCone20Unconv {};// Histogram for track based Unconverted photon isolation energy
55 TH1 * m_hPtCone20Conv {}; // Histogram for track based Converted photon isolation energy
56 TH1 * m_hRConv {}; // Histogram for photon convertion radius distribution
57
58 // photons per region histograms
59 std::vector<TH1*> m_hvTopoEtCone40Unconv {}; // Histograms for unconv. photon calo-based isolation transverse energies
60 std::vector<TH1*> m_hvPtCone20Unconv {}; // Histograms for unconv. photon track-based isolation transverse energies
61 std::vector<TH1*> m_hvTopoEtCone40Conv {}; // Histograms conv. for photon calo-based isolation transverse energies
62 std::vector<TH1*> m_hvPtCone20Conv {}; // Histograms for conv. photon track-based isolation transverse energies
63
64 // Converted Photon Trk per region histograms
65 std::vector<TH1*> m_hvConvType {};
66 std::vector<TH1*> m_hvConvTrkMatch1 {};
67 std::vector<TH1*> m_hvConvTrkMatch2 {};
68 std::vector<TH1*> m_hvDeltaEta1 {};
69 std::vector<TH1*> m_hvDeltaPhi2 {};
70 std::vector<TH1*> m_hvNOfBLayerHits {};
71 std::vector<TH1*> m_hvNOfSiHits {};
72 std::vector<TH1*> m_hvNOfTRTHits {};
73 std::vector<TH1*> m_hvNOfTRTHighThresholdHits {};
74 std::vector<TH1*> m_hvd0 {};
75
76 // Monitoring per lumiblock
77 unsigned int m_nPhotonsInCurrentLB {};
80 unsigned int m_nPhotons {};
81 unsigned int m_nPhotonsUnconv {};
82 unsigned int m_nPhotonsConv {};
83 std::vector<int> m_nPhotonsPerLumiBlock {};
84 std::vector<int> m_nPhotonsPerLumiBlockUnconv {};
85 std::vector<int> m_nPhotonsPerLumiBlockConv {};
86 std::vector<int> m_nPhotonsPerRegion {};
87 std::vector<int> m_nPhotonsPerRegionUnconv {};
88 std::vector<int> m_nPhotonsPerRegionConv {};
89
90 TH1 *m_hLB_NUnconv {}; // Histogram for number of photons vs LB
91 TH1 *m_hLB_NConv {}; // Histogram for number of photons vs LB
92 TH1 *m_hLB_fConv {}; // Histogram of Conv. photon fraction vs LB
93
94 photonHist(const std::string& name) : egammaBaseHist(name) {}
95};
96
97
99{
100 public:
101 photonMonTool(const std::string& type, const std::string& name, const IInterface* parent);
102 virtual ~photonMonTool();
103
104 virtual StatusCode initialize() override;
105 virtual StatusCode bookHistograms() override;
106 virtual StatusCode bookHistogramsForOnePhotonType(photonHist& myHist);
107
108 virtual StatusCode fillHistograms() override;
110
111 protected:
112 SG::ReadHandleKey<xAOD::PhotonContainer> m_PhotonContainer{this, "PhotonContainer", "PhotonCollection", "Name of the photon collection"}; // Container name for photons
113
114 photonHist *m_CbLoosePhotons {}; // Loose cut based photons histograms
115 photonHist *m_CbTightPhotons {}; // Tight cut based photons histograms
116
123};
124
125#endif
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
A container of information describing a monitoring object.
Property holding a SG store/key/clid from which a ReadHandle is made.
egammaMonToolBase(const std::string &type, const std::string &name, const IInterface *parent)
MonGroup * m_photonRegionGroup
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonContainer
MonGroup * m_photonUnconvGroup
photonHist * m_CbTightPhotons
virtual StatusCode bookHistogramsForOnePhotonType(photonHist &myHist)
MonGroup * m_photonConvGroup
photonMonTool(const std::string &type, const std::string &name, const IInterface *parent)
virtual ~photonMonTool()
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
MonGroup * m_photonLBGroup
MonGroup * m_photonGroup
MonGroup * m_photonIdGroup
virtual StatusCode initialize() override
virtual StatusCode fillHistogramsForOnePhoton(xAOD::PhotonContainer::const_iterator g_iter, photonHist &myHist)
photonHist * m_CbLoosePhotons
egammaBaseHist(std::string name)
unsigned int m_nPhotonsInCurrentLBUnconv
TH1 * m_hLB_fConv
TH1 * m_hEtConv
unsigned int m_nPhotonsInCurrentLB
unsigned int m_nPhotonsInCurrentLBConv
unsigned int m_nPhotonsConv
std::vector< TH1 * > m_hvDeltaEta1
std::vector< int > m_nPhotonsPerRegion
TH1 * m_hEtUnconv
std::vector< int > m_nPhotonsPerLumiBlock
TH1 * m_hPhiConv
std::vector< TH1 * > m_hvTopoEtCone40Conv
TH1 * m_hTopoEtCone40Conv
std::vector< TH1 * > m_hvTopoEtCone40Unconv
TH1 * m_hPhiUnconv
std::vector< TH1 * > m_hvNOfSiHits
TH1 * m_hEtaUnconv
TH1 * m_hPtCone20Conv
std::vector< int > m_nPhotonsPerRegionUnconv
TH1 * m_hTopoEtCone40Unconv
photonHist(const std::string &name)
TH2 * m_hEtaPhiConv
TH1 * m_hNUnconv
TH1 * m_hLB_NConv
unsigned int m_nPhotons
std::vector< TH1 * > m_hvd0
TH2 * m_hEtaPhiUnconv
std::vector< int > m_nPhotonsPerRegionConv
TH1 * m_hLB_NUnconv
std::vector< int > m_nPhotonsPerLumiBlockUnconv
std::vector< int > m_nPhotonsPerLumiBlockConv
std::vector< TH1 * > m_hvNOfTRTHits
std::vector< TH1 * > m_hvConvTrkMatch2
std::vector< TH1 * > m_hvPtCone20Conv
std::vector< TH1 * > m_hvPtCone20Unconv
std::vector< TH1 * > m_hvNOfBLayerHits
@ NumberOfTypesToMonitor
std::vector< TH1 * > m_hvNOfTRTHighThresholdHits
unsigned int m_nPhotonsUnconv
TH1 * m_hEtaConv
std::vector< TH1 * > m_hvDeltaPhi2
std::vector< TH1 * > m_hvConvTrkMatch1
TH1 * m_hPtCone20Unconv
std::vector< TH1 * > m_hvConvType