95 {
96
97 if (binnedParameters) {
98
99
100
101 std::vector<double> energyBinLowerBoundaries_GeV;
104
107
108 std::ifstream inputFile_eoverp(path+"eOverP.json");
109 nlohmann::json json_eoverp;
110 inputFile_eoverp >> json_eoverp;
111
112 std::ifstream inputFile_cellOrdering(path+"cellOrdering.json");
113 nlohmann::json json_cellOrdering;
114 inputFile_cellOrdering >> json_cellOrdering;
115
116
117
118 int energyBinCounter = -1;
120 energyBinCounter++;
121 std::stringstream currentEBinStream;
122 currentEBinStream << std::fixed << std::setprecision(0) << thisEBin;
123 std::string currentEBin = currentEBinStream.str();
124 int etaBinCounter = -1;
126 etaBinCounter++;
127 std::stringstream currentEtaBinStream;
128 currentEtaBinStream << std::fixed << std::setprecision(1) << thisEtaBin;
129 std::string currentEtaBin = currentEtaBinStream.str();
131
133
134 std::string currentFirstIntBin = std::to_string(thisFirstIntRegionBin_Int);
135 std::string eOverPBin = "energyBinLowerBound_"+currentEBin+"_etaBinLowerBound_"+currentEtaBin+"_firstIntBinLowerBound_"+currentFirstIntBin;
136 if (json_eoverp.contains(eOverPBin+"_mean")){
137 binnedParameters->
setFudgeMean(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,json_eoverp[eOverPBin+
"_mean"]);
138 ATH_MSG_DEBUG(
"Setting mean for bin " << eOverPBin <<
" to " << json_eoverp[eOverPBin+
"_mean"]);
139 }
140
142 if (json_eoverp.contains(eOverPBin+"_sigma")){
143 binnedParameters->
setFudgeStdDev(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,json_eoverp[eOverPBin+
"_sigma"]);
144 ATH_MSG_DEBUG(
"Setting sigma for bin " << eOverPBin <<
" to " << json_eoverp[eOverPBin+
"_sigma"]);
145 }
150 std::string cellOrderingBin = eOverPBin + "_caloLayer_"+std::to_string(thisLayerBin);
151 if (json_cellOrdering.contains(cellOrderingBin+"_norm1")){
152 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
NORM1,json_cellOrdering[cellOrderingBin+
"_norm1"]);
153 ATH_MSG_DEBUG(
"Setting norm1 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_norm1"]);
154 }
155 else ATH_MSG_DEBUG(
"No norm1 found for bin " << cellOrderingBin);
156 if (json_cellOrdering.contains(cellOrderingBin+"_sigma1")){
157 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
WIDTH1,json_cellOrdering[cellOrderingBin+
"_sigma1"]);
158 ATH_MSG_DEBUG(
"Setting sigma1 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_sigma1"]);
159 }
160 else ATH_MSG_DEBUG(
"No sigma1 found for bin " << cellOrderingBin);
161 if (json_cellOrdering.contains(cellOrderingBin+"_norm2")){
162 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
NORM2,json_cellOrdering[cellOrderingBin+
"_norm2"]);
163 ATH_MSG_DEBUG(
"Setting norm2 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_norm2"]);
164 }
165 else ATH_MSG_DEBUG(
"No norm2 found for bin " << cellOrderingBin);
166 if (json_cellOrdering.contains(cellOrderingBin+"_sigma2")){
167 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
WIDTH2,json_cellOrdering[cellOrderingBin+
"_sigma2"]);
168 ATH_MSG_DEBUG(
"Setting sigma2 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_sigma2"]);
169 }
170 else ATH_MSG_DEBUG(
"No sigma2 found for bin " << cellOrderingBin);
171 }
172 }
173 }
174 }
175 }
176
177 return StatusCode::SUCCESS;
178
179}
std::string PathResolverFindCalibDirectory(const std::string &logical_file_name)
static const std::string & name(LAYER layer)
void setFudgeStdDev(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeStdDev)
void setFudgeMean(int energyBin, int etaBin, eflowFirstIntENUM j1st, double fudgeMean)
void initialise(const std::vector< double > &eBinBounds, const std::vector< double > &etaBinBounds, bool useAbsEta=true)
void setShapeParam(int energyBin, int etaBin, eflowFirstIntENUM j1st, eflowCaloENUM layer, int paramNumber, double shapeParam)
path
python interpreter configuration --------------------------------------—