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 ac958c8de2018..33a5aab647075 100644 --- a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py @@ -6,13 +6,27 @@ 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( # 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 +39,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 +56,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 +69,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 +86,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 +99,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'), @@ -100,9 +114,51 @@ ), 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/Digis/%(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/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'), + 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'), + 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'), @@ -115,7 +171,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'), @@ -128,7 +184,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'), @@ -141,7 +197,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'), @@ -154,7 +210,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'), @@ -167,7 +223,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'), @@ -180,7 +236,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'), @@ -193,7 +249,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'), @@ -209,7 +265,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'), @@ -223,7 +279,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'), @@ -236,7 +292,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'), @@ -249,7 +305,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'), @@ -262,7 +318,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'), @@ -275,7 +331,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'), @@ -288,7 +344,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'), @@ -301,7 +357,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'), @@ -314,7 +370,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'), @@ -330,7 +386,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'), @@ -344,7 +400,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'), @@ -357,7 +413,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'), @@ -370,7 +426,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'), @@ -383,7 +439,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'), @@ -396,7 +452,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'), @@ -409,7 +465,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'), @@ -422,7 +478,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'), @@ -435,7 +491,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'), @@ -451,7 +507,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'), @@ -463,9 +519,184 @@ ), 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/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'), + 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/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'), + 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/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'), + 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/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'), + 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/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'), + 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/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'), + 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/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'), + 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/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'), + 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/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'), + 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'), + 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'), @@ -478,7 +709,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'), @@ -491,7 +722,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'), @@ -504,7 +735,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'), @@ -518,7 +749,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'), @@ -531,7 +762,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'), @@ -544,7 +775,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'), @@ -557,7 +788,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'), @@ -571,7 +802,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'), @@ -584,7 +815,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'), @@ -597,7 +828,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'), @@ -610,7 +841,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'), @@ -621,6 +852,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/RecHits/%(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/RecHits/%(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/RecHits/%(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/RecHits/%(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..ebdf40c584c8f 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,13 +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")); + } + if (!enableUncalib_) { MEs_.erase(std::string("UncalibCpu")); MEs_.erase(std::string("UncalibCpuAmp")); MEs_.erase(std::string("UncalibCpuAmpError")); @@ -62,6 +86,8 @@ namespace ecaldqm { MEs_.erase(std::string("UncalibGpuCpuChi2")); MEs_.erase(std::string("UncalibGpuCpuOOTAmp")); MEs_.erase(std::string("UncalibGpuCpuFlags")); + } + if (!enableRecHit_) { MEs_.erase(std::string("RecHitCpu")); MEs_.erase(std::string("RecHitCpuEnergy")); MEs_.erase(std::string("RecHitCpuTime")); @@ -71,12 +97,11 @@ namespace ecaldqm { MEs_.erase(std::string("RecHitGpuCpuTime")); MEs_.erase(std::string("RecHitGpuCpuFlags")); } - 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")); @@ -87,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) { @@ -111,6 +163,10 @@ 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")); @@ -144,6 +200,10 @@ 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")); @@ -172,11 +232,16 @@ 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); + } + for (auto const& gpuDigi : gpuDigis) { // Find CpuDigi with matching DetId DetId gpuId(gpuDigi.id()); @@ -198,16 +263,26 @@ namespace ecaldqm { meDigiGpuCpuAmplitude.fill(getEcalDQMSetupObjects(), iSubdet, gpuAmp - cpuAmp); - 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")); @@ -260,6 +335,10 @@ 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")); @@ -287,11 +366,16 @@ namespace ecaldqm { meUncalibGpuCpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits - nCpuHits); - 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()); @@ -332,7 +416,7 @@ namespace ecaldqm { meUncalibGpuCpuChi2.fill(getEcalDQMSetupObjects(), iSubdet, gpuChi2 - cpuChi2); meUncalibGpuCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags - cpuFlags); - if (gpuOnlyPlots_) { + if (uncalib1D_) { MESet& meUncalibGpuAmp(MEs_.at("UncalibGpuAmp")); MESet& meUncalibGpuAmpError(MEs_.at("UncalibGpuAmpError")); MESet& meUncalibGpuPedestal(MEs_.at("UncalibGpuPedestal")); @@ -350,6 +434,24 @@ 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); @@ -359,16 +461,26 @@ namespace ecaldqm { meUncalibGpuCpuOOTAmp.fill(getEcalDQMSetupObjects(), iSubdet, gpuOOTAmp - cpuOOTAmp); - 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")); @@ -397,6 +509,10 @@ 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")); @@ -418,10 +534,14 @@ namespace ecaldqm { meRecHitGpuCpu.fill(getEcalDQMSetupObjects(), iSubdet, nGpuHits - nCpuHits); - 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 @@ -445,7 +565,7 @@ namespace ecaldqm { meRecHitGpuCpuTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuTime - cpuTime); meRecHitGpuCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags - cpuFlags); - if (gpuOnlyPlots_) { + if (rechit1D_) { MESet& meRecHitGpuEnergy(MEs_.at("RecHitGpuEnergy")); MESet& meRecHitGpuTime(MEs_.at("RecHitGpuTime")); MESet& meRecHitGpuFlags(MEs_.at("RecHitGpuFlags")); @@ -454,6 +574,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); + } } } 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..cb92bd4bf9cda --- /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 = 'EcalGPU' +process.dqmSaver.tag = 'EcalGPU' +process.dqmSaver.runNumber = options.runNumber +process.dqmSaverPB.tag = 'EcalGPU' +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)