Skip to content

Commit

Permalink
Synchronise with CMSSW_11_1_0_pre2
Browse files Browse the repository at this point in the history
Major changes:
  - restructure the RecoPixelVertexing/PixelVertexFinding package;
  - update the interface of PixelCPEFast.
  • Loading branch information
fwyzard committed Nov 27, 2020
1 parent 6c149b2 commit 9d7b7c1
Show file tree
Hide file tree
Showing 30 changed files with 2,158 additions and 59 deletions.
9 changes: 9 additions & 0 deletions CUDADataFormats/Vertex/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<use name="cuda"/>
<use name="rootcore"/>
<use name="CUDADataFormats/Common"/>
<use name="DataFormats/Common"/>
<use name="HeterogeneousCore/CUDAUtilities"/>
<use name="eigen"/>
<export>
<lib name="1"/>
</export>
14 changes: 14 additions & 0 deletions CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#ifndef CUDADataFormatsVertexZVertexHeterogeneous_H
#define CUDADataFormatsVertexZVertexHeterogeneous_H

#include "CUDADataFormats/Vertex/interface/ZVertexSoA.h"
#include "CUDADataFormats/Common/interface/HeterogeneousSoA.h"
#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h"

using ZVertexHeterogeneous = HeterogeneousSoA<ZVertexSoA>;
#ifndef __CUDACC__
#include "CUDADataFormats/Common/interface/Product.h"
using ZVertexCUDAProduct = cms::cuda::Product<ZVertexHeterogeneous>;
#endif

#endif
26 changes: 26 additions & 0 deletions CUDADataFormats/Vertex/interface/ZVertexSoA.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#ifndef CUDADataFormatsVertexZVertexSoA_H
#define CUDADataFormatsVertexZVertexSoA_H

#include <cstdint>
#include "HeterogeneousCore/CUDAUtilities/interface/cudaCompat.h"

// SOA for vertices
// These vertices are clusterized and fitted only along the beam line (z)
// to obtain their global coordinate the beam spot position shall be added (eventually correcting for the beam angle as well)
struct ZVertexSoA {
static constexpr uint32_t MAXTRACKS = 16 * 1024;
static constexpr uint32_t MAXVTX = 1024;

int16_t idv[MAXTRACKS]; // vertex index for each associated (original) track (-1 == not associate)
float zv[MAXVTX]; // output z-posistion of found vertices
float wv[MAXVTX]; // output weight (1/error^2) on the above
float chi2[MAXVTX]; // vertices chi2
float ptv2[MAXVTX]; // vertices pt^2
int32_t ndof[MAXTRACKS]; // vertices number of dof (reused as workspace for the number of nearest neighbours FIXME)
uint16_t sortInd[MAXVTX]; // sorted index (by pt2) ascending
uint32_t nvFinal; // the number of vertices

__host__ __device__ void init() { nvFinal = 0; }
};

#endif // CUDADataFormatsVertexZVertexSoA.H
8 changes: 8 additions & 0 deletions CUDADataFormats/Vertex/src/classes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#ifndef CUDADataFormats__src_classes_h
#define CUDADataFormats__src_classes_h

#include "CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h"
#include "CUDADataFormats/Common/interface/Product.h"
#include "DataFormats/Common/interface/Wrapper.h"

#endif
6 changes: 6 additions & 0 deletions CUDADataFormats/Vertex/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<lcgdict>
<class name="cms::cuda::Product<ZVertexHeterogeneous>" persistent="false"/>
<class name="edm::Wrapper<ZVertexCUDAProduct>" persistent="false"/>
<class name="ZVertexHeterogeneous" persistent="false"/>
<class name="edm::Wrapper<ZVertexHeterogeneous>" persistent="false"/>
</lcgdict>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import FWCore.ParameterSet.Config as cms

from DQM.TrackingMonitorClient.primaryVertexResolutionClient_cfi import primaryVertexResolutionClient as _primaryVertexResolutionClient

pixelVertexResolutionClient = _primaryVertexResolutionClient.clone(
subDirs = ["OfflinePixelPV/Resolution/*"]
)
27 changes: 11 additions & 16 deletions DQMOffline/Configuration/python/DQMOffline_SecondStep_cff.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import FWCore.ParameterSet.Config as cms

from DQMServices.Components.DQMMessageLoggerClient_cff import *
from DQMServices.Components.DQMDcsInfoClient_cfi import *
from DQMServices.Components.DQMFastTimerServiceClient_cfi import *

