Skip to content

Commit

Permalink
Merge pull request #42844 from thomreis/ecal-gpu-unpacker-missing-dum…
Browse files Browse the repository at this point in the history
…mycollections

ECAL - Add dummy collections to ECAL GPU unpacker
  • Loading branch information
cmsbuild authored Sep 25, 2023
2 parents 80d715c + 270c3ba commit 7e38de4
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 7 deletions.
30 changes: 29 additions & 1 deletion EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include "DataFormats/EcalDetId/interface/EcalDetIdCollections.h"
#include "DataFormats/EcalDigi/interface/EcalDataFrame.h"
#include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
#include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
Expand Down Expand Up @@ -53,6 +54,9 @@ class EcalCPUDigisProducer : public edm::stream::EDProducer<edm::ExternalWork> {
edm::EDPutTokenT<EBSrFlagCollection> ebSrFlagToken_;
edm::EDPutTokenT<EESrFlagCollection> eeSrFlagToken_;

// dummy ECAL raw data collection
edm::EDPutTokenT<EcalRawDataCollection> ecalRawDataToken_;

// dummy integrity for xtal data
edm::EDPutTokenT<EBDetIdCollection> ebIntegrityGainErrorsToken_;
edm::EDPutTokenT<EBDetIdCollection> ebIntegrityGainSwitchErrorsToken_;
Expand All @@ -74,6 +78,12 @@ class EcalCPUDigisProducer : public edm::stream::EDProducer<edm::ExternalWork> {
edm::EDPutTokenT<EcalTrigPrimDigiCollection> ecalTriggerPrimitivesToken_;
edm::EDPutTokenT<EcalPSInputDigiCollection> ecalPseudoStripInputsToken_;

// dummy mem integrity collections
edm::EDPutTokenT<EcalElectronicsIdCollection> ecalIntegrityMemTtIdErrorsToken_;
edm::EDPutTokenT<EcalElectronicsIdCollection> ecalIntegrityMemBlockSizeErrorsToken_;
edm::EDPutTokenT<EcalElectronicsIdCollection> ecalIntegrityMemChIdErrorsToken_;
edm::EDPutTokenT<EcalElectronicsIdCollection> ecalIntegrityMemGainErrorsToken_;

// FIXME better way to pass pointers from acquire to produce?
std::vector<uint32_t, cms::cuda::HostAllocator<uint32_t>> idsebtmp, idseetmp;
std::vector<uint16_t, cms::cuda::HostAllocator<uint16_t>> dataebtmp, dataeetmp;
Expand Down Expand Up @@ -109,6 +119,9 @@ EcalCPUDigisProducer::EcalCPUDigisProducer(const edm::ParameterSet& ps)
ebSrFlagToken_{dummyProduces<EBSrFlagCollection>()},
eeSrFlagToken_{dummyProduces<EESrFlagCollection>()},

// dummy ECAL raw data collection
ecalRawDataToken_{dummyProduces<EcalRawDataCollection>()},

// dummy integrity for xtal data
ebIntegrityGainErrorsToken_{dummyProduces<EBDetIdCollection>("EcalIntegrityGainErrors")},
ebIntegrityGainSwitchErrorsToken_{dummyProduces<EBDetIdCollection>("EcalIntegrityGainSwitchErrors")},
Expand All @@ -129,7 +142,15 @@ EcalCPUDigisProducer::EcalCPUDigisProducer(const edm::ParameterSet& ps)

// dummy TCC collections
ecalTriggerPrimitivesToken_{dummyProduces<EcalTrigPrimDigiCollection>("EcalTriggerPrimitives")},
ecalPseudoStripInputsToken_{dummyProduces<EcalPSInputDigiCollection>("EcalPseudoStripInputs")}
ecalPseudoStripInputsToken_{dummyProduces<EcalPSInputDigiCollection>("EcalPseudoStripInputs")},

// dummy mem integrity collections
ecalIntegrityMemTtIdErrorsToken_{dummyProduces<EcalElectronicsIdCollection>("EcalIntegrityMemTtIdErrors")},
ecalIntegrityMemBlockSizeErrorsToken_{
dummyProduces<EcalElectronicsIdCollection>("EcalIntegrityMemBlockSizeErrors")},
ecalIntegrityMemChIdErrorsToken_{dummyProduces<EcalElectronicsIdCollection>("EcalIntegrityMemChIdErrors")},
ecalIntegrityMemGainErrorsToken_{dummyProduces<EcalElectronicsIdCollection>("EcalIntegrityMemGainErrors")}

// constructor body
{}

Expand Down Expand Up @@ -191,6 +212,8 @@ void EcalCPUDigisProducer::produce(edm::Event& event, edm::EventSetup const& set
// dummy collections
event.emplace(ebSrFlagToken_);
event.emplace(eeSrFlagToken_);
// dummy ECAL raw data collection
event.emplace(ecalRawDataToken_);
// dummy integrity for xtal data
event.emplace(ebIntegrityGainErrorsToken_);
event.emplace(ebIntegrityGainSwitchErrorsToken_);
Expand All @@ -208,6 +231,11 @@ void EcalCPUDigisProducer::produce(edm::Event& event, edm::EventSetup const& set
// dummy TCC collections
event.emplace(ecalTriggerPrimitivesToken_);
event.emplace(ecalPseudoStripInputsToken_);
// dummy mem integrity collections
event.emplace(ecalIntegrityMemTtIdErrorsToken_);
event.emplace(ecalIntegrityMemBlockSizeErrorsToken_);
event.emplace(ecalIntegrityMemChIdErrorsToken_);
event.emplace(ecalIntegrityMemGainErrorsToken_);
}
}

Expand Down
6 changes: 0 additions & 6 deletions EventFilter/EcalRawToDigi/python/ecalDigis_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,6 @@
from EventFilter.EcalRawToDigi.ecalRawToDigiGPU_cfi import ecalRawToDigiGPU as _ecalRawToDigiGPU
ecalDigisGPU = _ecalRawToDigiGPU.clone()

# disable the ECAL unpacker collections that are not available in the GPU unpacker
gpu.toModify(ecalDigis.cpu,
headerUnpacking = False,
memUnpacking = False
)

# extend the SwitchProducer to add a case to copy the ECAL digis from GPU to CPU and covert them from SoA to legacy format
from EventFilter.EcalRawToDigi.ecalCPUDigisProducer_cfi import ecalCPUDigisProducer as _ecalCPUDigisProducer
gpu.toModify(ecalDigis,
Expand Down

0 comments on commit 7e38de4

Please sign in to comment.