ATLAS Offline Software
eflowEEtaBinnedParameters.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 EFLOWBINNEDPARAMETERS_H
6 #define EFLOWBINNEDPARAMETERS_H
7 
8 /********************************************************************
9 
10 NAME: eflowEEtaBinnedParameters.h
11 PACKAGE: offline/Reconstruction/eflowRec
12 
13 AUTHORS: M.Hodgkinson, R Duxfield (based on R.Duxfields Root package)
14 CREATED: 18th Aug, 2005
15 
16 ********************************************************************/
17 
18 //Athena Headers
21 
22 
24 //C++ Headers
25 #include <vector>
26 #include <memory>
29 
31  public:
32 
34  int nSubtRegions = eflowFirstIntRegions::nRegions;
35  m_FirstIntParameters.resize(nSubtRegions);
36  for (int i = 0; i < nSubtRegions; i++) {
37  m_FirstIntParameters[i] = std::make_unique<eflowFirstIntParameters>();
38  }
39  }
40 
42  return (eflowFirstIntRegions::Unknown != j1st) ? m_FirstIntParameters[j1st].get() : nullptr;
43  }
45  return (eflowFirstIntRegions::Unknown != j1st) ? m_FirstIntParameters[j1st].get() : nullptr;
46  }
47 
48 
49  private:
50  std::vector<std::unique_ptr<eflowFirstIntParameters> > m_FirstIntParameters;
51 };
52 
57  public:
58 
60 
61  void initialise(const std::vector<double>& eBinBounds, const std::vector<double>& etaBinBounds, bool useAbsEta = true);
62 
63  void setFudgeMean(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeMean) {
64  if (m_bins[energyBin][etaBin]) {
65  eflowFirstIntParameters* j1stBin = m_bins[energyBin][etaBin]->getFirstIntBin(j1st);
66  if (j1stBin) j1stBin->setFudgeMean(fudgeMean);
67  }
68  }
69  void setFudgeStdDev(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeStdDev) {
70  if (m_bins[energyBin][etaBin]) {
71  eflowFirstIntParameters* j1stBin = m_bins[energyBin][etaBin]->getFirstIntBin(j1st);
72  if (j1stBin) j1stBin->setFudgeStdDev(fudgeStdDev);
73  }
74  }
75  void setShapeParam(int energyBin, int etaBin, eflowFirstIntENUM j1st, eflowCaloENUM layer,
76  int paramNumber, double shapeParam) {
77  if (m_bins[energyBin][etaBin]) {
78  eflowFirstIntParameters* j1stBin = m_bins[energyBin][etaBin]->getFirstIntBin(j1st);
79  if (j1stBin) j1stBin->setShapeParameter(layer, paramNumber, shapeParam);
80  }
81  }
82 
83 
84  double getInterpolation(const eflowParameters** bin1, const eflowParameters** bin2, double e, double eta, bool useLegacyEnergyBinIndexing) const;
85  eflowFirstIntENUM adjustLFI(double e, double eta, eflowFirstIntENUM j1st, bool useLegacyEnergyBinIndexing) const;
86 
87  private:
88 
89  /* For different E bin, Eta bin, different (int)paramNumber, there are different (double)shapeParam */
90  std::vector< std::vector<std::unique_ptr<eflowParameters> > > m_bins;
91 
92 };
93 #endif
eflowCaloRegions.h
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
eflowParameters::getFirstIntBin
eflowFirstIntParameters * getFirstIntBin(eflowFirstIntENUM j1st)
Definition: eflowEEtaBinnedParameters.h:44
eflowEEtaBinnedParameters
Inherits from eflowEEtaBinBase.
Definition: eflowEEtaBinnedParameters.h:56
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
eflowFirstIntParameters::setShapeParameter
void setShapeParameter(eflowCaloENUM layer, int paramNumber, double shapeParam)
Definition: eflowFirstIntParameters.h:48
eflowFirstIntParameters.h
eflowEEtaBinBase.h
eflowEEtaBinBase
Base class which sets up some of the infrastructure to store the e/p reference values.
Definition: eflowEEtaBinBase.h:26
xAOD::etaBin
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap etaBin
Definition: L2StandAloneMuon_v1.cxx:148
lumiFormat.i
int i
Definition: lumiFormat.py:85
eflowParameters::getFirstIntBin
const eflowFirstIntParameters * getFirstIntBin(eflowFirstIntENUM j1st) const
Definition: eflowEEtaBinnedParameters.h:41
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
eflowParameters::m_FirstIntParameters
std::vector< std::unique_ptr< eflowFirstIntParameters > > m_FirstIntParameters
Definition: eflowEEtaBinnedParameters.h:50
eflowParameters
Definition: eflowEEtaBinnedParameters.h:30
bin2
Definition: KillBinsByStrip.h:34
eflowEEtaBinnedParameters::setFudgeStdDev
void setFudgeStdDev(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeStdDev)
Definition: eflowEEtaBinnedParameters.h:69
eflowEEtaBinnedParameters::setFudgeMean
void setFudgeMean(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeMean)
Definition: eflowEEtaBinnedParameters.h:63
eflowRingSubtractionManager
This stores information, a rank and ring thickness, about cell rings in an ordered way.
Definition: eflowRingSubtractionManager.h:31
eflowEEtaBinnedParameters::initialise
void initialise(const std::vector< double > &eBinBounds, const std::vector< double > &etaBinBounds, bool useAbsEta=true)
Definition: eflowEEtaBinnedParameters.cxx:33
eflowEEtaBinnedParameters::adjustLFI
eflowFirstIntENUM adjustLFI(double e, double eta, eflowFirstIntENUM j1st, bool useLegacyEnergyBinIndexing) const
Definition: eflowEEtaBinnedParameters.cxx:109
eflowEEtaBinnedParameters::setShapeParam
void setShapeParam(int energyBin, int etaBin, eflowFirstIntENUM j1st, eflowCaloENUM layer, int paramNumber, double shapeParam)
Definition: eflowEEtaBinnedParameters.h:75
eflowEEtaBinnedParameters::eflowEEtaBinnedParameters
eflowEEtaBinnedParameters()=default
eflowFirstInt::setFudgeMean
void setFudgeMean(double fudgeMean)
Definition: eflowFirstInt.h:42
eflowCalo::LAYER
LAYER
Definition: eflowCaloRegions.h:36
dqt_zlumi_pandas.bin1
bin1
Definition: dqt_zlumi_pandas.py:336
eflowParameters::eflowParameters
eflowParameters()
Definition: eflowEEtaBinnedParameters.h:33
eflowEEtaBinnedParameters::m_bins
std::vector< std::vector< std::unique_ptr< eflowParameters > > > m_bins
Definition: eflowEEtaBinnedParameters.h:90
eflowFirstInt::setFudgeStdDev
void setFudgeStdDev(double fudgeStdDev)
Definition: eflowFirstInt.h:43
eflowFirstIntRegions::Unknown
@ Unknown
Definition: eflowCaloRegions.h:64
eflowFirstIntRegions::nRegions
static const int nRegions
Definition: eflowCaloRegions.h:67
eflowFirstIntParameters
Extends eflowFirstInt to include parameters of the fits to radial shower profiles.
Definition: eflowFirstIntParameters.h:28
eflowEEtaBinnedParameters::getInterpolation
double getInterpolation(const eflowParameters **bin1, const eflowParameters **bin2, double e, double eta, bool useLegacyEnergyBinIndexing) const
Definition: eflowEEtaBinnedParameters.cxx:52
eflowFirstIntRegions::J1STLAYER
J1STLAYER
Definition: eflowCaloRegions.h:58