CMS 3D CMS Logo

HFDarkening.cc
Go to the documentation of this file.
1 //File: HFDarkening.cc
3 //Description: simple helper class containing parameterized function
4 // to be used for the SLHC darkening calculation in HF
6 
8 #include <algorithm>
9 #include <cmath>
10 
11 // CMSSW Headers
14 
15 using namespace edm;
16 
18  //HF area of consideration is 1115 cm from interaction point to 1280cm in z-axis
19  //Radius (cm) - 13 cm from Beam pipe to 130cm (the top of HF active area)
20  //Dose in MRad
21 
22  vecOfDoubles HFDosePars = pset.getParameter<vecOfDoubles>("doseLayerDepth");
23  int i = 0;
24  for (int Z = 0; Z != _numberOfZLayers; ++Z) {
25  for (int R = 0; R != _numberOfRLayers; ++R) {
26  HFDoseLayerDarkeningPars[Z][R] = HFDosePars[i];
27  ++i;
28  }
29  }
30 }
31 
33 
34 double HFDarkening::dose(unsigned int layer, double Radius) {
35  // Radii are 13-17, 17-20, 20-24, 24-29, 29-34, 34-41, 41-48, 48-58, 58-69, 69-82, 82-98, 98-116, 116-130
36  // These radii are specific to the geometry of the dose map, which closely matches HF Tower Geometry,
37  // but not exactly.
38  if (layer > (_numberOfZLayers - 1)) {
39  return 0.;
40  }
41 
42  int radius = 0;
43  if (Radius <= 17.0)
44  radius = 0;
45  else if (Radius <= 20.0)
46  radius = 1;
47  else if (Radius <= 24.0)
48  radius = 2;
49  else if (Radius <= 29.0)
50  radius = 3;
51  else if (Radius <= 34.0)
52  radius = 4;
53  else if (Radius <= 41.0)
54  radius = 5;
55  else if (Radius <= 48.0)
56  radius = 6;
57  else if (Radius <= 58.0)
58  radius = 7;
59  else if (Radius <= 69.0)
60  radius = 8;
61  else if (Radius <= 82.0)
62  radius = 9;
63  else if (Radius <= 98.0)
64  radius = 10;
65  else if (Radius <= 116.0)
66  radius = 11;
67  else if (Radius <= 130.0)
68  radius = 12;
69  else
70  return 0.;
71 
72  return HFDoseLayerDarkeningPars[layer][radius];
73 }
74 
75 double HFDarkening::degradation(double mrad) { return (exp(-1.44 * pow(mrad / 100, 0.44) * 0.2 / 4.343)); }
76 
77 double HFDarkening::int_lumi(double intlumi) { return (intlumi / 500.); }
T getParameter(std::string const &) const
std::vector< double > vecOfDoubles
double dose(unsigned int layer, double radius)
Definition: HFDarkening.cc:34
double degradation(double mrad)
Definition: HFDarkening.cc:75
double int_lumi(double intlumi)
Definition: HFDarkening.cc:77
HFDarkening(const edm::ParameterSet &pset)
Definition: HFDarkening.cc:17
HLT enums.
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40