ATLAS Offline Software
Loading...
Searching...
No Matches
eflowRingSubtractionManager.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 EFLOWCELLSUBTRACTIONMANAGER_H
6#define EFLOWCELLSUBTRACTIONMANAGER_H
7
8/********************************************************************
9
10NAME: eflowRingSubtractionManager.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//C++ Headers
19#include <vector>
20#include <map>
22
25
26typedef std::pair<eflowCaloENUM,short> RingId;
27
32
33 public:
34
36
37 double fudgeMean() const {return m_fudgeMean;}
38 double fudgeStdDev() const {return m_fudgeStdDev;}
39 /* for eflowTauTool */
42
43 void clear() {m_rankMap.clear();}
44 std::map<double,RingId>::const_iterator rankBegin() const {return m_rankMap.begin();}
45 std::map<double,RingId>::const_iterator rankEnd() const {return m_rankMap.end();}
46
47 double ringThickness(eflowCaloENUM layer) const {return m_ringThickness[layer];}
48
49 bool getOrdering(const eflowEEtaBinnedParameters* binnedParameters, double e, double eta, eflowFirstIntENUM j1st, bool useLegacyEnergyBinIndexing);
50
51 private:
52
53 void setParameters(const eflowFirstIntParameters& param, const std::vector<double>& ringThickness);
54 static double ringMeanRank(const std::vector<double>& p, double rMin, double rMax) ;
55 static std::vector<eflowCaloENUM> orderedLayersByShowerParam(const eflowFirstIntParameters& param, unsigned int whichParam=0);
56
57 private:
58
59 std::map<double,RingId> m_rankMap;
60 std::vector<double> m_ringThickness;
61 double m_fudgeMean{};
62 double m_fudgeStdDev{};
63
64 static constexpr double m_rMax = 0.75;
65 static constexpr double m_weightRange = 1.0e6;
66};
67#endif
Scalar eta() const
pseudorapidity method
Inherits from eflowEEtaBinBase.
Extends eflowFirstInt to include parameters of the fits to radial shower profiles.
static std::vector< eflowCaloENUM > orderedLayersByShowerParam(const eflowFirstIntParameters &param, unsigned int whichParam=0)
std::map< double, RingId >::const_iterator rankBegin() const
void setFudgeStdDev(double fudgeStdDev)
static double ringMeanRank(const std::vector< double > &p, double rMin, double rMax)
std::map< double, RingId >::const_iterator rankEnd() const
bool getOrdering(const eflowEEtaBinnedParameters *binnedParameters, double e, double eta, eflowFirstIntENUM j1st, bool useLegacyEnergyBinIndexing)
double ringThickness(eflowCaloENUM layer) const
std::map< double, RingId > m_rankMap
void setParameters(const eflowFirstIntParameters &param, const std::vector< double > &ringThickness)
eflowCalo::LAYER eflowCaloENUM
eflowFirstIntRegions::J1STLAYER eflowFirstIntENUM
std::pair< eflowCaloENUM, short > RingId