From 1451a57d99a71257809edbeee208623f3723efdd Mon Sep 17 00:00:00 2001 From: Pierre Depasse Date: Thu, 27 Nov 2014 12:20:06 +0100 Subject: [PATCH 1/2] SamplesCorrelation --- .../interface/EcalTrivialConditionRetriever.h | 15 +++++ .../python/EcalTrivialCondRetriever_cfi.py | 17 ++++- .../src/EcalTrivialConditionRetriever.cc | 64 +++++++++++++++++++ CondCore/EcalPlugins/src/plugin.cc | 4 ++ .../interface/EcalSamplesCorrelationRcd.h | 17 +++++ .../src/EcalSamplesCorrelationRcd.cc | 9 +++ .../interface/EcalSamplesCorrelation.h | 35 ++++++++++ .../EcalObjects/src/EcalSamplesCorrelation.cc | 40 ++++++++++++ .../T_EventSetup_EcalSamplesCorrelation.cc | 4 ++ CondFormats/EcalObjects/src/classes.h | 5 +- CondFormats/EcalObjects/src/classes_def.xml | 3 +- .../test/testSerializationEcalObjects.cpp | 1 + .../Ecal/python/EcalSamplesCorrelation.txt | 6 ++ .../Ecal/python/EcalSamplesCorrelation_cfi.py | 13 ++++ .../Ecal/python/EcalTrivialAlignment_cfi.py | 18 ++++-- .../python/copyFileSamplesCorrelation_cfg.py | 44 +++++++++++++ .../copyTrivialEcalSamplesCorrelation_cfg.py | 44 +++++++++++++ CondTools/Ecal/src/EcalDBCopy.cc | 27 ++++++++ 18 files changed, 357 insertions(+), 9 deletions(-) create mode 100644 CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h create mode 100644 CondFormats/DataRecord/src/EcalSamplesCorrelationRcd.cc create mode 100644 CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h create mode 100644 CondFormats/EcalObjects/src/EcalSamplesCorrelation.cc create mode 100644 CondFormats/EcalObjects/src/T_EventSetup_EcalSamplesCorrelation.cc create mode 100644 CondTools/Ecal/python/EcalSamplesCorrelation.txt create mode 100644 CondTools/Ecal/python/EcalSamplesCorrelation_cfi.py create mode 100644 CondTools/Ecal/python/copyFileSamplesCorrelation_cfg.py create mode 100644 CondTools/Ecal/python/copyTrivialEcalSamplesCorrelation_cfg.py diff --git a/CalibCalorimetry/EcalTrivialCondModules/interface/EcalTrivialConditionRetriever.h b/CalibCalorimetry/EcalTrivialCondModules/interface/EcalTrivialConditionRetriever.h index 46db057a32916..c842695b374f6 100644 --- a/CalibCalorimetry/EcalTrivialCondModules/interface/EcalTrivialConditionRetriever.h +++ b/CalibCalorimetry/EcalTrivialCondModules/interface/EcalTrivialConditionRetriever.h @@ -103,6 +103,9 @@ #include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" #include "CondFormats/DataRecord/interface/EcalTimeBiasCorrectionsRcd.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" +#include "CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h" + #include "SimG4CMS/Calo/interface/EnergyResolutionVsLumi.h" #include "SimG4CMS/Calo/interface/EvolutionECAL.h" @@ -175,6 +178,8 @@ class EcalTrivialConditionRetriever : public edm::ESProducer, virtual std::auto_ptr produceEcalTimeBiasCorrections( const EcalTimeBiasCorrectionsRcd& ); + virtual std::auto_ptr produceEcalSamplesCorrelation( const EcalSamplesCorrelationRcd& ); + protected: //overriding from ContextRecordIntervalFinder virtual void setIntervalFor( const edm::eventsetup::EventSetupRecordKey&, @@ -294,6 +299,14 @@ class EcalTrivialConditionRetriever : public edm::ESProducer, std::vector EEtimeCorrAmplitudeBins_; std::vector EEtimeCorrShiftBins_; + std::vector EBG12samplesCorrelation_; + std::vector EBG6samplesCorrelation_; + std::vector EBG1samplesCorrelation_; + std::vector EEG12samplesCorrelation_; + std::vector EEG6samplesCorrelation_; + std::vector EEG1samplesCorrelation_; + std::string SamplesCorrelationFile_; + int nTDCbins_; bool getWeightsFromFile_; @@ -331,6 +344,8 @@ class EcalTrivialConditionRetriever : public edm::ESProducer, bool getLaserAlphaFromFile_; bool producedEcalSampleMask_; bool producedEcalTimeBiasCorrections_; + bool producedEcalSamplesCorrelation_; + bool getSamplesCorrelationFromFile_; int verbose_; // verbosity diff --git a/CalibCalorimetry/EcalTrivialCondModules/python/EcalTrivialCondRetriever_cfi.py b/CalibCalorimetry/EcalTrivialCondModules/python/EcalTrivialCondRetriever_cfi.py index fac608fe520b0..05b0f441cff46 100644 --- a/CalibCalorimetry/EcalTrivialCondModules/python/EcalTrivialCondRetriever_cfi.py +++ b/CalibCalorimetry/EcalTrivialCondModules/python/EcalTrivialCondRetriever_cfi.py @@ -225,6 +225,7 @@ sampleMaskEE = cms.untracked.uint32(1023), producedEcalTimeBiasCorrections = cms.untracked.bool(True), + # trivial # EBtimeCorrAmplitudeBins = cms.untracked.vdouble(0), # EBtimeCorrShiftBins = cms.untracked.vdouble(0), @@ -252,5 +253,19 @@ -0.896, -0.896, -0.896, -0.896, -0.563, -0.392, -0.287, -0.203, -0.135, -0.100, -0.068, -0.050, -0.060, -0.052, -0.055, -0.050, -0.052, -0.056, -0.055, -0.056, -0.048, -0.037, -0.038, -0.037, -0.025, -0.026, -0.024, -0.013, -0.003, 0.005, 0.020, 0.026, 0.008, 0.007, -0.006, 0.024, 0.045, 0.062, 0.085, 0.088 , 0.111 , 0.139, 0.156, 0.176, 0.210, - 0.242, 0.267, 0.301, 0.318, 0.278, 0.287, 0.218, 0.305, 0.245, 0.184, -0.159, -0.095, 0.037) + 0.242, 0.267, 0.301, 0.318, 0.278, 0.287, 0.218, 0.305, 0.245, 0.184, -0.159, -0.095, 0.037), + + producedEcalSamplesCorrelation = cms.untracked.bool(True), + EBG12samplesCorrelation = cms.untracked.vdouble( + 1.00000, 0.71073, 0.55721, 0.46089, 0.40449, 0.35931, 0.33924, 0.32439, 0.31581, 0.30481), + EBG6samplesCorrelation = cms.untracked.vdouble( + 1.00000, 0.70946, 0.58021, 0.49846, 0.45006, 0.41366, 0.39699, 0.38478, 0.37847, 0.37055), + EBG1samplesCorrelation = cms.untracked.vdouble( + 1.00000, 0.73354, 0.64442, 0.58851, 0.55425, 0.53082, 0.51916, 0.51097, 0.50732, 0.50409), + EEG12samplesCorrelation = cms.untracked.vdouble( + 1.00000, 0.71373, 0.44825, 0.30152, 0.21609, 0.14786, 0.11772, 0.10165, 0.09465, 0.08098), + EEG6samplesCorrelation = cms.untracked.vdouble( + 1.00000, 0.71217, 0.47464, 0.34056, 0.26282, 0.20287, 0.17734, 0.16256, 0.15618, 0.14443), + EEG1samplesCorrelation = cms.untracked.vdouble( + 1.00000, 0.72698, 0.62048, 0.55691, 0.51848, 0.49147, 0.47813, 0.47007, 0.46621, 0.46265) ) diff --git a/CalibCalorimetry/EcalTrivialCondModules/src/EcalTrivialConditionRetriever.cc b/CalibCalorimetry/EcalTrivialCondModules/src/EcalTrivialConditionRetriever.cc index 089b042349841..93c552b9a869e 100644 --- a/CalibCalorimetry/EcalTrivialCondModules/src/EcalTrivialConditionRetriever.cc +++ b/CalibCalorimetry/EcalTrivialCondModules/src/EcalTrivialConditionRetriever.cc @@ -105,6 +105,13 @@ EcalTrivialConditionRetriever::EcalTrivialConditionRetriever( const edm::Paramet EEtimeCorrAmplitudeBins_ = ps.getUntrackedParameter< std::vector >("EEtimeCorrAmplitudeBins", std::vector() ); EEtimeCorrShiftBins_ = ps.getUntrackedParameter< std::vector >("EEtimeCorrShiftBins", std::vector() ); + EBG12samplesCorrelation_ = ps.getUntrackedParameter< std::vector >("EBG12samplesCorrelation", std::vector() ); + EBG6samplesCorrelation_ = ps.getUntrackedParameter< std::vector >("EBG6samplesCorrelation", std::vector() ); + EBG1samplesCorrelation_ = ps.getUntrackedParameter< std::vector >("EBG1samplesCorrelation", std::vector() ); + EEG12samplesCorrelation_ = ps.getUntrackedParameter< std::vector >("EEG12samplesCorrelation", std::vector() ); + EEG6samplesCorrelation_ = ps.getUntrackedParameter< std::vector >("EEG6samplesCorrelation", std::vector() ); + EEG1samplesCorrelation_ = ps.getUntrackedParameter< std::vector >("EEG1samplesCorrelation", std::vector() ); + nTDCbins_ = 1; weightsForAsynchronousRunning_ = ps.getUntrackedParameter("weightsForTB",false); @@ -431,6 +438,15 @@ EcalTrivialConditionRetriever::EcalTrivialConditionRetriever( const edm::Paramet setWhatProduced(this, &EcalTrivialConditionRetriever::produceEcalTimeBiasCorrections ); findingRecord(); } + producedEcalSamplesCorrelation_ = ps.getUntrackedParameter("producedEcalSamplesCorrelation", false); + if (producedEcalSamplesCorrelation_) { + setWhatProduced(this, &EcalTrivialConditionRetriever::produceEcalSamplesCorrelation ); + findingRecord(); + getSamplesCorrelationFromFile_ = ps.getUntrackedParameter("getSamplesCorrelationFromFile",false); + if(getSamplesCorrelationFromFile_) { + SamplesCorrelationFile_ = ps.getUntrackedParameter("SamplesCorrelationFile","EcalSamplesCorrelation.txt"); + } + } } EcalTrivialConditionRetriever::~EcalTrivialConditionRetriever() @@ -3153,3 +3169,51 @@ EcalTrivialConditionRetriever::produceEcalTimeBiasCorrections( const EcalTimeBia back_inserter(ipar->EETimeCorrShiftBins)); return ipar; } + +std::auto_ptr +EcalTrivialConditionRetriever::produceEcalSamplesCorrelation( const EcalSamplesCorrelationRcd &) { + if(getSamplesCorrelationFromFile_) { + std::ifstream f; + f.open(edm::FileInPath(SamplesCorrelationFile_).fullPath().c_str()); + float ww; + for(int j = 0; j < 10; ++j) { + f >> ww; + EBG12samplesCorrelation_.push_back(ww); + } + for(int j = 0; j < 10; ++j) { + f >> ww; + EBG6samplesCorrelation_.push_back(ww); + } + for(int j = 0; j < 10; ++j) { + f >> ww; + EBG1samplesCorrelation_.push_back(ww); + } + for(int j = 0; j < 10; ++j) { + f >> ww; + EEG12samplesCorrelation_.push_back(ww); + } + for(int j = 0; j < 10; ++j) { + f >> ww; + EEG6samplesCorrelation_.push_back(ww); + } + for(int j = 0; j < 10; ++j) { + f >> ww; + EEG1samplesCorrelation_.push_back(ww); + } + f.close(); + } + std::auto_ptr ipar = std::auto_ptr( new EcalSamplesCorrelation() ); + copy(EBG12samplesCorrelation_.begin(), EBG12samplesCorrelation_.end(), + back_inserter(ipar->EBG12SamplesCorrelation)); + copy(EBG6samplesCorrelation_.begin(), EBG6samplesCorrelation_.end(), + back_inserter(ipar->EBG6SamplesCorrelation)); + copy(EBG1samplesCorrelation_.begin(), EBG1samplesCorrelation_.end(), + back_inserter(ipar->EBG1SamplesCorrelation)); + copy(EEG12samplesCorrelation_.begin(), EEG12samplesCorrelation_.end(), + back_inserter(ipar->EEG12SamplesCorrelation)); + copy(EEG6samplesCorrelation_.begin(), EEG6samplesCorrelation_.end(), + back_inserter(ipar->EEG6SamplesCorrelation)); + copy(EEG1samplesCorrelation_.begin(), EEG1samplesCorrelation_.end(), + back_inserter(ipar->EEG1SamplesCorrelation)); + return ipar; +} diff --git a/CondCore/EcalPlugins/src/plugin.cc b/CondCore/EcalPlugins/src/plugin.cc index 35ee1752971df..e37c7c145a953 100644 --- a/CondCore/EcalPlugins/src/plugin.cc +++ b/CondCore/EcalPlugins/src/plugin.cc @@ -145,6 +145,8 @@ #include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" #include "CondFormats/DataRecord/interface/EcalTimeBiasCorrectionsRcd.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" +#include "CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h" REGISTER_PLUGIN(EcalPedestalsRcd,EcalPedestals); REGISTER_PLUGIN(EcalWeightXtalGroupsRcd,EcalWeightXtalGroups); @@ -198,3 +200,5 @@ REGISTER_PLUGIN(EcalSRSettingsRcd, EcalSRSettings); REGISTER_PLUGIN(EcalSampleMaskRcd, EcalSampleMask); REGISTER_PLUGIN(EcalTimeBiasCorrectionsRcd, EcalTimeBiasCorrections); + +REGISTER_PLUGIN(EcalSamplesCorrelationRcd, EcalSamplesCorrelation); diff --git a/CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h b/CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h new file mode 100644 index 0000000000000..f15259feb0efa --- /dev/null +++ b/CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h @@ -0,0 +1,17 @@ +#ifndef CondFormats_EcalObjects_EcalSamplesCorrelationRcd_HH +#define CondFormats_EcalObjects_EcalSamplesCorrelationRcd_HH + +// -*- C++ -*- +// +// Author: Jean Fay +// Created: Monday, 24th Nov 2014 +// + +#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" + +class EcalSamplesCorrelationRcd + : public edm::eventsetup::EventSetupRecordImplementation< + EcalSamplesCorrelationRcd> { +}; + +#endif diff --git a/CondFormats/DataRecord/src/EcalSamplesCorrelationRcd.cc b/CondFormats/DataRecord/src/EcalSamplesCorrelationRcd.cc new file mode 100644 index 0000000000000..a8239aa5fdf00 --- /dev/null +++ b/CondFormats/DataRecord/src/EcalSamplesCorrelationRcd.cc @@ -0,0 +1,9 @@ +// -*- C++ -*- + +// Author: Jean Fay +// Created: Monday, 24 Nov 2014 + +#include "CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(EcalSamplesCorrelationRcd); diff --git a/CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h b/CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h new file mode 100644 index 0000000000000..2edcc2f62f4dd --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h @@ -0,0 +1,35 @@ +#ifndef CondFormats_EcalObjects_EcalSamplesCorrelation_HH +#define CondFormats_EcalObjects_EcalSamplesCorrelation_HH + +// -*- C++ -*- +// +// Author: Jean Fay +// Created: Monday 24 Nov 2014 +// + +#include "CondFormats/Serialization/interface/Serializable.h" + +#include "DataFormats/Math/interface/Matrix.h" +#include +#include + +class EcalSamplesCorrelation { + public: + EcalSamplesCorrelation(); + EcalSamplesCorrelation(const EcalSamplesCorrelation& aset); + ~EcalSamplesCorrelation(); + + std::vector EBG12SamplesCorrelation; + std::vector EBG6SamplesCorrelation; + std::vector EBG1SamplesCorrelation; + + std::vector EEG12SamplesCorrelation; + std::vector EEG6SamplesCorrelation; + std::vector EEG1SamplesCorrelation; + + void print(std::ostream& o) const; + + COND_SERIALIZABLE; +}; + +#endif diff --git a/CondFormats/EcalObjects/src/EcalSamplesCorrelation.cc b/CondFormats/EcalObjects/src/EcalSamplesCorrelation.cc new file mode 100644 index 0000000000000..3edd993620683 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalSamplesCorrelation.cc @@ -0,0 +1,40 @@ +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" + +EcalSamplesCorrelation::EcalSamplesCorrelation() {} +EcalSamplesCorrelation::~EcalSamplesCorrelation() {} + +EcalSamplesCorrelation::EcalSamplesCorrelation( + const EcalSamplesCorrelation& aset) {} + +template +static inline void print_vector(std::ostream& o, const std::vector& vect) { + o << "["; + for (std::vector::const_iterator i = vect.begin(); i != vect.end(); + ++i) { + + std::cout << *i << ", "; + } + o << "]"; +} + +void EcalSamplesCorrelation::print(std::ostream& o) const { + o << "EB Gain 12 correlation:"; + print_vector(o, this->EBG12SamplesCorrelation); + o << std::endl; + o << "EB Gain 6 correlation:"; + print_vector(o, this->EBG6SamplesCorrelation); + o << std::endl; + o << "EB Gain 1 correlation:"; + print_vector(o, this->EBG1SamplesCorrelation); + o << std::endl; + + o << "EE Gain 12 correlation:"; + print_vector(o, this->EEG12SamplesCorrelation); + o << std::endl; + o << "EE Gain 6 correlation:"; + print_vector(o, this->EEG6SamplesCorrelation); + o << std::endl; + o << "EE Gain 1 correlation:"; + print_vector(o, this->EEG1SamplesCorrelation); + o << std::endl; +} diff --git a/CondFormats/EcalObjects/src/T_EventSetup_EcalSamplesCorrelation.cc b/CondFormats/EcalObjects/src/T_EventSetup_EcalSamplesCorrelation.cc new file mode 100644 index 0000000000000..3a6baa5fc7919 --- /dev/null +++ b/CondFormats/EcalObjects/src/T_EventSetup_EcalSamplesCorrelation.cc @@ -0,0 +1,4 @@ +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(EcalSamplesCorrelation); diff --git a/CondFormats/EcalObjects/src/classes.h b/CondFormats/EcalObjects/src/classes.h index 88ab860eb68ff..cc250a100bcef 100644 --- a/CondFormats/EcalObjects/src/classes.h +++ b/CondFormats/EcalObjects/src/classes.h @@ -15,6 +15,7 @@ #include "CondFormats/EcalObjects/interface/EcalIntercalibConstantsMC.h" #include "CondFormats/EcalObjects/interface/EcalIntercalibErrors.h" #include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" #include "CondFormats/EcalObjects/interface/EcalTimeCalibConstants.h" #include "CondFormats/EcalObjects/interface/EcalTimeCalibErrors.h" #include "CondFormats/EcalObjects/interface/EcalTimeOffsetConstant.h" @@ -198,6 +199,8 @@ namespace CondFormats_EcalObjects { // std::vector ecalSRSettings_dccNormalizedWeights_1; // float ecalSRSettings_dccNormalizedWeights_elt_2; - EcalTimeBiasCorrections timeBiasCorrections; + EcalTimeBiasCorrections timeBiasCorrections; + + EcalSamplesCorrelation samplesCorrelation; }; } diff --git a/CondFormats/EcalObjects/src/classes_def.xml b/CondFormats/EcalObjects/src/classes_def.xml index 0cdf5f1628836..4b01acc13f161 100644 --- a/CondFormats/EcalObjects/src/classes_def.xml +++ b/CondFormats/EcalObjects/src/classes_def.xml @@ -284,7 +284,8 @@ - + + diff --git a/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp b/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp index bddc61a750697..7a1ddc32d1350 100644 --- a/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp +++ b/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp @@ -121,6 +121,7 @@ int main() testSerialization(); testSerialization(); testSerialization(); + testSerialization(); testSerialization, EcalWeightSet>>(); testSerialization>(); testSerialization>(); diff --git a/CondTools/Ecal/python/EcalSamplesCorrelation.txt b/CondTools/Ecal/python/EcalSamplesCorrelation.txt new file mode 100644 index 0000000000000..3245e38221318 --- /dev/null +++ b/CondTools/Ecal/python/EcalSamplesCorrelation.txt @@ -0,0 +1,6 @@ +1. 0.75 0.64 0.58 0.51 0.45 0.43 0.42 0.41 0.40 +1. 0.75 0.62 0.58 0.51 0.45 0.43 0.42 0.41 0.40 +1. 0.75 0.60 0.58 0.51 0.45 0.43 0.42 0.41 0.40 +1. 0.71 0.44 0.33 0.22 0.15 0.12 0.10 0.09 0.08 +1. 0.71 0.42 0.33 0.22 0.15 0.12 0.10 0.09 0.08 +1. 0.71 0.40 0.33 0.22 0.15 0.12 0.10 0.09 0.08 diff --git a/CondTools/Ecal/python/EcalSamplesCorrelation_cfi.py b/CondTools/Ecal/python/EcalSamplesCorrelation_cfi.py new file mode 100644 index 0000000000000..b2c604e9628a4 --- /dev/null +++ b/CondTools/Ecal/python/EcalSamplesCorrelation_cfi.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +EcalTrivialConditionRetriever = cms.ESSource("EcalTrivialConditionRetriever", + producedEcalClusterLocalContCorrParameters = cms.untracked.bool(True), + producedEcalClusterCrackCorrParameters = cms.untracked.bool(True), + producedEcalClusterEnergyUncertaintyParameters = cms.untracked.bool(True), + producedEcalClusterEnergyCorrectionParameters = cms.untracked.bool(True), + producedEcalClusterEnergyCorrectionObjectSpecificParameters = cms.untracked.bool(True), + + producedEcalSamplesCorrelation = cms.untracked.bool(True), + getSamplesCorrelationFromFile = cms.untracked.bool(True), + SamplesCorrelationFile = cms.untracked.string('CondTools/Ecal/python/EcalSamplesCorrelation.txt') +) diff --git a/CondTools/Ecal/python/EcalTrivialAlignment_cfi.py b/CondTools/Ecal/python/EcalTrivialAlignment_cfi.py index a8b79bc6a22a3..3dba81bdd6c0d 100644 --- a/CondTools/Ecal/python/EcalTrivialAlignment_cfi.py +++ b/CondTools/Ecal/python/EcalTrivialAlignment_cfi.py @@ -1,10 +1,16 @@ import FWCore.ParameterSet.Config as cms EcalTrivialConditionRetriever = cms.ESSource("EcalTrivialConditionRetriever", - getEEAlignmentFromFile = cms.untracked.bool(True), - EEAlignmentFile = cms.untracked.string('CalibCalorimetry/EcalTrivialCondModules/data/EEAlignment_2010.txt'), - getESAlignmentFromFile = cms.untracked.bool(True), - ESAlignmentFile = cms.untracked.string('CalibCalorimetry/EcalTrivialCondModules/data/ESAlignment_2010.txt'), - getEBAlignmentFromFile = cms.untracked.bool(True), - EBAlignmentFile = cms.untracked.string('CalibCalorimetry/EcalTrivialCondModules/data/EBAlignment_2010.txt') + producedEcalClusterLocalContCorrParameters = cms.untracked.bool(True), + producedEcalClusterCrackCorrParameters = cms.untracked.bool(True), + producedEcalClusterEnergyUncertaintyParameters = cms.untracked.bool(True), + producedEcalClusterEnergyCorrectionParameters = cms.untracked.bool(True), + producedEcalClusterEnergyCorrectionObjectSpecificParameters = cms.untracked.bool(True), + + getEEAlignmentFromFile = cms.untracked.bool(True), + EEAlignmentFile = cms.untracked.string('CalibCalorimetry/EcalTrivialCondModules/data/EEAlignment_2010.txt'), + getESAlignmentFromFile = cms.untracked.bool(True), + ESAlignmentFile = cms.untracked.string('CalibCalorimetry/EcalTrivialCondModules/data/ESAlignment_2010.txt'), + getEBAlignmentFromFile = cms.untracked.bool(True), + EBAlignmentFile = cms.untracked.string('CalibCalorimetry/EcalTrivialCondModules/data/EBAlignment_2010.txt') ) diff --git a/CondTools/Ecal/python/copyFileSamplesCorrelation_cfg.py b/CondTools/Ecal/python/copyFileSamplesCorrelation_cfg.py new file mode 100644 index 0000000000000..aa6e510884e63 --- /dev/null +++ b/CondTools/Ecal/python/copyFileSamplesCorrelation_cfg.py @@ -0,0 +1,44 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("TEST") +process.load("EcalSamplesCorrelation_cfi") + +process.load("CondCore.DBCommon.CondDBCommon_cfi") +process.CondDBCommon.connect = 'sqlite_file:EcalSamplesCorrelationFile.db' + +process.MessageLogger = cms.Service("MessageLogger", + debugModules = cms.untracked.vstring('*'), + destinations = cms.untracked.vstring('cout') +) + +process.source = cms.Source("EmptyIOVSource", + firstValue = cms.uint64(1), + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + interval = cms.uint64(1) +) + +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + process.CondDBCommon, + toPut = cms.VPSet( + cms.PSet( + record = cms.string('EcalSamplesCorrelationRcd'), +# tag = cms.string('EcalSamplesCorrelation_mc') + tag = cms.string('EcalSamplesCorrelationFile') + ) + ) +) + +process.dbCopy = cms.EDAnalyzer("EcalDBCopy", + timetype = cms.string('runnumber'), + toCopy = cms.VPSet( + cms.PSet( + record = cms.string('EcalSamplesCorrelationRcd'), + container = cms.string('EcalSamplesCorrelation') + ) + ) +) + +process.prod = cms.EDAnalyzer("EcalTrivialObjectAnalyzer") + +process.p = cms.Path(process.prod*process.dbCopy) diff --git a/CondTools/Ecal/python/copyTrivialEcalSamplesCorrelation_cfg.py b/CondTools/Ecal/python/copyTrivialEcalSamplesCorrelation_cfg.py new file mode 100644 index 0000000000000..97e2966e4f708 --- /dev/null +++ b/CondTools/Ecal/python/copyTrivialEcalSamplesCorrelation_cfg.py @@ -0,0 +1,44 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("TEST") +process.load("CalibCalorimetry.EcalTrivialCondModules.EcalTrivialCondRetriever_cfi") + +process.load("CondCore.DBCommon.CondDBCommon_cfi") +process.CondDBCommon.connect = 'sqlite_file:EcalSamplesCorrelation.db' + +process.MessageLogger = cms.Service("MessageLogger", + debugModules = cms.untracked.vstring('*'), + destinations = cms.untracked.vstring('cout') +) + +process.source = cms.Source("EmptyIOVSource", + firstValue = cms.uint64(1), + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + interval = cms.uint64(1) +) + +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + process.CondDBCommon, + toPut = cms.VPSet( + cms.PSet( + record = cms.string('EcalSamplesCorrelationRcd'), +# tag = cms.string('EcalSamplesCorrelation_mc') + tag = cms.string('EcalSamplesCorrelation') + ) + ) +) + +process.dbCopy = cms.EDAnalyzer("EcalDBCopy", + timetype = cms.string('runnumber'), + toCopy = cms.VPSet( + cms.PSet( + record = cms.string('EcalSamplesCorrelationRcd'), + container = cms.string('EcalSamplesCorrelation') + ) + ) +) + +process.prod = cms.EDAnalyzer("EcalTrivialObjectAnalyzer") + +process.p = cms.Path(process.prod*process.dbCopy) diff --git a/CondTools/Ecal/src/EcalDBCopy.cc b/CondTools/Ecal/src/EcalDBCopy.cc index f823f4d3f7a7f..c4a48ebc9656f 100644 --- a/CondTools/Ecal/src/EcalDBCopy.cc +++ b/CondTools/Ecal/src/EcalDBCopy.cc @@ -73,6 +73,9 @@ #include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" #include "CondFormats/DataRecord/interface/EcalTimeBiasCorrectionsRcd.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" +#include "CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h" + #include EcalDBCopy::EcalDBCopy(const edm::ParameterSet& iConfig) : @@ -183,6 +186,8 @@ bool EcalDBCopy::shouldCopy(const edm::EventSetup& evtSetup, std::string contain cacheID = evtSetup.get().cacheIdentifier(); } else if (container == "EcalTimeBiasCorrections") { cacheID = evtSetup.get().cacheIdentifier(); + } else if (container == "EcalSamplesCorrelation") { + cacheID = evtSetup.get().cacheIdentifier(); } else { @@ -442,6 +447,28 @@ else if (container == "EcalIntercalibConstantsMC") { vect = obj->EETimeCorrShiftBins; copy(vect.begin(), vect.end(), back_inserter(bias_->EETimeCorrShiftBins)); dbOutput->writeOne(bias_, dbOutput->beginOfTime(), "EcalTimeBiasCorrectionsRcd"); + + } else if (container == "EcalSamplesCorrelation") { + edm::ESHandle handle; + evtSetup.get().get(handle); + const EcalSamplesCorrelation* obj = handle.product(); + std::cout << "SamplesCorrelation pointer is: "<< obj<< std::endl; + EcalSamplesCorrelation *correl_; + correl_ = new EcalSamplesCorrelation(); + std::vector vect = obj->EBG12SamplesCorrelation; + copy(vect.begin(), vect.end(), back_inserter(correl_->EBG12SamplesCorrelation)); + vect = obj->EBG6SamplesCorrelation; + copy(vect.begin(), vect.end(), back_inserter(correl_->EBG6SamplesCorrelation)); + vect = obj->EBG1SamplesCorrelation; + copy(vect.begin(), vect.end(), back_inserter(correl_->EBG1SamplesCorrelation)); + vect = obj->EEG12SamplesCorrelation; + copy(vect.begin(), vect.end(), back_inserter(correl_->EEG12SamplesCorrelation)); + vect = obj->EEG6SamplesCorrelation; + copy(vect.begin(), vect.end(), back_inserter(correl_->EEG6SamplesCorrelation)); + vect = obj->EEG1SamplesCorrelation; + copy(vect.begin(), vect.end(), back_inserter(correl_->EEG1SamplesCorrelation)); + dbOutput->writeOne(correl_, dbOutput->beginOfTime(), "EcalSamplesCorrelationRcd"); + } else { throw cms::Exception("Unknown container"); } From e65ad17f4224bd135680898ffb8f6765ddcc0148 Mon Sep 17 00:00:00 2001 From: Pierre Depasse Date: Thu, 27 Nov 2014 16:42:59 +0100 Subject: [PATCH 2/2] CondDBv2 --- CondFormats/EcalObjects/src/headers.h | 2 ++ CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/CondFormats/EcalObjects/src/headers.h b/CondFormats/EcalObjects/src/headers.h index cefd9e9b0bd42..793ca5f131086 100644 --- a/CondFormats/EcalObjects/src/headers.h +++ b/CondFormats/EcalObjects/src/headers.h @@ -1,4 +1,6 @@ #include "CondFormats/EcalObjects/src/classes.h" +#include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" #include "CondFormats/External/interface/EcalDetID.h" #include "CondFormats/External/interface/SMatrix.h" diff --git a/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp b/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp index 7a1ddc32d1350..a7aa47b3437af 100644 --- a/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp +++ b/CondFormats/EcalObjects/test/testSerializationEcalObjects.cpp @@ -121,6 +121,7 @@ int main() testSerialization(); testSerialization(); testSerialization(); + testSerialization(); testSerialization(); testSerialization, EcalWeightSet>>(); testSerialization>();