File indexing completed on 2024-04-06 11:59:28
0001 #include "Geometry/Records/interface/IdealGeometryRecord.h"
0002 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0003 #include "Geometry/Records/interface/IdealGeometryRecord.h"
0004 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
0005 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0006 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
0007 #include "CondFormats/DataRecord/interface/EcalIntercalibConstantsRcd.h"
0008 #include "Calibration/Tools/interface/calibXMLwriter.h"
0009 #include "CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibTools.h"
0010 #include "CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibMapEcal.h"
0011 #include "CalibCalorimetry/CaloMiscalibTools/interface/MiscalibReaderFromXMLEcalBarrel.h"
0012 #include "CalibCalorimetry/CaloMiscalibTools/interface/MiscalibReaderFromXMLEcalEndcap.h"
0013 #include "CondFormats/EcalObjects/interface/EcalIntercalibConstants.h"
0014 #include "FWCore/Framework/interface/EventSetup.h"
0015 #include "FWCore/Framework/interface/ESHandle.h"
0016 #include "Calibration/Tools/interface/matrixSaver.h"
0017 #include "Calibration/Tools/interface/BlockSolver.h"
0018
0019
0020
0021
0022 #include "TH2.h"
0023 #include "TProfile.h"
0024 #include "TH1.h"
0025 #include "TFile.h"
0026
0027 #include "CLHEP/Matrix/GenMatrix.h"
0028 #include "CLHEP/Matrix/Matrix.h"
0029 #include "CLHEP/Matrix/Vector.h"
0030
0031 #define PI_GRECO 3.14159265
0032
0033 inline int etaShifter(const int etaOld) {
0034 if (etaOld < 0)
0035 return etaOld + 85;
0036 else if (etaOld > 0)
0037 return etaOld + 84;
0038 assert(false);
0039 }
0040
0041
0042
0043 int main(int argc, char *argv[]) {
0044 if (argc < 3)
0045 return 1;
0046 std::string chi2MtrFile = argv[0];
0047 std::string chi2VtrFile = argv[1];
0048 std::string cfgFile = argv[2];
0049
0050 matrixSaver leggo;
0051
0052 CLHEP::HepMatrix *chi2Mtr = dynamic_cast<CLHEP::HepMatrix *>(leggo.getMatrix(chi2MtrFile));
0053 CLHEP::HepVector *chi2Vtr = dynamic_cast<CLHEP::HepVector *>(leggo.getMatrix(chi2VtrFile));
0054
0055 double min = 0.5;
0056 double max = 1.5;
0057 bool usingBlockSolver = false;
0058 int region = 0;
0059
0060 CLHEP::HepVector result = CLHEP::solve(*chi2Mtr, *chi2Vtr);
0061 if (result.normsq() < min * chi2Mtr->num_row() || result.normsq() > max * chi2Mtr->num_row()) {
0062 if (usingBlockSolver) {
0063 edm::LogWarning("IML") << "using blocSlover " << std::endl;
0064 BlockSolver()(*chi2Mtr, *chi2Vtr, result);
0065 } else {
0066 edm::LogWarning("IML") << "coeff out of range " << std::endl;
0067 for (int i = 0; i < chi2Vtr->num_row(); ++i)
0068 result[i] = 1.;
0069 }
0070 }
0071
0072 unsigned int numberOfElements = chi2Mtr->num_row();
0073 std::map<unsigned int, float> coefficients;
0074 for (unsigned int i = 0; i < numberOfElements; ++i)
0075 coefficients[i] = result[i];
0076
0077 if (region == 0)
0078 {
0079
0080
0081 } else if (region == -1)
0082 {
0083 } else
0084 {
0085 }
0086
0087
0088 return 0;
0089 }