from DQMOffline.Ecal.ecal_dqm_client_offline_cff import *
Expand All @@ -10,14 +11,13 @@
from DQM.DTMonitorClient.dtDQMOfflineClients_cff import *
from DQM.RPCMonitorClient.RPCTier0Client_cff import *
from DQM.CSCMonitorModule.csc_dqm_offlineclient_collisions_cff import *
from DQMOffline.Muon.gem_dqm_offline_client_cff import *
from DQMOffline.Hcal.HcalDQMOfflinePostProcessor_cff import *
from DQM.HcalTasks.OfflineHarvestingSequence_pp import *
from DQMServices.Components.DQMFEDIntegrityClient_cff import *
from DQMOffline.L1Trigger.L1TriggerDqmOffline_cff import *
from DQM.SiTrackerPhase2.Phase2TrackerDQMHarvesting_cff import *

DQMNone = cms.Sequence()
DQMOffline_SecondStepDCS = cms.Sequence( dqmDcsInfoClient )

DQMOffline_SecondStepEcal = cms.Sequence( ecal_dqm_client_offline *
es_dqm_client_offline )
Expand All @@ -30,11 +30,6 @@
rpcTier0Client *
cscOfflineCollisionsClients )

from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
_run3_GEM_DQMOffline_SecondStepMuonDPG = DQMOffline_SecondStepMuonDPG.copy()
_run3_GEM_DQMOffline_SecondStepMuonDPG += gemClients
run3_GEM.toReplaceWith(DQMOffline_SecondStepMuonDPG, _run3_GEM_DQMOffline_SecondStepMuonDPG)

DQMOffline_SecondStepHcal = cms.Sequence( hcalOfflineHarvesting )

DQMOffline_SecondStepHcal2 = cms.Sequence( HcalDQMOfflinePostProcessor )
Expand All @@ -43,7 +38,7 @@

DQMOffline_SecondStepL1T = cms.Sequence( l1TriggerDqmOfflineClient )

