ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalib::MultilayerRtDifference_Histograms Class Reference
Collaboration diagram for MuonCalib::MultilayerRtDifference_Histograms:

Public Member Functions

 MultilayerRtDifference_Histograms (TDirectory *control_histogram_dir)
 MultilayerRtDifference_Histograms (const MultilayerRtDifference_Histograms &MLRTDH)
 ~MultilayerRtDifference_Histograms ()
MultilayerRtDifference_Histogramsoperator= (const MultilayerRtDifference_Histograms &MLRTDH)
TH2F * GetResHist (const int &ml)
TProfile * GetProfileDiff (const int &min_number_of_entries)

Private Attributes

std::list< TH2F * > m_residuals [2]
TH2F * m_current_residuals [2] {}
std::list< TProfile * > m_res_prov [2]
std::list< TProfile * > m_res_prov_diff
TDirectory * m_control_histogram_dir

Detailed Description

Definition at line 37 of file MultilayerRtDifference.cxx.

Constructor & Destructor Documentation

◆ MultilayerRtDifference_Histograms() [1/2]

MuonCalib::MultilayerRtDifference_Histograms::MultilayerRtDifference_Histograms ( TDirectory * control_histogram_dir)
inline

Definition at line 54 of file MultilayerRtDifference.cxx.

54 :
55 m_control_histogram_dir(control_histogram_dir) {
56 for (auto & current_residual : m_current_residuals) { current_residual = nullptr; }
57 }

◆ MultilayerRtDifference_Histograms() [2/2]

MuonCalib::MultilayerRtDifference_Histograms::MultilayerRtDifference_Histograms ( const MultilayerRtDifference_Histograms & MLRTDH)

Definition at line 60 of file MultilayerRtDifference.cxx.

60 {
61 for (int i = 0; i < 2; i++) {
62 for (auto *res : MLRTDH.m_residuals[i]) { m_residuals[i].push_back(new TH2F(*res)); }
63 m_current_residuals[i] = new TH2F(*(MLRTDH.m_current_residuals[i]));
64 for (auto *res : MLRTDH.m_res_prov[i]) { m_res_prov[i].push_back(new TProfile(*res)); }
65 }
66 for (auto *res : MLRTDH.m_res_prov_diff) { m_res_prov_diff.push_back(new TProfile(*res)); }
67 m_control_histogram_dir = MLRTDH.m_control_histogram_dir; // not a deep copy, hope it is ok
68 }
std::pair< std::vector< unsigned int >, bool > res
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)

◆ ~MultilayerRtDifference_Histograms()

MuonCalib::MultilayerRtDifference_Histograms::~MultilayerRtDifference_Histograms ( )
inline

Definition at line 91 of file MultilayerRtDifference.cxx.

91 {
92 for (unsigned int i = 0; i < 2; i++) {
95 }
97 }
void clearall(T &container)

Member Function Documentation

◆ GetProfileDiff()

TProfile * MuonCalib::MultilayerRtDifference_Histograms::GetProfileDiff ( const int & min_number_of_entries)
inline

Definition at line 117 of file MultilayerRtDifference.cxx.

117 {
118 TDirectory *prev = gDirectory;
120 bool ok(true);
121 TProfile *prof[2];
122 for (unsigned int i = 0; i < 2; i++) {
123 if (m_current_residuals[i] && m_current_residuals[i]->GetEntries() >= min_number_of_entries) {
124 prof[i] = m_current_residuals[i]->ProfileX();
125 if (!m_control_histogram_dir) { prof[i]->SetDirectory(nullptr); }
126 } else {
127 prof[i] = nullptr;
128 ok = false;
129 }
130 m_res_prov[i].push_back(prof[i]);
131 m_current_residuals[i] = nullptr;
132 }
133 if (!ok) {
134 prev->cd();
135 m_res_prov_diff.push_back(nullptr);
136 return nullptr;
137 }
138 std::ostringstream nm;
139 nm << "res_prov_diff_step" << m_res_prov_diff.size();
140 TProfile *prov_diff = new TProfile(nm.str().c_str(), "", 15, 0., 15.);
141 prov_diff->Add(prof[0], prof[1], 1., -1);
142 m_res_prov_diff.push_back(prov_diff);
143 if (!m_control_histogram_dir) { prov_diff->SetDirectory(nullptr); }
144 return prov_diff;
145 }
TGraphErrors * GetEntries(TH2F *histo)

◆ GetResHist()

TH2F * MuonCalib::MultilayerRtDifference_Histograms::GetResHist ( const int & ml)
inline

Definition at line 99 of file MultilayerRtDifference.cxx.

99 {
100 if (!m_current_residuals[ml]) {
101 for (int i = 0; i < 2; i++) {
102 TDirectory *prevdir = gDirectory;
104 std::ostringstream nm;
105 nm << "temporal_residual_ml" << i << "_iteration" << m_residuals[i].size();
106 m_current_residuals[i] = new TH2F(nm.str().c_str(), "", 15, 0., 15., 200, -100, 100);
108 prevdir->cd();
109 else
110 m_current_residuals[i]->SetDirectory(nullptr);
111 m_residuals[i].push_back(m_current_residuals[i]);
112 }
113 }
114 return m_current_residuals[ml];
115 }

◆ operator=()

MultilayerRtDifference_Histograms & MuonCalib::MultilayerRtDifference_Histograms::operator= ( const MultilayerRtDifference_Histograms & MLRTDH)

Definition at line 70 of file MultilayerRtDifference.cxx.

70 {
71 if (this != &MLRTDH) {
72 for (int i = 0; i < 2; i++) {
73 m_residuals[i] = MLRTDH.m_residuals[i];
74 m_current_residuals[i] = MLRTDH.m_current_residuals[i];
75 m_res_prov[i] = MLRTDH.m_res_prov[i];
76 }
77 m_res_prov_diff = MLRTDH.m_res_prov_diff;
78 m_control_histogram_dir = MLRTDH.m_control_histogram_dir;
79 }
80 return *this;
81 }

Member Data Documentation

◆ m_control_histogram_dir

TDirectory* MuonCalib::MultilayerRtDifference_Histograms::m_control_histogram_dir
private

Definition at line 51 of file MultilayerRtDifference.cxx.

◆ m_current_residuals

TH2F* MuonCalib::MultilayerRtDifference_Histograms::m_current_residuals[2] {}
private

Definition at line 48 of file MultilayerRtDifference.cxx.

48{};

◆ m_res_prov

std::list<TProfile *> MuonCalib::MultilayerRtDifference_Histograms::m_res_prov[2]
private

Definition at line 49 of file MultilayerRtDifference.cxx.

◆ m_res_prov_diff

std::list<TProfile *> MuonCalib::MultilayerRtDifference_Histograms::m_res_prov_diff
private

Definition at line 50 of file MultilayerRtDifference.cxx.

◆ m_residuals

std::list<TH2F *> MuonCalib::MultilayerRtDifference_Histograms::m_residuals[2]
private

Definition at line 47 of file MultilayerRtDifference.cxx.


The documentation for this class was generated from the following file: