109 {
110
111 if (binnedParameters) {
112
113
114
115 std::vector<double> energyBinLowerBoundaries_GeV;
118
121
122 std::ifstream inputFile_eoverp(path+"eOverP.json");
123 nlohmann::json json_eoverp;
124 inputFile_eoverp >> json_eoverp;
125
126 std::ifstream inputFile_cellOrdering(path+"cellOrdering.json");
127 nlohmann::json json_cellOrdering;
128 inputFile_cellOrdering >> json_cellOrdering;
129
130
131
132 int energyBinCounter = -1;
134 energyBinCounter++;
135 std::stringstream currentEBinStream;
136 currentEBinStream << std::fixed << std::setprecision(0) << thisEBin;
137 std::string currentEBin = currentEBinStream.str();
138 int etaBinCounter = -1;
141 etaBinCounter++;
142 std::stringstream currentEtaBinStream;
143 currentEtaBinStream << std::fixed << std::setprecision(1) << thisEtaBin;
144 std::string currentEtaBin = currentEtaBinStream.str();
146
148
149 std::string currentFirstIntBin = std::to_string(thisFirstIntRegionBin_Int);
150 std::string eOverPBin = "energyBinLowerBound_"+currentEBin+"_etaBinLowerBound_"+currentEtaBin+"_firstIntBinLowerBound_"+currentFirstIntBin;
151 if (json_eoverp.contains(eOverPBin+"_mean")){
152 binnedParameters->
setFudgeMean(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,json_eoverp[eOverPBin+
"_mean"]);
153 ATH_MSG_DEBUG(
"Setting mean for bin " << eOverPBin <<
" to " << json_eoverp[eOverPBin+
"_mean"]);
154 }
155
157 if (json_eoverp.contains(eOverPBin+"_sigma")){
158 binnedParameters->
setFudgeStdDev(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,json_eoverp[eOverPBin+
"_sigma"]);
159 ATH_MSG_DEBUG(
"Setting sigma for bin " << eOverPBin <<
" to " << json_eoverp[eOverPBin+
"_sigma"]);
160 }
165 std::string cellOrderingBin = eOverPBin + "_caloLayer_"+std::to_string(thisLayerBin);
166 if (json_cellOrdering.contains(cellOrderingBin+"_norm1")){
167 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
NORM1,json_cellOrdering[cellOrderingBin+
"_norm1"]);
168 ATH_MSG_DEBUG(
"Setting norm1 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_norm1"]);
169 }
170 else ATH_MSG_DEBUG(
"No norm1 found for bin " << cellOrderingBin);
171 if (json_cellOrdering.contains(cellOrderingBin+"_sigma1")){
172 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
WIDTH1,json_cellOrdering[cellOrderingBin+
"_sigma1"]);
173 ATH_MSG_DEBUG(
"Setting sigma1 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_sigma1"]);
174 }
175 else ATH_MSG_DEBUG(
"No sigma1 found for bin " << cellOrderingBin);
176 if (json_cellOrdering.contains(cellOrderingBin+"_norm2")){
177 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
NORM2,json_cellOrdering[cellOrderingBin+
"_norm2"]);
178 ATH_MSG_DEBUG(
"Setting norm2 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_norm2"]);
179 }
180 else ATH_MSG_DEBUG(
"No norm2 found for bin " << cellOrderingBin);
181 if (json_cellOrdering.contains(cellOrderingBin+"_sigma2")){
182 binnedParameters->
setShapeParam(energyBinCounter,etaBinCounter,thisFirstIntRegionBin,thisLayerBinEnum,
WIDTH2,json_cellOrdering[cellOrderingBin+
"_sigma2"]);
183 ATH_MSG_DEBUG(
"Setting sigma2 for bin " << cellOrderingBin <<
" to " << json_cellOrdering[cellOrderingBin+
"_sigma2"]);
184 }
185 else ATH_MSG_DEBUG(
"No sigma2 found for bin " << cellOrderingBin);
186 }
187 }
188 }
189 }
190 }
191
192 return StatusCode::SUCCESS;
193
194}
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 --------------------------------------—