ATLAS Offline Software
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"
18 #include "StoreGate/StoreGateSvc.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 
36  {
43  };
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)
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;
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
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
electronMonTool::fillHistogramsForOneElectron
virtual StatusCode fillHistogramsForOneElectron(xAOD::ElectronContainer::const_iterator e_iter, electronHist &myHist)
Definition: electronMonTool.cxx:191
electronMonTool::m_ElectronContainer
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainer
Definition: electronMonTool.h:86
electronMonTool::electronMonTool
electronMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: electronMonTool.cxx:77
electronMonTool::m_electronTrkGroup
MonGroup * m_electronTrkGroup
Definition: electronMonTool.h:95
egammaMonToolBase.h
ElectronxAODHelpers.h
electronHist::m_hvNOfSiHits
std::vector< TH1 * > m_hvNOfSiHits
Definition: electronMonTool.h:52
SG::ReadHandleKey< xAOD::ElectronContainer >
electronMonTool::initialize
virtual StatusCode initialize() override
Definition: electronMonTool.cxx:103
electronHist::m_fullHistoList
bool m_fullHistoList
Definition: electronMonTool.h:33
electronHist::electronType
electronType
Definition: electronMonTool.h:36
egammaMonToolBase
Definition: egammaMonToolBase.h:72
electronHist::m_hvNOfTRTHits
std::vector< TH1 * > m_hvNOfTRTHits
Definition: electronMonTool.h:53
electronMonTool::m_electronLBGroup
MonGroup * m_electronLBGroup
Definition: electronMonTool.h:97
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
electronHist::NumberOfTypesToMonitor
@ NumberOfTypesToMonitor
Definition: electronMonTool.h:42
electronMonTool::m_electronGroup
MonGroup * m_electronGroup
Definition: electronMonTool.h:94
ElectronContainer.h
electronHist
Definition: electronMonTool.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthenaMonManager.h
electronHist::m_nElectronsPerRegion
std::vector< int > m_nElectronsPerRegion
Definition: electronMonTool.h:61
electronMonTool::m_LhLooseElectrons
electronHist * m_LhLooseElectrons
Definition: electronMonTool.h:88
electronHist::m_hvDeltaPhi2
std::vector< TH1 * > m_hvDeltaPhi2
Definition: electronMonTool.h:50
electronMonTool::~electronMonTool
virtual ~electronMonTool()
Definition: electronMonTool.cxx:92
electronMonTool
Definition: electronMonTool.h:71
electronHist::m_hvd0
std::vector< TH1 * > m_hvd0
Definition: electronMonTool.h:55
electronHist::m_hvDeltaEta1
std::vector< TH1 * > m_hvDeltaEta1
Definition: electronMonTool.h:49
electronHist::LhLoose
@ LhLoose
Definition: electronMonTool.h:39
electronMonTool::bookHistograms
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
Definition: electronMonTool.cxx:171
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
electronHist::electronHist
electronHist(const std::string &name, bool FullHistoList)
Definition: electronMonTool.h:63
electronHist::CbTight
@ CbTight
Definition: electronMonTool.h:41
electronHist::m_nElectronsInCurrentLB
unsigned int m_nElectronsInCurrentLB
Definition: electronMonTool.h:58
EventInfo.h
electronMonTool::m_CbLooseElectrons
electronHist * m_CbLooseElectrons
Definition: electronMonTool.h:90
electronHist::LhTight
@ LhTight
Definition: electronMonTool.h:40
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
electronHist::m_hvEoverP
std::vector< TH1 * > m_hvEoverP
Definition: electronMonTool.h:46
electronMonTool::m_CbTightElectrons
electronHist * m_CbTightElectrons
Definition: electronMonTool.h:92
electronMonTool::m_LhMediumElectrons
electronHist * m_LhMediumElectrons
Definition: electronMonTool.h:89
electronHist::LhMedium
@ LhMedium
Definition: electronMonTool.h:37
electronHist::m_nElectrons
unsigned int m_nElectrons
Definition: electronMonTool.h:59
Electron.h
electronMonTool::m_LhTightElectrons
electronHist * m_LhTightElectrons
Definition: electronMonTool.h:91
electronHist::m_hvNOfBLayerHits
std::vector< TH1 * > m_hvNOfBLayerHits
Definition: electronMonTool.h:51
electronMonTool::m_electronIdGroup
MonGroup * m_electronIdGroup
Definition: electronMonTool.h:96
electronMonTool::bookHistogramsForOneElectronType
virtual StatusCode bookHistogramsForOneElectronType(electronHist &myHist)
Definition: electronMonTool.cxx:110
electronHist::m_hvNOfTRTHighThresholdHits
std::vector< TH1 * > m_hvNOfTRTHighThresholdHits
Definition: electronMonTool.h:54
StoreGateSvc.h
electronHist::CbLoose
@ CbLoose
Definition: electronMonTool.h:38
egammaBaseHist
Definition: egammaMonToolBase.h:26
electronMonTool::fillHistograms
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
Definition: electronMonTool.cxx:344
electronHist::m_nElectronsPerLumiBlock
std::vector< int > m_nElectronsPerLumiBlock
Definition: electronMonTool.h:60