CMS 3D CMS Logo

TimingTask_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 bxBins = [1]
4 
5 bxStepSizes = [9, 50, 100, 300]
6 bxMaxVals = [101, 1501, 2401, 3601]
7 runningMinVal = 1
8 
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))
14 
15 bxBinLabels = [str(bxBins[0])]
16 for bxBinCounter in range(0, -1+len(bxBins)):
17  bxBinLabels += [str(1+bxBins[bxBinCounter]) + "-->" + str(bxBins[bxBinCounter+1])]
18 
19 nBXBins = len(bxBins)
20 
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)
24 
25 EaxisEdges = []
26 for i in range(50) :
27  EaxisEdges.append(pow(10., -0.5 + 2.5 / 50. * i))
28 
29 chi2ThresholdEE = 50.
30 chi2ThresholdEB = 16.
31 energyThresholdEE = 4.6
32 energyThresholdEEFwd = 6.7
33 energyThresholdEB = 2.02
34 timingVsBXThreshold = energyThresholdEB
35 timeErrorThreshold = 3.
36 timeWindow = 12.5
37 summaryTimeWindow = 7.
38 
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)
50  ),
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)')
59  ),
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.')
63  ),
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)')
71  ),
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.')
75  ),
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)')
85  ),
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.')
88  ),
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)')
96  ),
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.')
100  ),
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)')
108  ),
109  otype = cms.untracked.string('Ecal3P'),
110  xaxis = cms.untracked.PSet(
111  edges = cms.untracked.vdouble(EaxisEdges),
112  title = cms.untracked.string('energy (GeV)')
113  ),
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.')
117  ),
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)')
125  ),
126  otype = cms.untracked.string('SM'),
127  xaxis = cms.untracked.PSet(
128  edges = cms.untracked.vdouble(EaxisEdges),
129  title = cms.untracked.string('energy (GeV)')
130  ),
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.')
134  ),
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)
145  ),
146  yaxis = cms.untracked.PSet(
147  title = cms.untracked.string('Timing (ns)')
148  ),
149  btype = cms.untracked.string('User'),
150  description = cms.untracked.string('Average hit timing in the barrel as a function of BX number.')
151  ),
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)
162  ),
163  yaxis = cms.untracked.PSet(
164  title = cms.untracked.string('Timing (ns)')
165  ),
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.')
168  ),
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]')
176  ),
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]')
183  ),
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.')
187  ),
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]')
195  ),
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]')
202  ),
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.')
206  ),
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)')
216  ),
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.')
219  ),
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)
229  ),
230  description = cms.untracked.string('Chi2 of the pulse reconstruction.')
231  )
232  )
233 )
#define str(s)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
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