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  {
40  return 0.;
41  }
42 
43  int radius = 0;
44  if (Radius <= 17.0) radius = 0;
45  else if (Radius <= 20.0) radius = 1;
46  else if (Radius <= 24.0) radius = 2;
47  else if (Radius <= 29.0) radius = 3;
48  else if (Radius <= 34.0) radius = 4;
49  else if (Radius <= 41.0) radius = 5;
50  else if (Radius <= 48.0) radius = 6;
51  else if (Radius <= 58.0) radius = 7;
52  else if (Radius <= 69.0) radius = 8;
53  else if (Radius <= 82.0) radius = 9;
54  else if (Radius <= 98.0) radius = 10;
55  else if (Radius <= 116.0) radius = 11;
56  else if (Radius <= 130.0) radius = 12;
57  else return 0.;
58 
59  return HFDoseLayerDarkeningPars[layer][radius];
60 }
61 
62 double HFDarkening::degradation(double mrad) {
63  return (exp(-1.44*pow(mrad/100,0.44)*0.2/4.343));
64 }
65 
66 double HFDarkening::int_lumi(double intlumi) {
67  return (intlumi/500.);
68 }
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:62
double int_lumi(double intlumi)
Definition: HFDarkening.cc:66
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