ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
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)
 
TH2FGetResHist (const int &ml)
 
TProfileGetProfileDiff (const int &min_number_of_entries)
 

Private Attributes

std::list< TH2F * > m_residuals [2]
 
TH2Fm_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 & m_current_residual : m_current_residuals) { m_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  }

◆ ~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  }

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  }

◆ 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.

◆ 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:
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
MuonCalib::clearall
void clearall(T &container)
Definition: MultilayerRtDifference.cxx:83
MuonCalib::MultilayerRtDifference_Histograms::m_residuals
std::list< TH2F * > m_residuals[2]
Definition: MultilayerRtDifference.cxx:47
ParseInputs.gDirectory
gDirectory
Definition: Final2012/ParseInputs.py:133
lumiFormat.i
int i
Definition: lumiFormat.py:92
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
TProfile
Definition: rootspy.cxx:515
MuonCalib::MultilayerRtDifference_Histograms::m_control_histogram_dir
TDirectory * m_control_histogram_dir
Definition: MultilayerRtDifference.cxx:51
CalibCoolCompareRT.nm
nm
Definition: CalibCoolCompareRT.py:110
generate::GetEntries
double GetEntries(TH1D *h, int ilow, int ihi)
Definition: rmsFrac.cxx:20
MuonCalib::MultilayerRtDifference_Histograms::m_current_residuals
TH2F * m_current_residuals[2]
Definition: MultilayerRtDifference.cxx:48
MuonCalib::MultilayerRtDifference_Histograms::m_res_prov
std::list< TProfile * > m_res_prov[2]
Definition: MultilayerRtDifference.cxx:49
MuonCalib::MultilayerRtDifference_Histograms::m_res_prov_diff
std::list< TProfile * > m_res_prov_diff
Definition: MultilayerRtDifference.cxx:50