1 import FWCore.ParameterSet.Config
as cms
5 from DQM.EcalMonitorTasks.LaserTask_cfi
import ecalLaserTask
9 expectedAmplitude = [1700.0, 1300.0, 1700.0, 1700.0]
10 toleranceAmplitudeLo = 0.1
11 toleranceAmplitudeHi = 2.06
12 toleranceAmpRMSRatio = 0.3
13 expectedPNAmplitude = [800.0, 800.0, 800.0, 800.0]
15 tolerancePNRMSRatio = 1.
16 expectedTiming = [4.2, 3.7, 4.2, 4.2]
20 ecalLaserClient = cms.untracked.PSet(
21 params = cms.untracked.PSet(
22 forwardFactor = cms.untracked.double(forwardFactor),
23 minChannelEntries = cms.untracked.int32(minChannelEntries),
24 expectedAmplitude = cms.untracked.vdouble(expectedAmplitude),
25 toleranceAmplitudeLo = cms.untracked.double(toleranceAmplitudeLo),
26 toleranceAmplitudeHi = cms.untracked.double(toleranceAmplitudeHi),
27 toleranceAmpRMSRatio = cms.untracked.double(toleranceAmpRMSRatio),
28 expectedPNAmplitude = cms.untracked.vdouble(expectedPNAmplitude),
29 tolerancePNAmp = cms.untracked.double(tolerancePNAmp),
30 tolerancePNRMSRatio = cms.untracked.double(tolerancePNRMSRatio),
31 expectedTiming = cms.untracked.vdouble(expectedTiming),
32 toleranceTiming = cms.untracked.double(toleranceTiming),
33 toleranceTimRMS = cms.untracked.double(toleranceTimRMS),
34 laserWavelengths = ecaldqmLaserWavelengths
36 sources = cms.untracked.PSet(
37 Timing = ecalLaserTask.MEs.Timing,
38 PNAmplitude = ecalLaserTask.MEs.PNAmplitude,
39 Amplitude = ecalLaserTask.MEs.Amplitude,
40 CalibStatus = ecalLaserTask.MEs.CalibStatus
42 MEs = cms.untracked.PSet(
43 TimingRMS = cms.untracked.PSet(
44 kind = cms.untracked.string(
'TH1F'),
45 multi = cms.untracked.PSet(
46 wl = ecaldqmLaserWavelengths
48 otype = cms.untracked.string(
'SM'),
49 xaxis = cms.untracked.PSet(
50 high = cms.untracked.double(0.5),
51 nbins = cms.untracked.int32(100),
52 low = cms.untracked.double(0.0),
53 title = cms.untracked.string(
'rms (clock)')
55 btype = cms.untracked.string(
'User'),
56 path = cms.untracked.string(
'%(subdet)s/%(prefix)sLaserClient/%(prefix)sLT laser timing rms L%(wl)s %(sm)s'),
57 description = cms.untracked.string(
'Distribution of the timing RMS in each crystal channel. X scale is in LHC clocks. Channels with less than ' +
str(minChannelEntries) +
' are not considered.')
59 TimingMean = cms.untracked.PSet(
60 kind = cms.untracked.string(
'TH1F'),
61 multi = cms.untracked.PSet(
62 wl = ecaldqmLaserWavelengths
64 otype = cms.untracked.string(
'SM'),
65 xaxis = cms.untracked.PSet(
66 high = cms.untracked.double(5.0),
67 nbins = cms.untracked.int32(100),
68 low = cms.untracked.double(3.0),
69 title = cms.untracked.string(
'time (clock)')
71 btype = cms.untracked.string(
'User'),
72 path = cms.untracked.string(
'%(subdet)s/%(prefix)sLaserClient/%(prefix)sLT laser timing mean L%(wl)s %(sm)s'),
73 description = cms.untracked.string(
'Distribution of the timing in each crystal channel. X scale is in LHC clocks. Channels with less than ' +
str(minChannelEntries) +
' are not considered.')
75 PNQualitySummary = cms.untracked.PSet(
76 path = cms.untracked.string(
'%(subdet)s/%(prefix)sSummaryClient/%(prefix)sLT PN laser quality summary L%(wl)s'),
77 otype = cms.untracked.string(
'MEM2P'),
78 multi = cms.untracked.PSet(
79 wl = ecaldqmLaserWavelengths
81 kind = cms.untracked.string(
'TH2F'),
82 btype = cms.untracked.string(
'Crystal'),
83 description = cms.untracked.string(
'Summary of the laser data quality in the PN diodes. A channel is red if mean / expected < ' +
str(tolerancePNAmp) +
' or RMS / expected > ' +
str(tolerancePNRMSRatio) +
'. Expected amplitudes are ' + (
'%.1f, %.1f, %.1f, %.1f' % tuple(expectedPNAmplitude)) +
' for laser 1, 2, 3, and 4 respectively. Channels with less than ' +
str(minChannelEntries) +
' are not considered.'),
85 TimingRMSMap = cms.untracked.PSet(
86 multi = cms.untracked.PSet(
87 wl = ecaldqmLaserWavelengths
89 kind = cms.untracked.string(
'TH2F'),
90 otype = cms.untracked.string(
'Ecal2P'),
91 zaxis = cms.untracked.PSet(
92 title = cms.untracked.string(
'rms (clock)')
94 btype = cms.untracked.string(
'Crystal'),
95 path = cms.untracked.string(
'%(subdet)s/%(prefix)sLaserClient/%(prefix)sLT laser timing rms map L%(wl)s'),
96 description = cms.untracked.string(
'2D distribution of the laser timing RMS. Z scale is in LHC clocks. Channels with less than ' +
str(minChannelEntries) +
' are not considered.')
98 AmplitudeMean = cms.untracked.PSet(
99 kind = cms.untracked.string(
'TH1F'),
100 multi = cms.untracked.PSet(
101 wl = ecaldqmLaserWavelengths
103 otype = cms.untracked.string(
'SM'),
104 xaxis = cms.untracked.PSet(
105 high = cms.untracked.double(4096.0),
106 nbins = cms.untracked.int32(100),
107 low = cms.untracked.double(0.0)
109 btype = cms.untracked.string(
'User'),
110 path = cms.untracked.string(
'%(subdet)s/%(prefix)sLaserClient/%(prefix)sLT amplitude L%(wl)s %(sm)s'),
111 description = cms.untracked.string(
'Distribution of the mean amplitude seen in each crystal. Channels with less than ' +
str(minChannelEntries) +
' are not considered.')
113 QualitySummary = cms.untracked.PSet(
114 path = cms.untracked.string(
'%(subdet)s/%(prefix)sSummaryClient/%(prefix)sLT%(suffix)s laser quality summary L%(wl)s'),
115 otype = cms.untracked.string(
'Ecal3P'),
116 multi = cms.untracked.PSet(
117 wl = ecaldqmLaserWavelengths
119 kind = cms.untracked.string(
'TH2F'),
120 btype = cms.untracked.string(
'SuperCrystal'),
121 description = cms.untracked.string(
'Summary of the laser data quality. A channel is red either if mean / expected < ' +
str(toleranceAmplitudeLo) +
', or if mean / expected > ' +
str(toleranceAmplitudeHi) +
', or if RMS / expected > ' +
str(toleranceAmpRMSRatio) +
', or if mean timing is off from expected by ' +
str(toleranceTiming) +
'. Expected amplitudes and timings are ' + (
'%.1f, %.1f, %.1f, %.1f' % tuple(expectedAmplitude)) +
' and ' + (
'%.1f, %.1f, %.1f, %.1f' % tuple(expectedTiming)) +
' for lasers 1, 2, 3, and 4 respectively. Channels with less than ' +
str(minChannelEntries) +
' are not considered.'),
123 Quality = cms.untracked.PSet(
124 path = cms.untracked.string(
'%(subdet)s/%(prefix)sLaserClient/%(prefix)sLT laser quality L%(wl)s %(sm)s'),
125 otype = cms.untracked.string(
'SM'),
126 multi = cms.untracked.PSet(
127 wl = ecaldqmLaserWavelengths
129 kind = cms.untracked.string(
'TH2F'),
130 btype = cms.untracked.string(
'Crystal'),
131 description = cms.untracked.string(
'Summary of the laser data quality. A channel is red either if mean / expected < ' +
str(toleranceAmplitudeLo) +
', or if mean / expected > ' +
str(toleranceAmplitudeHi) +
', or if RMS / expected > ' +
str(toleranceAmpRMSRatio) +
', or if RMS / expected > ' +
str(toleranceAmpRMSRatio) +
', or if mean timing is off from expected by ' +
str(toleranceTiming) +
'. Expected amplitudes and timings are ' + (
'%.1f, %.1f, %.1f, %.1f' % tuple(expectedAmplitude)) +
' and ' + (
'%.1f, %.1f, %.1f, %.1f' % tuple(expectedTiming)) +
' for lasers 1, 2, 3, and 4 respectively. Channels with less than ' +
str(minChannelEntries) +
' are not considered.'),
133 AmplitudeRMS = cms.untracked.PSet(
134 multi = cms.untracked.PSet(
135 wl = ecaldqmLaserWavelengths
137 kind = cms.untracked.string(
'TH2F'),
138 otype = cms.untracked.string(
'Ecal2P'),
139 zaxis = cms.untracked.PSet(
140 title = cms.untracked.string(
'rms (ADC counts)')
142 btype = cms.untracked.string(
'Crystal'),
143 path = cms.untracked.string(
'%(subdet)s/%(prefix)sLaserClient/%(prefix)sLT amplitude rms L%(wl)s'),
144 description = cms.untracked.string(
'2D distribution of the amplitude RMS. Channels with less than ' +
str(minChannelEntries) +
' are not considered.')