Skip to content

Commit 787113c

Browse files
authored
Merge pull request cms-sw#33956 from Dr15Jones/removeParameterSetFromEcalObjects
Removed ParameterSet usage from CondFormats/EcalObjects
2 parents e46794f + f09f862 commit 787113c

File tree

7 files changed

+59
-33
lines changed

7 files changed

+59
-33
lines changed

CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
#include <array>
55

6-
#include "FWCore/ParameterSet/interface/ParameterSet.h"
76
#include "FWCore/Utilities/interface/propagate_const_array.h"
87
#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h"
98

@@ -22,7 +21,10 @@ class EcalMultifitParametersGPU {
2221
};
2322

2423
#ifndef __CUDACC__
25-
EcalMultifitParametersGPU(edm::ParameterSet const&);
24+
EcalMultifitParametersGPU(std::vector<double> const& amplitudeEB,
25+
std::vector<double> const& amplitudeEE,
26+
std::vector<double> const& timeEB,
27+
std::vector<double> const& timeEE);
2628

2729
~EcalMultifitParametersGPU() = default;
2830

CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
#include <array>
55

6-
#include "FWCore/ParameterSet/interface/ParameterSet.h"
76
#include "FWCore/Utilities/interface/propagate_const_array.h"
87
#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h"
98

@@ -22,11 +21,19 @@ class EcalRecHitParametersGPU {
2221
};
2322

2423
#ifndef __CUDACC__
25-
EcalRecHitParametersGPU(edm::ParameterSet const &);
24+
struct DBStatus {
25+
DBStatus(int flag, std::vector<uint32_t> status) : recoflagbit{flag}, dbstatus(std::move(status)) {}
26+
int recoflagbit; //must be a EcalRecHit::Flags
27+
std::vector<uint32_t> dbstatus; //must contain EcalChannelStatusCode::Code
28+
};
29+
30+
/// channelStatusToBeExcluded must contain EcalChannelStatusCode::Code
31+
EcalRecHitParametersGPU(std::vector<int> const& channelStatusToBeExcluded,
32+
std::vector<DBStatus> const& flagsMapDBReco);
2633

2734
~EcalRecHitParametersGPU() = default;
2835

29-
Product const &getProduct(cudaStream_t) const;
36+
Product const& getProduct(cudaStream_t) const;
3037

3138
using intvec = std::reference_wrapper<std::vector<int, cms::cuda::HostAllocator<int>> const>;
3239
using uint32vec = std::reference_wrapper<std::vector<uint32_t, cms::cuda::HostAllocator<uint32_t>> const>;

CondFormats/EcalObjects/interface/EcalSRSettings.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
#include <string>
1515
#include <ostream>
1616

