ATLAS Offline Software
Loading...
Searching...
No Matches
electronMonTool.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-01-29 Author: Bertrand LAFORGE (LPNHE Paris)
9//
11
12#ifndef electronMonTool_H
13#define electronMonTool_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{
34
44
45 // electron ID per region histograms
46 std::vector<TH1*> m_hvEoverP {};
47
48 // electrons per region histograms
49 std::vector<TH1*> m_hvDeltaEta1 {}; // electron track histograms
50 std::vector<TH1*> m_hvDeltaPhi2 {};
51 std::vector<TH1*> m_hvNOfBLayerHits {};
52 std::vector<TH1*> m_hvNOfSiHits {};
53 std::vector<TH1*> m_hvNOfTRTHits {};
54 std::vector<TH1*> m_hvNOfTRTHighThresholdHits {};
55 std::vector<TH1*> m_hvd0 {};
56
57 // Monitoring per lumiblock
58 unsigned int m_nElectronsInCurrentLB {};
59 unsigned int m_nElectrons {};
60 std::vector<int> m_nElectronsPerLumiBlock {};
61 std::vector<int> m_nElectronsPerRegion {};
62
63 electronHist(const std::string& name, bool FullHistoList)
64 : egammaBaseHist(name)
65 {
66 m_fullHistoList = FullHistoList;
67 }
68};
69
71{
72 public:
73 electronMonTool(const std::string& type, const std::string& name, const IInterface* parent);
74
75 virtual ~electronMonTool();
76
77 virtual StatusCode initialize() override;
78 virtual StatusCode bookHistograms() override;
79 virtual StatusCode bookHistogramsForOneElectronType(electronHist& myHist);
80
81 virtual StatusCode fillHistograms() override;
83 electronHist& myHist);
84
85 protected:
86 SG::ReadHandleKey<xAOD::ElectronContainer> m_ElectronContainer{this, "ElectronContainer", "Electrons", "Name of the electron collection"}; // Container name for electrons
87
88 electronHist *m_LhLooseElectrons; // LH Loose electrons histograms
89 electronHist *m_LhMediumElectrons; // LH Medium electrons histograms
90 electronHist *m_CbLooseElectrons; // Medium cut based electrons histograms
91 electronHist *m_LhTightElectrons; // LH Tight electrons histograms
92 electronHist *m_CbTightElectrons; // Cut based Tight electrons histograms
93
98};
99
100#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)
electronHist * m_LhLooseElectrons
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainer
electronHist * m_LhTightElectrons
virtual StatusCode initialize() override
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
MonGroup * m_electronLBGroup
electronMonTool(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode fillHistogramsForOneElectron(xAOD::ElectronContainer::const_iterator e_iter, electronHist &myHist)
virtual StatusCode bookHistogramsForOneElectronType(electronHist &myHist)
electronHist * m_LhMediumElectrons
virtual ~electronMonTool()
electronHist * m_CbTightElectrons
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
MonGroup * m_electronGroup
MonGroup * m_electronIdGroup
electronHist * m_CbLooseElectrons
MonGroup * m_electronTrkGroup
egammaBaseHist(std::string name)
std::vector< int > m_nElectronsPerLumiBlock
electronHist(const std::string &name, bool FullHistoList)
unsigned int m_nElectrons
std::vector< TH1 * > m_hvd0
std::vector< TH1 * > m_hvNOfSiHits
std::vector< int > m_nElectronsPerRegion
unsigned int m_nElectronsInCurrentLB
std::vector< TH1 * > m_hvNOfTRTHighThresholdHits
std::vector< TH1 * > m_hvDeltaPhi2
std::vector< TH1 * > m_hvEoverP
std::vector< TH1 * > m_hvNOfBLayerHits
std::vector< TH1 * > m_hvDeltaEta1
std::vector< TH1 * > m_hvNOfTRTHits