ATLAS Offline Software
TRT_Electron_Monitoring_Tool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRT_ELECTRON_MONITORING_TOOL_H
6 #define TRT_ELECTRON_MONITORING_TOOL_H
7 
8 #include "GaudiKernel/StatusCode.h"
11 
12 #include "xAODTracking/Vertex.h"
14 
15 #include "xAODMuon/Muon.h"
16 #include "xAODEgamma/Electron.h"
17 #include "xAODMuon/MuonContainer.h"
19 
20 
21 #include <vector>
22 #include <string>
23 
24 namespace InDetDD{
25  class TRT_DetectorManager;
26 }
27 
28 class TH1F_LW;
29 class TH2F_LW;
30 class TProfile_LW;
31 class TRT_ID;
32 
33 
37 
38 #define NGAMMABINS 50
39 
40 class Identifier;
41 
43 {
44  int N{};
45 
52 
56 
60 
64 
68 };
69 
71 {
72  int N{};
73 
79 };
80 
82 {
83 public:
84 
85  TRT_Electron_Monitoring_Tool( const std::string & type,
86  const std::string & name,
87  const IInterface* parent );
88 
90 
91  virtual StatusCode bookHistograms();
92  virtual StatusCode fillHistograms();
93  virtual StatusCode procHistograms();
94 
95  virtual StatusCode initialize();
96  virtual StatusCode finalize();
97 
98  protected:
99 
101 
103 
104  void bookGeoHistograms( lw_geo_hists_t &hists, const std::string& name);
105  void bookPCandHistograms( MonGroup &monGroup, lw_partcand_hists_t &hists, const std::string& name);
106 
107  void loopOverConversions(std::vector<const Trk::Track*> &v_usedTrks);
108  bool conversionQualityCuts(const xAOD::TrackParticle* trkTag, const xAOD::TrackParticle* trkProbe);
109 
110  void loopOverRecElectrons(std::vector<const Trk::Track*> &v_usedTrks);
112 
113  void loopOverMuons(std::vector<const Trk::Track*> &v_usedTrks);
114  bool muonQualityCuts(const xAOD::Muon *muon);
115 
116  void loopOverTracks(std::vector<const Trk::Track*> &v_usedTrks);
117  bool pionQualityCuts(const xAOD::TrackParticle *trk, std::vector<const Trk::Track*> &v_usedTrks);
118 
119  bool fillAllHistograms( const xAOD::TrackParticle *trk, float mass=0, int PCand=0 );
120  int myBarrelEC(int m_barrel_ec);
121  bool isGasInCorOuter(int det, int phi, int layer);
122 
123  TH1F_LW* trtBookHistoLW(MonGroup &mongroup, const std::string& hName, const std::string& hTitle, int bins, double lowbin, double highbin, double x_labelSize,double y_lableSize, const std::string& xTitle, const std::string& yTitle);
124  TH2F_LW* trtBookHistoLW(MonGroup &mongroup, const std::string& hName, const std::string& hTitle, int xbins, double lowxbins, double highxbins, int ybins, double lowybins, double highybins, double x_labelSize, double y_lableSize, const std::string& xTitle, const std::string& yTitle);
125  TProfile_LW* trtBookHistoLW(MonGroup &mongroup, const std::string& hName, const std::string& hTitle, int bins, double lowbin, double highbin, double ymin, double ymax, double x_labelSize, double y_lableSize, const std::string& xTitle, const std::string& yTitle, double msize, int mcolor, int mstyle);
126 
127  void trtRegHist(LWHist* hist, MonGroup &mongrp, const char* hName);
128 
129 private:
130 
132  std::string m_tracksName;
133 
135  std::string m_electronsName;
136 
138  std::string m_muonsName;
139 
141  std::string m_conversionName;
142 
143  std::string m_isEMFlag;
145 
149 
152 
153  bool m_doShift;
157  unsigned int m_NMinTRTHits;
158 
162  float m_ZRMax;
164 
169 
173 
174 };
175 #endif
TRT_Electron_Monitoring_Tool::muonQualityCuts
bool muonQualityCuts(const xAOD::Muon *muon)
Definition: TRT_Electron_Monitoring_Tool.cxx:443
lw_geo_hists_t::pHTFracStrawZAI
TProfile_LW * pHTFracStrawZAI
Definition: TRT_Electron_Monitoring_Tool.h:50
lw_geo_hists_t::pHTFracGammaAll
TProfile_LW * pHTFracGammaAll
Definition: TRT_Electron_Monitoring_Tool.h:65
TRT_Electron_Monitoring_Tool::loopOverConversions
void loopOverConversions(std::vector< const Trk::Track * > &v_usedTrks)
Definition: TRT_Electron_Monitoring_Tool.cxx:250
LWHist
Definition: LWHist.h:26
TRT_Electron_Monitoring_Tool::m_trkpCollection
const DataVector< xAOD::TrackParticle > * m_trkpCollection
Definition: TRT_Electron_Monitoring_Tool.h:131
python.TIDAMonTool.monGroup
def monGroup(analysis_chain)
Definition: TIDAMonTool.py:295
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
DET_BARRELC
@ DET_BARRELC
Definition: TRT_Electron_Monitoring_Tool.h:36
ymin
double ymin
Definition: listroot.cxx:63
TRT_Electron_Monitoring_Tool::m_doElectronMon
bool m_doElectronMon
Definition: TRT_Electron_Monitoring_Tool.h:147
TRT_Electron_Monitoring_Tool::m_conversionContainer
const xAOD::VertexContainer * m_conversionContainer
Definition: TRT_Electron_Monitoring_Tool.h:140
TRT_Electron_Monitoring_Tool::electronQualityCuts
bool electronQualityCuts(const xAOD::Electron *electron)
Definition: TRT_Electron_Monitoring_Tool.cxx:430
lw_partcand_hists_t::hHTFrac
TH1F_LW * hHTFrac
Definition: TRT_Electron_Monitoring_Tool.h:76
lw_partcand_hists_t::pHTFracEta
TProfile_LW * pHTFracEta
Definition: TRT_Electron_Monitoring_Tool.h:78
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
lw_geo_hists_t::pHTFracGammaNegEl
TProfile_LW * pHTFracGammaNegEl
Definition: TRT_Electron_Monitoring_Tool.h:55
lw_geo_hists_t::pHTFracGammaMu
TProfile_LW * pHTFracGammaMu
Definition: TRT_Electron_Monitoring_Tool.h:57
ISEMTIGHT
@ ISEMTIGHT
Definition: TRT_Electron_Monitoring_Tool.h:34
python.App.bins
bins
Definition: App.py:410
TRT_Electron_Monitoring_Tool::loopOverMuons
void loopOverMuons(std::vector< const Trk::Track * > &v_usedTrks)
Definition: TRT_Electron_Monitoring_Tool.cxx:330
DET_ENDCAPC
@ DET_ENDCAPC
Definition: TRT_Electron_Monitoring_Tool.h:36
TRT_Electron_Monitoring_Tool::bookGeoHistograms
void bookGeoHistograms(lw_geo_hists_t &hists, const std::string &name)
Definition: TRT_Electron_Monitoring_Tool.cxx:155
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:74
Muon.h
TRT_Electron_Monitoring_Tool::initialize
virtual StatusCode initialize()
Definition: TRT_Electron_Monitoring_Tool.cxx:73
plotmaker.hist
hist
Definition: plotmaker.py:148
beamspotnt.msize
msize
Definition: bin/beamspotnt.py:1442
lw_geo_hists_t::pHTFracGammaPi
TProfile_LW * pHTFracGammaPi
Definition: TRT_Electron_Monitoring_Tool.h:61
PixelAthClusterMonAlgCfg.ybins
ybins
Definition: PixelAthClusterMonAlgCfg.py:163
TRT_Electron_Monitoring_Tool::finalize
virtual StatusCode finalize()
Definition: TRT_Electron_Monitoring_Tool.cxx:94
lw_partcand_hists_t::hPIDProb
TH1F_LW * hPIDProb
Definition: TRT_Electron_Monitoring_Tool.h:75
lw_geo_hists_t::pHTFracGammaPosAll
TProfile_LW * pHTFracGammaPosAll
Definition: TRT_Electron_Monitoring_Tool.h:66
lw_geo_hists_t::pHTFracGammaPosMu
TProfile_LW * pHTFracGammaPosMu
Definition: TRT_Electron_Monitoring_Tool.h:58
TRT_Electron_Monitoring_Tool::m_nZRBins
int m_nZRBins
Definition: TRT_Electron_Monitoring_Tool.h:161
TRT_Electron_Monitoring_Tool::bookPCandHistograms
void bookPCandHistograms(MonGroup &monGroup, lw_partcand_hists_t &hists, const std::string &name)
Definition: TRT_Electron_Monitoring_Tool.cxx:206
TRT_Electron_Monitoring_Tool::myBarrelEC
int myBarrelEC(int m_barrel_ec)
Definition: TRT_Electron_Monitoring_Tool.cxx:814
TRT_Electron_Monitoring_Tool::m_conversionName
std::string m_conversionName
Definition: TRT_Electron_Monitoring_Tool.h:141
TRT_Electron_Monitoring_Tool::fillHistograms
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: TRT_Electron_Monitoring_Tool.cxx:221
TRT_Electron_Monitoring_Tool::m_isEMFlag
std::string m_isEMFlag
Definition: TRT_Electron_Monitoring_Tool.h:143
TRT_Electron_Monitoring_Tool::trtRegHist
void trtRegHist(LWHist *hist, MonGroup &mongrp, const char *hName)
Definition: TRT_Electron_Monitoring_Tool.cxx:753
DET_ENDCAPA
@ DET_ENDCAPA
Definition: TRT_Electron_Monitoring_Tool.h:36
TProfile_LW
Definition: TProfile_LW.h:24
lw_partcand_hists_t::pPIDProbEta
TProfile_LW * pPIDProbEta
Definition: TRT_Electron_Monitoring_Tool.h:77
TRT_Electron_Monitoring_Tool::m_electronContainer
const xAOD::ElectronContainer * m_electronContainer
Definition: TRT_Electron_Monitoring_Tool.h:134
TRT_Electron_Monitoring_Tool::TRT_Electron_Monitoring_Tool
TRT_Electron_Monitoring_Tool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TRT_Electron_Monitoring_Tool.cxx:39
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
TRT_Electron_Monitoring_Tool::m_tPi
lw_partcand_hists_t m_tPi
Definition: TRT_Electron_Monitoring_Tool.h:172
TRT_Electron_Monitoring_Tool::m_doShift
bool m_doShift
Definition: TRT_Electron_Monitoring_Tool.h:153
ISEMMEDIUM
@ ISEMMEDIUM
Definition: TRT_Electron_Monitoring_Tool.h:34
lw_geo_hists_t::pHTFracGammaNegMu
TProfile_LW * pHTFracGammaNegMu
Definition: TRT_Electron_Monitoring_Tool.h:59
TRT_Electron_Monitoring_Tool::m_tEndCapC
lw_geo_hists_t m_tEndCapC
Definition: TRT_Electron_Monitoring_Tool.h:168
TRT_Electron_Monitoring_Tool::m_mgr
const InDetDD::TRT_DetectorManager * m_mgr
Definition: TRT_Electron_Monitoring_Tool.h:102
TRT_Electron_Monitoring_Tool::procHistograms
virtual StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
Definition: TRT_Electron_Monitoring_Tool.cxx:724
lw_geo_hists_t::hNTracks
TH1F_LW * hNTracks
Definition: TRT_Electron_Monitoring_Tool.h:46
ManagedMonitorToolBase.h
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
TH1F_LW
Definition: TH1F_LW.h:23
ElectronContainer.h
TRT_Electron_Monitoring_Tool::fillAllHistograms
bool fillAllHistograms(const xAOD::TrackParticle *trk, float mass=0, int PCand=0)
Definition: TRT_Electron_Monitoring_Tool.cxx:477
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
lw_partcand_hists_t::hNCand
TH1F_LW * hNCand
Definition: TRT_Electron_Monitoring_Tool.h:74
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
lw_partcand_hists_t
Definition: TRT_Electron_Monitoring_Tool.h:71
TRT_Electron_Monitoring_Tool::m_NMinTRTHits
unsigned int m_NMinTRTHits
Definition: TRT_Electron_Monitoring_Tool.h:157
TRT_Electron_Monitoring_Tool::loopOverRecElectrons
void loopOverRecElectrons(std::vector< const Trk::Track * > &v_usedTrks)
Definition: TRT_Electron_Monitoring_Tool.cxx:301
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
PCAND_MU
@ PCAND_MU
Definition: TRT_Electron_Monitoring_Tool.h:35
WritePulseShapeToCool.det
det
Definition: WritePulseShapeToCool.py:204
TRT_Electron_Monitoring_Tool::m_tBarrelC
lw_geo_hists_t m_tBarrelC
Definition: TRT_Electron_Monitoring_Tool.h:166
TRT_Electron_Monitoring_Tool::m_nPhiBins
int m_nPhiBins
Definition: TRT_Electron_Monitoring_Tool.h:160
TRT_Electron_Monitoring_Tool::m_nEtaBins
int m_nEtaBins
Definition: TRT_Electron_Monitoring_Tool.h:159
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthenaMonManager.h
MakeTH3DFromTH2Ds.hists
hists
Definition: MakeTH3DFromTH2Ds.py:72
TRT_Electron_Monitoring_Tool::isGasInCorOuter
bool isGasInCorOuter(int det, int phi, int layer)
Definition: TRT_Electron_Monitoring_Tool.cxx:710
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Vertex.h
myIsEMType
myIsEMType
Definition: TRT_Electron_Monitoring_Tool.h:34
TRT_Electron_Monitoring_Tool::pionQualityCuts
bool pionQualityCuts(const xAOD::TrackParticle *trk, std::vector< const Trk::Track * > &v_usedTrks)
Definition: TRT_Electron_Monitoring_Tool.cxx:456
lw_geo_hists_t::pHTFracStrawZCO
TProfile_LW * pHTFracStrawZCO
Definition: TRT_Electron_Monitoring_Tool.h:51
TRT_Electron_Monitoring_Tool::conversionQualityCuts
bool conversionQualityCuts(const xAOD::TrackParticle *trkTag, const xAOD::TrackParticle *trkProbe)
Definition: TRT_Electron_Monitoring_Tool.cxx:383
TRT_Electron_Monitoring_Tool::m_PionTRTHitCut
float m_PionTRTHitCut
Definition: TRT_Electron_Monitoring_Tool.h:163
TRT_Electron_Monitoring_Tool::m_electronsName
std::string m_electronsName
Definition: TRT_Electron_Monitoring_Tool.h:135
lw_geo_hists_t::pHTFracGammaEl
TProfile_LW * pHTFracGammaEl
Definition: TRT_Electron_Monitoring_Tool.h:53
TRT_Electron_Monitoring_Tool::~TRT_Electron_Monitoring_Tool
virtual ~TRT_Electron_Monitoring_Tool()
Definition: TRT_Electron_Monitoring_Tool.cxx:68
lw_geo_hists_t
Definition: TRT_Electron_Monitoring_Tool.h:43
TRT_Electron_Monitoring_Tool::m_isEMType
myIsEMType m_isEMType
Definition: TRT_Electron_Monitoring_Tool.h:144
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TRT_Electron_Monitoring_Tool::m_tracksName
std::string m_tracksName
Definition: TRT_Electron_Monitoring_Tool.h:132
TRT_Electron_Monitoring_Tool::m_ZRMax
float m_ZRMax
Definition: TRT_Electron_Monitoring_Tool.h:162
TRT_Electron_Monitoring_Tool::m_useTRTOnly
bool m_useTRTOnly
Definition: TRT_Electron_Monitoring_Tool.h:156
TRT_Electron_Monitoring_Tool::m_tEl
lw_partcand_hists_t m_tEl
Definition: TRT_Electron_Monitoring_Tool.h:170
lw_geo_hists_t::pHTFracGammaPosEl
TProfile_LW * pHTFracGammaPosEl
Definition: TRT_Electron_Monitoring_Tool.h:54
xAOD::Electron_v1
Definition: Electron_v1.h:34
TRT_Electron_Monitoring_Tool::m_doTracksMon
bool m_doTracksMon
Definition: TRT_Electron_Monitoring_Tool.h:146
MuonContainer.h
LArCellBinning.xbins
int xbins
Definition: LArCellBinning.py:163
lw_geo_hists_t::N
int N
Definition: TRT_Electron_Monitoring_Tool.h:44
lw_geo_hists_t::pHTFracTrackPhi
TProfile_LW * pHTFracTrackPhi
Definition: TRT_Electron_Monitoring_Tool.h:48
lw_partcand_hists_t::N
int N
Definition: TRT_Electron_Monitoring_Tool.h:72
TRT_ID
Definition: TRT_ID.h:84
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:69
VertexContainer.h
TRT_Electron_Monitoring_Tool::m_pTRTHelper
const TRT_ID * m_pTRTHelper
Definition: TRT_Electron_Monitoring_Tool.h:100
lw_geo_hists_t::pHTFracGammaPosPi
TProfile_LW * pHTFracGammaPosPi
Definition: TRT_Electron_Monitoring_Tool.h:62
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
TRT_Electron_Monitoring_Tool::m_doConversions
bool m_doConversions
Definition: TRT_Electron_Monitoring_Tool.h:151
TRT_Electron_Monitoring_Tool::loopOverTracks
void loopOverTracks(std::vector< const Trk::Track * > &v_usedTrks)
Definition: TRT_Electron_Monitoring_Tool.cxx:358
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DET_BARRELA
@ DET_BARRELA
Definition: TRT_Electron_Monitoring_Tool.h:36
TRT_Electron_Monitoring_Tool
Definition: TRT_Electron_Monitoring_Tool.h:82
TRT_Electron_Monitoring_Tool::m_tMu
lw_partcand_hists_t m_tMu
Definition: TRT_Electron_Monitoring_Tool.h:171
xAOD::EgammaParameters::electron
@ electron
Definition: EgammaEnums.h:18
TRT_Electron_Monitoring_Tool::bookHistograms
virtual StatusCode bookHistograms()
An inheriting class should either override this function or bookHists().
Definition: TRT_Electron_Monitoring_Tool.cxx:100
PCAND_PI
@ PCAND_PI
Definition: TRT_Electron_Monitoring_Tool.h:35
TRT_Electron_Monitoring_Tool::m_isOnline
bool m_isOnline
Definition: TRT_Electron_Monitoring_Tool.h:155
ISEMLOOSE
@ ISEMLOOSE
Definition: TRT_Electron_Monitoring_Tool.h:34
lw_geo_hists_t::pHTFracStrawZR
TProfile_LW * pHTFracStrawZR
Definition: TRT_Electron_Monitoring_Tool.h:49
Electron.h
TRT_Electron_Monitoring_Tool::m_doRecElectrons
bool m_doRecElectrons
Definition: TRT_Electron_Monitoring_Tool.h:150
TH2F_LW
Definition: TH2F_LW.h:23
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
TRT_Electron_Monitoring_Tool::m_doExpert
bool m_doExpert
Definition: TRT_Electron_Monitoring_Tool.h:154
lw_geo_hists_t::pHTFracGammaNegAll
TProfile_LW * pHTFracGammaNegAll
Definition: TRT_Electron_Monitoring_Tool.h:67
TRT_Electron_Monitoring_Tool::m_muonsName
std::string m_muonsName
Definition: TRT_Electron_Monitoring_Tool.h:138
TRT_Electron_Monitoring_Tool::m_muonContainer
const xAOD::MuonContainer * m_muonContainer
Definition: TRT_Electron_Monitoring_Tool.h:137
lw_geo_hists_t::hHTFracTrack
TH1F_LW * hHTFracTrack
Definition: TRT_Electron_Monitoring_Tool.h:47
TRT_Electron_Monitoring_Tool::m_tBarrelA
lw_geo_hists_t m_tBarrelA
Definition: TRT_Electron_Monitoring_Tool.h:165
TRT_Electron_Monitoring_Tool::trtBookHistoLW
TH1F_LW * trtBookHistoLW(MonGroup &mongroup, const std::string &hName, const std::string &hTitle, int bins, double lowbin, double highbin, double x_labelSize, double y_lableSize, const std::string &xTitle, const std::string &yTitle)
Definition: TRT_Electron_Monitoring_Tool.cxx:733
lw_geo_hists_t::pHTFracGammaNegPi
TProfile_LW * pHTFracGammaNegPi
Definition: TRT_Electron_Monitoring_Tool.h:63
PCAND_EL
@ PCAND_EL
Definition: TRT_Electron_Monitoring_Tool.h:35
ymax
double ymax
Definition: listroot.cxx:64
TRT_Electron_Monitoring_Tool::m_tEndCapA
lw_geo_hists_t m_tEndCapA
Definition: TRT_Electron_Monitoring_Tool.h:167
TRT_Electron_Monitoring_Tool::m_doMuonMon
bool m_doMuonMon
Definition: TRT_Electron_Monitoring_Tool.h:148