20 int pid,
int etaMid,
const std::string &FastCaloGANInputFolderName) {
22 std::string xmlFullFileName = FastCaloGANInputFolderName +
"/binning.xml";
24 xmlDocPtr
doc = xmlParseFile(xmlFullFileName.c_str());
25 for (xmlNodePtr nodeRoot =
doc->children; nodeRoot !=
nullptr;
26 nodeRoot = nodeRoot->next) {
27 if (xmlStrEqual(nodeRoot->name, BAD_CAST
"Bins")) {
28 for (xmlNodePtr nodeParticle = nodeRoot->children;
29 nodeParticle !=
nullptr; nodeParticle = nodeParticle->next) {
30 if (xmlStrEqual(nodeParticle->name, BAD_CAST
"Particle")) {
32 atof((
const char *)xmlGetProp(nodeParticle, BAD_CAST
"pid"));
33 for (xmlNodePtr nodeBin = nodeParticle->children; nodeBin !=
nullptr;
34 nodeBin = nodeBin->next) {
36 if (xmlStrEqual(nodeBin->name, BAD_CAST
"Bin")) {
38 atof((
const char *)xmlGetProp(nodeBin, BAD_CAST
"etaMin"));
40 atof((
const char *)xmlGetProp(nodeBin, BAD_CAST
"etaMax"));
42 (
const char *)xmlGetProp(nodeBin, BAD_CAST
"regionId"));
44 if (std::abs(etaMid) > nodeEtaMin && std::abs(etaMid) < nodeEtaMax) {
49 (
const char *)xmlGetProp(nodeBin, BAD_CAST
"ganVersion"));
51 nodeParticle, BAD_CAST
"latentDim"));
53 for (xmlNodePtr nodeLayer = nodeBin->children;
54 nodeLayer !=
nullptr; nodeLayer = nodeLayer->next) {
55 if (xmlStrEqual(nodeLayer->name, BAD_CAST
"Layer")) {
56 std::vector<double> edges;
57 std::string
s((
const char *)xmlGetProp(nodeLayer, BAD_CAST
60 std::istringstream
ss(
s);
63 while (std::getline(
ss, token,
',')) {
64 edges.push_back(
atof(token.c_str()));
67 int binsInAlpha =
atof((
const char *)xmlGetProp(
68 nodeLayer, BAD_CAST
"n_bin_alpha"));
70 (
const char *)xmlGetProp(nodeLayer, BAD_CAST
"id"));
75 int xBins = edges.size() - 1;
80 double minAlpha = -TMath::Pi();
86 binsInAlpha, minAlpha, TMath::Pi());
102 std::string attribute = (
const char *)xmlGetProp(
node, BAD_CAST
name.c_str());
103 bool value = attribute ==
"true" ? true :
false;
119 int layer = element.first;
120 TH2D *
h = &element.second;
122 int xBinNum =
h->GetNbinsX();
123 TAxis *
x = (TAxis *)
h->GetXaxis();
133 for (
int ix = 1; ix <= xBinNum; ++ix) {