Skip to content

Commit

Permalink
SiStripNoisesFromDBMiscalibrator: put SiStripNoises object on the sta…
Browse files Browse the repository at this point in the history
…ck, add printDebug statements
  • Loading branch information
mmusich committed Dec 2, 2021
1 parent b305e3a commit daab356
Showing 1 changed file with 37 additions and 25 deletions.
62 changes: 37 additions & 25 deletions CondTools/SiStrip/plugins/SiStripNoisesFromDBMiscalibrator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,19 @@
class SiStripNoisesFromDBMiscalibrator : public edm::one::EDAnalyzer<> {
public:
explicit SiStripNoisesFromDBMiscalibrator(const edm::ParameterSet&);
~SiStripNoisesFromDBMiscalibrator() override;
~SiStripNoisesFromDBMiscalibrator() override = default;

static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

private:
void beginJob() override;
void analyze(const edm::Event&, const edm::EventSetup&) override;
std::unique_ptr<SiStripNoises> getNewObject(const std::map<std::pair<uint32_t, int>, float>& theMap);
std::unique_ptr<SiStripNoises> getNewObject_withDefaults(const std::map<std::pair<uint32_t, int>, float>& theMap,
const float theDefault);
SiStripNoises getNewObject(const std::map<std::pair<uint32_t, int>, float>& theMap);
SiStripNoises getNewObject_withDefaults(const std::map<std::pair<uint32_t, int>, float>& theMap,
const float theDefault);
void endJob() override;

// ----------member data ---------------------------
const uint32_t m_printdebug;
const bool m_fillDefaults;
const bool m_saveMaps;
const std::vector<edm::ParameterSet> m_parameters;
Expand All @@ -83,7 +83,8 @@ class SiStripNoisesFromDBMiscalibrator : public edm::one::EDAnalyzer<> {
// constructors and destructor
//
SiStripNoisesFromDBMiscalibrator::SiStripNoisesFromDBMiscalibrator(const edm::ParameterSet& iConfig)
: m_fillDefaults{iConfig.getUntrackedParameter<bool>("fillDefaults", false)},
: m_printdebug{iConfig.getUntrackedParameter<uint32_t>("printDebug", 1)},
m_fillDefaults{iConfig.getUntrackedParameter<bool>("fillDefaults", false)},
m_saveMaps{iConfig.getUntrackedParameter<bool>("saveMaps", true)},
m_parameters{iConfig.getParameter<std::vector<edm::ParameterSet> >("params")},
fp_{iConfig.getUntrackedParameter<edm::FileInPath>("file",
Expand Down Expand Up @@ -119,8 +120,6 @@ SiStripNoisesFromDBMiscalibrator::SiStripNoisesFromDBMiscalibrator(const edm::Pa
}
}

SiStripNoisesFromDBMiscalibrator::~SiStripNoisesFromDBMiscalibrator() {}

//
// member functions
//
Expand Down Expand Up @@ -213,7 +212,7 @@ void SiStripNoisesFromDBMiscalibrator::analyze(const edm::Event& iEvent, const e
} // loop over APVs
} // loop over DetIds

std::unique_ptr<SiStripNoises> theSiStripNoises;
SiStripNoises theSiStripNoises{};
if (!m_fillDefaults) {
theSiStripNoises = this->getNewObject(theMap);
} else {
Expand All @@ -225,6 +224,7 @@ void SiStripNoisesFromDBMiscalibrator::analyze(const edm::Event& iEvent, const e
SiStripMiscalibrate::Entry noise_ratio;
SiStripMiscalibrate::Entry o_noise;
SiStripMiscalibrate::Entry n_noise;
unsigned int countDetIds(0); // count DetIds to print
for (const auto& element : theMap) {
uint32_t DetId = element.first.first;
int nstrip = element.first.second;
Expand All @@ -242,6 +242,16 @@ void SiStripNoisesFromDBMiscalibrator::analyze(const edm::Event& iEvent, const e
noise_ratio.reset();
o_noise.reset();
n_noise.reset();
countDetIds++;
}

// printout for debug
if (countDetIds < m_printdebug) {
edm::LogPrint("SiStripNoisesFromDBMiscalibrator")
<< "SiStripNoisesFromDBMiscalibrator"
<< "::" << __FUNCTION__ << " detid " << DetId << " \t"
<< " strip " << nstrip << " \t new noise: " << std::setw(5) << std::setprecision(2) << new_noise
<< " \t old noise: " << old_noise << " \t" << std::endl;
}

cachedId = DetId;
Expand All @@ -253,15 +263,17 @@ void SiStripNoisesFromDBMiscalibrator::analyze(const edm::Event& iEvent, const e
// write out the SiStripNoises record
edm::Service<cond::service::PoolDBOutputService> poolDbService;

if (poolDbService.isAvailable())
poolDbService->writeOneIOV(*theSiStripNoises, poolDbService->currentTime(), "SiStripNoisesRcd");
else
if (poolDbService.isAvailable()) {
if (poolDbService->isNewTagRequest("SiStripNoisesRcd")) {
poolDbService->createOneIOV(theSiStripNoises, poolDbService->currentTime(), "SiStripNoisesRcd");
} else {
poolDbService->appendOneIOV(theSiStripNoises, poolDbService->currentTime(), "SiStripNoisesRcd");
}
} else {
throw std::runtime_error("PoolDBService required.");
}
}

// ------------ method called once each job just before starting event loop ------------
void SiStripNoisesFromDBMiscalibrator::beginJob() {}

// ------------ method called once each job just after ending the event loop ------------
void SiStripNoisesFromDBMiscalibrator::endJob() {
if (m_saveMaps) {
Expand Down Expand Up @@ -292,9 +304,9 @@ void SiStripNoisesFromDBMiscalibrator::endJob() {
}

//********************************************************************************//
std::unique_ptr<SiStripNoises> SiStripNoisesFromDBMiscalibrator::getNewObject_withDefaults(
SiStripNoises SiStripNoisesFromDBMiscalibrator::getNewObject_withDefaults(
const std::map<std::pair<uint32_t, int>, float>& theMap, const float theDefault) {
std::unique_ptr<SiStripNoises> obj = std::make_unique<SiStripNoises>();
SiStripNoises obj{};

std::vector<uint32_t> missingDetIds;

Expand All @@ -315,18 +327,18 @@ std::unique_ptr<SiStripNoises> SiStripNoisesFromDBMiscalibrator::getNewObject_wi
<< " not found" << std::endl;

isMissing = true;
obj->setData(theDefault, theSiStripVector);
obj.setData(theDefault, theSiStripVector);

} else {
float noise = theMap.at(index);
obj->setData(noise, theSiStripVector);
obj.setData(noise, theSiStripVector);
}
}

if (isMissing)
missingDetIds.push_back(it.first);

if (!obj->put(it.first, theSiStripVector)) {
if (!obj.put(it.first, theSiStripVector)) {
edm::LogError("SiStripNoisesFromDBMiscalibrator")
<< "[SiStripNoisesFromDBMiscalibrator::analyze] detid already exists" << std::endl;
}
Expand All @@ -353,9 +365,8 @@ std::unique_ptr<SiStripNoises> SiStripNoisesFromDBMiscalibrator::getNewObject_wi
}

//********************************************************************************//
std::unique_ptr<SiStripNoises> SiStripNoisesFromDBMiscalibrator::getNewObject(
const std::map<std::pair<uint32_t, int>, float>& theMap) {
std::unique_ptr<SiStripNoises> obj = std::make_unique<SiStripNoises>();
SiStripNoises SiStripNoisesFromDBMiscalibrator::getNewObject(const std::map<std::pair<uint32_t, int>, float>& theMap) {
SiStripNoises obj{};

uint32_t PreviousDetId = 0;
SiStripNoises::InputVector theSiStripVector;
Expand All @@ -365,7 +376,7 @@ std::unique_ptr<SiStripNoises> SiStripNoisesFromDBMiscalibrator::getNewObject(

if (DetId != PreviousDetId) {
if (!theSiStripVector.empty()) {
if (!obj->put(PreviousDetId, theSiStripVector)) {
if (!obj.put(PreviousDetId, theSiStripVector)) {
edm::LogError("SiStripNoisesFromDBMiscalibrator")
<< "[SiStripNoisesFromDBMiscalibrator::analyze] detid already exists" << std::endl;
}
Expand All @@ -374,7 +385,7 @@ std::unique_ptr<SiStripNoises> SiStripNoisesFromDBMiscalibrator::getNewObject(
theSiStripVector.clear();
PreviousDetId = DetId;
}
obj->setData(noise, theSiStripVector);
obj.setData(noise, theSiStripVector);
}
return obj;
}
Expand All @@ -399,6 +410,7 @@ void SiStripNoisesFromDBMiscalibrator::fillDescriptions(edm::ConfigurationDescri
descScaler.add<double>("smearFactor", 1.0);
desc.addVPSet("params", descScaler, std::vector<edm::ParameterSet>(1));

desc.addUntracked<unsigned int>("printDebug", 1);
desc.addUntracked<bool>("fillDefaults", false);
desc.addUntracked<bool>("saveMaps", true);

Expand Down

0 comments on commit daab356

Please sign in to comment.