ATLAS Offline Software
L1CaloRampCumul.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGT1CALOCALIBCONDITIONS_L1CALORAMPCUMUL_H
6 #define TRIGT1CALOCALIBCONDITIONS_L1CALORAMPCUMUL_H
7 
9 
10 #include <map>
11 #include <cmath>
12 
20 class L1CaloRampCumul final
21 {
22 public:
24  L1CaloRampCumul(L1CaloRampRunPlan* pRampRunPlan);
25  ~L1CaloRampCumul() = default;
26 
27  void addEvent(double step, int energy);
28 
29 private:
30 
31  class RampStep {
32  public:
34  m_iStep(0.0),
35  m_nEntrie(0),
36  m_w(0),
37  m_w2(0)
38  {
39  };
40  RampStep(double step):
41  m_iStep(step),
42  m_nEntrie(0),
43  m_w(0),
44  m_w2(0)
45  {
46  };
47  void addEvent(int energy) {
48  ++m_nEntrie;
49  m_w += energy;
50  m_w2 += energy*energy;
51  };
52  double step() {return m_iStep; };
53  double mean() {
54  if(m_nEntrie==0) {
55  return 0;
56  } else {
57  return (double)m_w/((double)m_nEntrie);
58  }
59  };
60  double rms() {
61  if(m_nEntrie==0) {
62  return 0;
63  } else {
64  double mean = this->mean();
65  return std::sqrt( (double)m_w2/((double)m_nEntrie) - mean*mean );
66  }
67  };
68 
69  private:
70  double m_iStep;
71  int m_nEntrie;
72  int m_w;
73  int m_w2;
74  };
75 
76  std::map<double, RampStep> m_mapRampSteps;
77 
78 };
79 
80 #endif
81 
L1CaloRampCumul::RampStep::rms
double rms()
Definition: L1CaloRampCumul.h:60
L1CaloRampRunPlan
Transient class defining ramps runplan objects defined by the online framework and retrieved from COO...
Definition: L1CaloRampRunPlan.h:21
L1CaloRampCumul::RampStep::mean
double mean()
Definition: L1CaloRampCumul.h:53
L1CaloRampCumul
Class to store intermediate ramp data for the L1CaloRampMaker algorithm.
Definition: L1CaloRampCumul.h:21
L1CaloRampCumul::m_mapRampSteps
std::map< double, RampStep > m_mapRampSteps
Definition: L1CaloRampCumul.h:76
L1CaloRampCumul::RampStep::m_w2
int m_w2
Definition: L1CaloRampCumul.h:73
L1CaloRampCumul::addEvent
void addEvent(double step, int energy)
Definition: L1CaloRampCumul.cxx:18
L1CaloRampCumul::RampStep::m_w
int m_w
Definition: L1CaloRampCumul.h:72
L1CaloRampCumul::RampStep
Definition: L1CaloRampCumul.h:31
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
L1CaloRampCumul::RampStep::m_nEntrie
int m_nEntrie
Definition: L1CaloRampCumul.h:71
L1CaloRampCumul::RampStep::RampStep
RampStep(double step)
Definition: L1CaloRampCumul.h:40
L1CaloRampCumul::RampStep::step
double step()
Definition: L1CaloRampCumul.h:52
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
L1CaloRampCumul::RampStep::RampStep
RampStep()
Definition: L1CaloRampCumul.h:33
L1CaloRampCumul::RampStep::m_iStep
double m_iStep
Definition: L1CaloRampCumul.h:67
L1CaloRampCumul::L1CaloRampCumul
L1CaloRampCumul()
Definition: L1CaloRampCumul.h:23
L1CaloRampCumul::~L1CaloRampCumul
~L1CaloRampCumul()=default
LArCellBinning.step
step
Definition: LArCellBinning.py:158
L1CaloRampRunPlan.h
L1CaloRampCumul::RampStep::addEvent
void addEvent(int energy)
Definition: L1CaloRampCumul.h:47