File indexing completed on 2024-04-06 12:09:12
0001 import FWCore.ParameterSet.Config as cms
0002
0003 from DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi import *
0004 pixelTracksMonitor = TrackerCollisionTrackMon.clone(
0005 FolderName = 'Tracking/PixelTrackParameters/pixelTracks',
0006 TrackProducer = 'pixelTracks',
0007 allTrackProducer = 'pixelTracks',
0008 beamSpot = 'offlineBeamSpot',
0009 primaryVertex = 'pixelVertices',
0010 pvNDOF = 1,
0011 doAllPlots = False,
0012 doLumiAnalysis = True,
0013 doProfilesVsLS = True,
0014 doDCAPlots = True,
0015 doEffFromHitPatternVsPU = False,
0016 doEffFromHitPatternVsBX = False,
0017 doEffFromHitPatternVsLUMI = False,
0018 doPlotsVsGoodPVtx = True,
0019 doPlotsVsLUMI = True,
0020 doPlotsVsBX = True
0021 )
0022
0023 _trackSelector = cms.EDFilter('TrackSelector',
0024 src = cms.InputTag('pixelTracks'),
0025 cut = cms.string("")
0026 )
0027
0028 quality = {
0029 "L" : "loose",
0030 "T" : "tight",
0031 "HP" : "highPurity",
0032 }
0033
0034 for key,value in quality.items():
0035 label = "pixelTrks"+key
0036
0037 cutstring = "quality('" + value + "')"
0038
0039 if label not in globals():
0040 locals()[label] = _trackSelector.clone( cut = cutstring )
0041 locals()[label].setLabel(label)
0042 else :
0043 print(label,"already configured")
0044
0045 for key,value in quality.items():
0046 label = "pixelTrksMonitor"+key
0047 locals()[label] = pixelTracksMonitor.clone(
0048 TrackProducer = "pixelTrks"+key,
0049 FolderName = "Tracking/PixelTrackParameters/"+value
0050 )
0051 locals()[label].setLabel(label)
0052
0053 ntuplet = {
0054 '3' : "3Hits",
0055 '4' : "4Hits"
0056 }
0057 for kN,vN in ntuplet.items():
0058 for key,value in quality.items():
0059 label = "pixelTrks" + vN + key
0060
0061
0062 cutstring = "numberOfValidHits == " + kN + " & quality('" + value + "')"
0063
0064 locals()[label] = _trackSelector.clone( cut = cutstring )
0065 locals()[label].setLabel(label)
0066
0067 for kN,vN in ntuplet.items():
0068 for key,value in quality.items():
0069 label = "pixelTrks" + vN + "Monitor" + key
0070
0071 locals()[label] = pixelTracksMonitor.clone(
0072 TrackProducer = "pixelTrks" + vN + key,
0073 FolderName = "Tracking/PixelTrackParameters/" + vN + "/" + value
0074 )
0075 locals()[label].setLabel(label)
0076
0077
0078 from CommonTools.ParticleFlow.goodOfflinePrimaryVertices_cfi import goodOfflinePrimaryVertices as _goodOfflinePrimaryVertices
0079 goodPixelVertices = _goodOfflinePrimaryVertices.clone(
0080 src = "pixelVertices"
0081 )
0082
0083 from DQM.TrackingMonitor.primaryVertexResolution_cfi import primaryVertexResolution as _primaryVertexResolution
0084 pixelVertexResolution = _primaryVertexResolution.clone(
0085 vertexSrc = "goodPixelVertices",
0086 rootFolder = "OfflinePixelPV/Resolution"
0087 )
0088
0089 pixelTracksMonitoringTask = cms.Task(
0090 goodPixelVertices,
0091 )
0092
0093 for category in ["pixelTrks", "pixelTrks3Hits", "pixelTrks4Hits"]:
0094 for key in quality:
0095 label = category+key
0096
0097 pixelTracksMonitoringTask.add(locals()[label])
0098
0099 allPixelTracksMonitoring = cms.Sequence()
0100 for category in ["pixelTrksMonitor", "pixelTrks3HitsMonitor", "pixelTrks4HitsMonitor" ]:
0101 for key in quality:
0102 label = category+key
0103
0104 allPixelTracksMonitoring += locals()[label]
0105
0106 pixelTracksMonitoring = cms.Sequence(
0107 allPixelTracksMonitoring +
0108 pixelVertexResolution,
0109 pixelTracksMonitoringTask
0110 )
0111
0112
0113
0114