13 std::unordered_map<int, float>
result;
21 throw cms::Exception(
"FileNotFound") <<
"Unable to open '" << fullpath <<
"'" << std::endl;
24 while (getline(
infile, line)) {
29 std::stringstream linestream(line);
30 linestream >> layer >> boundary;
32 result[layer] = boundary;
40 return std::make_pair(1., 0.);
44 int layer = cellId.
layer();
47 const double dosespower = 0.65;
54 constexpr double fluencefactor = 2. / (2 * 1e13);
55 const double normfactor = 2.18;
56 double noise = normfactor *
sqrt(cellFluence * fluencefactor);
58 return std::make_pair(scaleFactor, noise);
63 if (cellId.
type() == 0) {
80 int layer = cellId.
layer();
91 double radius4 =
std::pow(radius2, 2);
93 double radius3 = radius2 *
radius;
95 double radius_m100 = radius - 100;
96 double radius_m100_2 =
std::pow(radius_m100, 2);
97 double radius_m100_3 = radius_m100_2 * radius_m100;
98 double radius_m100_4 =
std::pow(radius_m100_2, 2);
100 radiiVec radii{{
radius, radius2, radius3, radius4, radius_m100, radius_m100_2, radius_m100_3, radius_m100_4}};
double getFluenceValue(const int, const int, const radiiVec &, bool logVal=false)
std::unordered_map< int, float > readSipmPars(const std::string &)
std::array< double, 8 > radiiVec
void setSipmMap(const std::string &)
int type() const
get the type
GlobalPoint getPosition(const DetId &id) const
radiiVec computeRadius(const HGCScintillatorDetId &)
double scaleByTileArea(const HGCScintillatorDetId &, const radiiVec &)
returns the signal scaling and the noise
std::unordered_map< int, float > sipmMap_
double scaleBySipmArea(const HGCScintillatorDetId &, const double &)
double getDoseValue(const int, const int, const radiiVec &, bool logVal=false)
int layer() const
get the layer #
std::pair< double, double > scaleByDose(const HGCScintillatorDetId &, const radiiVec &)
std::string fullPath() const
const doseParametersMap & getDoseMap()
Power< A, B >::type pow(const A &a, const B &b)
const HGCalGeometry * geom()