ATLAS Offline Software
Loading...
Searching...
No Matches
get_MaterialResolutionEffect.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef get_MaterialResolutionEffect_H
6#define get_MaterialResolutionEffect_H
7#include <array>
8#include <cmath>
9#include <cstdlib>
10#include <memory>
11#include <vector>
13
23
24class TH1;
25class TH2;
26class TArrayD;
27
29
30 public:
35
46 double getDelta(int particle_type, double energy, double eta,
47 int response_type, int isyst) const;
48 static double interpolateTH1(TH1* hist, double x, bool abs_bins) ;
50 void setInterpolate(bool interpolate) {
51 m_interpolate = interpolate;
53 }
54
55 private:
56 // histograms to store resolution parameters
57 static const int s_nEtaBins = 8;
58 static const int s_nSys = 4;
59 std::array<std::array<std::array<std::unique_ptr<TH1>, 3>, s_nEtaBins>, s_nSys> m_hSystPeak;
60 std::array<std::array<std::array<std::unique_ptr<TH1>, 3>, s_nEtaBins>, s_nSys> m_hSystResol;
61 std::array<std::unique_ptr<TH2>, 3> m_hsyst_IBL_PP0;
62 // each of the m_hsyst_IBL_PP0 is a TH2 with 11 eta bins on x-axis, in case of doing interpolation:
63 // we will need the Y-projection for each eta bins
64 std::array<std::vector<std::unique_ptr<TH1>>, 3> m_hsyst_IBL_PP0_ProjectionY;
65 bool m_interpolate = false;
66 const TArrayD* m_etBins; // A xistogram will own this
67};
68
69#endif
Scalar eta() const
pseudorapidity method
#define x
Class mimicking the AthMessaging class from the offline software.
get_MaterialResolutionEffect()
constructor (initialization done there reading root files with resolution fit parameters
static double interpolateTH1(TH1 *hist, double x, bool abs_bins)
std::array< std::array< std::array< std::unique_ptr< TH1 >, 3 >, s_nEtaBins >, s_nSys > m_hSystPeak
double getDelta(int particle_type, double energy, double eta, int response_type, int isyst) const
get material effect on resolution from distorted geometry as difference to 40 GeV Et electrons smeari...
std::array< std::unique_ptr< TH2 >, 3 > m_hsyst_IBL_PP0
std::array< std::array< std::array< std::unique_ptr< TH1 >, 3 >, s_nEtaBins >, s_nSys > m_hSystResol
std::array< std::vector< std::unique_ptr< TH1 > >, 3 > m_hsyst_IBL_PP0_ProjectionY