File indexing completed on 2023-03-17 10:42:26
0001 #include "CalibMuon/RPCCalibration/interface/RPCCalibSetUp.h"
0002 #include "CalibMuon/RPCCalibration/interface/RPCFakeCalibration.h"
0003 #include "CondFormats/DataRecord/interface/RPCStripNoisesRcd.h"
0004 #include "CondFormats/RPCObjects/interface/RPCStripNoises.h"
0005 #include "DataFormats/Common/interface/Handle.h"
0006 #include "DataFormats/MuonDetId/interface/RPCDetId.h"
0007 #include "FWCore/Framework/interface/ESHandle.h"
0008 #include "FWCore/Framework/interface/Event.h"
0009 #include "FWCore/Framework/interface/EventSetup.h"
0010 #include "FWCore/Framework/interface/Frameworkfwd.h"
0011 #include "FWCore/Framework/interface/MakerMacros.h"
0012 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "FWCore/ServiceRegistry/interface/Service.h"
0015
0016 #include <cmath>
0017 #include <fstream>
0018 #include <iostream>
0019 #include <memory>
0020
0021 RPCFakeCalibration::RPCFakeCalibration(const edm::ParameterSet &pset) : RPCPerformanceESSource(pset) {
0022 edm::LogInfo("RPCFakeCalibration::RPCFakeCalibration");
0023 theRPCCalibSetUp = new RPCCalibSetUp(pset);
0024 }
0025
0026 RPCStripNoises *RPCFakeCalibration::makeNoise() {
0027 RPCStripNoises *obj = new RPCStripNoises();
0028
0029 std::map<int, std::vector<double>>::iterator itc;
0030 for (itc = (theRPCCalibSetUp->_clsMap).begin(); itc != (theRPCCalibSetUp->_clsMap).end(); ++itc) {
0031 for (unsigned int n = 0; n < (itc->second).size(); ++n) {
0032 (obj->v_cls).push_back((itc->second)[n]);
0033 }
0034 }
0035
0036 RPCStripNoises::NoiseItem tipoprova;
0037 for (std::map<uint32_t, std::vector<float>>::iterator it = (theRPCCalibSetUp->_mapDetIdNoise).begin();
0038 it != (theRPCCalibSetUp->_mapDetIdNoise).end();
0039 ++it) {
0040 tipoprova.dpid = it->first;
0041 tipoprova.time = theRPCCalibSetUp->getTime(it->first);
0042
0043 for (unsigned int k = 0; k < 96; ++k) {
0044 tipoprova.noise = ((it->second))[k];
0045 tipoprova.eff = (theRPCCalibSetUp->getEff(it->first))[k];
0046 (obj->v_noises).push_back(tipoprova);
0047 }
0048 }
0049
0050 return obj;
0051 }
0052
0053 RPCClusterSize *RPCFakeCalibration::makeCls() {
0054 RPCClusterSize *obj = new RPCClusterSize();
0055 RPCClusterSize::ClusterSizeItem rpcClsItem;
0056
0057 for (std::map<uint32_t, std::vector<double>>::iterator it = (theRPCCalibSetUp->_mapDetClsMap).begin();
0058 it != (theRPCCalibSetUp->_mapDetClsMap).end();
0059 ++it) {
0060 rpcClsItem.dpid = it->first;
0061
0062 for (unsigned int k = 0; k < 100; k++) {
0063 rpcClsItem.clusterSize = (theRPCCalibSetUp->getCls(it->first))[k];
0064 (obj->v_cls).push_back(rpcClsItem);
0065 }
0066 }
0067 return obj;
0068 }