ATLAS Offline Software
Loading...
Searching...
No Matches
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
10NAME: eflowEEtaBinnedParameters.h
11PACKAGE: offline/Reconstruction/eflowRec
12
13AUTHORS: M.Hodgkinson, R Duxfield (based on R.Duxfields Root package)
14CREATED: 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 }
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
Scalar eta() const
pseudorapidity method
eflowEEtaBinBase()=default
Inherits from eflowEEtaBinBase.
void setFudgeStdDev(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeStdDev)
void setFudgeMean(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeMean)
eflowFirstIntENUM adjustLFI(double e, double eta, eflowFirstIntENUM j1st, bool useLegacyEnergyBinIndexing) const
std::vector< std::vector< std::unique_ptr< eflowParameters > > > m_bins
void initialise(const std::vector< double > &eBinBounds, const std::vector< double > &etaBinBounds, bool useAbsEta=true)
double getInterpolation(const eflowParameters **bin1, const eflowParameters **bin2, double e, double eta, bool useLegacyEnergyBinIndexing) const
void setShapeParam(int energyBin, int etaBin, eflowFirstIntENUM j1st, eflowCaloENUM layer, int paramNumber, double shapeParam)
eflowEEtaBinnedParameters()=default
Extends eflowFirstInt to include parameters of the fits to radial shower profiles.
void setShapeParameter(eflowCaloENUM layer, int paramNumber, double shapeParam)
static const int nRegions
void setFudgeMean(double fudgeMean)
void setFudgeStdDev(double fudgeStdDev)
std::vector< std::unique_ptr< eflowFirstIntParameters > > m_FirstIntParameters
const eflowFirstIntParameters * getFirstIntBin(eflowFirstIntENUM j1st) const
eflowFirstIntParameters * getFirstIntBin(eflowFirstIntENUM j1st)
This stores information, a rank and ring thickness, about cell rings in an ordered way.
eflowCalo::LAYER eflowCaloENUM
eflowFirstIntRegions::J1STLAYER eflowFirstIntENUM