17-
#include "FWCore/ParameterSet/interface/ParameterSet.h"
18-
1917
/** Class to hold ECAL Selective readout settings.
2018
* Up to CMSSW release 3.8.X, selective readout emulation settings was done from
2119
* CMSSW configuration file. From 3.8.X configuration is stored in condition database.

CondFormats/EcalObjects/src/EcalMultifitParametersGPU.cc

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33
#include "FWCore/Utilities/interface/typelookup.h"
44
#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h"
55

6-
EcalMultifitParametersGPU::EcalMultifitParametersGPU(edm::ParameterSet const& ps) {
7-
auto const& amplitudeFitParametersEB = ps.getParameter<std::vector<double>>("EBamplitudeFitParameters");
8-
auto const& amplitudeFitParametersEE = ps.getParameter<std::vector<double>>("EEamplitudeFitParameters");
9-
auto const& timeFitParametersEB = ps.getParameter<std::vector<double>>("EBtimeFitParameters");
10-
auto const& timeFitParametersEE = ps.getParameter<std::vector<double>>("EEtimeFitParameters");
11-
6+
EcalMultifitParametersGPU::EcalMultifitParametersGPU(std::vector<double> const& amplitudeFitParametersEB,
7+
std::vector<double> const& amplitudeFitParametersEE,
8+
std::vector<double> const& timeFitParametersEB,
9+
std::vector<double> const& timeFitParametersEE) {
1210
amplitudeFitParametersEB_.resize(amplitudeFitParametersEB.size());
1311
amplitudeFitParametersEE_.resize(amplitudeFitParametersEE.size());
1412
timeFitParametersEB_.resize(timeFitParametersEB.size());

CondFormats/EcalObjects/src/EcalRecHitParametersGPU.cc

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,22 @@
22

33
#include "FWCore/Utilities/interface/typelookup.h"
44
#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h"
5-
#include "CommonTools/Utils/interface/StringToEnumValue.h"
65
#include "CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h"
76
#include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
87

9-
EcalRecHitParametersGPU::EcalRecHitParametersGPU(edm::ParameterSet const& ps) {
10-
auto const& channelStatusToBeExcluded = StringToEnumValue<EcalChannelStatusCode::Code>(
11-
ps.getParameter<std::vector<std::string>>("ChannelStatusToBeExcluded"));
12-
8+
EcalRecHitParametersGPU::EcalRecHitParametersGPU(std::vector<int> const& channelStatusToBeExcluded,
9+
std::vector<DBStatus> const& flagsMapDBReco) {
1310
channelStatusToBeExcluded_.resize(channelStatusToBeExcluded.size());
1411
std::copy(channelStatusToBeExcluded.begin(), channelStatusToBeExcluded.end(), channelStatusToBeExcluded_.begin());
1512

16-
// https://github.com/cms-sw/cmssw/blob/266e21cfc9eb409b093e4cf064f4c0a24c6ac293/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitWorkerSimple.cc
17-
18-
// Translate string representation of flagsMapDBReco into enum values
19-
const edm::ParameterSet& p = ps.getParameter<edm::ParameterSet>("flagsMapDBReco");
20-
std::vector<std::string> recoflagbitsStrings = p.getParameterNames();
21-
22-
for (unsigned int i = 0; i != recoflagbitsStrings.size(); ++i) {
23-
EcalRecHit::Flags recoflagbit = (EcalRecHit::Flags)StringToEnumValue<EcalRecHit::Flags>(recoflagbitsStrings[i]);
24-
std::vector<std::string> dbstatus_s = p.getParameter<std::vector<std::string>>(recoflagbitsStrings[i]);
25-
for (unsigned int j = 0; j != dbstatus_s.size(); ++j) {
26-
EcalChannelStatusCode::Code dbstatus =
27-
(EcalChannelStatusCode::Code)StringToEnumValue<EcalChannelStatusCode::Code>(dbstatus_s[j]);
13+
for (auto const& flagInfo : flagsMapDBReco) {
14+
EcalRecHit::Flags recoflagbit = static_cast<EcalRecHit::Flags>(flagInfo.recoflagbit);
15+
for (auto v : flagInfo.dbstatus) {
16+
EcalChannelStatusCode::Code dbstatus = static_cast<EcalChannelStatusCode::Code>(v);
2817
expanded_v_DB_reco_flags_.push_back(dbstatus);
2918
}
3019

31-
expanded_Sizes_v_DB_reco_flags_.push_back(dbstatus_s.size());
20+
expanded_Sizes_v_DB_reco_flags_.push_back(flagInfo.dbstatus.size());
3221
expanded_flagbit_v_DB_reco_flags_.push_back(recoflagbit);
3322
}
3423
}

RecoLocalCalo/EcalRecProducers/plugins/EcalMultifitParametersGPUESProducer.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,11 @@ void EcalMultifitParametersGPUESProducer::fillDescriptions(edm::ConfigurationDes
7272

7373
std::unique_ptr<EcalMultifitParametersGPU> EcalMultifitParametersGPUESProducer::produce(
7474
JobConfigurationGPURecord const&) {
75-
return std::make_unique<EcalMultifitParametersGPU>(pset_);
75+
return std::make_unique<EcalMultifitParametersGPU>(
76+
pset_.getParameter<std::vector<double>>("EBamplitudeFitParameters"),
77+
pset_.getParameter<std::vector<double>>("EEamplitudeFitParameters"),
78+
pset_.getParameter<std::vector<double>>("EBtimeFitParameters"),
79+
pset_.getParameter<std::vector<double>>("EEtimeFitParameters"));
7680
}
7781

7882
DEFINE_FWK_EVENTSETUP_SOURCE(EcalMultifitParametersGPUESProducer);

RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitParametersGPUESProducer.cc

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <utility>
44

55
#include "CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h"
6+
#include "CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h"
67
#include "FWCore/Framework/interface/ESProducer.h"
78
#include "FWCore/Framework/interface/ESProductHost.h"
89
#include "FWCore/Framework/interface/ESTransientHandle.h"
@@ -15,6 +16,8 @@
1516
#include "FWCore/Utilities/interface/ReusableObjectHolder.h"
1617
#include "FWCore/Utilities/interface/typelookup.h"
1718
#include "HeterogeneousCore/CUDACore/interface/JobConfigurationGPURecord.h"
19+
#include "CommonTools/Utils/interface/StringToEnumValue.h"
20+
#include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
1821

1922
class EcalRecHitParametersGPUESProducer : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder {
2023
public:
@@ -77,7 +80,32 @@ void EcalRecHitParametersGPUESProducer::fillDescriptions(edm::ConfigurationDescr
7780
}
7881

7982
std::unique_ptr<EcalRecHitParametersGPU> EcalRecHitParametersGPUESProducer::produce(JobConfigurationGPURecord const&) {
80-
return std::make_unique<EcalRecHitParametersGPU>(pset_);
83+
auto const& channelStatusToBeExcluded = StringToEnumValue<EcalChannelStatusCode::Code>(
84+
pset_.getParameter<std::vector<std::string>>("ChannelStatusToBeExcluded"));
85+
86+
// https://github.com/cms-sw/cmssw/blob/266e21cfc9eb409b093e4cf064f4c0a24c6ac293/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitWorkerSimple.cc
87+
88+
// Translate string representation of flagsMapDBReco into enum values
89+
const edm::ParameterSet& p = pset_.getParameter<edm::ParameterSet>("flagsMapDBReco");
90+
std::vector<std::string> recoflagbitsStrings = p.getParameterNames();
91+
92+
std::vector<EcalRecHitParametersGPU::DBStatus> status;
93+
status.reserve(recoflagbitsStrings.size());
94+
for (auto const& recoflagbitsString : recoflagbitsStrings) {
95+
EcalRecHit::Flags recoflagbit = (EcalRecHit::Flags)StringToEnumValue<EcalRecHit::Flags>(recoflagbitsString);
96+
std::vector<std::string> dbstatus_s = p.getParameter<std::vector<std::string>>(recoflagbitsString);
97+
98+
std::vector<uint32_t> db_reco_flags;
99+
db_reco_flags.reserve(dbstatus_s.size());
100+
for (auto const& dbstatusString : dbstatus_s) {
101+
EcalChannelStatusCode::Code dbstatus =
102+
(EcalChannelStatusCode::Code)StringToEnumValue<EcalChannelStatusCode::Code>(dbstatusString);
103+
db_reco_flags.push_back(dbstatus);
104+
}
105+
status.emplace_back(static_cast<int>(recoflagbit), db_reco_flags);
106+
}
107+
108+
return std::make_unique<EcalRecHitParametersGPU>(channelStatusToBeExcluded, status);
81109
}
82110

83111
DEFINE_FWK_EVENTSETUP_SOURCE(EcalRecHitParametersGPUESProducer);

0 commit comments

Comments
 (0)