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)
if (i%100 == 0)
else "" 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(
'bunch crossing'),
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 the barrel as a function of BX number.')
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(
'bunch crossing'),
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 the barrel as a finely-binned function of BX number.')
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.')