Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }