forked from cms-sw/cmssw
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrackerHitAssociationHeterogeneousProduct.h
49 lines (35 loc) · 1.18 KB
/
trackerHitAssociationHeterogeneousProduct.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef SimTrackerTrackerHitAssociationClusterHeterogeneousProduct_H
#define SimTrackerTrackerHitAssociationClusterHeterogeneousProduct_H
#ifndef __CUDACC__
#include "SimTracker/TrackerHitAssociation/interface/ClusterTPAssociation.h"
#endif
#include "HeterogeneousCore/Product/interface/HeterogeneousProduct.h"
namespace trackerHitAssociationHeterogeneousProduct {
#ifndef __CUDACC__
struct CPUProduct {
CPUProduct() = default;
template<typename T>
explicit CPUProduct(T const & t) : collection(t){}
ClusterTPAssociation collection;
};
#endif
struct ClusterSLGPU {
using Clus2TP = std::array<uint32_t,6>;
ClusterSLGPU * me_d=nullptr;
Clus2TP * links_d;
uint32_t * tkId_d;
uint32_t * tkId2_d;
uint32_t * n1_d;
uint32_t * n2_d;
static constexpr uint32_t MAX_DIGIS = 2000*150;
static constexpr uint32_t MaxNumModules = 2000;
};
struct GPUProduct {
ClusterSLGPU * gpu_d=nullptr;
};
#ifndef __CUDACC__
using ClusterTPAHeterogeneousProduct = HeterogeneousProductImpl<heterogeneous::CPUProduct<CPUProduct>,
heterogeneous::GPUCudaProduct<GPUProduct> >;
#endif
}
#endif