1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
import FWCore.ParameterSet.Config as cms
from DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi import *
pixelTracksMonitor = TrackerCollisionTrackMon.clone(
FolderName = 'Tracking/PixelTrackParameters/pixelTracks',
TrackProducer = 'pixelTracks',
allTrackProducer = 'pixelTracks',
beamSpot = 'offlineBeamSpot',
primaryVertex = 'pixelVertices',
pvNDOF = 1,
doAllPlots = False,
doLumiAnalysis = True,
doProfilesVsLS = True,
doDCAPlots = True,
doEffFromHitPatternVsPU = False,
doEffFromHitPatternVsBX = False,
doEffFromHitPatternVsLUMI = False,
doPlotsVsGoodPVtx = True,
doPlotsVsLUMI = True,
doPlotsVsBX = True
)
_trackSelector = cms.EDFilter('TrackSelector',
src = cms.InputTag('pixelTracks'),
cut = cms.string("")
)
quality = {
"L" : "loose",
"T" : "tight",
"HP" : "highPurity",
}
for key,value in quality.items():
label = "pixelTrks"+key
# print label
cutstring = "quality('" + value + "')"
# print cutstring
if label not in globals():
locals()[label] = _trackSelector.clone( cut = cutstring )
locals()[label].setLabel(label)
else :
print(label,"already configured")
for key,value in quality.items():
label = "pixelTrksMonitor"+key
locals()[label] = pixelTracksMonitor.clone(
TrackProducer = "pixelTrks"+key,
FolderName = "Tracking/PixelTrackParameters/"+value
)
locals()[label].setLabel(label)
ntuplet = {
'3' : "3Hits", # ==3
'4' : "4Hits" # >=4
}
for kN,vN in ntuplet.items():
for key,value in quality.items():
label = "pixelTrks" + vN + key
# print label
cutstring = "numberOfValidHits == " + kN + " & quality('" + value + "')"
# print cutstring
locals()[label] = _trackSelector.clone( cut = cutstring )
locals()[label].setLabel(label)
for kN,vN in ntuplet.items():
for key,value in quality.items():
label = "pixelTrks" + vN + "Monitor" + key
# print label
locals()[label] = pixelTracksMonitor.clone(
TrackProducer = "pixelTrks" + vN + key,
FolderName = "Tracking/PixelTrackParameters/" + vN + "/" + value
)
locals()[label].setLabel(label)
from CommonTools.ParticleFlow.goodOfflinePrimaryVertices_cfi import goodOfflinePrimaryVertices as _goodOfflinePrimaryVertices
goodPixelVertices = _goodOfflinePrimaryVertices.clone(
src = "pixelVertices"
)
from DQM.TrackingMonitor.primaryVertexResolution_cfi import primaryVertexResolution as _primaryVertexResolution
pixelVertexResolution = _primaryVertexResolution.clone(
vertexSrc = "goodPixelVertices",
rootFolder = "OfflinePixelPV/Resolution"
)
pixelTracksMonitoringTask = cms.Task(
goodPixelVertices,
)
for category in ["pixelTrks", "pixelTrks3Hits", "pixelTrks4Hits"]:
for key in quality:
label = category+key
# print label
pixelTracksMonitoringTask.add(locals()[label])
allPixelTracksMonitoring = cms.Sequence()
for category in ["pixelTrksMonitor", "pixelTrks3HitsMonitor", "pixelTrks4HitsMonitor" ]:
for key in quality:
label = category+key
# print label
allPixelTracksMonitoring += locals()[label]
pixelTracksMonitoring = cms.Sequence(
allPixelTracksMonitoring +
pixelVertexResolution,
pixelTracksMonitoringTask
)
|