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 = 3.
32 energyThresholdEB = 1.
33 timingVsBXThreshold = 2.02
35 summaryTimeWindow = 7.
37 ecalTimingTask = cms.untracked.PSet(
38 params = cms.untracked.PSet(
39 bxBins = cms.untracked.vint32(bxBins),
40 bxBinsFine = cms.untracked.vint32(bxBinsFine),
41 chi2ThresholdEE = cms.untracked.double(chi2ThresholdEE),
42 chi2ThresholdEB = cms.untracked.double(chi2ThresholdEB),
43 energyThresholdEE = cms.untracked.double(energyThresholdEE),
44 energyThresholdEB = cms.untracked.double(energyThresholdEB),
45 timingVsBXThreshold = cms.untracked.double(timingVsBXThreshold)
47 MEs = cms.untracked.PSet(
48 TimeMap = cms.untracked.PSet(
49 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing %(sm)s'),
50 kind = cms.untracked.string(
'TProfile2D'),
51 zaxis = cms.untracked.PSet(
52 high = cms.untracked.double(timeWindow),
53 low = cms.untracked.double(-timeWindow),
54 title = cms.untracked.string(
'time (ns)')
56 otype = cms.untracked.string(
'SM'),
57 btype = cms.untracked.string(
'Crystal'),
58 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.')
60 TimeMapByLS = cms.untracked.PSet(
61 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing by LS %(sm)s'),
62 kind = cms.untracked.string(
'TProfile2D'),
63 zaxis = cms.untracked.PSet(
64 high = cms.untracked.double(timeWindow),
65 low = cms.untracked.double(-timeWindow),
66 title = cms.untracked.string(
'time (ns)')
68 otype = cms.untracked.string(
'SM'),
69 btype = cms.untracked.string(
'Crystal'),
70 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.')
72 TimeAll = cms.untracked.PSet(
73 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing 1D summary%(suffix)s'),
74 kind = cms.untracked.string(
'TH1F'),
75 otype = cms.untracked.string(
'Ecal3P'),
76 xaxis = cms.untracked.PSet(
77 high = cms.untracked.double(timeWindow),
78 nbins = cms.untracked.int32(100),
79 low = cms.untracked.double(-timeWindow),
80 title = cms.untracked.string(
'time (ns)')
82 btype = cms.untracked.string(
'User'),
83 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.')
85 TimeAllMap = cms.untracked.PSet(
86 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing map%(suffix)s'),
87 kind = cms.untracked.string(
'TProfile2D'),
88 zaxis = cms.untracked.PSet(
89 high = cms.untracked.double(summaryTimeWindow),
90 low = cms.untracked.double(-summaryTimeWindow),
91 title = cms.untracked.string(
'time (ns)')
93 otype = cms.untracked.string(
'Ecal3P'),
94 btype = cms.untracked.string(
'SuperCrystal'),
95 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.')
97 TimeAmpAll = cms.untracked.PSet(
98 kind = cms.untracked.string(
'TH2F'),
99 yaxis = cms.untracked.PSet(
100 high = cms.untracked.double(50.0),
101 nbins = cms.untracked.int32(200),
102 low = cms.untracked.double(-50.0),
103 title = cms.untracked.string(
'time (ns)')
105 otype = cms.untracked.string(
'Ecal3P'),
106 xaxis = cms.untracked.PSet(
107 edges = cms.untracked.vdouble(EaxisEdges),
108 title = cms.untracked.string(
'energy (GeV)')
110 btype = cms.untracked.string(
'User'),
111 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing vs amplitude summary%(suffix)s'),
112 description = cms.untracked.string(
'Correlation between hit timing and energy. Only hits with GOOD or OUT_OF_TIME reconstruction flags are used.')
114 TimeAmp = cms.untracked.PSet(
115 kind = cms.untracked.string(
'TH2F'),
116 yaxis = cms.untracked.PSet(
117 high = cms.untracked.double(50.0),
118 nbins = cms.untracked.int32(200),
119 low = cms.untracked.double(-50.0),
120 title = cms.untracked.string(
'time (ns)')
122 otype = cms.untracked.string(
'SM'),
123 xaxis = cms.untracked.PSet(
124 edges = cms.untracked.vdouble(EaxisEdges),
125 title = cms.untracked.string(
'energy (GeV)')
127 btype = cms.untracked.string(
'User'),
128 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing vs amplitude %(sm)s'),
129 description = cms.untracked.string(
'Correlation between hit timing and energy. Only hits with GOOD or OUT_OF_TIME reconstruction flags are used.')
131 BarrelTimingVsBX = cms.untracked.PSet(
132 path = cms.untracked.string(
'EcalBarrel/EBTimingTask/EBTMT Timing vs BX'),
133 kind = cms.untracked.string(
'TProfile'),
134 otype = cms.untracked.string(
'EB'),
135 xaxis = cms.untracked.PSet(
136 high = cms.untracked.double(1.0*nBXBins),
137 nbins = cms.untracked.int32(nBXBins),
138 low = cms.untracked.double(0.0),
139 title = cms.untracked.string(
'bunch crossing'),
140 labels = cms.untracked.vstring(bxBinLabels)
142 yaxis = cms.untracked.PSet(
143 title = cms.untracked.string(
'Timing (ns)')
145 btype = cms.untracked.string(
'User'),
146 description = cms.untracked.string(
'Average hit timing in the barrel as a function of BX number.')
148 BarrelTimingVsBXFineBinned = cms.untracked.PSet(
149 path = cms.untracked.string(
'EcalBarrel/EBTimingTask/EBTMT Timing vs Finely Binned BX'),
150 kind = cms.untracked.string(
'TProfile'),
151 otype = cms.untracked.string(
'EB'),
152 xaxis = cms.untracked.PSet(
153 high = cms.untracked.double(1.0*nBXBinsFine),
154 nbins = cms.untracked.int32(nBXBinsFine),
155 low = cms.untracked.double(0.0),
156 title = cms.untracked.string(
'bunch crossing'),
157 labels = cms.untracked.vstring(bxBinLabelsFine)
159 yaxis = cms.untracked.PSet(
160 title = cms.untracked.string(
'Timing (ns)')
162 btype = cms.untracked.string(
'User'),
163 description = cms.untracked.string(
'Average hit timing in the barrel as a finely-binned function of BX number.')
165 TimeAmpBXm = cms.untracked.PSet(
166 kind = cms.untracked.string(
'TH2F'),
167 yaxis = cms.untracked.PSet(
168 high = cms.untracked.double(100.0),
169 nbins = cms.untracked.int32(100),
170 low = cms.untracked.double(0.0),
171 title = cms.untracked.string(
'Amplitude BX-1 [ADC]')
173 otype = cms.untracked.string(
'Ecal3P'),
174 xaxis = cms.untracked.PSet(
175 high = cms.untracked.double(1000.0),
176 nbins = cms.untracked.int32(250),
177 low = cms.untracked.double(0.0),
178 title = cms.untracked.string(
'In-time amplitude [ADC]')
180 btype = cms.untracked.string(
'User'),
181 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT in-time vs BX-1 amplitude%(suffix)s'),
182 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.')
184 TimeAmpBXp = cms.untracked.PSet(
185 kind = cms.untracked.string(
'TH2F'),
186 yaxis = cms.untracked.PSet(
187 high = cms.untracked.double(100.0),
188 nbins = cms.untracked.int32(100),
189 low = cms.untracked.double(0.0),
190 title = cms.untracked.string(
'Amplitude BX+1 [ADC]')
192 otype = cms.untracked.string(
'Ecal3P'),
193 xaxis = cms.untracked.PSet(
194 high = cms.untracked.double(1000.0),
195 nbins = cms.untracked.int32(250),
196 low = cms.untracked.double(0.0),
197 title = cms.untracked.string(
'In-time amplitude [ADC]')
199 btype = cms.untracked.string(
'User'),
200 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT in-time vs BX+1 amplitude%(suffix)s'),
201 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.')
203 Time1D = cms.untracked.PSet(
204 path = cms.untracked.string(
'%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT timing 1D %(sm)s'),
205 kind = cms.untracked.string(
'TH1F'),
206 otype = cms.untracked.string(
'SM'),
207 xaxis = cms.untracked.PSet(
208 high = cms.untracked.double(timeWindow),
209 nbins = cms.untracked.int32(100),
210 low = cms.untracked.double(-timeWindow),
211 title = cms.untracked.string(
'time (ns)')
213 btype = cms.untracked.string(
'User'),
214 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.')
216 Chi2 = cms.untracked.PSet(
217 path = cms.untracked.string(
"%(subdet)s/%(prefix)sTimingTask/%(prefix)sTMT %(subdetshortsig)s Chi2"),
218 kind = cms.untracked.string(
'TH1F'),
219 otype = cms.untracked.string(
'Ecal3P'),
220 btype = cms.untracked.string(
'User'),
221 xaxis = cms.untracked.PSet(
222 high = cms.untracked.double(100.),
223 low = cms.untracked.double(0.),
224 nbins = cms.untracked.int32(100)
226 description = cms.untracked.string(
'Chi2 of the pulse reconstruction.')
Power< A, B >::type pow(const A &a, const B &b)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run