ATLAS Offline Software
egammaqweta1c.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 #include <cmath>
8 
9 float
10 egammaqweta1c::Correct(const float eta, const float etacell, const float width)
11 {
12 
13  //Make correction to the width of the cluster shower in sampling 1
14  const float aeta = fabs(eta);
15  const float etarel = RelPosition(eta, etacell);
16  if (aeta < 1.0) {
17  return (width - 0.76 * pow(etarel, 2));
18  }
19  if (aeta < 1.45) {
20  return (width - 0.85 * pow(etarel, 2) + 1.9 * pow(etarel, 4));
21  }
22  if (aeta < 1.5) {
23  return width;
24  }
25  if (aeta < 1.8) {
26  return (width - 0.85 * pow(etarel, 2) + 1.9 * pow(etarel, 4));
27  }
28  if (aeta < 2.0) {
29  return (width - 0.84 * pow(etarel, 2));
30  }
31  if (aeta < 2.5) {
32  return (width - 0.40 * pow(etarel, 2) - 2.1 * pow(etarel, 4));
33  }
34  return width;
35 }
36 
37 double
38 egammaqweta1c::RelPosition(const float eta, const float etacell)
39 {
40  /*
41  * get relative position within cell in eta of the cluster
42  * shower in sampling 1
43  */
44  const float aeta = fabs(eta);
45  if (aeta < 1.8) {
46  const float ngra = 8.;
47  const double dgra = 0.025 / ngra;
48  const double etapos = fabs(eta - etacell - dgra / 2.);
49  return (fmod(etapos, dgra) / dgra - 0.5);
50  }
51  if (aeta < 2.0) {
52  const float ngra = 6.;
53  const float dgra = 0.025 / ngra;
54  const double etapos = fabs(eta - etacell - dgra / 2.);
55  return (fmod(etapos, dgra) / dgra - 0.5);
56  }
57  if (aeta < 2.4) {
58  const float ngra = 4.;
59  const float dgra = 0.025 / ngra;
60  const double etapos = fabs(eta - etacell - dgra / 2.);
61  return (fmod(etapos, dgra) / dgra - 0.5);
62  }
63  if (aeta < 2.5) {
64  const float ngra = 1.;
65  const float dgra = 0.025 / ngra;
66  const double etapos = fabs(eta - etacell - dgra / 2.);
67  return (fmod(etapos, dgra) / dgra - 0.5);
68  }
69 
70  return -999.;
71 }
72 
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
egammaqweta1c::Correct
float Correct(const float eta, const float etacell, const float width)
returns corrected width at eta
CaloCluster.h
egammaqweta1c::RelPosition
double RelPosition(const float eta, const float etacell)
returns relative position within the cell
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
egammaqweta1c.h