CMS 3D CMS Logo

Reconstruction_hiPF_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # include particle flow local reconstruction
5 
6 # run a trimmed down PF sequence with heavy-ion vertex, no conversions, nucl int, etc.
7 
9 particleFlowEGamma.vertexCollection = cms.InputTag("hiSelectedVertex")
10 gedGsfElectronCores.ctfTracks = cms.InputTag("hiGeneralTracks")
11 gedGsfElectronsTmp.ctfTracksTag = cms.InputTag("hiGeneralTracks")
12 gedGsfElectronsTmp.vtxTag = cms.InputTag("hiSelectedVertex")
13 gedGsfElectronsTmp.minSCEtBarrel = cms.double(15.0)
14 gedGsfElectronsTmp.minSCEtEndcaps = cms.double(15.0)
15 gedPhotonsTmp.primaryVertexProducer = cms.InputTag("hiSelectedVertex")
16 gedPhotonsTmp.isolationSumsCalculatorSet.trackProducer = cms.InputTag("hiGeneralTracks")
17 gedPhotons.primaryVertexProducer = cms.InputTag("hiSelectedVertex")
18 gedPhotons.isolationSumsCalculatorSet.trackProducer = cms.InputTag("hiGeneralTracks")
19 from RecoHI.HiEgammaAlgos.photonIsolationHIProducer_cfi import photonIsolationHIProducer
20 photonIsolationHIProducerGED = photonIsolationHIProducer.clone(photonProducer=cms.InputTag("gedPhotonsTmp"))
21 
22 #These are set for consistency w/ HiElectronSequence, but these cuts need to be studied
23 gedGsfElectronsTmp.maxHOverEBarrel = cms.double(0.25)
24 gedGsfElectronsTmp.maxHOverEEndcaps = cms.double(0.25)
25 gedGsfElectronsTmp.maxEOverPBarrel = cms.double(2.)
26 gedGsfElectronsTmp.maxEOverPEndcaps = cms.double(2.)
27 
28 ootPhotonsTmp.primaryVertexProducer = cms.InputTag("hiSelectedVertex")
29 ootPhotonsTmp.isolationSumsCalculatorSet.trackProducer = cms.InputTag("hiGeneralTracks")
30 ootPhotons.primaryVertexProducer = cms.InputTag("hiSelectedVertex")
31 ootPhotons.isolationSumsCalculatorSet.trackProducer = cms.InputTag("hiGeneralTracks")
32 
34 
35 particleFlowClusterECAL.energyCorrector.verticesLabel = cms.InputTag('hiPixelAdaptiveVertex')
36 
37 mvaElectrons.vertexTag = cms.InputTag("hiSelectedVertex")
38 
39 particleFlowBlock.elementImporters = cms.VPSet(
40  cms.PSet( importerName = cms.string("GSFTrackImporter"),
41  source = cms.InputTag("pfTrackElec"),
42  gsfsAreSecondary = cms.bool(False),
43  superClustersArePF = cms.bool(True) ),
44  cms.PSet( importerName = cms.string("SuperClusterImporter"),
45  source_eb = cms.InputTag("particleFlowSuperClusterECAL:particleFlowSuperClusterECALBarrel"),
46  source_ee = cms.InputTag("particleFlowSuperClusterECAL:particleFlowSuperClusterECALEndcapWithPreshower"),
47  source_towers = cms.InputTag("towerMaker"),
48  maximumHoverE = cms.double(0.5),
49  minSuperClusterPt = cms.double(10.0),
50  minPTforBypass = cms.double(100.0),
51  superClustersArePF = cms.bool(True) ),
52  # all secondary track importers
53  cms.PSet( importerName = cms.string("GeneralTracksImporter"),
54  source = cms.InputTag("pfTrack"),
55  muonSrc = cms.InputTag("hiMuons1stStep"),
56  useIterativeTracking = cms.bool(False),
57  DPtOverPtCuts_byTrackAlgo = cms.vdouble(-1.0,-1.0,-1.0,
58  1.0,1.0),
59  NHitCuts_byTrackAlgo = cms.vuint32(3,3,3,3,3)
60  ),
61  # to properly set SC based links you need to run ECAL importer
62  # after you've imported all SCs to the block
63  cms.PSet( importerName = cms.string("ECALClusterImporter"),
64  source = cms.InputTag("particleFlowClusterECAL"),
65  BCtoPFCMap = cms.InputTag('particleFlowSuperClusterECAL:PFClusterAssociationEBEE') ),
66  cms.PSet( importerName = cms.string("GenericClusterImporter"),
67  source = cms.InputTag("particleFlowClusterHCAL") ),
68  cms.PSet( importerName = cms.string("GenericClusterImporter"),
69  source = cms.InputTag("particleFlowClusterHO") ),
70  cms.PSet( importerName = cms.string("GenericClusterImporter"),
71  source = cms.InputTag("particleFlowClusterHF") ),
72  cms.PSet( importerName = cms.string("GenericClusterImporter"),
73  source = cms.InputTag("particleFlowClusterPS") )
74  )
75 
76 particleFlowTmp.postMuonCleaning = cms.bool(False)
77 particleFlowTmp.vertexCollection = cms.InputTag("hiSelectedVertex")
78 particleFlowTmp.usePFElectrons = cms.bool(True)
79 particleFlowTmp.muons = cms.InputTag("hiMuons1stStep")
80 particleFlowTmp.usePFConversions = cms.bool(False)
81 
82 pfNoPileUpIso.enable = False
83 pfPileUpIso.Enable = False
84 pfNoPileUp.enable = False
85 pfPileUp.Enable = False
86 particleFlow.Muons = cms.InputTag("muons","hiMuons1stStep2muonsMap")
87 
88 
89 # local reco must run before electrons (RecoHI/HiEgammaAlgos), due to PF integration
90 hiParticleFlowLocalReco = cms.Sequence(particleFlowCluster)
91 
92 particleFlowTmpSeq = cms.Sequence(particleFlowTmp)
93 
94 #PF Reco runs after electrons
95 hiParticleFlowReco = cms.Sequence( pfGsfElectronMVASelectionSequence
96  * particleFlowBlock
97  * particleFlowEGammaFull
98  * photonIsolationHIProducerGED
99  * particleFlowTmpSeq
100  * fixedGridRhoFastjetAllTmp
101  * particleFlowTmpPtrs
102  * particleFlowEGammaFinal
103  * pfParticleSelectionSequence
104  )
105 
106 particleFlowLinks = cms.Sequence( particleFlow*particleFlowPtrs*chargedHadronPFTrackIsolation*particleBasedIsolationSequence)