From dff13d2a544472ac3b0ca84dbc16bc6f49afa30d Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Mon, 13 Jun 2022 16:27:15 +0200 Subject: [PATCH 1/8] Add 2D maps for comparing CPU and GPU quantities --- .../python/ecalGpuTask_cfi.py | 294 ++++++++++++++++++ DQM/EcalMonitorTasks/src/GpuTask.cc | 52 ++++ 2 files changed, 346 insertions(+) diff --git a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py index ac958c8de2018..00464b816baa4 100644 --- a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py @@ -100,6 +100,48 @@ ), description = cms.untracked.string('GPU-CPU difference of digi amplitude for individual digi samples (1-10)') ), + # Digi 2D plots + Digi2D = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi nDigis gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('CPU Digis per Event') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('GPU Digis per Event') + ), + description = cms.untracked.string('Number of Digis per Event. GPU vs CPU comparison') + ), + Digi2DAmplitude = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi amplitude sample %(sample)s gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + multi = cms.untracked.PSet( + sample = cms.untracked.vint32(digiSamples_) + ), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(4096), + title = cms.untracked.string('CPU ADC Counts') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(4096), + title = cms.untracked.string('GPU ADC Counts') + ), + description = cms.untracked.string('Digi amplitudes for individual digi samples (1-10). GPU vs CPU comparison') + ), # CPU UncalibRecHit UncalibCpu = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit nHits cpu'), @@ -463,6 +505,181 @@ ), description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit flag to be propagated to RecHit') ), + # UncalibRecHit 2D plots + Uncalib2D = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit nHits gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('CPU Uncalibrated Rec Hits per Event') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('GPU Uncalibrated Rec Hits per Event') + ), + description = cms.untracked.string('Number of Uncalibrated Rec Hits per Event. GPU vs CPU comparison') + ), + Uncalib2DAmp = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitude gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('CPU Amplitude') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('GPU Amplitude') + ), + description = cms.untracked.string('Uncalibrated Rec Hit reconstructed amplitude. GPU vs CPU comparison') + ), + Uncalib2DAmpError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitudeError gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(200), + title = cms.untracked.string('CPU Amplitude Error') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(200), + title = cms.untracked.string('GPU Amplitude Error') + ), + description = cms.untracked.string('Uncalibrated Rec Hit reconstructed amplitude uncertainty. GPU vs CPU comparison') + ), + Uncalib2DPedestal = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit pedestal gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(1000), + title = cms.untracked.string('CPU Pedestal') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(1000), + title = cms.untracked.string('GPU Pedestal') + ), + description = cms.untracked.string('Uncalibrated Rec Hit reconstructed pedestal. GPU vs CPU comparison') + ), + Uncalib2DJitter = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitter gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-5), + high = cms.untracked.double(5), + title = cms.untracked.string('CPU Jitter') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-5), + high = cms.untracked.double(5), + title = cms.untracked.string('GPU Jitter') + ), + description = cms.untracked.string('Uncalibrated Rec Hit reconstructed time jitter. GPU vs CPU comparison') + ), + Uncalib2DJitterError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitterError gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(25), + low = cms.untracked.double(0), + high = cms.untracked.double(0.25), # If you edit this, also change 10k bin in GpuTask.cc + title = cms.untracked.string('CPU Jitter Error') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(25), + low = cms.untracked.double(0), + high = cms.untracked.double(0.25), # If you edit this, also change 10k bin in GpuTask.cc + title = cms.untracked.string('GPU Jitter Error') + ), + description = cms.untracked.string('Uncalibrated Rec Hit reconstructed time jitter uncertainty. GPU vs CPU comparison. 10000 is special value, shown in last bin') + ), + Uncalib2DChi2 = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit chi2 gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(200), + title = cms.untracked.string('CPU Chi2') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(200), + title = cms.untracked.string('GPU Chi2') + ), + description = cms.untracked.string('Uncalibrated Rec Hit chi2 of the pulse. GPU vs CPU comparison') + ), + Uncalib2DOOTAmp = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + multi = cms.untracked.PSet( + OOTAmp = cms.untracked.vint32(uncalibOOTAmps_) + ), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(500), + title = cms.untracked.string('CPU OOT Amplitude') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(500), + title = cms.untracked.string('GPU OOT Amplitude') + ), + description = cms.untracked.string('Uncalibrated Rec Hit out-of-time reconstructed amplitude. GPU vs CPU comparison. Indicies go from 0 to 9, with event BX at index 5. Index 4 == BX-1, index 6 == BX+1, etc.') + ), + Uncalib2DFlags = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit flags gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(64), + low = cms.untracked.double(0), + high = cms.untracked.double(64), + title = cms.untracked.string('CPU Flags') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(64), + low = cms.untracked.double(0), + high = cms.untracked.double(64), + title = cms.untracked.string('GPU Flags') + ), + description = cms.untracked.string('Uncalibrated Rec Hit flag to be propagated to RecHit. GPU vs CPU comparison') + ), # CPU RecHit RecHitCpu = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit nHits cpu'), @@ -621,6 +838,83 @@ title = cms.untracked.string('GPU-CPU Flags') ), description = cms.untracked.string('GPU-CPU differnece of Rec Hit Flags') + ), + # RecHit 2D plots + RecHit2D = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit nHits gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('CPU Rec Hits per Event') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5000), + title = cms.untracked.string('GPU Rec Hits per Event') + ), + description = cms.untracked.string('Number of Rec Hits per Event. GPU vs CPU comparison') + ), + RecHit2DEnergy = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit energy gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('CPU Energy (Gev)') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('GPU Energy (Gev)') + ), + description = cms.untracked.string('Rec Hit Energy (GeV). GPU vs CPU comparison') + ), + RecHit2DTime = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit time gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-25.0), + high = cms.untracked.double(25.0), + title = cms.untracked.string('CPU Time (ns)') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-25.0), + high = cms.untracked.double(25.0), + title = cms.untracked.string('GPU Time (ns)') + ), + description = cms.untracked.string('Rec Hit Time. GPU vs CPU comparison') + ), + RecHit2DFlags = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit flags gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(1024), + title = cms.untracked.string('CPU Flags') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(1024), + title = cms.untracked.string('GPU Flags') + ), + description = cms.untracked.string('Rec Hit Flags. GPU vs CPU comparison') ) ) ) diff --git a/DQM/EcalMonitorTasks/src/GpuTask.cc b/DQM/EcalMonitorTasks/src/GpuTask.cc index 5e14fd92fa0a1..64bb96f2b8be3 100644 --- a/DQM/EcalMonitorTasks/src/GpuTask.cc +++ b/DQM/EcalMonitorTasks/src/GpuTask.cc @@ -42,8 +42,12 @@ namespace ecaldqm { uncalibOOTAmps_ = params.getUntrackedParameter >("uncalibOOTAmps"); if (!runGpuTask_) { + MEs_.erase(std::string("DigiCpu")); MEs_.erase(std::string("DigiCpuAmplitude")); + MEs_.erase(std::string("DigiGpuCpu")); MEs_.erase(std::string("DigiGpuCpuAmplitude")); + MEs_.erase(std::string("Digi2D")); + MEs_.erase(std::string("Digi2DAmplitude")); MEs_.erase(std::string("UncalibCpu")); MEs_.erase(std::string("UncalibCpuAmp")); MEs_.erase(std::string("UncalibCpuAmpError")); @@ -62,6 +66,15 @@ namespace ecaldqm { MEs_.erase(std::string("UncalibGpuCpuChi2")); MEs_.erase(std::string("UncalibGpuCpuOOTAmp")); MEs_.erase(std::string("UncalibGpuCpuFlags")); + MEs_.erase(std::string("Uncalib2D")); + MEs_.erase(std::string("Uncalib2DAmp")); + MEs_.erase(std::string("Uncalib2DAmpError")); + MEs_.erase(std::string("Uncalib2DPedestal")); + MEs_.erase(std::string("Uncalib2DJitter")); + MEs_.erase(std::string("Uncalib2DJitterError")); + MEs_.erase(std::string("Uncalib2DChi2")); + MEs_.erase(std::string("Uncalib2DOOTAmp")); + MEs_.erase(std::string("Uncalib2DFlags")); MEs_.erase(std::string("RecHitCpu")); MEs_.erase(std::string("RecHitCpuEnergy")); MEs_.erase(std::string("RecHitCpuTime")); @@ -70,8 +83,13 @@ namespace ecaldqm { MEs_.erase(std::string("RecHitGpuCpuEnergy")); MEs_.erase(std::string("RecHitGpuCpuTime")); MEs_.erase(std::string("RecHitGpuCpuFlags")); + MEs_.erase(std::string("RecHit2D")); + MEs_.erase(std::string("RecHit2DEnergy")); + MEs_.erase(std::string("RecHit2DTime")); + MEs_.erase(std::string("RecHit2DFlags")); } if (!gpuOnlyPlots_) { + MEs_.erase(std::string("DigiGpu")); MEs_.erase(std::string("DigiGpuAmplitude")); MEs_.erase(std::string("RecHitGpu")); MEs_.erase(std::string("RecHitGpuEnergy")); @@ -146,6 +164,8 @@ namespace ecaldqm { void GpuTask::runOnGpuDigis(DigiCollection const& gpuDigis, Collections collection) { MESet& meDigiGpuCpu(MEs_.at("DigiGpuCpu")); MESet& meDigiGpuCpuAmplitude(MEs_.at("DigiGpuCpuAmplitude")); + MESet& meDigi2D(MEs_.at("Digi2D")); + MESet& meDigi2DAmplitude(MEs_.at("Digi2DAmplitude")); int iSubdet(collection == kEBGpuDigi ? EcalBarrel : EcalEndcap); @@ -175,6 +195,7 @@ namespace ecaldqm { if (gpuOnlyPlots_) { MESet& meDigiGpu(MEs_.at("DigiGpu")); meDigiGpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuDigis); + meDigi2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuDigis, nGpuDigis); } for (auto const& gpuDigi : gpuDigis) { @@ -192,11 +213,13 @@ namespace ecaldqm { for (unsigned iSample = 0; iSample < ecalPh1::sampleSize; iSample++) { static_cast(meDigiGpuCpuAmplitude).use(iSample); + static_cast(meDigi2DAmplitude).use(iSample); int gpuAmp(gpuDataFrame.sample(iSample).adc()); int cpuAmp(cpuDataFrame.sample(iSample).adc()); meDigiGpuCpuAmplitude.fill(getEcalDQMSetupObjects(), iSubdet, gpuAmp - cpuAmp); + meDigi2DAmplitude.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmp, gpuAmp); if (gpuOnlyPlots_) { MESet& meDigiGpuAmplitude(MEs_.at("DigiGpuAmplitude")); @@ -269,6 +292,15 @@ namespace ecaldqm { MESet& meUncalibGpuCpuChi2(MEs_.at("UncalibGpuCpuChi2")); MESet& meUncalibGpuCpuOOTAmp(MEs_.at("UncalibGpuCpuOOTAmp")); MESet& meUncalibGpuCpuFlags(MEs_.at("UncalibGpuCpuFlags")); + MESet& meUncalib2D(MEs_.at("Uncalib2D")); + MESet& meUncalib2DAmp(MEs_.at("Uncalib2DAmp")); + MESet& meUncalib2DAmpError(MEs_.at("Uncalib2DAmpError")); + MESet& meUncalib2DPedestal(MEs_.at("Uncalib2DPedestal")); + MESet& meUncalib2DJitter(MEs_.at("Uncalib2DJitter")); + MESet& meUncalib2DJitterError(MEs_.at("Uncalib2DJitterError")); + MESet& meUncalib2DChi2(MEs_.at("Uncalib2DChi2")); + MESet& meUncalib2DOOTAmp(MEs_.at("Uncalib2DOOTAmp")); + MESet& meUncalib2DFlags(MEs_.at("Uncalib2DFlags")); int iSubdet(collection == kEBGpuUncalibRecHit ? EcalBarrel : EcalEndcap); @@ -286,6 +318,7 @@ namespace ecaldqm { unsigned nCpuHits(cpuHits->size()); meUncalibGpuCpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits - nCpuHits); + meUncalib2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuHits, nGpuHits); if (gpuOnlyPlots_) { MESet& meUncalibGpu(MEs_.at("UncalibGpu")); @@ -332,6 +365,14 @@ namespace ecaldqm { meUncalibGpuCpuChi2.fill(getEcalDQMSetupObjects(), iSubdet, gpuChi2 - cpuChi2); meUncalibGpuCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags - cpuFlags); + meUncalib2DAmp.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmp, gpuAmp); + meUncalib2DAmpError.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmpError, gpuAmpError); + meUncalib2DPedestal.fill(getEcalDQMSetupObjects(), iSubdet, cpuPedestal, gpuPedestal); + meUncalib2DJitter.fill(getEcalDQMSetupObjects(), iSubdet, cpuJitter, gpuJitter); + meUncalib2DJitterError.fill(getEcalDQMSetupObjects(), iSubdet, cpuJitterError, gpuJitterError); + meUncalib2DChi2.fill(getEcalDQMSetupObjects(), iSubdet, cpuChi2, gpuChi2); + meUncalib2DFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags, gpuFlags); + if (gpuOnlyPlots_) { MESet& meUncalibGpuAmp(MEs_.at("UncalibGpuAmp")); MESet& meUncalibGpuAmpError(MEs_.at("UncalibGpuAmpError")); @@ -352,12 +393,14 @@ namespace ecaldqm { for (unsigned iAmp = 0; iAmp < uncalibOOTAmps_.size(); iAmp++) { static_cast(meUncalibGpuCpuOOTAmp).use(iAmp); + static_cast(meUncalib2DOOTAmp).use(iAmp); // Get corresponding OOT Amplitude int gpuOOTAmp(gpuHit.outOfTimeAmplitude(uncalibOOTAmps_[iAmp])); int cpuOOTAmp(cpuItr->outOfTimeAmplitude(uncalibOOTAmps_[iAmp])); meUncalibGpuCpuOOTAmp.fill(getEcalDQMSetupObjects(), iSubdet, gpuOOTAmp - cpuOOTAmp); + meUncalib2DOOTAmp.fill(getEcalDQMSetupObjects(), iSubdet, cpuOOTAmp, gpuOOTAmp); if (gpuOnlyPlots_) { MESet& meUncalibGpuOOTAmp(MEs_.at("UncalibGpuOOTAmp")); @@ -401,6 +444,10 @@ namespace ecaldqm { MESet& meRecHitGpuCpuEnergy(MEs_.at("RecHitGpuCpuEnergy")); MESet& meRecHitGpuCpuTime(MEs_.at("RecHitGpuCpuTime")); MESet& meRecHitGpuCpuFlags(MEs_.at("RecHitGpuCpuFlags")); + MESet& meRecHit2D(MEs_.at("RecHit2D")); + MESet& meRecHit2DEnergy(MEs_.at("RecHit2DEnergy")); + MESet& meRecHit2DTime(MEs_.at("RecHit2DTime")); + MESet& meRecHit2DFlags(MEs_.at("RecHit2DFlags")); int iSubdet(collection == kEBGpuRecHit ? EcalBarrel : EcalEndcap); @@ -417,6 +464,7 @@ namespace ecaldqm { unsigned nCpuHits(cpuHits->size()); meRecHitGpuCpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits - nCpuHits); + meRecHit2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuHits, nGpuHits); if (gpuOnlyPlots_) { MESet& meRecHitGpu(MEs_.at("RecHitGpu")); @@ -445,6 +493,10 @@ namespace ecaldqm { meRecHitGpuCpuTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuTime - cpuTime); meRecHitGpuCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags - cpuFlags); + meRecHit2DEnergy.fill(getEcalDQMSetupObjects(), iSubdet, cpuEnergy, gpuEnergy); + meRecHit2DTime.fill(getEcalDQMSetupObjects(), iSubdet, cpuTime, gpuTime); + meRecHit2DFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags, gpuFlags); + if (gpuOnlyPlots_) { MESet& meRecHitGpuEnergy(MEs_.at("RecHitGpuEnergy")); MESet& meRecHitGpuTime(MEs_.at("RecHitGpuTime")); From 8530b0121279723e4f9f30cc3d584ab3c2ffb619 Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Mon, 13 Jun 2022 17:31:22 +0200 Subject: [PATCH 2/8] Create subdirectories for each ECAL object's plots --- .../python/ecalGpuTask_cfi.py | 120 +++++++++--------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py index 00464b816baa4..9c42e686cfa12 100644 --- a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py @@ -12,7 +12,7 @@ MEs = cms.untracked.PSet( # CPU Digi DigiCpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi nDigis cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi nDigis cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -25,7 +25,7 @@ description = cms.untracked.string('Number of CPU Digis per Event') ), DigiCpuAmplitude = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi amplitude sample %(sample)s cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi amplitude sample %(sample)s cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -42,7 +42,7 @@ ), # GPU Digi (optional) DigiGpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi nDigis gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi nDigis gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -55,7 +55,7 @@ description = cms.untracked.string('Number of GPU Digis per Event') ), DigiGpuAmplitude = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi amplitude sample %(sample)s gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi amplitude sample %(sample)s gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -72,7 +72,7 @@ ), # Digi GPU-CPU Difference DigiGpuCpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi nDigis gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi nDigis gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -85,7 +85,7 @@ description = cms.untracked.string('GPU-CPU difference of number of Digis per Event') ), DigiGpuCpuAmplitude = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi amplitude sample %(sample)s gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi amplitude sample %(sample)s gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -102,7 +102,7 @@ ), # Digi 2D plots Digi2D = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi nDigis gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi nDigis gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -121,7 +121,7 @@ description = cms.untracked.string('Number of Digis per Event. GPU vs CPU comparison') ), Digi2DAmplitude = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT digi amplitude sample %(sample)s gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/Digis/%(prefix)sGT digi amplitude sample %(sample)s gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -144,7 +144,7 @@ ), # CPU UncalibRecHit UncalibCpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit nHits cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit nHits cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -157,7 +157,7 @@ description = cms.untracked.string('Number of CPU Uncalibrated Rec Hits per Event') ), UncalibCpuAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitude cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitude cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -170,7 +170,7 @@ description = cms.untracked.string('CPU Uncalibrated Rec Hit reconstructed amplitude') ), UncalibCpuAmpError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitudeError cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitudeError cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -183,7 +183,7 @@ description = cms.untracked.string('CPU Uncalibrated Rec Hit reconstructed amplitude uncertainty') ), UncalibCpuPedestal = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit pedestal cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit pedestal cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -196,7 +196,7 @@ description = cms.untracked.string('CPU Uncalibrated Rec Hit reconstructed pedestal') ), UncalibCpuJitter = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitter cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitter cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -209,7 +209,7 @@ description = cms.untracked.string('CPU Uncalibrated Rec Hit reconstructed time jitter') ), UncalibCpuJitterError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitterError cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitterError cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -222,7 +222,7 @@ description = cms.untracked.string('CPU Uncalibrated Rec Hit reconstructed time jitter uncertainty. 10000 is special value, shown in last bin') ), UncalibCpuChi2 = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit chi2 cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit chi2 cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -235,7 +235,7 @@ description = cms.untracked.string('CPU Uncalibrated Rec Hit chi2 of the pulse') ), UncalibCpuOOTAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -251,7 +251,7 @@ description = cms.untracked.string('CPU Uncalibrated Rec Hit out-of-time reconstructed amplitude. Indicies go from 0 to 9, with event BX at index 5. Index 4 == BX-1, index 6 == BX+1, etc.') ), UncalibCpuFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit flags cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit flags cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -265,7 +265,7 @@ ), # GPU UncalibRecHit (optional) UncalibGpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit nHits gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit nHits gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -278,7 +278,7 @@ description = cms.untracked.string('Number of GPU Uncalibrated Rec Hits per Event') ), UncalibGpuAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitude gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitude gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -291,7 +291,7 @@ description = cms.untracked.string('GPU Uncalibrated Rec Hit reconstructed amplitude') ), UncalibGpuAmpError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitudeError gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitudeError gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -304,7 +304,7 @@ description = cms.untracked.string('GPU Uncalibrated Rec Hit reconstructed amplitude uncertainty') ), UncalibGpuPedestal = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit pedestal gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit pedestal gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -317,7 +317,7 @@ description = cms.untracked.string('GPU Uncalibrated Rec Hit reconstructed pedestal') ), UncalibGpuJitter = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitter gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitter gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -330,7 +330,7 @@ description = cms.untracked.string('GPU Uncalibrated Rec Hit reconstructed time jitter') ), UncalibGpuJitterError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitterError gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitterError gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -343,7 +343,7 @@ description = cms.untracked.string('GPU Uncalibrated Rec Hit reconstructed time jitter uncertainty. 10000 is special value, shown in last bin') ), UncalibGpuChi2 = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit chi2 gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit chi2 gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -356,7 +356,7 @@ description = cms.untracked.string('GPU Uncalibrated Rec Hit chi2 of the pulse') ), UncalibGpuOOTAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -372,7 +372,7 @@ description = cms.untracked.string('GPU Uncalibrated Rec Hit out-of-time reconstructed amplitude. Indicies go from 0 to 9, with event BX at index 5. Index 4 == BX-1, index 6 == BX+1, etc.') ), UncalibGpuFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit flags gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit flags gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -386,7 +386,7 @@ ), # UncalibRecHit GPU-CPU Difference UncalibGpuCpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit nHits gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit nHits gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -399,7 +399,7 @@ description = cms.untracked.string('GPU-CPU difference of number of Uncalibrated Rec Hits per Event') ), UncalibGpuCpuAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitude gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitude gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -412,7 +412,7 @@ description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit reconstructed amplitude') ), UncalibGpuCpuAmpError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitudeError gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitudeError gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -425,7 +425,7 @@ description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit reconstructed amplitude uncertainty') ), UncalibGpuCpuPedestal = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit pedestal gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit pedestal gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -438,7 +438,7 @@ description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit reconstructed pedestal') ), UncalibGpuCpuJitter = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitter gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitter gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -451,7 +451,7 @@ description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit reconstructed time jitter') ), UncalibGpuCpuJitterError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitterError gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitterError gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -464,7 +464,7 @@ description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit reconstructed time jitter uncertainty. 10000 is special value, shown in last bin') ), UncalibGpuCpuChi2 = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit chi2 gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit chi2 gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -477,7 +477,7 @@ description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit chi2 of the pulse') ), UncalibGpuCpuOOTAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -493,7 +493,7 @@ description = cms.untracked.string('GPU-CPU difference of Uncalibrated Rec Hit out-of-time reconstructed amplitude. Indicies go from 0 to 9, with event BX at index 5. Index 4 == BX-1, index 6 == BX+1, etc.') ), UncalibGpuCpuFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit flags gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit flags gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -507,7 +507,7 @@ ), # UncalibRecHit 2D plots Uncalib2D = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit nHits gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit nHits gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -526,7 +526,7 @@ description = cms.untracked.string('Number of Uncalibrated Rec Hits per Event. GPU vs CPU comparison') ), Uncalib2DAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitude gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitude gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -545,7 +545,7 @@ description = cms.untracked.string('Uncalibrated Rec Hit reconstructed amplitude. GPU vs CPU comparison') ), Uncalib2DAmpError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit amplitudeError gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit amplitudeError gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -564,7 +564,7 @@ description = cms.untracked.string('Uncalibrated Rec Hit reconstructed amplitude uncertainty. GPU vs CPU comparison') ), Uncalib2DPedestal = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit pedestal gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit pedestal gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -583,7 +583,7 @@ description = cms.untracked.string('Uncalibrated Rec Hit reconstructed pedestal. GPU vs CPU comparison') ), Uncalib2DJitter = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitter gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitter gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -602,7 +602,7 @@ description = cms.untracked.string('Uncalibrated Rec Hit reconstructed time jitter. GPU vs CPU comparison') ), Uncalib2DJitterError = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit jitterError gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit jitterError gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -621,7 +621,7 @@ description = cms.untracked.string('Uncalibrated Rec Hit reconstructed time jitter uncertainty. GPU vs CPU comparison. 10000 is special value, shown in last bin') ), Uncalib2DChi2 = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit chi2 gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit chi2 gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -640,7 +640,7 @@ description = cms.untracked.string('Uncalibrated Rec Hit chi2 of the pulse. GPU vs CPU comparison') ), Uncalib2DOOTAmp = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit OOT amplitude %(OOTAmp)s gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -662,7 +662,7 @@ description = cms.untracked.string('Uncalibrated Rec Hit out-of-time reconstructed amplitude. GPU vs CPU comparison. Indicies go from 0 to 9, with event BX at index 5. Index 4 == BX-1, index 6 == BX+1, etc.') ), Uncalib2DFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT uncalib rec hit flags gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/UncalibRecHits/%(prefix)sGT uncalib rec hit flags gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -682,7 +682,7 @@ ), # CPU RecHit RecHitCpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit nHits cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit nHits cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -695,7 +695,7 @@ description = cms.untracked.string('Number of CPU Rec Hits per Event') ), RecHitCpuEnergy = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit energy cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energy cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -708,7 +708,7 @@ description = cms.untracked.string('CPU Rec Hit Energy (GeV)') ), RecHitCpuTime = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit time cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit time cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -721,7 +721,7 @@ description = cms.untracked.string('CPU Rec Hit Time') ), RecHitCpuFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit flags cpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit flags cpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -735,7 +735,7 @@ ), # GPU RecHit (optional) RecHitGpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit nHits gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit nHits gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -748,7 +748,7 @@ description = cms.untracked.string('Number of GPU Rec Hits per Event') ), RecHitGpuEnergy = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit energy gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energy gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -761,7 +761,7 @@ description = cms.untracked.string('GPU Rec Hit Energy (GeV)') ), RecHitGpuTime = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit time gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit time gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -774,7 +774,7 @@ description = cms.untracked.string('GPU Rec Hit Time') ), RecHitGpuFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit flags gpu'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit flags gpu'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -788,7 +788,7 @@ ), # RecHit GPU-CPU Difference RecHitGpuCpu = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit nHits gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit nHits gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -801,7 +801,7 @@ description = cms.untracked.string('GPU-CPU difference of number of total Rec Hits per Event') ), RecHitGpuCpuEnergy = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit energy gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energy gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -814,7 +814,7 @@ description = cms.untracked.string('GPU-CPU difference of Rec Hit Energy (GeV)') ), RecHitGpuCpuTime = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit time gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit time gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -827,7 +827,7 @@ description = cms.untracked.string('GPU-CPU difference of Rec Hit Time') ), RecHitGpuCpuFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit flags gpu-cpu diff'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit flags gpu-cpu diff'), kind = cms.untracked.string('TH1F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -841,7 +841,7 @@ ), # RecHit 2D plots RecHit2D = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit nHits gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit nHits gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -860,7 +860,7 @@ description = cms.untracked.string('Number of Rec Hits per Event. GPU vs CPU comparison') ), RecHit2DEnergy = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit energy gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energy gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -879,7 +879,7 @@ description = cms.untracked.string('Rec Hit Energy (GeV). GPU vs CPU comparison') ), RecHit2DTime = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit time gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit time gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), @@ -898,7 +898,7 @@ description = cms.untracked.string('Rec Hit Time. GPU vs CPU comparison') ), RecHit2DFlags = cms.untracked.PSet( - path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/%(prefix)sGT rec hit flags gpu-cpu map2D'), + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit flags gpu-cpu map2D'), kind = cms.untracked.string('TH2F'), otype = cms.untracked.string('Ecal2P'), btype = cms.untracked.string('User'), From 0046019d9bcc851c743abc00f314ccbd278ae7e4 Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Mon, 13 Jun 2022 19:16:18 +0200 Subject: [PATCH 3/8] Add flags to customize what plots are enabled --- DQM/EcalMonitorTasks/interface/GpuTask.h | 12 +- .../python/ecalGpuTask_cfi.py | 16 +- DQM/EcalMonitorTasks/src/GpuTask.cc | 200 ++++++++++++------ 3 files changed, 162 insertions(+), 66 deletions(-) diff --git a/DQM/EcalMonitorTasks/interface/GpuTask.h b/DQM/EcalMonitorTasks/interface/GpuTask.h index 1667bc2352a33..94745d43a7019 100644 --- a/DQM/EcalMonitorTasks/interface/GpuTask.h +++ b/DQM/EcalMonitorTasks/interface/GpuTask.h @@ -33,7 +33,17 @@ namespace ecaldqm { void setParams(edm::ParameterSet const&) override; bool runGpuTask_; - bool gpuOnlyPlots_; + bool enableDigi_; + bool enableUncalib_; + bool enableRecHit_; + + bool digi1D_; + bool digi2D_; + bool uncalib1D_; + bool uncalib2D_; + bool rechit1D_; + bool rechit2D_; + std::vector uncalibOOTAmps_; EBDigiCollection const* EBCpuDigis_; diff --git a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py index 9c42e686cfa12..33a5aab647075 100644 --- a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py @@ -6,7 +6,21 @@ ecalGpuTask = cms.untracked.PSet( params = cms.untracked.PSet( runGpuTask = cms.untracked.bool(False), - gpuOnlyPlots = cms.untracked.bool(True), + + # Default plots for each object are 1D CPU distributions and 1D GPU-CPU diff + enableDigi = cms.untracked.bool(True), + enableUncalib = cms.untracked.bool(True), + enableRecHit = cms.untracked.bool(True), + + # 1D flags enable distributions of GPU values + # 2D flags enable 2D comparison maps + digi1D = cms.untracked.bool(True), + digi2D = cms.untracked.bool(True), + uncalib1D = cms.untracked.bool(True), + uncalib2D = cms.untracked.bool(True), + rechit1D = cms.untracked.bool(True), + rechit2D = cms.untracked.bool(True), + uncalibOOTAmps = cms.untracked.vint32(uncalibOOTAmps_) ), MEs = cms.untracked.PSet( diff --git a/DQM/EcalMonitorTasks/src/GpuTask.cc b/DQM/EcalMonitorTasks/src/GpuTask.cc index 64bb96f2b8be3..6750d499ad7eb 100644 --- a/DQM/EcalMonitorTasks/src/GpuTask.cc +++ b/DQM/EcalMonitorTasks/src/GpuTask.cc @@ -13,7 +13,15 @@ namespace ecaldqm { GpuTask::GpuTask() : DQWorkerTask(), runGpuTask_(false), - gpuOnlyPlots_(false), + enableDigi_(false), + enableUncalib_(false), + enableRecHit_(false), + digi1D_(false), + digi2D_(false), + uncalib1D_(false), + uncalib2D_(false), + rechit1D_(false), + rechit2D_(false), EBCpuDigis_(nullptr), EECpuDigis_(nullptr), EBCpuUncalibRecHits_(nullptr), @@ -37,17 +45,29 @@ namespace ecaldqm { void GpuTask::setParams(edm::ParameterSet const& params) { runGpuTask_ = params.getUntrackedParameter("runGpuTask"); - // Only makes sense to run GPU-only plots if we're running at all... - gpuOnlyPlots_ = runGpuTask_ && params.getUntrackedParameter("gpuOnlyPlots"); + + // Enabling objects set to false if runGpuTask_ is false + enableDigi_ = runGpuTask_ && params.getUntrackedParameter("enableDigi"); + enableUncalib_ = runGpuTask_ && params.getUntrackedParameter("enableUncalib"); + enableRecHit_ = runGpuTask_ && params.getUntrackedParameter("enableRecHit"); + + // Flags set to false if corresponding type is not enabled + digi1D_ = enableDigi_ && params.getUntrackedParameter("digi1D"); + digi2D_ = enableDigi_ && params.getUntrackedParameter("digi2D"); + uncalib1D_ = enableUncalib_ && params.getUntrackedParameter("uncalib1D"); + uncalib2D_ = enableUncalib_ && params.getUntrackedParameter("uncalib2D"); + rechit1D_ = enableRecHit_ && params.getUntrackedParameter("rechit1D"); + rechit2D_ = enableRecHit_ && params.getUntrackedParameter("rechit2D"); + uncalibOOTAmps_ = params.getUntrackedParameter >("uncalibOOTAmps"); - if (!runGpuTask_) { + if (!enableDigi_) { MEs_.erase(std::string("DigiCpu")); MEs_.erase(std::string("DigiCpuAmplitude")); MEs_.erase(std::string("DigiGpuCpu")); MEs_.erase(std::string("DigiGpuCpuAmplitude")); - MEs_.erase(std::string("Digi2D")); - MEs_.erase(std::string("Digi2DAmplitude")); + } + if (!enableUncalib_) { MEs_.erase(std::string("UncalibCpu")); MEs_.erase(std::string("UncalibCpuAmp")); MEs_.erase(std::string("UncalibCpuAmpError")); @@ -66,15 +86,8 @@ namespace ecaldqm { MEs_.erase(std::string("UncalibGpuCpuChi2")); MEs_.erase(std::string("UncalibGpuCpuOOTAmp")); MEs_.erase(std::string("UncalibGpuCpuFlags")); - MEs_.erase(std::string("Uncalib2D")); - MEs_.erase(std::string("Uncalib2DAmp")); - MEs_.erase(std::string("Uncalib2DAmpError")); - MEs_.erase(std::string("Uncalib2DPedestal")); - MEs_.erase(std::string("Uncalib2DJitter")); - MEs_.erase(std::string("Uncalib2DJitterError")); - MEs_.erase(std::string("Uncalib2DChi2")); - MEs_.erase(std::string("Uncalib2DOOTAmp")); - MEs_.erase(std::string("Uncalib2DFlags")); + } + if (!enableRecHit_) { MEs_.erase(std::string("RecHitCpu")); MEs_.erase(std::string("RecHitCpuEnergy")); MEs_.erase(std::string("RecHitCpuTime")); @@ -83,18 +96,12 @@ namespace ecaldqm { MEs_.erase(std::string("RecHitGpuCpuEnergy")); MEs_.erase(std::string("RecHitGpuCpuTime")); MEs_.erase(std::string("RecHitGpuCpuFlags")); - MEs_.erase(std::string("RecHit2D")); - MEs_.erase(std::string("RecHit2DEnergy")); - MEs_.erase(std::string("RecHit2DTime")); - MEs_.erase(std::string("RecHit2DFlags")); } - if (!gpuOnlyPlots_) { + if (!digi1D_) { MEs_.erase(std::string("DigiGpu")); MEs_.erase(std::string("DigiGpuAmplitude")); - MEs_.erase(std::string("RecHitGpu")); - MEs_.erase(std::string("RecHitGpuEnergy")); - MEs_.erase(std::string("RecHitGpuTime")); - MEs_.erase(std::string("RecHitGpuFlags")); + } + if (!uncalib1D_) { MEs_.erase(std::string("UncalibGpu")); MEs_.erase(std::string("UncalibGpuAmp")); MEs_.erase(std::string("UncalibGpuAmpError")); @@ -105,6 +112,33 @@ namespace ecaldqm { MEs_.erase(std::string("UncalibGpuOOTAmp")); MEs_.erase(std::string("UncalibGpuFlags")); } + if (!rechit1D_) { + MEs_.erase(std::string("RecHitGpu")); + MEs_.erase(std::string("RecHitGpuEnergy")); + MEs_.erase(std::string("RecHitGpuTime")); + MEs_.erase(std::string("RecHitGpuFlags")); + } + if (!digi2D_) { + MEs_.erase(std::string("Digi2D")); + MEs_.erase(std::string("Digi2DAmplitude")); + } + if (!uncalib2D_) { + MEs_.erase(std::string("Uncalib2D")); + MEs_.erase(std::string("Uncalib2DAmp")); + MEs_.erase(std::string("Uncalib2DAmpError")); + MEs_.erase(std::string("Uncalib2DPedestal")); + MEs_.erase(std::string("Uncalib2DJitter")); + MEs_.erase(std::string("Uncalib2DJitterError")); + MEs_.erase(std::string("Uncalib2DChi2")); + MEs_.erase(std::string("Uncalib2DOOTAmp")); + MEs_.erase(std::string("Uncalib2DFlags")); + } + if (!rechit2D_) { + MEs_.erase(std::string("RecHit2D")); + MEs_.erase(std::string("RecHit2DEnergy")); + MEs_.erase(std::string("RecHit2DTime")); + MEs_.erase(std::string("RecHit2DFlags")); + } } bool GpuTask::filterRunType(short const* runType) { @@ -129,6 +163,9 @@ namespace ecaldqm { template void GpuTask::runOnCpuDigis(DigiCollection const& cpuDigis, Collections collection) { + // Return if not enabled + if (!enableDigi_) return; + MESet& meDigiCpu(MEs_.at("DigiCpu")); MESet& meDigiCpuAmplitude(MEs_.at("DigiCpuAmplitude")); @@ -162,10 +199,11 @@ namespace ecaldqm { template void GpuTask::runOnGpuDigis(DigiCollection const& gpuDigis, Collections collection) { + // Return if not enabled + if (!enableDigi_) return; + MESet& meDigiGpuCpu(MEs_.at("DigiGpuCpu")); MESet& meDigiGpuCpuAmplitude(MEs_.at("DigiGpuCpuAmplitude")); - MESet& meDigi2D(MEs_.at("Digi2D")); - MESet& meDigi2DAmplitude(MEs_.at("Digi2DAmplitude")); int iSubdet(collection == kEBGpuDigi ? EcalBarrel : EcalEndcap); @@ -192,9 +230,13 @@ namespace ecaldqm { meDigiGpuCpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuDigis - nCpuDigis); - if (gpuOnlyPlots_) { + if (digi1D_) { MESet& meDigiGpu(MEs_.at("DigiGpu")); meDigiGpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuDigis); + } + + if (digi2D_) { + MESet& meDigi2D(MEs_.at("Digi2D")); meDigi2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuDigis, nGpuDigis); } @@ -213,24 +255,31 @@ namespace ecaldqm { for (unsigned iSample = 0; iSample < ecalPh1::sampleSize; iSample++) { static_cast(meDigiGpuCpuAmplitude).use(iSample); - static_cast(meDigi2DAmplitude).use(iSample); int gpuAmp(gpuDataFrame.sample(iSample).adc()); int cpuAmp(cpuDataFrame.sample(iSample).adc()); meDigiGpuCpuAmplitude.fill(getEcalDQMSetupObjects(), iSubdet, gpuAmp - cpuAmp); - meDigi2DAmplitude.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmp, gpuAmp); - if (gpuOnlyPlots_) { + if (digi1D_) { MESet& meDigiGpuAmplitude(MEs_.at("DigiGpuAmplitude")); static_cast(meDigiGpuAmplitude).use(iSample); meDigiGpuAmplitude.fill(getEcalDQMSetupObjects(), iSubdet, gpuAmp); } + + if (digi2D_) { + MESet& meDigi2DAmplitude(MEs_.at("Digi2DAmplitude")); + static_cast(meDigi2DAmplitude).use(iSample); + meDigi2DAmplitude.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmp, gpuAmp); + } } } } void GpuTask::runOnCpuUncalibRecHits(EcalUncalibratedRecHitCollection const& cpuHits, Collections collection) { + // Return if not enabled + if (!enableUncalib_) return; + MESet& meUncalibCpu(MEs_.at("UncalibCpu")); MESet& meUncalibCpuAmp(MEs_.at("UncalibCpuAmp")); MESet& meUncalibCpuAmpError(MEs_.at("UncalibCpuAmpError")); @@ -283,6 +332,9 @@ namespace ecaldqm { } void GpuTask::runOnGpuUncalibRecHits(EcalUncalibratedRecHitCollection const& gpuHits, Collections collection) { + // Return if not enabled + if (!enableUncalib_) return; + MESet& meUncalibGpuCpu(MEs_.at("UncalibGpuCpu")); MESet& meUncalibGpuCpuAmp(MEs_.at("UncalibGpuCpuAmp")); MESet& meUncalibGpuCpuAmpError(MEs_.at("UncalibGpuCpuAmpError")); @@ -292,15 +344,6 @@ namespace ecaldqm { MESet& meUncalibGpuCpuChi2(MEs_.at("UncalibGpuCpuChi2")); MESet& meUncalibGpuCpuOOTAmp(MEs_.at("UncalibGpuCpuOOTAmp")); MESet& meUncalibGpuCpuFlags(MEs_.at("UncalibGpuCpuFlags")); - MESet& meUncalib2D(MEs_.at("Uncalib2D")); - MESet& meUncalib2DAmp(MEs_.at("Uncalib2DAmp")); - MESet& meUncalib2DAmpError(MEs_.at("Uncalib2DAmpError")); - MESet& meUncalib2DPedestal(MEs_.at("Uncalib2DPedestal")); - MESet& meUncalib2DJitter(MEs_.at("Uncalib2DJitter")); - MESet& meUncalib2DJitterError(MEs_.at("Uncalib2DJitterError")); - MESet& meUncalib2DChi2(MEs_.at("Uncalib2DChi2")); - MESet& meUncalib2DOOTAmp(MEs_.at("Uncalib2DOOTAmp")); - MESet& meUncalib2DFlags(MEs_.at("Uncalib2DFlags")); int iSubdet(collection == kEBGpuUncalibRecHit ? EcalBarrel : EcalEndcap); @@ -318,13 +361,17 @@ namespace ecaldqm { unsigned nCpuHits(cpuHits->size()); meUncalibGpuCpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits - nCpuHits); - meUncalib2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuHits, nGpuHits); - if (gpuOnlyPlots_) { + if (uncalib1D_) { MESet& meUncalibGpu(MEs_.at("UncalibGpu")); meUncalibGpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits); } + if (uncalib2D_) { + MESet& meUncalib2D(MEs_.at("Uncalib2D")); + meUncalib2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuHits, nGpuHits); + } + for (auto const& gpuHit : gpuHits) { // Find CpuUncalibRecHit with matching DetId DetId gpuId(gpuHit.id()); @@ -365,15 +412,7 @@ namespace ecaldqm { meUncalibGpuCpuChi2.fill(getEcalDQMSetupObjects(), iSubdet, gpuChi2 - cpuChi2); meUncalibGpuCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags - cpuFlags); - meUncalib2DAmp.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmp, gpuAmp); - meUncalib2DAmpError.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmpError, gpuAmpError); - meUncalib2DPedestal.fill(getEcalDQMSetupObjects(), iSubdet, cpuPedestal, gpuPedestal); - meUncalib2DJitter.fill(getEcalDQMSetupObjects(), iSubdet, cpuJitter, gpuJitter); - meUncalib2DJitterError.fill(getEcalDQMSetupObjects(), iSubdet, cpuJitterError, gpuJitterError); - meUncalib2DChi2.fill(getEcalDQMSetupObjects(), iSubdet, cpuChi2, gpuChi2); - meUncalib2DFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags, gpuFlags); - - if (gpuOnlyPlots_) { + if (uncalib1D_) { MESet& meUncalibGpuAmp(MEs_.at("UncalibGpuAmp")); MESet& meUncalibGpuAmpError(MEs_.at("UncalibGpuAmpError")); MESet& meUncalibGpuPedestal(MEs_.at("UncalibGpuPedestal")); @@ -391,27 +430,52 @@ namespace ecaldqm { meUncalibGpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags); } + if (uncalib2D_) { + MESet& meUncalib2DAmp(MEs_.at("Uncalib2DAmp")); + MESet& meUncalib2DAmpError(MEs_.at("Uncalib2DAmpError")); + MESet& meUncalib2DPedestal(MEs_.at("Uncalib2DPedestal")); + MESet& meUncalib2DJitter(MEs_.at("Uncalib2DJitter")); + MESet& meUncalib2DJitterError(MEs_.at("Uncalib2DJitterError")); + MESet& meUncalib2DChi2(MEs_.at("Uncalib2DChi2")); + MESet& meUncalib2DFlags(MEs_.at("Uncalib2DFlags")); + + meUncalib2DAmp.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmp, gpuAmp); + meUncalib2DAmpError.fill(getEcalDQMSetupObjects(), iSubdet, cpuAmpError, gpuAmpError); + meUncalib2DPedestal.fill(getEcalDQMSetupObjects(), iSubdet, cpuPedestal, gpuPedestal); + meUncalib2DJitter.fill(getEcalDQMSetupObjects(), iSubdet, cpuJitter, gpuJitter); + meUncalib2DJitterError.fill(getEcalDQMSetupObjects(), iSubdet, cpuJitterError, gpuJitterError); + meUncalib2DChi2.fill(getEcalDQMSetupObjects(), iSubdet, cpuChi2, gpuChi2); + meUncalib2DFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags, gpuFlags); + } + for (unsigned iAmp = 0; iAmp < uncalibOOTAmps_.size(); iAmp++) { static_cast(meUncalibGpuCpuOOTAmp).use(iAmp); - static_cast(meUncalib2DOOTAmp).use(iAmp); // Get corresponding OOT Amplitude int gpuOOTAmp(gpuHit.outOfTimeAmplitude(uncalibOOTAmps_[iAmp])); int cpuOOTAmp(cpuItr->outOfTimeAmplitude(uncalibOOTAmps_[iAmp])); meUncalibGpuCpuOOTAmp.fill(getEcalDQMSetupObjects(), iSubdet, gpuOOTAmp - cpuOOTAmp); - meUncalib2DOOTAmp.fill(getEcalDQMSetupObjects(), iSubdet, cpuOOTAmp, gpuOOTAmp); - if (gpuOnlyPlots_) { + if (uncalib1D_) { MESet& meUncalibGpuOOTAmp(MEs_.at("UncalibGpuOOTAmp")); static_cast(meUncalibGpuOOTAmp).use(iAmp); meUncalibGpuOOTAmp.fill(getEcalDQMSetupObjects(), iSubdet, gpuOOTAmp); } + + if (uncalib2D_) { + MESet& meUncalib2DOOTAmp(MEs_.at("Uncalib2DOOTAmp")); + static_cast(meUncalib2DOOTAmp).use(iAmp); + meUncalib2DOOTAmp.fill(getEcalDQMSetupObjects(), iSubdet, cpuOOTAmp, gpuOOTAmp); + } } } } void GpuTask::runOnCpuRecHits(EcalRecHitCollection const& cpuHits, Collections collection) { + // Return if not enabled + if (!enableRecHit_) return; + MESet& meRecHitCpu(MEs_.at("RecHitCpu")); MESet& meRecHitCpuEnergy(MEs_.at("RecHitCpuEnergy")); MESet& meRecHitCpuTime(MEs_.at("RecHitCpuTime")); @@ -440,14 +504,13 @@ namespace ecaldqm { } void GpuTask::runOnGpuRecHits(EcalRecHitCollection const& gpuHits, Collections collection) { + // Return if not enabled + if (!enableRecHit_) return; + MESet& meRecHitGpuCpu(MEs_.at("RecHitGpuCpu")); MESet& meRecHitGpuCpuEnergy(MEs_.at("RecHitGpuCpuEnergy")); MESet& meRecHitGpuCpuTime(MEs_.at("RecHitGpuCpuTime")); MESet& meRecHitGpuCpuFlags(MEs_.at("RecHitGpuCpuFlags")); - MESet& meRecHit2D(MEs_.at("RecHit2D")); - MESet& meRecHit2DEnergy(MEs_.at("RecHit2DEnergy")); - MESet& meRecHit2DTime(MEs_.at("RecHit2DTime")); - MESet& meRecHit2DFlags(MEs_.at("RecHit2DFlags")); int iSubdet(collection == kEBGpuRecHit ? EcalBarrel : EcalEndcap); @@ -464,12 +527,15 @@ namespace ecaldqm { unsigned nCpuHits(cpuHits->size()); meRecHitGpuCpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits - nCpuHits); - meRecHit2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuHits, nGpuHits); - if (gpuOnlyPlots_) { + if (rechit1D_) { MESet& meRecHitGpu(MEs_.at("RecHitGpu")); meRecHitGpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits); } + if (rechit2D_) { + MESet& meRecHit2D(MEs_.at("RecHit2D")); + meRecHit2D.fill(getEcalDQMSetupObjects(), iSubdet, nCpuHits, nGpuHits); + } for (auto const& gpuHit : gpuHits) { // Find CpuRecHit with matching DetId @@ -493,11 +559,7 @@ namespace ecaldqm { meRecHitGpuCpuTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuTime - cpuTime); meRecHitGpuCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags - cpuFlags); - meRecHit2DEnergy.fill(getEcalDQMSetupObjects(), iSubdet, cpuEnergy, gpuEnergy); - meRecHit2DTime.fill(getEcalDQMSetupObjects(), iSubdet, cpuTime, gpuTime); - meRecHit2DFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags, gpuFlags); - - if (gpuOnlyPlots_) { + if (rechit1D_) { MESet& meRecHitGpuEnergy(MEs_.at("RecHitGpuEnergy")); MESet& meRecHitGpuTime(MEs_.at("RecHitGpuTime")); MESet& meRecHitGpuFlags(MEs_.at("RecHitGpuFlags")); @@ -506,6 +568,16 @@ namespace ecaldqm { meRecHitGpuTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuTime); meRecHitGpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags); } + + if (rechit2D_) { + MESet& meRecHit2DEnergy(MEs_.at("RecHit2DEnergy")); + MESet& meRecHit2DTime(MEs_.at("RecHit2DTime")); + MESet& meRecHit2DFlags(MEs_.at("RecHit2DFlags")); + + meRecHit2DEnergy.fill(getEcalDQMSetupObjects(), iSubdet, cpuEnergy, gpuEnergy); + meRecHit2DTime.fill(getEcalDQMSetupObjects(), iSubdet, cpuTime, gpuTime); + meRecHit2DFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags, gpuFlags); + } } } From 9574e672b59e8c5a5ee1ab049c561a1f1782d3bc Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Wed, 15 Jun 2022 23:01:51 +0200 Subject: [PATCH 4/8] Enable ecalGpuTask in Online DQM using HLT collections --- .../python/CollectionTags_cfi.py | 25 ++++++++++--------- .../python/EcalMonitorTask_cff.py | 16 +++++++++--- .../python/EcalMonitorTask_cfi.py | 7 ++++-- .../python/ecalGpuTask_cfi.py | 2 +- 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py b/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py index d74cc11fae1f8..260702d0e72f2 100644 --- a/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py +++ b/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py @@ -45,16 +45,17 @@ EEBasicCluster = cms.untracked.InputTag("particleFlowClusterECAL"), EBSuperCluster = cms.untracked.InputTag("particleFlowSuperClusterECAL", "particleFlowSuperClusterECALBarrel"), EESuperCluster = cms.untracked.InputTag("particleFlowSuperClusterECAL", "particleFlowSuperClusterECALEndcapWithPreshower"), - EBCpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "ebDigis"), - EECpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "eeDigis"), - EBGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "ebDigis"), - EEGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "eeDigis"), - EBCpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEB"), - EECpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEE"), - EBGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEB"), - EEGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEE"), - EBCpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEB"), - EECpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEE"), - EBGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEB"), - EEGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEE") + EBCpuDigi = cms.untracked.InputTag("hltEcalDigisLegacy", "ebDigis"), + EECpuDigi = cms.untracked.InputTag("hltEcalDigisLegacy", "eeDigis"), + EBGpuDigi = cms.untracked.InputTag("hltEcalDigisFromGPU", "ebDigis"), + EEGpuDigi = cms.untracked.InputTag("hltEcalDigisFromGPU", "eeDigis"), + EBCpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitLegacy", "EcalUncalibRecHitsEB"), + EECpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitLegacy", "EcalUncalibRecHitsEE"), + EBGpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitFromSoA", "EcalUncalibRecHitsEB"), + EEGpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitFromSoA", "EcalUncalibRecHitsEE"), + # RecHit GPU collection tags are temp placeholder + EBCpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithoutTPs", "EcalRecHitsEB"), + EECpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithoutTPs", "EcalRecHitsEE"), + EBGpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithTPs", "EcalRecHitsEB"), + EEGpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithTPs", "EcalRecHitsEE") ) diff --git a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py index 16c6d5e157ea3..792361e99bbe2 100644 --- a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py +++ b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py @@ -6,6 +6,16 @@ from Configuration.ProcessModifiers.gpuValidationEcal_cff import gpuValidationEcal from DQM.EcalMonitorTasks.ecalGpuTask_cfi import ecalGpuTask -gpuValidationEcal.toModify(ecalGpuTask.params, runGpuTask = True) -gpuValidationEcal.toModify(ecalMonitorTask.workers, func = lambda workers: workers.append("GpuTask")) -gpuValidationEcal.toModify(ecalMonitorTask, workerParameters = dict(GpuTask = ecalGpuTask)) +# Input tags used for offline DQM RECO, enables SwitchProducerCUDA to generate these collections +gpuValidationEcal.toModify(ecalDQMCollectionTags, EBCpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "ebDigis")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EECpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "eeDigis")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EBGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "ebDigis")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EEGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "eeDigis")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EBCpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEB")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EECpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEE")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EBGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEB")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EEGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEE")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EBCpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEB")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EECpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEE")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EBGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEB")) +gpuValidationEcal.toModify(ecalDQMCollectionTags, EEGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEE")) diff --git a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py index 2ffd474763694..f8b6719008422 100644 --- a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py @@ -14,6 +14,7 @@ from DQM.EcalMonitorTasks.SelectiveReadoutTask_cfi import ecalSelectiveReadoutTask from DQM.EcalMonitorTasks.TimingTask_cfi import ecalTimingTask from DQM.EcalMonitorTasks.TrigPrimTask_cfi import ecalTrigPrimTask +from DQM.EcalMonitorTasks.ecalGpuTask_cfi import ecalGpuTask from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer ecalMonitorTask = DQMEDAnalyzer('EcalDQMonitorTask', @@ -28,7 +29,8 @@ "RawDataTask", "RecoSummaryTask", "TimingTask", - "TrigPrimTask" + "TrigPrimTask", + "GpuTask" ), # task parameters (included from indivitual cfis) workerParameters = cms.untracked.PSet( @@ -41,7 +43,8 @@ RecoSummaryTask = ecalRecoSummaryTask, SelectiveReadoutTask = ecalSelectiveReadoutTask, TimingTask = ecalTimingTask, - TrigPrimTask = ecalTrigPrimTask + TrigPrimTask = ecalTrigPrimTask, + GpuTask = ecalGpuTask ), commonParameters = ecalCommonParams, collectionTags = ecalDQMCollectionTags, diff --git a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py index 33a5aab647075..3f89fda341211 100644 --- a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py @@ -5,7 +5,7 @@ ecalGpuTask = cms.untracked.PSet( params = cms.untracked.PSet( - runGpuTask = cms.untracked.bool(False), + runGpuTask = cms.untracked.bool(True), # Default plots for each object are 1D CPU distributions and 1D GPU-CPU diff enableDigi = cms.untracked.bool(True), From 1e53aa1880fdbc574701fd40d8fc50d806b8f4cb Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Mon, 20 Jun 2022 08:59:06 +0200 Subject: [PATCH 5/8] Formatting in GpuTask.cc --- DQM/EcalMonitorTasks/src/GpuTask.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/DQM/EcalMonitorTasks/src/GpuTask.cc b/DQM/EcalMonitorTasks/src/GpuTask.cc index 6750d499ad7eb..ebdf40c584c8f 100644 --- a/DQM/EcalMonitorTasks/src/GpuTask.cc +++ b/DQM/EcalMonitorTasks/src/GpuTask.cc @@ -164,7 +164,8 @@ namespace ecaldqm { template void GpuTask::runOnCpuDigis(DigiCollection const& cpuDigis, Collections collection) { // Return if not enabled - if (!enableDigi_) return; + if (!enableDigi_) + return; MESet& meDigiCpu(MEs_.at("DigiCpu")); MESet& meDigiCpuAmplitude(MEs_.at("DigiCpuAmplitude")); @@ -200,7 +201,8 @@ namespace ecaldqm { template void GpuTask::runOnGpuDigis(DigiCollection const& gpuDigis, Collections collection) { // Return if not enabled - if (!enableDigi_) return; + if (!enableDigi_) + return; MESet& meDigiGpuCpu(MEs_.at("DigiGpuCpu")); MESet& meDigiGpuCpuAmplitude(MEs_.at("DigiGpuCpuAmplitude")); @@ -278,7 +280,8 @@ namespace ecaldqm { void GpuTask::runOnCpuUncalibRecHits(EcalUncalibratedRecHitCollection const& cpuHits, Collections collection) { // Return if not enabled - if (!enableUncalib_) return; + if (!enableUncalib_) + return; MESet& meUncalibCpu(MEs_.at("UncalibCpu")); MESet& meUncalibCpuAmp(MEs_.at("UncalibCpuAmp")); @@ -333,7 +336,8 @@ namespace ecaldqm { void GpuTask::runOnGpuUncalibRecHits(EcalUncalibratedRecHitCollection const& gpuHits, Collections collection) { // Return if not enabled - if (!enableUncalib_) return; + if (!enableUncalib_) + return; MESet& meUncalibGpuCpu(MEs_.at("UncalibGpuCpu")); MESet& meUncalibGpuCpuAmp(MEs_.at("UncalibGpuCpuAmp")); @@ -474,7 +478,8 @@ namespace ecaldqm { void GpuTask::runOnCpuRecHits(EcalRecHitCollection const& cpuHits, Collections collection) { // Return if not enabled - if (!enableRecHit_) return; + if (!enableRecHit_) + return; MESet& meRecHitCpu(MEs_.at("RecHitCpu")); MESet& meRecHitCpuEnergy(MEs_.at("RecHitCpuEnergy")); @@ -505,7 +510,8 @@ namespace ecaldqm { void GpuTask::runOnGpuRecHits(EcalRecHitCollection const& gpuHits, Collections collection) { // Return if not enabled - if (!enableRecHit_) return; + if (!enableRecHit_) + return; MESet& meRecHitGpuCpu(MEs_.at("RecHitGpuCpu")); MESet& meRecHitGpuCpuEnergy(MEs_.at("RecHitGpuCpuEnergy")); From 165d426489f5eeeedc4d17906711690c1c0215b4 Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Thu, 23 Jun 2022 23:27:46 +0200 Subject: [PATCH 6/8] Revert "Enable ecalGpuTask in Online DQM using HLT collections" This reverts commit 9574e672b59e8c5a5ee1ab049c561a1f1782d3bc. --- .../python/CollectionTags_cfi.py | 25 +++++++++---------- .../python/EcalMonitorTask_cff.py | 16 +++--------- .../python/EcalMonitorTask_cfi.py | 7 ++---- .../python/ecalGpuTask_cfi.py | 2 +- 4 files changed, 18 insertions(+), 32 deletions(-) diff --git a/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py b/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py index 260702d0e72f2..d74cc11fae1f8 100644 --- a/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py +++ b/DQM/EcalMonitorTasks/python/CollectionTags_cfi.py @@ -45,17 +45,16 @@ EEBasicCluster = cms.untracked.InputTag("particleFlowClusterECAL"), EBSuperCluster = cms.untracked.InputTag("particleFlowSuperClusterECAL", "particleFlowSuperClusterECALBarrel"), EESuperCluster = cms.untracked.InputTag("particleFlowSuperClusterECAL", "particleFlowSuperClusterECALEndcapWithPreshower"), - EBCpuDigi = cms.untracked.InputTag("hltEcalDigisLegacy", "ebDigis"), - EECpuDigi = cms.untracked.InputTag("hltEcalDigisLegacy", "eeDigis"), - EBGpuDigi = cms.untracked.InputTag("hltEcalDigisFromGPU", "ebDigis"), - EEGpuDigi = cms.untracked.InputTag("hltEcalDigisFromGPU", "eeDigis"), - EBCpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitLegacy", "EcalUncalibRecHitsEB"), - EECpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitLegacy", "EcalUncalibRecHitsEE"), - EBGpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitFromSoA", "EcalUncalibRecHitsEB"), - EEGpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitFromSoA", "EcalUncalibRecHitsEE"), - # RecHit GPU collection tags are temp placeholder - EBCpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithoutTPs", "EcalRecHitsEB"), - EECpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithoutTPs", "EcalRecHitsEE"), - EBGpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithTPs", "EcalRecHitsEB"), - EEGpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithTPs", "EcalRecHitsEE") + EBCpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "ebDigis"), + EECpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "eeDigis"), + EBGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "ebDigis"), + EEGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "eeDigis"), + EBCpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEB"), + EECpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEE"), + EBGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEB"), + EEGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEE"), + EBCpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEB"), + EECpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEE"), + EBGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEB"), + EEGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEE") ) diff --git a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py index 792361e99bbe2..16c6d5e157ea3 100644 --- a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py +++ b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py @@ -6,16 +6,6 @@ from Configuration.ProcessModifiers.gpuValidationEcal_cff import gpuValidationEcal from DQM.EcalMonitorTasks.ecalGpuTask_cfi import ecalGpuTask -# Input tags used for offline DQM RECO, enables SwitchProducerCUDA to generate these collections -gpuValidationEcal.toModify(ecalDQMCollectionTags, EBCpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "ebDigis")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EECpuDigi = cms.untracked.InputTag("ecalDigis@cpu", "eeDigis")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EBGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "ebDigis")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EEGpuDigi = cms.untracked.InputTag("ecalDigis@cuda", "eeDigis")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EBCpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEB")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EECpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cpu", "EcalUncalibRecHitsEE")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EBGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEB")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EEGpuUncalibRecHit = cms.untracked.InputTag("ecalMultiFitUncalibRecHit@cuda", "EcalUncalibRecHitsEE")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EBCpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEB")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EECpuRecHit = cms.untracked.InputTag("ecalRecHit@cpu", "EcalRecHitsEE")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EBGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEB")) -gpuValidationEcal.toModify(ecalDQMCollectionTags, EEGpuRecHit = cms.untracked.InputTag("ecalRecHit@cuda", "EcalRecHitsEE")) +gpuValidationEcal.toModify(ecalGpuTask.params, runGpuTask = True) +gpuValidationEcal.toModify(ecalMonitorTask.workers, func = lambda workers: workers.append("GpuTask")) +gpuValidationEcal.toModify(ecalMonitorTask, workerParameters = dict(GpuTask = ecalGpuTask)) diff --git a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py index f8b6719008422..2ffd474763694 100644 --- a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py @@ -14,7 +14,6 @@ from DQM.EcalMonitorTasks.SelectiveReadoutTask_cfi import ecalSelectiveReadoutTask from DQM.EcalMonitorTasks.TimingTask_cfi import ecalTimingTask from DQM.EcalMonitorTasks.TrigPrimTask_cfi import ecalTrigPrimTask -from DQM.EcalMonitorTasks.ecalGpuTask_cfi import ecalGpuTask from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer ecalMonitorTask = DQMEDAnalyzer('EcalDQMonitorTask', @@ -29,8 +28,7 @@ "RawDataTask", "RecoSummaryTask", "TimingTask", - "TrigPrimTask", - "GpuTask" + "TrigPrimTask" ), # task parameters (included from indivitual cfis) workerParameters = cms.untracked.PSet( @@ -43,8 +41,7 @@ RecoSummaryTask = ecalRecoSummaryTask, SelectiveReadoutTask = ecalSelectiveReadoutTask, TimingTask = ecalTimingTask, - TrigPrimTask = ecalTrigPrimTask, - GpuTask = ecalGpuTask + TrigPrimTask = ecalTrigPrimTask ), commonParameters = ecalCommonParams, collectionTags = ecalDQMCollectionTags, diff --git a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py index 3f89fda341211..33a5aab647075 100644 --- a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py @@ -5,7 +5,7 @@ ecalGpuTask = cms.untracked.PSet( params = cms.untracked.PSet( - runGpuTask = cms.untracked.bool(True), + runGpuTask = cms.untracked.bool(False), # Default plots for each object are 1D CPU distributions and 1D GPU-CPU diff enableDigi = cms.untracked.bool(True), From f7002b2bdf6670c6b1a38e547fcbbf7778d241c6 Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Thu, 23 Jun 2022 23:43:29 +0200 Subject: [PATCH 7/8] Create separate dedicated client for GPU validation on ECAL online DQM --- .../ecalgpu_dqm_sourceclient-live_cfg.py | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py diff --git a/DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py new file mode 100644 index 0000000000000..7eb82d0e81cd1 --- /dev/null +++ b/DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py @@ -0,0 +1,106 @@ +import FWCore.ParameterSet.Config as cms +import sys + +from Configuration.Eras.Era_Run3_cff import Run3 +process = cms.Process("process", Run3) + +unitTest = False +if 'unitTest=True' in sys.argv: + unitTest=True + +### Load cfis ### + +if unitTest: + process.load("DQM.Integration.config.unittestinputsource_cfi") + from DQM.Integration.config.unittestinputsource_cfi import options +else: + process.load("DQM.Integration.config.inputsource_cfi") + from DQM.Integration.config.inputsource_cfi import options + +process.load("DQM.Integration.config.environment_cfi") +process.load("DQM.Integration.config.FrontierCondition_GT_cfi") + +process.load("FWCore.Modules.preScaler_cfi") +process.load("Configuration.StandardSequences.GeometryRecoDB_cff") + +process.load("DQM.EcalMonitorTasks.EcalMonitorTask_cfi") +process.load("DQM.EcalMonitorTasks.ecalGpuTask_cfi") + +### Individual module setups ### + +process.MessageLogger = cms.Service("MessageLogger", + cerr = cms.untracked.PSet( + default = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + noTimeStamps = cms.untracked.bool(True), + threshold = cms.untracked.string('WARNING'), + noLineBreaks = cms.untracked.bool(True) + ), + cout = cms.untracked.PSet( + default = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + EcalDQM = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + threshold = cms.untracked.string('INFO') + ), + categories = cms.untracked.vstring('EcalDQM'), + destinations = cms.untracked.vstring('cerr', + 'cout') +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(-1) +) + +process.preScaler.prescaleFactor = 1 + +process.dqmEnv.subSystemFolder = 'Ecal' +process.dqmSaver.tag = 'Ecal' +process.dqmSaver.runNumber = options.runNumber +process.dqmSaverPB.tag = 'Ecal' +process.dqmSaverPB.runNumber = options.runNumber + +process.ecalGpuTask.params.runGpuTask = True +process.ecalMonitorTask.workers = ['GpuTask'] +process.ecalMonitorTask.workerParameters = cms.untracked.PSet(GpuTask = process.ecalGpuTask) +process.ecalMonitorTask.verbosity = 0 +process.ecalMonitorTask.commonParameters.willConvertToEDM = False +process.ecalMonitorTask.commonParameters.onlineMode = True + +# ecalMonitorTask always looks for EcalRawData collection when running, even when not in use +# Default value is cms.untracked.InputTag("ecalDigis") +# Tag is changed below to avoid multiple warnings per event +process.ecalMonitorTask.collectionTags.EcalRawData = cms.untracked.InputTag("hltEcalDigisLegacy") + +# Streams used for online GPU validation +process.ecalMonitorTask.collectionTags.EBCpuDigi = cms.untracked.InputTag("hltEcalDigisLegacy", "ebDigis") +process.ecalMonitorTask.collectionTags.EECpuDigi = cms.untracked.InputTag("hltEcalDigisLegacy", "eeDigis") +process.ecalMonitorTask.collectionTags.EBGpuDigi = cms.untracked.InputTag("hltEcalDigisFromGPU", "ebDigis") +process.ecalMonitorTask.collectionTags.EEGpuDigi = cms.untracked.InputTag("hltEcalDigisFromGPU", "eeDigis") +process.ecalMonitorTask.collectionTags.EBCpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitLegacy", "EcalUncalibRecHitsEB") +process.ecalMonitorTask.collectionTags.EECpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitLegacy", "EcalUncalibRecHitsEE") +process.ecalMonitorTask.collectionTags.EBGpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitFromSoA", "EcalUncalibRecHitsEB") +process.ecalMonitorTask.collectionTags.EEGpuUncalibRecHit = cms.untracked.InputTag("hltEcalUncalibRecHitFromSoA", "EcalUncalibRecHitsEE") +# RecHit GPU collection tags are temp placeholder +process.ecalMonitorTask.collectionTags.EBCpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithoutTPs", "EcalRecHitsEB") +process.ecalMonitorTask.collectionTags.EECpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithoutTPs", "EcalRecHitsEE") +process.ecalMonitorTask.collectionTags.EBGpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithTPs", "EcalRecHitsEB") +process.ecalMonitorTask.collectionTags.EEGpuRecHit = cms.untracked.InputTag("hltEcalRecHitWithTPs", "EcalRecHitsEE") + +### Paths ### + +process.ecalMonitorPath = cms.Path(process.preScaler+process.ecalMonitorTask) +process.dqmEndPath = cms.EndPath(process.dqmEnv) +process.dqmOutputPath = cms.EndPath(process.dqmSaver + process.dqmSaverPB) + +### Schedule ### + +process.schedule = cms.Schedule(process.ecalMonitorPath,process.dqmEndPath,process.dqmOutputPath) + +### process customizations included here +from DQM.Integration.config.online_customizations_cfi import * +print("Final Source settings:", process.source) +process = customise(process) From d7f5f7439a1672ce72c2374eb3483c56c558922f Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Date: Fri, 24 Jun 2022 16:37:26 +0200 Subject: [PATCH 8/8] Correct output file name for ECAL GPU client --- .../python/clients/ecalgpu_dqm_sourceclient-live_cfg.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py index 7eb82d0e81cd1..cb92bd4bf9cda 100644 --- a/DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/ecalgpu_dqm_sourceclient-live_cfg.py @@ -57,10 +57,10 @@ process.preScaler.prescaleFactor = 1 -process.dqmEnv.subSystemFolder = 'Ecal' -process.dqmSaver.tag = 'Ecal' +process.dqmEnv.subSystemFolder = 'EcalGPU' +process.dqmSaver.tag = 'EcalGPU' process.dqmSaver.runNumber = options.runNumber -process.dqmSaverPB.tag = 'Ecal' +process.dqmSaverPB.tag = 'EcalGPU' process.dqmSaverPB.runNumber = options.runNumber process.ecalGpuTask.params.runGpuTask = True