DQMOffline_SecondStep_PreDPG = cms.Sequence(
DQMOffline_SecondStep_PreDPG = cms.Sequence( DQMOffline_SecondStepDCS *
DQMOffline_SecondStepEcal *
DQMOffline_SecondStepTrackerStrip *
DQMOffline_SecondStepTrackerPixel *
Expand Down Expand Up @@ -122,6 +117,9 @@
from DQM.CTPPS.ctppsDQM_cff import *
from Validation.RecoTau.DQMSequences_cfi import *
from DQM.TrackingMonitorClient.pixelTrackingEffFromHitPattern_cff import *
from DQM.TrackingMonitorClient.pixelVertexResolutionClient_cfi import *

DQMHarvestDCS = cms.Sequence ( dqmDcsInfoClient )

DQMHarvestTrackerStrip = cms.Sequence ( SiStripOfflineDQMClient )

Expand All @@ -145,6 +143,7 @@
DQMHarvestL1TMuon = cms.Sequence( l1TriggerMuonDqmOfflineClient )

DQMHarvestCommon = cms.Sequence( DQMMessageLoggerClientSeq *
DQMHarvestDCS *
DQMHarvestTrackerStrip *
DQMHarvestTrack *
DQMHarvestTrackerPixel *
Expand All @@ -160,6 +159,7 @@

DQMHarvestCommonSiStripZeroBias = cms.Sequence(
DQMMessageLoggerClientSeq *
DQMHarvestDCS *
DQMHarvestTrackerStrip *
DQMHarvestTrack *
DQMHarvestTrackerPixel *
Expand All @@ -176,12 +176,11 @@
DQMHarvestTracking = cms.Sequence( TrackingOfflineDQMClient *
dqmFastTimerServiceClient )

DQMHarvestTrackingZeroBias = cms.Sequence( TrackingOfflineDQMClientZeroBias *
dqmFastTimerServiceClient )

DQMHarvestPixelTracking = cms.Sequence( pixelTrackingEffFromHitPattern )
DQMHarvestPixelTracking = cms.Sequence( pixelTrackingEffFromHitPattern *
pixelVertexResolutionClient )

DQMHarvestOuterTracker = cms.Sequence(
dqmDcsInfoClient *
OuterTrackerClient *
dqmFEDIntegrityClient *
DQMMessageLoggerClientSeq *
Expand All @@ -198,10 +197,6 @@
muonQualityTests
)

_run3_GEM_DQMHarvestMuon = DQMHarvestMuon.copy()
_run3_GEM_DQMHarvestMuon += gemClients
run3_GEM.toReplaceWith(DQMHarvestMuon, _run3_GEM_DQMHarvestMuon)

DQMHarvestEcal = cms.Sequence( ecal_dqm_client_offline *
es_dqm_client_offline
)
Expand Down
47 changes: 12 additions & 35 deletions DQMOffline/Configuration/python/DQMOffline_cff.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import FWCore.ParameterSet.Config as cms

from DQMServices.Components.DQMMessageLogger_cfi import *
from DQMServices.Components.DQMProvInfo_cfi import *
from DQMServices.Components.DQMDcsInfo_cfi import *
from DQMServices.Components.DQMFastTimerService_cff import *

from DQMOffline.L1Trigger.L1TriggerDqmOffline_cff import *
Expand All @@ -14,7 +14,6 @@
from DQM.DTMonitorModule.dtDQMOfflineSources_cff import *
from DQM.RPCMonitorClient.RPCTier0Source_cff import *
from DQM.CSCMonitorModule.csc_dqm_sourceclient_offline_cff import *
from DQMOffline.Muon.gem_dqm_offline_source_cff import *
from DQM.CastorMonitor.castor_dqm_sourceclient_offline_cff import *
from DQM.CTPPS.ctppsDQM_cff import *
from DQM.SiTrackerPhase2.Phase2TrackerDQMFirstStep_cff import *
Expand All @@ -23,9 +22,7 @@

DQMMessageLoggerSeq = cms.Sequence( DQMMessageLogger )

dqmProvInfo.runType = "pp_run"
dqmProvInfo.dcsRecord = cms.untracked.InputTag("onlineMetaDataDigis")
DQMOfflineDCS = cms.Sequence( dqmProvInfo )
DQMOfflineDCS = cms.Sequence( dqmDcsInfo )

# L1 trigger sequences
DQMOfflineL1T = cms.Sequence( l1TriggerDqmOffline ) # L1 emulator is run within this sequence for real data
Expand All @@ -35,24 +32,13 @@
DQMOfflineL1TMuon = cms.Sequence( l1TriggerMuonDqmOffline )

#DPGs
DQMOfflineEcalOnly = cms.Sequence(
ecalOnly_dqm_source_offline +
es_dqm_source_offline )
DQMOfflineEcal = cms.Sequence( ecal_dqm_source_offline *
es_dqm_source_offline )

DQMOfflineEcal = cms.Sequence(
ecal_dqm_source_offline +
es_dqm_source_offline )

#offline version of the online DQM: used in validation/certification
DQMOfflineHcal = cms.Sequence( hcalOfflineSourceSequence )

# offline DQM: used in Release validation
DQMOfflineHcal2 = cms.Sequence( HcalDQMOfflineSequence )

DQMOfflineHcalOnly = cms.Sequence( hcalOnlyOfflineSourceSequence )

DQMOfflineHcal2Only = cms.Sequence( RecHitsDQMOffline )

DQMOfflineTrackerStrip = cms.Sequence( SiStripDQMTier0 )

DQMOfflineTrackerPixel = cms.Sequence( siPixelOfflineDQM_source )
Expand All @@ -61,11 +47,6 @@
rpcTier0Source *
cscSources )

from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
_run3_GEM_DQMOfflineMuonDPG = DQMOfflineMuonDPG.copy()
_run3_GEM_DQMOfflineMuonDPG += gemSources
run3_GEM.toReplaceWith(DQMOfflineMuonDPG, _run3_GEM_DQMOfflineMuonDPG)

DQMOfflineCASTOR = cms.Sequence( castorSources )

DQMOfflineCTPPS = cms.Sequence( ctppsDQMOfflineSource )
Expand Down Expand Up @@ -157,10 +138,12 @@

#DQMOfflineCommon
from DQM.TrackingMonitorSource.pixelTracksMonitoring_cff import *
from DQMOffline.RecoB.PixelVertexMonitor_cff import *
from DQM.SiOuterTracker.OuterTrackerSourceConfig_cff import *
from Validation.RecoTau.DQMSequences_cfi import *

DQMOfflinePixelTracking = cms.Sequence( pixelTracksMonitoring )
DQMOfflinePixelTracking = cms.Sequence( pixelTracksMonitoring *
pixelPVMonitor )

DQMOuterTracker = cms.Sequence( DQMOfflineDCS *
OuterTrackerSource *
Expand Down Expand Up @@ -227,14 +210,10 @@
muonMonitors
)

_run3_GEM_DQMOfflineMuon = DQMOfflineMuon.copy()
_run3_GEM_DQMOfflineMuon += gemSources
run3_GEM.toReplaceWith(DQMOfflineMuon, _run3_GEM_DQMOfflineMuon)

#Taus not created in pp conditions for HI
from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
_DQMOfflineTAU = cms.Sequence()
pp_on_AA.toReplaceWith(DQMOfflineTAU, _DQMOfflineTAU)
pp_on_AA_2018.toReplaceWith(DQMOfflineTAU, _DQMOfflineTAU)


# miniAOD DQM validation
Expand All @@ -252,13 +231,11 @@
PostDQMOfflineMiniAOD = cms.Sequence(miniAODDQMSequence*jetMETDQMOfflineSourceMiniAOD*tracksDQMMiniAOD*topPhysicsminiAOD)
PostDQMOffline = cms.Sequence()

from Configuration.Eras.Modifier_run3_HB_cff import run3_HB
run3_HB.toReplaceWith( PostDQMOfflineMiniAOD, PostDQMOfflineMiniAOD.copyAndExclude([
pfMetDQMAnalyzerMiniAOD, pfPuppiMetDQMAnalyzerMiniAOD # No hcalnoise (yet)
from Configuration.Eras.Modifier_phase2_hcal_cff import phase2_hcal
phase2_hcal.toReplaceWith( PostDQMOfflineMiniAOD, PostDQMOfflineMiniAOD.copyAndExclude([
pfMetDQMAnalyzerMiniAOD, pfPuppiMetDQMAnalyzerMiniAOD # No hcalnoise yet
]))

from PhysicsTools.NanoAOD.nanoDQM_cff import nanoDQM
DQMOfflineNanoAOD = cms.Sequence(nanoDQM)
#PostDQMOfflineNanoAOD = cms.Sequence(nanoDQM)
from PhysicsTools.NanoAOD.nanogenDQM_cff import nanogenDQM
DQMOfflineNanoGen = cms.Sequence(nanogenDQM)
7 changes: 7 additions & 0 deletions DQMOffline/RecoB/python/PixelVertexMonitor_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import FWCore.ParameterSet.Config as cms

from DQMOffline.RecoB.PrimaryVertexMonitor_cff import pvMonitor as _pvMonitor
pixelPVMonitor = _pvMonitor.clone(
TopFolderName = "OfflinePixelPV",
vertexLabel = "pixelVertices",
)
19 changes: 17 additions & 2 deletions RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,22 @@
#
# for STARTUP ONLY use try and use Offline 3D PV from pixelTracks, with adaptive vertex
#
#from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import *
from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import *
from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import *
#from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import *
recopixelvertexingTask = cms.Task(pixelTracksTask,pixelVertices)
recopixelvertexing = cms.Sequence(recopixelvertexingTask)

from Configuration.ProcessModifiers.gpu_cff import gpu

from RecoPixelVertexing.PixelVertexFinding.pixelVertexCUDA_cfi import pixelVertexCUDA
from RecoPixelVertexing.PixelVertexFinding.pixelVertexSoA_cfi import pixelVertexSoA
from RecoPixelVertexing.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA as _pixelVertexFromSoA

_pixelVertexingCUDATask = cms.Task(pixelTracksTask,pixelVertexCUDA,pixelVertexSoA,pixelVertices)

# pixelVertexSoAonCPU = pixelVertexCUDA.clone()
# pixelVertexSoAonCPU.onGPU = False;

gpu.toReplaceWith(pixelVertices,_pixelVertexFromSoA)
gpu.toReplaceWith(recopixelvertexingTask,_pixelVertexingCUDATask)

5 changes: 4 additions & 1 deletion RecoPixelVertexing/PixelVertexFinding/plugins/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<use name="CUDADataFormats/Vertex"/>
<use name="CommonTools/Clustering1D"/>
<use name="DataFormats/BeamSpot"/>
<use name="DataFormats/GeometryCommonDetAlgo"/>
Expand All @@ -15,10 +16,12 @@
<use name="FWCore/Utilities"/>
<use name="Geometry/Records"/>
<use name="Geometry/TrackerGeometryBuilder"/>
<use name="HeterogeneousCore/CUDACore"/>
<use name="HeterogeneousCore/CUDAUtilities"/>
<use name="RecoLocalTracker/ClusterParameterEstimator"/>
<use name="RecoLocalTracker/Records"/>
<use name="RecoPixelVertexing/PixelVertexFinding"/>
<use name="SimDataFormats/PileupSummaryInfo"/>
<library file="*.cc" name="RecoPixelVertexingPixelVertexFindingPlugins">
<library file="*.cc *.cu" name="RecoPixelVertexingPixelVertexFindingPlugins">
<flags EDM_PLUGIN="1"/>
</library>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// Package: RecoPixelVertexing/PixelVertexFinding
// Class: PixelVertexCollectionTrimmer
//
/**\class PixelVertexCollectionTrimmer PixelVertexCollectionTrimmer.cc RecoPixelVertexing/PixelVertexFinding/src/PixelVertexCollectionTrimmer.cc
/**\class PixelVertexCollectionTrimmer PixelVertexCollectionTrimmer.cc RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexCollectionTrimmer.cc
Description: [one line class summary]
Expand Down

0 comments on commit 9d7b7c1

Please sign in to comment.