import RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi
firstStepPrimaryVerticesPreSplitting = RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi.offlinePrimaryVertices.clone(
)
firstStepPrimaryVerticesPreSplitting.TrackLabel = cms.InputTag(
    "initialStepTracksPreSplitting")
firstStepPrimaryVerticesPreSplitting.vertexCollections = cms.VPSet([
    cms.PSet(label=cms.string(""),
             algorithm=cms.string("AdaptiveVertexFitter"),
             minNdof=cms.double(0.0),
             useBeamConstraint=cms.bool(False),
             maxDistanceToBeam=cms.double(1.0))
])

#Jet Core emulation to identify jet-tracks
from RecoTracker.IterativeTracking.JetCoreRegionalStep_cff import initialStepTrackRefsForJets, caloTowerForTrk, ak4CaloJetsForTrk, jetsForCoreTracking
initialStepTrackRefsForJetsPreSplitting = initialStepTrackRefsForJets.clone(
    src='initialStepTracksPreSplitting')
caloTowerForTrkPreSplitting = caloTowerForTrk.clone()
ak4CaloJetsForTrkPreSplitting = ak4CaloJetsForTrk.clone(
    src='caloTowerForTrkPreSplitting',
    srcPVs='firstStepPrimaryVerticesPreSplitting')
jetsForCoreTrackingPreSplitting = jetsForCoreTracking.clone(
    src='ak4CaloJetsForTrkPreSplitting')

#Cluster Splitting
from RecoLocalTracker.SubCollectionProducers.jetCoreClusterSplitter_cfi import jetCoreClusterSplitter
siPixelClusters = jetCoreClusterSplitter.clone(
    pixelClusters=cms.InputTag('siPixelClustersPreSplitting'),
    vertices='firstStepPrimaryVerticesPreSplitting',
    cores='jetsForCoreTrackingPreSplitting')

# Final sequence
import RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi
firstStepPrimaryVerticesPreSplitting = RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi.offlinePrimaryVertices.clone()
firstStepPrimaryVerticesPreSplitting.TrackLabel = cms.InputTag("initialStepTracksPreSplitting")
firstStepPrimaryVerticesPreSplitting.vertexCollections = cms.VPSet(
     [cms.PSet(label=cms.string(""),
               algorithm=cms.string("AdaptiveVertexFitter"),
               minNdof=cms.double(0.0),
               useBeamConstraint = cms.bool(False),
               maxDistanceToBeam = cms.double(1.0)
               )
      ]
    )

#Jet Core emulation to identify jet-tracks
from RecoTracker.IterativeTracking.JetCoreRegionalStep_cff import initialStepTrackRefsForJets, caloTowerForTrk, ak4CaloJetsForTrk, jetsForCoreTracking
initialStepTrackRefsForJetsPreSplitting = initialStepTrackRefsForJets.clone(
    src = 'initialStepTracksPreSplitting')
caloTowerForTrkPreSplitting = caloTowerForTrk.clone()
ak4CaloJetsForTrkPreSplitting = ak4CaloJetsForTrk.clone(
    src = 'caloTowerForTrkPreSplitting',
    srcPVs = 'firstStepPrimaryVerticesPreSplitting')
jetsForCoreTrackingPreSplitting = jetsForCoreTracking.clone(
    src = 'ak4CaloJetsForTrkPreSplitting')

#Cluster Splitting
from RecoLocalTracker.SubCollectionProducers.jetCoreClusterSplitter_cfi import jetCoreClusterSplitter
siPixelClusters = jetCoreClusterSplitter.clone(
    pixelClusters = cms.InputTag('siPixelClustersPreSplitting'),
    vertices      = 'firstStepPrimaryVerticesPreSplitting',
    cores         = 'jetsForCoreTrackingPreSplitting'
)