Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion DQM/EcalMonitorTasks/interface/GpuTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -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<int> uncalibOOTAmps_;

EBDigiCollection const* EBCpuDigis_;
Expand Down
25 changes: 13 additions & 12 deletions DQM/EcalMonitorTasks/python/CollectionTags_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that all other input tags use the offline value by default (e.g. ecalRecHit, particleFlowClusterECAL, etc.) I think it would be better to keep the offline values here as the default, and customise the configuration of the online DQM where it is used.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to follow a suggestion from DQMDC to have the online GPU module in its own dedicated client like HCAL did here: https://github.com/cms-sw/cmssw/blob/master/DQM/Integration/python/clients/hcalgpu_dqm_sourceclient-live_cfg.py. This way we can keep the offline values here and modify them for online in the new client, and we can also avoid crashing the standard ECAL client in case of issues with the GPU stream.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that makes sense.

In fact, the online client for the GPU vs CPU validation has to be separate from the regular one, because the HLT collections come in a different stream than the raw data.

)
16 changes: 13 additions & 3 deletions DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
7 changes: 5 additions & 2 deletions DQM/EcalMonitorTasks/python/EcalMonitorTask_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -28,7 +29,8 @@
"RawDataTask",
"RecoSummaryTask",
"TimingTask",
"TrigPrimTask"
"TrigPrimTask",
"GpuTask"
),
# task parameters (included from indivitual cfis)
workerParameters = cms.untracked.PSet(
Expand All @@ -41,7 +43,8 @@
RecoSummaryTask = ecalRecoSummaryTask,
SelectiveReadoutTask = ecalSelectiveReadoutTask,
TimingTask = ecalTimingTask,
TrigPrimTask = ecalTrigPrimTask
TrigPrimTask = ecalTrigPrimTask,
GpuTask = ecalGpuTask
),
commonParameters = ecalCommonParams,
collectionTags = ecalDQMCollectionTags,
Expand Down
Loading