CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackingSourceConfig_Tier0_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 from Configuration.StandardSequences.Eras import eras
3 
4 ### load which are the tracks collection 2 be monitored
6 
7 ### load the different flavour of settings of the TrackingMonitor module
9 
10 
11 ### define one EDAnalyzer per each track collection
12 ### following suggestion 2. in
13 ### https://hypernews.cern.ch/HyperNews/CMS/get/sw-develtools/1908/1.html
14 for tracks in selectedTracks :
15  label = 'TrackerCollisionSelectedTrackMonCommon' + str(tracks)
16  locals()[label] = TrackerCollisionTrackMonCommon.clone()
17  locals()[label].TrackProducer = cms.InputTag(tracks)
18  locals()[label].FolderName = cms.string(mainfolderName[tracks])
19  locals()[label].PVFolderName = cms.string(vertexfolderName[tracks])
20  locals()[label].TrackPtMin = trackPtMin[tracks]
21  locals()[label].TrackPtBin = trackPtN[tracks]
22  locals()[label].TrackPtMax = trackPtMax[tracks]
23  locals()[label].TrackPBin = trackPtN[tracks]
24  locals()[label].TrackPMin = trackPtMin[tracks]
25  locals()[label].TrackPMax = trackPtMax[tracks]
26  locals()[label].doDCAPlots = doPlotsPCA[tracks]
27  locals()[label].doDCAwrtPVPlots = doPlotsPCA[tracks]
28  locals()[label].doDCAwrt000Plots = doPlotsPCA[tracks]
29  locals()[label].doSIPPlots = doPlotsPCA[tracks]
30  locals()[label].numCut = numCutString[tracks]
31  locals()[label].denCut = denCutString[tracks]
32  locals()[label].doGoodTracksPlots = doGoodTracksPlots [tracks]
33  locals()[label].doTrackerSpecific = doTrackerSpecific [tracks]
34  locals()[label].doHitPropertiesPlots = doHitPropertiesPlots [tracks]
35  locals()[label].doGeneralPropertiesPlots = doGeneralPropertiesPlots [tracks]
36  locals()[label].doBeamSpotPlots = doBeamSpotPlots [tracks]
37  locals()[label].doSeedParameterHistos = doSeedParameterHistos [tracks]
38  locals()[label].doRecHitVsPhiVsEtaPerTrack = doRecHitVsPhiVsEtaPerTrack [tracks]
39  locals()[label].doGoodTrackRecHitVsPhiVsEtaPerTrack = doGoodTrackRecHitVsPhiVsEtaPerTrack [tracks]
40  locals()[label].doLayersVsPhiVsEtaPerTrack = doLayersVsPhiVsEtaPerTrack [tracks]
41  locals()[label].doGoodTrackLayersVsPhiVsEtaPerTrack = doGoodTrackLayersVsPhiVsEtaPerTrack [tracks]
42  locals()[label].doPUmonitoring = doPUmonitoring [tracks]
43  locals()[label].doPlotsVsBXlumi = doPlotsVsBXlumi [tracks]
44  locals()[label].doPlotsVsGoodPVtx = doPlotsVsGoodPVtx [tracks]
45  locals()[label].doEffFromHitPattern = doEffFromHitPattern [tracks]
46 # locals()[label].doStopSource = doStopSource [tracks]
47  locals()[label].setLabel(label)
48 
49 
50  label = 'TrackerCollisionSelectedTrackMonMB' + str(tracks)
51  locals()[label] = TrackerCollisionTrackMonMB.clone()
52  locals()[label].TrackProducer = cms.InputTag(tracks)
53  locals()[label].FolderName = cms.string(mainfolderName[tracks])
54  locals()[label].PVFolderName = cms.string(vertexfolderName[tracks])
55  locals()[label].TrackPtMin = trackPtMin[tracks]
56  locals()[label].TrackPtBin = trackPtN[tracks]
57  locals()[label].TrackPtMax = trackPtMax[tracks]
58  locals()[label].TrackPBin = trackPtN[tracks]
59  locals()[label].TrackPMin = trackPtMin[tracks]
60  locals()[label].TrackPMax = trackPtMax[tracks]
61  locals()[label].doDCAPlots = doPlotsPCA[tracks]
62  locals()[label].doDCAwrtPVPlots = doPlotsPCA[tracks]
63  locals()[label].doDCAwrt000Plots = doPlotsPCA[tracks]
64  locals()[label].doSIPPlots = doPlotsPCA[tracks]
65  locals()[label].numCut = numCutString[tracks]
66  locals()[label].denCut = denCutString[tracks]
67  locals()[label].doGoodTracksPlots = doGoodTracksPlots [tracks]
68  locals()[label].doTrackerSpecific = doTrackerSpecific [tracks]
69  locals()[label].doHitPropertiesPlots = doHitPropertiesPlots [tracks]
70  locals()[label].doGeneralPropertiesPlots = doGeneralPropertiesPlots [tracks]
71  locals()[label].doBeamSpotPlots = doBeamSpotPlots [tracks]
72  locals()[label].doSeedParameterHistos = doSeedParameterHistos [tracks]
73  locals()[label].doRecHitVsPhiVsEtaPerTrack = doRecHitVsPhiVsEtaPerTrack [tracks]
74  locals()[label].doGoodTrackRecHitVsPhiVsEtaPerTrack = doGoodTrackRecHitVsPhiVsEtaPerTrack [tracks]
75  locals()[label].doLayersVsPhiVsEtaPerTrack = doLayersVsPhiVsEtaPerTrack [tracks]
76  locals()[label].doGoodTrackLayersVsPhiVsEtaPerTrack = doGoodTrackLayersVsPhiVsEtaPerTrack [tracks]
77  locals()[label].doPUmonitoring = doPUmonitoring [tracks]
78  locals()[label].doPlotsVsBXlumi = doPlotsVsBXlumi [tracks]
79  locals()[label].doPlotsVsGoodPVtx = doPlotsVsGoodPVtx [tracks]
80  locals()[label].doEffFromHitPattern = doEffFromHitPattern [tracks]
81 # locals()[label].doStopSource = doStopSource [tracks]
82  locals()[label].setLabel(label)
83 
84 
85 #-------------------------------------------------
86 # Tracking Monitor
87 #-------------------------------------------------
88 import DQM.TrackingMonitor.TrackingMonitorSeed_cfi
89 
91 for step in selectedIterTrackingStep :
92  label = 'TrackSeedMon'+str(step)
93  locals()[label] = DQM.TrackingMonitor.TrackingMonitorSeed_cfi.TrackMonSeed.clone(
94  doTrackCandHistos = cms.bool(True)
95  )
96  locals()[label].TrackProducer = cms.InputTag("generalTracks")
97  locals()[label].FolderName = cms.string("Tracking/TrackParameters/generalTracks")
98  locals()[label].SeedProducer = seedInputTag[step]
99  locals()[label].TCProducer = trackCandInputTag[step]
100  locals()[label].AlgoName = cms.string( str(step) )
101  locals()[label].TkSeedSizeBin = trackSeedSizeBin[step]
102  locals()[label].TkSeedSizeMin = trackSeedSizeMin[step]
103  locals()[label].TkSeedSizeMax = trackSeedSizeMax[step]
104  locals()[label].ClusterLabels = clusterLabel[step]
105  if clusterLabel[step] == cms.vstring('Pix') :
106  locals()[label].NClusPxBin = clusterBin[step]
107  locals()[label].NClusPxMax = clusterMax[step]
108  elif clusterLabel[step] == cms.vstring('Strip') or clusterLabel[step] == cms.vstring('Tot') :
109  locals()[label].NClusStrBin = clusterBin[step]
110  locals()[label].NClusStrMax = clusterMax[step]
111 
112 # DQM Services
113 dqmInfoTracking = cms.EDAnalyzer("DQMEventInfo",
114  subSystemFolder = cms.untracked.string('Tracking')
115 )
116 
117 # LogMessageMonitor ####
118 ### load which are the module to monitor
120 
121 ### load the different flavour of settings of the LogMessageMonitor module
123 
124 for module in selectedModules :
125  label = str(module)+'LogMessageMonCommon'
126  locals()[label] = LogMessageMonCommon.clone()
127  locals()[label].pluginsMonName = pluginsMonName[module]
128  locals()[label].modules = modulesLabel[module]
129  locals()[label].categories = categories[module]
130  locals()[label].setLabel(label)
131 
132  label = str(module)+'LogMessageMonMB'
133  locals()[label] = LogMessageMonMB.clone()
134  locals()[label].pluginsMonName = pluginsMonName[module]
135  locals()[label].modules = modulesLabel[module]
136  locals()[label].categories = categories[module]
137  locals()[label].setLabel(label)
138 
139 
140 # dEdx monitor ####
141 ### load which dedx
143 
144 ### load the different flavour of settings of the dEdxAnalyzer module
146 
147 
148 # temporary patch in order to have BXlumi
150 
151 # temporary test in order to temporary produce the "goodPrimaryVertexCollection"
152 # define with a new name if changes are necessary, otherwise simply include
153 # it from CommonTools/ParticleFlow/python/goodOfflinePrimaryVertices_cfi.py
154 # uncomment when necessary
155 from PhysicsTools.SelectorUtils.pvSelector_cfi import pvSelector
156 from CommonTools.ParticleFlow.goodOfflinePrimaryVertices_cfi import goodOfflinePrimaryVertices
157 trackingDQMgoodOfflinePrimaryVertices = goodOfflinePrimaryVertices.clone()
158 trackingDQMgoodOfflinePrimaryVertices.filterParams = pvSelector.clone( minNdof = cms.double(4.0), maxZ = cms.double(24.0) )
159 trackingDQMgoodOfflinePrimaryVertices.src=cms.InputTag('offlinePrimaryVertices')
160 trackingDQMgoodOfflinePrimaryVertices.filter = cms.bool(False)
161 
162 # Sequence
163 TrackingDQMSourceTier0 = cms.Sequence()
164 # dEdx monitoring
165 TrackingDQMSourceTier0 += dedxHarmonicSequence * dEdxMonCommon * dEdxHitMonCommon
166 # # temporary patch in order to have BXlumi
167 # * lumiProducer
168 # track collections
169 for tracks in selectedTracks :
170  if tracks != 'generalTracks':
171  TrackingDQMSourceTier0 += sequenceName[tracks]
172  label = 'TrackerCollisionSelectedTrackMonCommon' + str(tracks)
173  TrackingDQMSourceTier0 += cms.Sequence(locals()[label])
174 # seeding monitoring
175 for step in selectedIterTrackingStep :
176  label = 'TrackSeedMon'+str(step)
177  TrackingDQMSourceTier0 += cms.Sequence(locals()[label])
178 eras.trackingLowPU.toReplaceWith(TrackingDQMSourceTier0, TrackingDQMSourceTier0.copyAndExclude([TrackSeedMonjetCoreRegionalStep]))
179 # MessageLog
180 for module in selectedModules :
181  label = str(module)+'LogMessageMonCommon'
182  TrackingDQMSourceTier0 += cms.Sequence(locals()[label])
183 TrackingDQMSourceTier0 += dqmInfoTracking
184 
185 
186 TrackingDQMSourceTier0Common = cms.Sequence()
187 # dEdx monitoring
188 TrackingDQMSourceTier0Common += (dedxHarmonicSequence * dEdxMonCommon * dEdxHitMonCommon)
189 ## monitor track collections
190 for tracks in selectedTracks :
191  if tracks != 'generalTracks':
192  TrackingDQMSourceTier0Common+=sequenceName[tracks]
193  label = 'TrackerCollisionSelectedTrackMonCommon' + str(tracks)
194  TrackingDQMSourceTier0Common += cms.Sequence(locals()[label])
195 # seeding monitoring
196 for step in selectedIterTrackingStep :
197  label = 'TrackSeedMon'+str(step)
198  TrackingDQMSourceTier0Common += cms.Sequence(locals()[label])
199 eras.trackingLowPU.toReplaceWith(TrackingDQMSourceTier0Common, TrackingDQMSourceTier0Common.copyAndExclude([TrackSeedMonjetCoreRegionalStep]))
200 # MessageLog
201 for module in selectedModules :
202  label = str(module)+'LogMessageMonCommon'
203  TrackingDQMSourceTier0Common += cms.Sequence(locals()[label])
204 TrackingDQMSourceTier0Common += dqmInfoTracking
205 
206 TrackingDQMSourceTier0MinBias = cms.Sequence()
207 # dEdx monitoring
208 TrackingDQMSourceTier0MinBias += dedxHarmonicSequence * dEdxMonCommon * dEdxHitMonCommon
209 # * lumiProducer
210 # * trackingDQMgoodOfflinePrimaryVertices
211 # monitor track collections
212 for tracks in selectedTracks :
213  if tracks != 'generalTracks':
214  TrackingDQMSourceTier0MinBias += sequenceName[tracks]
215  label = 'TrackerCollisionSelectedTrackMonMB' + str(tracks)
216  TrackingDQMSourceTier0MinBias += cms.Sequence(locals()[label])
217 # seeding monitoring
218 for step in selectedIterTrackingStep :
219  label = 'TrackSeedMon'+str(step)
220  TrackingDQMSourceTier0MinBias += cms.Sequence(locals()[label])
221 eras.trackingLowPU.toReplaceWith(TrackingDQMSourceTier0MinBias, TrackingDQMSourceTier0MinBias.copyAndExclude([TrackSeedMonjetCoreRegionalStep]))
222 # MessageLog
223 for module in selectedModules :
224  label = str(module)+'LogMessageMonMB'
225  TrackingDQMSourceTier0MinBias += cms.Sequence(locals()[label])
226 TrackingDQMSourceTier0MinBias += dqmInfoTracking
227 
load which dedx
load the different flavour of settings of the dEdxAnalyzer module
load which are the tracks collection 2 be monitored
load the different flavour of settings of the LogMessageMonitor module
load which are the module to monitor
load the different flavour of settings of the TrackingMonitor module