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 = "hiSelectedVertex"
10 gedGsfElectronCores.ctfTracks = "hiGeneralTracks"
11 gedGsfElectronsTmp.ctfTracksTag = "hiGeneralTracks"
12 gedGsfElectronsTmp.vtxTag = "hiSelectedVertex"
13 gedGsfElectronsTmp.preselection.minSCEtBarrel = 15.0
14 gedGsfElectronsTmp.preselection.minSCEtEndcaps = 15.0
15 gedGsfElectronsTmp.fillConvVtxFitProb = False
16 
17 gedPhotonsTmp.primaryVertexProducer = "hiSelectedVertex"
18 gedPhotonsTmp.isolationSumsCalculatorSet.trackProducer = "hiGeneralTracks"
19 gedPhotons.primaryVertexProducer = "hiSelectedVertex"
20 gedPhotons.isolationSumsCalculatorSet.trackProducer = "hiGeneralTracks"
21 photonIDValueMaps.vertices = "hiSelectedVertex"
22 from RecoHI.HiEgammaAlgos.photonIsolationHIProducer_cfi import photonIsolationHIProducer
23 
24 photonIsolationHIProducerGED = photonIsolationHIProducer.clone(photonProducer = "gedPhotonsTmp")
25 
26 #These are set for consistency w/ HiElectronSequence, but these cuts need to be studied
27 gedGsfElectronsTmp.preselection.maxHOverEBarrelCone = 0.25
28 gedGsfElectronsTmp.preselection.maxHOverEEndcapsCone = 0.25
29 gedGsfElectronsTmp.preselection.maxHOverEBarrelBc = 0.0
30 gedGsfElectronsTmp.preselection.maxHOverEEndcapsBc = 0.0
31 gedGsfElectronsTmp.preselection.maxEOverPBarrel = 2.
32 gedGsfElectronsTmp.preselection.maxEOverPEndcaps = 2.
33 
34 ootPhotonsTmp.primaryVertexProducer = "hiSelectedVertex"
35 ootPhotonsTmp.isolationSumsCalculatorSet.trackProducer = "hiGeneralTracks"
36 ootPhotons.primaryVertexProducer = "hiSelectedVertex"
37 ootPhotons.isolationSumsCalculatorSet.trackProducer = "hiGeneralTracks"
38 
40 
41 mvaElectrons.vertexTag = "hiSelectedVertex"
42 
43 particleFlowBlock.elementImporters = cms.VPSet(
44  cms.PSet( importerName = cms.string("GSFTrackImporter"),
45  source = cms.InputTag("pfTrackElec"),
46  gsfsAreSecondary = cms.bool(False),
47  superClustersArePF = cms.bool(True) ),
48  cms.PSet( importerName = cms.string("SuperClusterImporter"),
49  source_eb = cms.InputTag("particleFlowSuperClusterECAL:particleFlowSuperClusterECALBarrel"),
50  source_ee = cms.InputTag("particleFlowSuperClusterECAL:particleFlowSuperClusterECALEndcapWithPreshower"),
51  maximumHoverE = cms.double(0.5),
52  minSuperClusterPt = cms.double(10.0),
53  minPTforBypass = cms.double(100.0),
54  hbheRecHitsTag = cms.InputTag("hbhereco"),
55  maxSeverityHB = cms.int32(9),
56  maxSeverityHE = cms.int32(9),
57  usePFThresholdsFromDB = cms.bool(True),
58  superClustersArePF = cms.bool(True) ),
59  # all secondary track importers
60  cms.PSet( importerName = cms.string("GeneralTracksImporter"),
61  source = cms.InputTag("pfTrack"),
62  muonSrc = cms.InputTag("hiMuons1stStep"),
63  trackQuality = cms.string("highPurity"),
64  cleanBadConvertedBrems = cms.bool(False),
65  useIterativeTracking = cms.bool(False),
66  DPtOverPtCuts_byTrackAlgo = cms.vdouble(-1.0,-1.0,-1.0,
67  1.0,1.0),
68  NHitCuts_byTrackAlgo = cms.vuint32(3,3,3,3,3),
69  muonMaxDPtOPt = cms.double(1),
70  vetoEndcap = cms.bool(False)
71  ),
72  # to properly set SC based links you need to run ECAL importer
73  # after you've imported all SCs to the block
74  cms.PSet( importerName = cms.string("ECALClusterImporter"),
75  source = cms.InputTag("particleFlowClusterECAL"),
76  BCtoPFCMap = cms.InputTag('particleFlowSuperClusterECAL:PFClusterAssociationEBEE') ),
77  cms.PSet( importerName = cms.string("GenericClusterImporter"),
78  source = cms.InputTag("particleFlowClusterHCAL") ),
79  cms.PSet( importerName = cms.string("GenericClusterImporter"),
80  source = cms.InputTag("particleFlowClusterHO") ),
81  cms.PSet( importerName = cms.string("GenericClusterImporter"),
82  source = cms.InputTag("particleFlowClusterHF") ),
83  cms.PSet( importerName = cms.string("GenericClusterImporter"),
84  source = cms.InputTag("particleFlowClusterPS") )
85  )
86 
87 particleFlowTmp.postMuonCleaning = False
88 particleFlowTmp.vertexCollection = "hiSelectedVertex"
89 particleFlowTmp.muons = "hiMuons1stStep"
90 particleFlowTmp.usePFConversions = False
91 
92 pfNoPileUpIso.enable = False
93 pfPileUpIso.enable = False
94 pfNoPileUp.enable = False
95 pfPileUp.enable = False
96 particleFlow.Muons = "muons:hiMuons1stStep2muonsMap"
97 
98 
99 # local reco must run before electrons (RecoHI/HiEgammaAlgos), due to PF integration
100 hiParticleFlowLocalRecoTask = cms.Task(particleFlowClusterTask)
101 hiParticleFlowLocalReco = cms.Sequence(hiParticleFlowLocalRecoTask)
102 
103 particleFlowTmpTask = cms.Task(particleFlowTmp)
104 particleFlowTmpSeq = cms.Sequence(particleFlowTmpTask)
105 
106 #PF Reco runs after electrons
107 hiParticleFlowRecoTask = cms.Task( pfGsfElectronMVASelectionTask
108  , particleFlowBlock
109  , particleFlowEGammaFullTask
110  , photonIsolationHIProducerGED
111  , particleFlowTmpTask
112  , fixedGridRhoFastjetAllTmp
113  , particleFlowTmpPtrs
114  , particleFlowEGammaFinalTask
115  , pfParticleSelectionTask
116  )
117 hiParticleFlowReco = cms.Sequence(hiParticleFlowRecoTask)
118 
119 particleFlowLinksTask = cms.Task( particleFlow,particleFlowPtrs,chargedHadronPFTrackIsolation,particleBasedIsolationTask)
120 particleFlowLinks = cms.Sequence(particleFlowLinksTask)