ATLAS Offline Software
Loading...
Searching...
No Matches
InDetPerfPlot_HitResidual.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETPHYSVALMONITORING_InDetPerfPlot_HITRESIDUAL
6#define INDETPHYSVALMONITORING_InDetPerfPlot_HITRESIDUAL
11
12
13// std includes
14#include <atomic>
15#include <string>
16#include <vector>
17#include "TProfile.h"
18
19// local includes
20
21#include "InDetPlotBase.h"
22
23// could be fwd declared?
26
27// fwd declaration
28class IToolSvc;
29class IExtrapolator;
30
31
34public:
35 InDetPerfPlot_HitResidual(InDetPlotBase* pParent, const std::string& dirName, bool isITk);
36
37 void fill(const xAOD::TrackParticle& trkprt, float weight);
40
41private:
42 // enum copied from the hitDecorator tool in InDetPhysValMonitoring
49
50 void initializePlots();
51
52 bool m_isITk;
53
54 std::vector<std::vector<TH1*>> m_residualx_1hit = {N_SUBDETECTORS, {N_REGIONS, nullptr}}; // excludes TRT, DBM
55 std::vector<std::vector<TH1*>> m_residualx_2ormorehits = {N_SUBDETECTORS, {N_REGIONS, nullptr}}; // excludes TRT, DBM
56 std::vector<std::vector<TH1*>> m_residualx = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
57 std::vector<std::vector<TH2*>> m_residualx_eta = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
58
59 //
60 std::vector<std::vector<TH1*>> m_residualy_1hit = {N_SUBDETECTORS, {N_REGIONS, nullptr}}; // excludes TRT, DBM
61 std::vector<std::vector<TH1*>> m_residualy_2ormorehits = {N_SUBDETECTORS, {N_REGIONS, nullptr}}; // excludes TRT, DBM
62 std::vector<std::vector<TH1*>> m_residualy = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
63 std::vector<std::vector<TH2*>> m_residualy_eta = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
64 //
65 std::vector<std::vector<TH1*>> m_pullx = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
66 std::vector<std::vector<TH1*>> m_pully = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
67 std::vector<std::vector<TH2*>> m_pullx_eta = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
68 std::vector<std::vector<TH2*>> m_pully_eta = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
69
70 std::vector<std::vector<TH1*>> m_phiWidth = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
71 std::vector<std::vector<TH1*>> m_etaWidth = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
72 std::vector<std::vector<TH2*>> m_phiWidth_eta = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
73 std::vector<std::vector<TH2*>> m_etaWidth_eta = {N_SUBDETECTORS, {N_REGIONS, nullptr}};
74
75 std::vector<TProfile*> m_phiWidthEta = {N_SUBDETECTORS, nullptr};
76 std::vector<TProfile*> m_etaWidthEta = {N_SUBDETECTORS, nullptr};
77
78 mutable std::atomic<int> m_warnCount{0};
79};
80
81
82#endif
std::vector< std::vector< TH1 * > > m_etaWidth
std::vector< std::vector< TH2 * > > m_etaWidth_eta
std::vector< std::vector< TH2 * > > m_pullx_eta
std::vector< std::vector< TH2 * > > m_pully_eta
std::vector< std::vector< TH1 * > > m_residualy
std::vector< std::vector< TH1 * > > m_residualy_2ormorehits
std::vector< std::vector< TH1 * > > m_residualy_1hit
std::vector< std::vector< TH1 * > > m_residualx_2ormorehits
std::vector< TProfile * > m_phiWidthEta
std::vector< TProfile * > m_etaWidthEta
std::vector< std::vector< TH1 * > > m_pully
std::vector< std::vector< TH2 * > > m_phiWidth_eta
std::vector< std::vector< TH1 * > > m_phiWidth
InDetPerfPlot_HitResidual(InDetPlotBase *pParent, const std::string &dirName, bool isITk)
std::vector< std::vector< TH1 * > > m_residualx_1hit
std::vector< std::vector< TH1 * > > m_pullx
std::vector< std::vector< TH1 * > > m_residualx
std::vector< std::vector< TH2 * > > m_residualy_eta
void fill(const xAOD::TrackParticle &trkprt, float weight)
std::vector< std::vector< TH2 * > > m_residualx_eta
InDetPlotBase(InDetPlotBase *pParent, const std::string &dirName)
Constructor taking parent node and directory name for plots.
Definition HitInfo.h:33
TrackParticle_v1 TrackParticle
Reference the current persistent version: