CMS 3D CMS Logo

pvRecoSequence_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
6 
7 #from RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi import *
8 
9 # 2010-like PV reconstruction
10 
11 offlinePrimaryVerticesGAP = cms.EDProducer("PrimaryVertexProducer",
12  verbose = cms.untracked.bool(False),
13  beamSpotLabel = cms.InputTag("offlineBeamSpot"),
14  TrackLabel = cms.InputTag("generalTracks"), # label of tracks to be used
15  TkFilterParameters = cms.PSet(
16  algorithm=cms.string('filter'),
17  maxNormalizedChi2 = cms.double(20.0), #
18  minSiliconLayersWithHits = cms.int32(5), # >= 5
19  minPixelLayersWithHits = cms.int32(2), # >= 2
20  maxD0Significance = cms.double(100.0), # keep most primary tracks
21  minPt = cms.double(0.0), # better for softish events
22  trackQuality = cms.string("any")
23  ),
24  # clustering
25  TkClusParameters = cms.PSet(
26  algorithm = cms.string('gap'),
27  TkGapClusParameters = cms.PSet(
28  zSeparation = cms.double(0.2)
29  )
30  ),
31  vertexCollections = cms.VPSet(
32  [cms.PSet(label=cms.string(""),
33  algorithm = cms.string('AdaptiveVertexFitter'),
34  minNdof=cms.double(0.0),
35  useBeamConstraint = cms.bool(False),
36  maxDistanceToBeam = cms.double(2.0)
37  )]
38  )
39 )
40 
41 
42 
43 offlinePrimaryVerticesD0s5 = offlinePrimaryVerticesGAP.clone()
44 offlinePrimaryVerticesD0s5.TkFilterParameters.maxD0Significance = cms.double(5)
45 
46 offlinePrimaryVerticesD0s51mm = offlinePrimaryVerticesGAP.clone()
47 offlinePrimaryVerticesD0s51mm.TkFilterParameters.maxD0Significance = cms.double(5)
48 offlinePrimaryVerticesD0s51mm.TkClusParameters.TkGapClusParameters.zSeparation = cms.double(0.1)
49 
50 
51 offlinePrimaryVerticesDA100um = cms.EDProducer("PrimaryVertexProducer",
52 
53  verbose = cms.untracked.bool(False),
54  TrackLabel = cms.InputTag("generalTracks"),
55  beamSpotLabel = cms.InputTag("offlineBeamSpot"),
56 
57  TkFilterParameters = cms.PSet(
58  algorithm=cms.string('filter'),
59  maxNormalizedChi2 = cms.double(20.0),
60  minPixelLayersWithHits=cms.int32(2),
61  minSiliconLayersWithHits = cms.int32(5),
62  maxD0Significance = cms.double(5.0),
63  minPt = cms.double(0.0),
64  trackQuality = cms.string("any")
65  ),
66 
67  TkClusParameters = cms.PSet(
68  algorithm = cms.string("DA"),
69  TkDAClusParameters = cms.PSet(
70  coolingFactor = cms.double(0.6), # moderate annealing speed
71  Tmin = cms.double(4.), # end of annealing
72  vertexSize = cms.double(0.01), #
73  d0CutOff = cms.double(3.), # downweight high IP tracks
74  dzCutOff = cms.double(4.) # outlier rejection after freeze-out (T<Tmin)
75  )
76  ),
77 
78  vertexCollections = cms.VPSet(
79  [cms.PSet(label=cms.string(""),
80  algorithm=cms.string("AdaptiveVertexFitter"),
81  minNdof=cms.double(0.0),
82  useBeamConstraint = cms.bool(False),
83  maxDistanceToBeam = cms.double(1.0)
84  )
85  ]
86  )
87 
88 
89 
90 )
91 
92 offlinePrimaryVerticesDA100umV7 = offlinePrimaryVerticesDA100um.clone()
93 offlinePrimaryVerticesDA100umV7.vertexCollections[0].maxDistanceToBeam = cms.double(2.0)
94 offlinePrimaryVerticesDA100umV7.TkFilterParameters.maxNormalizedChi2 = cms.double(5.0)
95 offlinePrimaryVerticesDA100umV7.TkClusParameters.TkDAClusParameters.coolingFactor = cms.double(0.8)
96 offlinePrimaryVerticesDA100umV7.TkClusParameters.TkDAClusParameters.Tmin = cms.double(9.)
97 
98 offlinePrimaryVerticesDA100umV8 = offlinePrimaryVerticesDA100um.clone()
99 offlinePrimaryVerticesDA100umV8.vertexCollections[0].maxDistanceToBeam = cms.double(1.0)
100 offlinePrimaryVerticesDA100umV8.TkFilterParameters.maxNormalizedChi2 = cms.double(5.0)
101 offlinePrimaryVerticesDA100umV8.TkClusParameters.TkDAClusParameters.coolingFactor = cms.double(0.6)
102 offlinePrimaryVerticesDA100umV8.TkClusParameters.TkDAClusParameters.Tmin = cms.double(4.)
103 
104 
105 seqPVReco = cms.Sequence(offlinePrimaryVerticesGAP + offlinePrimaryVerticesD0s5 + offlinePrimaryVerticesD0s51mm +
106  offlinePrimaryVerticesDA100um + offlinePrimaryVerticesDA100umV7 + offlinePrimaryVerticesDA100umV8 )