Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
#include "Calibration/Tools/interface/Pi0CalibXMLwriter.h"
#include <string>
#include <cstdio>

Pi0CalibXMLwriter::Pi0CalibXMLwriter(EcalSubdetector subdet) : subdet_(subdet) {
  char filename[128];
  if (subdet_ == EcalEndcap) {
    sprintf(filename, "endcap_iniCalib.xml");
  } else {
    sprintf(filename, "barrel_iniCalib.xml");
  }
  FILENAME = fopen(filename, "w");
  fprintf(FILENAME, "<?xml version=\"1.0\" ?>\n");
  fprintf(FILENAME, "<CalibrationConstants>\n");
  if (subdet == EcalEndcap) {
    fprintf(FILENAME, "<EcalEndcap>\n");
  } else {
    fprintf(FILENAME, "<EcalBarrel>\n");
  }
}

Pi0CalibXMLwriter::Pi0CalibXMLwriter(EcalSubdetector subdet, int loop) : subdet_(subdet), loop_(loop) {
  char filename[128];
  if (subdet_ == EcalEndcap) {
    sprintf(filename, "endcap_calib_loop_%d.xml", loop);
  } else {
    sprintf(filename, "barrel_calib_loop_%d.xml", loop);
  }
  FILENAME = fopen(filename, "w");
  fprintf(FILENAME, "<?xml version=\"1.0\" ?>\n");
  fprintf(FILENAME, "<CalibrationConstants>\n");
  if (subdet == EcalEndcap) {
    fprintf(FILENAME, "<EcalEndcap>\n");
  } else {
    fprintf(FILENAME, "<EcalBarrel>\n");
  }
}

Pi0CalibXMLwriter::~Pi0CalibXMLwriter() {
  if (subdet_ == EcalEndcap) {
    fprintf(FILENAME, "<EcalEndcap>\n");
  } else {
    fprintf(FILENAME, "<EcalBarrel>\n");
  }
  fprintf(FILENAME, "</CalibrationConstants>\n");
  fclose(FILENAME);
}

void Pi0CalibXMLwriter::writeLine(EBDetId const& det, float calib) {
  int eta = det.ieta();
  int phi = det.iphi();
  fprintf(FILENAME, "<Cell eta_index=\"%d\" phi_index=\"%d\" scale_factor=\"%f\"/>\n", eta, phi, calib);
}

void Pi0CalibXMLwriter::writeLine(EEDetId const& det, float calib) {
  int x = det.ix();
  int y = det.iy();
  int z = det.zside() > 0 ? 1 : 0;
  fprintf(FILENAME, "<Cell x_index=\"%d\" y_index=\"%d\" z_index=\"%d\" scale_factor=\"%f\"/>\n", x, y, z, calib);
}