-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Patatrack integration - ECAL local reconstruction (7/N) #31719
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
cmsbuild
merged 62 commits into
cms-sw:master
from
cms-patatrack:patatrack_integration_7_N_ecal_local_reco
Jan 18, 2021
Merged
Changes from all commits
Commits
Show all changes
62 commits
Select commit
Hold shift + click to select a range
6de171e
Implement a Heterogeneous version of Raw2Cluster and RecHit (cms-pata…
makortel b7e339b
Prototype for EventSetup data on GPUs (cms-patatrack#77)
makortel 9af927e
Synchronise with CMSSW_10_2_0
fwyzard a4c526b
Synchronise with CMSSW_10_4_0_pre2
fwyzard fcf8d67
Synchronise with CMSSW_10_4_0_pre3
fwyzard fa62e7d
Next prototype of the framework integration (cms-patatrack#100)
makortel 795efee
Various updates to pixel track/vertex DQM and MTV (cms-patatrack#285)
makortel 7006648
Reimplement the ECAL multifit with CUDA, for an HLT-like configuratio…
vkhristenko b803812
Extend the ECAL validation on GPU (cms-patatrack#359)
fwyzard 6e015d3
Add a converter for ECAL uncalibrated RecHit from SoA to legacy forma…
vkhristenko 4d43970
Apply clang-format style formatting
fwyzard 249aa64
Synchronise with CMSSW_11_0_0_pre7
fwyzard 8f7fc7a
Remove unused class_def rules
fwyzard 419aa82
Fix clang warnings (cms-patatrack#387)
makortel 93dd141
Replace use of API wrapper stream and event with plain CUDA, part 1 (…
makortel 7cd3e8e
Implement changes from the CUDA framework review (cms-patatrack#429)
makortel b00d983
Synchronise with CMSSW_11_1_0_pre5
fwyzard 6be25f4
Implement the ECAL unpacker on GPUs (cms-patatrack#443)
vkhristenko 823d7fe
Clean up ECAL unapcker code (cms-patatrack#444)
fwyzard ed9326c
Backport remove unneeded dependencies in Reco subsystems (#29295)
fwyzard 92f357b
Apply code formatting fixes from upstream integration (cms-patatrack#…
fwyzard b426a89
Synchronise with CMSSW_11_1_0_pre7
fwyzard 2c85634
Update the ECAL local reconstruction Tasks and Sequences
fwyzard e4df1da
Implement the ECAL-only gpu workflows (cms-patatrack#450)
fwyzard a48be4c
Simplify producing dummy collections in EcalCPUDigisProducer (cms-pat…
fwyzard 6299135
ecalDigis: do not explicitly set default value (cms-sw#29836)
fwyzard 7f23bbf
EcalUncalibRecHitProducerGPU: remove unused "shouldTransferToHost" pa…
fwyzard da82b8d
Rename CUDAHostAllocator to cms::cuda::HostAllocator (cms-patatrack#464)
fwyzard 33690a2
Synchronise with CMSSW_11_1_0_pre8
fwyzard bd26eba
Add customisations for profiling the ECAL-only workflow (cms-patatrac…
fwyzard 3360c67
Implement ECAL rechits on GPU (cms-patatrack#462)
amassiro b370e33
Enable ECAL rechits reconstruction on GPUs (cms-patatrack#473)
fwyzard 7833581
Fixes for ECAL rechits on GPU (cms-patatrack#475)
amassiro a63a202
Enable ECAL rechits reconstruction on GPUs at HLT (cms-patatrack#477)
amassiro e481300
Restructure code to work around CUDA build limitations (cms-patatrack…
vkhristenko 244cfa0
Apply code formatting (cms-patatrack#486)
makortel 228625e
Comment unused variable eps_diff (cms-patatrack#490)
makortel 167fd46
Remove duplicate dictionary definitions (cms-patatrack#489)
makortel 3d9b272
Backport: add ECAL-only and HCAL-only workflows for MC and data (#30350)
mariadalfonso 765a48f
Update ECAL and HCAL reconstruction to run on multple GPUs [1/3] (cms…
vkhristenko 3079f23
Update ECAL and HCAL reconstruction to run on multple GPUs [2/3] (cms…
fwyzard 2a384fa
Update ECAL and HCAL reconstruction to run on multple GPUs [3/3] (cms…
amassiro 3bbc28f
Apply code formatting
fwyzard 8a663d1
Migrate EcalUncalibRecHitProducerGPU to use ESGetToken's (cms-patatra…
fwyzard f384542
Configure the number of ECAL barrel and endcap channels separately (c…
amassiro 0962cd4
Apply code formatting (cms-patatrack#524)
VinInn c15e453
Refactor common ECAL and HCAL code (cms-patatrack#523)
mariadalfonso 2567694
Synchronise with CMSSW_11_2_0_pre7
fwyzard 20731ea
Further clean up after merging CMSSW_11_2_0_pre7 (cms-patatrack#556)
fwyzard 240d1d8
Move multifit/MAHI common code to DataFormats/CaloRecHit (cms-patatra…
mariadalfonso 3bef19e
Address ECAL review comments regarding preprocessor directives (cms-p…
fwyzard 9e3750f
Reduce code duplication in CPU and GPU modules (cms-patatrack#566)
fwyzard f5ad690
Address ECAL review comments regarding python files (cms-patatrack#563)
fwyzard 04f3c46
Move common ESProducer templates to ConvertingESProducer(WithDependen…
fwyzard e52e730
Apply clang-format style formatting
fwyzard 16b46a5
Refactor ECAL and HCAL chi2 code (cms-patatrack#567)
mariadalfonso 0214a0f
Clean up ECAL local reconstruction code (cms-patatrack#591)
thomreis 9a1a0a8
Do not use the ECAL calibrated rechits from the GPU workflow (cms-pat…
fwyzard e0092bd
Use CMS_UNROLL_LOOP instead of #pragma unroll in ECAL code (cms-patat…
fwyzard 9666459
Update the default configuration of ECAL modules (cms-patatrack#598)
fwyzard 01c1f96
Apply code formatting
fwyzard 92f3342
Synchronise with CMSSW_11_3_X_2021-01-14-2300
fwyzard File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| <use name="CUDADataFormats/Common"/> | ||
| <use name="CUDADataFormats/CaloCommon"/> | ||
| <use name="DataFormats/Common"/> | ||
| <use name="HeterogeneousCore/CUDAUtilities"/> | ||
|
|
||
| <export> | ||
| <lib name="1"/> | ||
| </export> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| #ifndef CUDADataFormats_EcalDigi_interface_DigisCollection_h | ||
| #define CUDADataFormats_EcalDigi_interface_DigisCollection_h | ||
|
|
||
| #include "CUDADataFormats/CaloCommon/interface/Common.h" | ||
|
|
||
| namespace ecal { | ||
|
|
||
| template <typename StoragePolicy> | ||
| struct DigisCollection : public ::calo::common::AddSize<typename StoragePolicy::TagType> { | ||
| DigisCollection() = default; | ||
| DigisCollection(DigisCollection const &) = default; | ||
| DigisCollection &operator=(DigisCollection const &) = default; | ||
|
|
||
| DigisCollection(DigisCollection &&) = default; | ||
| DigisCollection &operator=(DigisCollection &&) = default; | ||
|
|
||
| // stride is statically known | ||
| typename StoragePolicy::template StorageSelector<uint32_t>::type ids; | ||
| typename StoragePolicy::template StorageSelector<uint16_t>::type data; | ||
| }; | ||
|
|
||
| } // namespace ecal | ||
|
|
||
| #endif // CUDADataFormats_EcalDigi_interface_DigisCollection_h |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| #include "CUDADataFormats/Common/interface/Product.h" | ||
| #include "CUDADataFormats/EcalDigi/interface/DigisCollection.h" | ||
| #include "DataFormats/Common/interface/Wrapper.h" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| <lcgdict> | ||
| <class name="cms::cuda::Product<ecal::DigisCollection<calo::common::ViewStoragePolicy>>" persistent="false" /> | ||
| <class name="cms::cuda::Product<ecal::DigisCollection<calo::common::DevStoragePolicy>>" persistent="false" /> | ||
| <class name="edm::Wrapper<cms::cuda::Product<ecal::DigisCollection<calo::common::ViewStoragePolicy>>>" persistent="false"/> | ||
| <class name="edm::Wrapper<cms::cuda::Product<ecal::DigisCollection<calo::common::DevStoragePolicy>>>" persistent="false"/> | ||
| </lcgdict> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| <use name="cuda"/> | ||
| <use name="CUDADataFormats/Common"/> | ||
| <use name="CUDADataFormats/CaloCommon"/> | ||
| <use name="DataFormats/Common"/> | ||
| <use name="DataFormats/EcalDigi"/> | ||
| <use name="HeterogeneousCore/CUDAUtilities"/> | ||
|
|
||
| <export> | ||
| <lib name="1"/> | ||
| </export> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| #ifndef CUDADataFormats_EcalRecHitSoA_interface_EcalRecHit_h | ||
| #define CUDADataFormats_EcalRecHitSoA_interface_EcalRecHit_h | ||
|
|
||
| #include <array> | ||
| #include <vector> | ||
|
|
||
| #include "CUDADataFormats/CaloCommon/interface/Common.h" | ||
| #include "CUDADataFormats/EcalRecHitSoA/interface/RecoTypes.h" | ||
| #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" | ||
|
|
||
| namespace ecal { | ||
|
|
||
| template <typename StoragePolicy> | ||
| struct RecHit : public ::calo::common::AddSize<typename StoragePolicy::TagType> { | ||
| RecHit() = default; | ||
| RecHit(const RecHit&) = default; | ||
| RecHit& operator=(const RecHit&) = default; | ||
|
|
||
| RecHit(RecHit&&) = default; | ||
| RecHit& operator=(RecHit&&) = default; | ||
|
|
||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type energy; | ||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type time; | ||
| // should we remove the following, since already included in "extra" ? | ||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type chi2; | ||
| typename StoragePolicy::template StorageSelector<uint32_t>::type | ||
| extra; // packed uint32_t for timeError, chi2, energyError | ||
| typename StoragePolicy::template StorageSelector<uint32_t>::type | ||
| flagBits; // store rechit condition (see Flags enum) in a bit-wise way | ||
| typename StoragePolicy::template StorageSelector<uint32_t>::type did; | ||
|
|
||
| template <typename U = typename StoragePolicy::TagType> | ||
| typename std::enable_if<std::is_same<U, ::calo::common::tags::Vec>::value, void>::type resize(size_t size) { | ||
| energy.resize(size); | ||
| time.resize(size); | ||
| chi2.resize(size); | ||
| extra.resize(size); | ||
| flagBits.resize(size); | ||
| did.resize(size); | ||
| } | ||
| }; | ||
|
|
||
| } // namespace ecal | ||
|
|
||
| #endif // CUDADataFormats_EcalRecHitSoA_interface_EcalRecHit_h |
46 changes: 46 additions & 0 deletions
46
CUDADataFormats/EcalRecHitSoA/interface/EcalUncalibratedRecHit.h
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| #ifndef CUDADataFormats_EcalRecHitSoA_interface_EcalUncalibratedRecHit_h | ||
| #define CUDADataFormats_EcalRecHitSoA_interface_EcalUncalibratedRecHit_h | ||
|
|
||
| #include <array> | ||
| #include <vector> | ||
|
|
||
| #include "CUDADataFormats/CaloCommon/interface/Common.h" | ||
| #include "CUDADataFormats/EcalRecHitSoA/interface/RecoTypes.h" | ||
| #include "DataFormats/EcalDigi/interface/EcalDataFrame.h" | ||
|
|
||
| namespace ecal { | ||
|
|
||
| template <typename StoragePolicy> | ||
| struct UncalibratedRecHit : public ::calo::common::AddSize<typename StoragePolicy::TagType> { | ||
| UncalibratedRecHit() = default; | ||
| UncalibratedRecHit(const UncalibratedRecHit&) = default; | ||
| UncalibratedRecHit& operator=(const UncalibratedRecHit&) = default; | ||
|
|
||
| UncalibratedRecHit(UncalibratedRecHit&&) = default; | ||
| UncalibratedRecHit& operator=(UncalibratedRecHit&&) = default; | ||
|
|
||
| typename StoragePolicy::template StorageSelector<reco::ComputationScalarType>::type amplitudesAll; | ||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type amplitude; | ||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type chi2; | ||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type pedestal; | ||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type jitter; | ||
| typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type jitterError; | ||
| typename StoragePolicy::template StorageSelector<uint32_t>::type did; | ||
| typename StoragePolicy::template StorageSelector<uint32_t>::type flags; | ||
|
|
||
| template <typename U = typename StoragePolicy::TagType> | ||
| typename std::enable_if<std::is_same<U, ::calo::common::tags::Vec>::value, void>::type resize(size_t size) { | ||
| amplitudesAll.resize(size * EcalDataFrame::MAXSAMPLES); | ||
| amplitude.resize(size); | ||
| pedestal.resize(size); | ||
| chi2.resize(size); | ||
| did.resize(size); | ||
| flags.resize(size); | ||
| jitter.resize(size); | ||
| jitterError.resize(size); | ||
| } | ||
| }; | ||
|
|
||
| } // namespace ecal | ||
|
|
||
| #endif // CUDADataFormats_EcalRecHitSoA_interface_EcalUncalibratedRecHit_h | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| #ifndef CUDADataFormats_EcalRecHitSoA_interface_RecoTypes_h | ||
| #define CUDADataFormats_EcalRecHitSoA_interface_RecoTypes_h | ||
|
|
||
| namespace ecal { | ||
| namespace reco { | ||
|
|
||
| using ComputationScalarType = float; | ||
| using StorageScalarType = float; | ||
|
|
||
| } // namespace reco | ||
| } // namespace ecal | ||
|
|
||
| #endif // CUDADataFormats_EcalRecHitSoA_interface_RecoTypes_h |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| #include "CUDADataFormats/Common/interface/Product.h" | ||
| #include "CUDADataFormats/EcalRecHitSoA/interface/EcalRecHit.h" | ||
| #include "CUDADataFormats/EcalRecHitSoA/interface/EcalUncalibratedRecHit.h" | ||
| #include "DataFormats/Common/interface/Wrapper.h" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| <lcgdict> | ||
| <class name="cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::ViewStoragePolicy>>" persistent="false"/> | ||
| <class name="cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::DevStoragePolicy>>" persistent="false"/> | ||
| <class name="edm::Wrapper<cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::ViewStoragePolicy>>>" persistent="false"/> | ||
| <class name="edm::Wrapper<cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::DevStoragePolicy>>>" persistent="false"/> | ||
|
|
||
| <class name="cms::cuda::Product<ecal::RecHit<calo::common::ViewStoragePolicy>>" persistent="false"/> | ||
| <class name="cms::cuda::Product<ecal::RecHit<calo::common::DevStoragePolicy>>" persistent="false"/> | ||
| <class name="edm::Wrapper<cms::cuda::Product<ecal::RecHit<calo::common::ViewStoragePolicy>>>" persistent="false"/> | ||
| <class name="edm::Wrapper<cms::cuda::Product<ecal::RecHit<calo::common::DevStoragePolicy>>>" persistent="false"/> | ||
|
|
||
| <class name="ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>" persistent="false"/> | ||
| <class name="edm::Wrapper<ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>>" persistent="false"/> | ||
| <class name="ecal::RecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>" persistent="false"/> | ||
| <class name="edm::Wrapper<ecal::RecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>>" persistent="false"/> | ||
| <class name="ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<std::allocator>>" persistent="false"/> | ||
| <class name="edm::Wrapper<ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<std::allocator>>>" persistent="false"/> | ||
| <class name="ecal::RecHit<calo::common::VecStoragePolicy<std::allocator>>" persistent="false"/> | ||
| <class name="edm::Wrapper<ecal::RecHit<calo::common::VecStoragePolicy<std::allocator>>>" persistent="false"/> | ||
| </lcgdict> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| <bin name="makeEcalRaw2DigiGpuValidationPlots" file="makeEcalRaw2DigiGpuValidationPlots.cpp"> | ||
| <use name="root"/> | ||
| <use name="rootgraphics"/> | ||
| <use name="DataFormats/Common"/> | ||
| <use name="DataFormats/EcalDigi"/> | ||
| <use name="DataFormats/EcalDetId"/> | ||
| </bin> |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.