1 import FWCore.ParameterSet.Config
as cms
5 bxStepSizes = [9, 50, 100, 300]
6 bxMaxVals = [101, 1501, 2401, 3601]
9 for stepCounter
in range(len(bxStepSizes)):
10 runningMinVal = bxBins[-1]
11 bxStepSize = bxStepSizes[stepCounter]
12 bxMaxVal = bxMaxVals[stepCounter]
13 bxBins += list(
range(runningMinVal + bxStepSize, bxMaxVal, bxStepSize))
15 bxBinLabels = [
str(bxBins[0])]
16 for bxBinCounter
in range(0, -1+len(bxBins)):
17 bxBinLabels += [
str(1+bxBins[bxBinCounter]) +
"-->" +
str(bxBins[bxBinCounter+1])]
21 bxBinsFine = [i
for i
in range(1, 3601)]
22 bxBinLabelsFine = [
str(i)
for i
in range(1, 3601)]
23 nBXBinsFine = len(bxBinsFine)
27 EaxisEdges.append(
pow(10., -0.5 + 2.5 / 50. * i))
31 energyThresholdEE = 4.6
32 energyThresholdEEFwd = 6.7
33 energyThresholdEB = 2.02
34 timingVsBXThreshold = energyThresholdEB
35 timeErrorThreshold = 3.
37 summaryTimeWindow = 7.
39 ecalTimingTask = cms.untracked.PSet(
40 params = cms.untracked.PSet(
41 bxBins = cms.untracked.vint32(bxBins),
42 bxBinsFine = cms.untracked.vint32(bxBinsFine),
43 chi2ThresholdEE = cms.untracked.double(chi2ThresholdEE),
44 chi2ThresholdEB = cms.untracked.double(chi2ThresholdEB),
45 energyThresholdEE = cms.untracked.double(energyThresholdEE),
46 energyThresholdEEFwd = cms.untracked.double(energyThresholdEEFwd),
47 energyThresholdEB = cms.untracked.double(energyThresholdEB),
48 timingVsBXThreshold = cms.untracked.double(timingVsBXThreshold),
49 timeErrorThreshold = cms.untracked.double(timeErrorThreshold)
51 MEs = cms.untracked.PSet(
52 TimeMap = cms.untracked.PSet(
53 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing %(sm)s'),
54 kind = cms.untracked.string(
'TProfile2D'),
55 zaxis = cms.untracked.PSet(
56 high = cms.untracked.double(timeWindow),
57 low = cms.untracked.double(-timeWindow),
58 title = cms.untracked.string(
'time (ns)')
60 otype = cms.untracked.string(
'SM'),
61 btype = cms.untracked.string(
'Crystal'),
62 description = cms.untracked.string(
'2D distribution of the mean rec hit timing. Only hits with GOOD or OUT_OF_TIME reconstruction flags and energy above threshold are used. Hits with |t| > ' +
str(timeWindow) +
' ns are discarded. The energy thresholds are ' + (
'%f and %f' % (energyThresholdEB, energyThresholdEE)) +
' for EB and EE respectively.')
64 TimeMapByLS = cms.untracked.PSet(
65 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing by LS %(sm)s'),
66 kind = cms.untracked.string(
'TProfile2D'),
67 zaxis = cms.untracked.PSet(
68 high = cms.untracked.double(timeWindow),
69 low = cms.untracked.double(-timeWindow),
70 title = cms.untracked.string(
'time (ns)')
72 otype = cms.untracked.string(
'SM'),
73 btype = cms.untracked.string(
'Crystal'),
74 description = cms.untracked.string(
'2D distribution of the mean rec hit timing. Only hits with GOOD or OUT_OF_TIME reconstruction flags and energy above threshold are used. Hits with |t| > ' +
str(timeWindow) +
' ns are discarded. The energy thresholds are ' + (
'%f and %f' % (energyThresholdEB, energyThresholdEE)) +
' for EB and EE respectively.')
76 TimeAll = cms.untracked.PSet(
77 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing 1D summary%(suffix)s'),
78 kind = cms.untracked.string(
'TH1F'),
79 otype = cms.untracked.string(
'Ecal3P'),
80 xaxis = cms.untracked.PSet(
81 high = cms.untracked.double(timeWindow),
82 nbins = cms.untracked.int32(100),
83 low = cms.untracked.double(-timeWindow),
84 title = cms.untracked.string(
'time (ns)')
86 btype = cms.untracked.string(
'User'),
87 description = cms.untracked.string(
'Distribution of the mean rec hit timing. Only hits with GOOD or OUT_OF_TIME reconstruction flags and energy above threshold are used. The energy thresholds are ' + (
'%f and %f' % (energyThresholdEB, energyThresholdEE)) +
' for EB and EE respectively.')
89 TimeAllMap = cms.untracked.PSet(
90 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing map%(suffix)s'),
91 kind = cms.untracked.string(
'TProfile2D'),
92 zaxis = cms.untracked.PSet(
93 high = cms.untracked.double(summaryTimeWindow),
94 low = cms.untracked.double(-summaryTimeWindow),
95 title = cms.untracked.string(
'time (ns)')
97 otype = cms.untracked.string(
'Ecal3P'),
98 btype = cms.untracked.string(
'SuperCrystal'),
99 description = cms.untracked.string(
'2D distribution of the mean rec hit timing. Only hits with GOOD or OUT_OF_TIME reconstruction flags and energy above threshold are used. Hits with |t| > ' +
str(summaryTimeWindow) +
' ns are discarded. The energy thresholds are ' + (
'%f and %f' % (energyThresholdEB, energyThresholdEE)) +
' for EB and EE respectively.')
101 TimeAmpAll = cms.untracked.PSet(
102 kind = cms.untracked.string(
'TH2F'),
103 yaxis = cms.untracked.PSet(
104 high = cms.untracked.double(50.0),
105 nbins = cms.untracked.int32(200),
106 low = cms.untracked.double(-50.0),
107 title = cms.untracked.string(
'time (ns)')
109 otype = cms.untracked.string(
'Ecal3P'),
110 xaxis = cms.untracked.PSet(
111 edges = cms.untracked.vdouble(EaxisEdges),
112 title = cms.untracked.string(
'energy (GeV)')
114 btype = cms.untracked.string(
'User'),
115 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing vs amplitude summary%(suffix)s'),
116 description = cms.untracked.string(
'Correlation between hit timing and energy. Only hits with GOOD or OUT_OF_TIME reconstruction flags are used.')
118 TimeAmp = cms.untracked.PSet(
119 kind = cms.untracked.string(
'TH2F'),
120 yaxis = cms.untracked.PSet(
121 high = cms.untracked.double(50.0),
122 nbins = cms.untracked.int32(200),
123 low = cms.untracked.double(-50.0),
124 title = cms.untracked.string(
'time (ns)')
126 otype = cms.untracked.string(
'SM'),
127 xaxis = cms.untracked.PSet(
128 edges = cms.untracked.vdouble(EaxisEdges),
129 title = cms.untracked.string(
'energy (GeV)')
131 btype = cms.untracked.string(
'User'),
132 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing vs amplitude %(sm)s'),
133 description = cms.untracked.string(
'Correlation between hit timing and energy. Only hits with GOOD or OUT_OF_TIME reconstruction flags are used.')
135 BarrelTimingVsBX = cms.untracked.PSet(
136 path = cms.untracked.string(
'EcalBarrel/EBTimingTask/EBTMT Timing vs BX'),
137 kind = cms.untracked.string(
'TProfile'),
138 otype = cms.untracked.string(
'EB'),
139 xaxis = cms.untracked.PSet(
140 high = cms.untracked.double(1.0*nBXBins),
141 nbins = cms.untracked.int32(nBXBins),
142 low = cms.untracked.double(0.0),
143 title = cms.untracked.string(
'BX Id'),
144 labels = cms.untracked.vstring(bxBinLabels)
146 yaxis = cms.untracked.PSet(
147 title = cms.untracked.string(
'Timing (ns)')
149 btype = cms.untracked.string(
'User'),
150 description = cms.untracked.string(
'Average hit timing in EB as a function of BX number. BX ids start at 1. Only events with energy above 2.02 GeV and chi2 less than 16 are used.')
152 BarrelTimingVsBXFineBinned = cms.untracked.PSet(
153 path = cms.untracked.string(
'EcalBarrel/EBTimingTask/EBTMT Timing vs Finely Binned BX'),
154 kind = cms.untracked.string(
'TProfile'),
155 otype = cms.untracked.string(
'EB'),
156 xaxis = cms.untracked.PSet(
157 high = cms.untracked.double(1.0*nBXBinsFine),
158 nbins = cms.untracked.int32(nBXBinsFine),
159 low = cms.untracked.double(0.0),
160 title = cms.untracked.string(
'BX Id'),
161 labels = cms.untracked.vstring(bxBinLabelsFine)
163 yaxis = cms.untracked.PSet(
164 title = cms.untracked.string(
'Timing (ns)')
166 btype = cms.untracked.string(
'User'),
167 description = cms.untracked.string(
'Average hit timing in EB as a finely binned function of BX number. BX ids start at 1. Only events with energy above 2.02 GeV and chi2 less than 16 are used. The Customize button can be used to zoom in.')
169 TimeAmpBXm = cms.untracked.PSet(
170 kind = cms.untracked.string(
'TH2F'),
171 yaxis = cms.untracked.PSet(
172 high = cms.untracked.double(100.0),
173 nbins = cms.untracked.int32(100),
174 low = cms.untracked.double(0.0),
175 title = cms.untracked.string(
'Amplitude BX-1 [ADC]')
177 otype = cms.untracked.string(
'Ecal3P'),
178 xaxis = cms.untracked.PSet(
179 high = cms.untracked.double(1000.0),
180 nbins = cms.untracked.int32(250),
181 low = cms.untracked.double(0.0),
182 title = cms.untracked.string(
'In-time amplitude [ADC]')
184 btype = cms.untracked.string(
'User'),
185 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT in-time vs BX-1 amplitude%(suffix)s'),
186 description = cms.untracked.string(
'Correlation between in-time amplitude and BX-1 out-of-time amplitude. Only events with kGood reconstruction flag set, energy > ( ' + (
'EB:%f, EE:%f' % (energyThresholdEB*20., energyThresholdEE*5.)) +
' ) GeV, and chi2 < ( ' + (
'EB:%f, EE:%f' % (chi2ThresholdEB, chi2ThresholdEE)) +
' ) are used.')
188 TimeAmpBXp = cms.untracked.PSet(
189 kind = cms.untracked.string(
'TH2F'),
190 yaxis = cms.untracked.PSet(
191 high = cms.untracked.double(100.0),
192 nbins = cms.untracked.int32(100),
193 low = cms.untracked.double(0.0),
194 title = cms.untracked.string(
'Amplitude BX+1 [ADC]')
196 otype = cms.untracked.string(
'Ecal3P'),
197 xaxis = cms.untracked.PSet(
198 high = cms.untracked.double(1000.0),
199 nbins = cms.untracked.int32(250),
200 low = cms.untracked.double(0.0),
201 title = cms.untracked.string(
'In-time amplitude [ADC]')
203 btype = cms.untracked.string(
'User'),
204 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT in-time vs BX+1 amplitude%(suffix)s'),
205 description = cms.untracked.string(
'Correlation between in-time amplitude and BX+1 out-of-time amplitude. Only events with kGood reconstruction flag set, energy > ( ' + (
'EB:%f, EE:%f' % (energyThresholdEB*20., energyThresholdEE*5.)) +
' ) GeV, and chi2 < ( ' + (
'EB:%f, EE:%f' % (chi2ThresholdEB, chi2ThresholdEE)) +
' ) are used.')
207 Time1D = cms.untracked.PSet(
208 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing 1D %(sm)s'),
209 kind = cms.untracked.string(
'TH1F'),
210 otype = cms.untracked.string(
'SM'),
211 xaxis = cms.untracked.PSet(
212 high = cms.untracked.double(timeWindow),
213 nbins = cms.untracked.int32(100),
214 low = cms.untracked.double(-timeWindow),
215 title = cms.untracked.string(
'time (ns)')
217 btype = cms.untracked.string(
'User'),
218 description = cms.untracked.string(
'Distribution of the mean rec hit timing. Only hits with GOOD or OUT_OF_TIME reconstruction flags and energy above threshold are used. The energy thresholds are ' + (
'%f and %f' % (energyThresholdEB, energyThresholdEE)) +
' for EB and EE respectively.')
220 Chi2 = cms.untracked.PSet(
221 path = cms.untracked.string(
"%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT %(subdetshortsig)s Chi2"),
222 kind = cms.untracked.string(
'TH1F'),
223 otype = cms.untracked.string(
'Ecal3P'),
224 btype = cms.untracked.string(
'User'),
225 xaxis = cms.untracked.PSet(
226 high = cms.untracked.double(100.),
227 low = cms.untracked.double(0.),
228 nbins = cms.untracked.int32(100)
230 description = cms.untracked.string(
'Chi2 of the pulse reconstruction.')