CMS 3D CMS Logo

l1ctLayer1_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 import math
4 
5 from L1Trigger.Phase2L1ParticleFlow.l1tPFTracksFromL1Tracks_cfi import l1tPFTracksFromL1Tracks, l1tPFTracksFromL1TracksExtended
6 from L1Trigger.Phase2L1ParticleFlow.l1tPFClustersFromL1EGClusters_cfi import l1tPFClustersFromL1EGClusters
7 from L1Trigger.Phase2L1ParticleFlow.pfClustersFromCombinedCalo_cff import l1tPFClustersFromCombinedCaloHCal, l1tPFClustersFromCombinedCaloHF
8 from L1Trigger.Phase2L1ParticleFlow.l1tPFClustersFromHGC3DClusters_cfi import l1tPFClustersFromHGC3DClusters
9 
10 from L1Trigger.Phase2L1ParticleFlow.l1TkEgAlgoEmulator_cfi import tkEgAlgoParameters,tkEgSorterParameters
11 
12 l1tLayer1Barrel = cms.EDProducer("L1TCorrelatorLayer1Producer",
13  tracks = cms.InputTag('l1tPFTracksFromL1Tracks'),
14  muons = cms.InputTag('l1tSAMuonsGmt','prompt'),
15  emClusters = cms.VInputTag(cms.InputTag('l1tPFClustersFromL1EGClusters:selected')),
16  hadClusters = cms.VInputTag(cms.InputTag('l1tPFClustersFromCombinedCaloHCal:calibrated')),
17  vtxCollection = cms.InputTag("l1tVertexFinderEmulator","L1VerticesEmulation"),
18  nVtx = cms.int32(1),
19  emPtCut = cms.double(0.5),
20  hadPtCut = cms.double(1.0),
21  trkPtCut = cms.double(2.0),
22  trackInputConversionAlgo = cms.string("Emulator"),
23  trackInputConversionParameters = cms.PSet(
24  region = cms.string("barrel"),
25  slimDataFormat = cms.bool(True),
26  ptLUTBits = cms.uint32(11),
27  etaLUTBits = cms.uint32(10),
28  etaShift = cms.uint32(15-10),
29  phiBits = cms.uint32(10),
30  z0Bits = cms.uint32(12),
31  dEtaBarrelBits = cms.uint32(8),
32  dEtaBarrelZ0PreShift = cms.uint32(2),
33  dEtaBarrelZ0PostShift = cms.uint32(2),
34  dPhiBarrelBits = cms.uint32(4),
35  dPhiBarrelRInvPreShift = cms.uint32(4),
36  dPhiBarrelRInvPostShift = cms.uint32(4),
37  ),
38  muonInputConversionAlgo = cms.string("Emulator"),
39  regionizerAlgo = cms.string("Ideal"),
40  pfAlgo = cms.string("PFAlgo3"),
41  pfAlgoParameters = cms.PSet(
42  nTrack = cms.uint32(25),
43  nCalo = cms.uint32(18),
44  nMu = cms.uint32(2),
45  nSelCalo = cms.uint32(18),
46  nEmCalo = cms.uint32(12),
47  nPhoton = cms.uint32(12),
48  nAllNeutral = cms.uint32(25),
49  trackMuDR = cms.double(0.2), # accounts for poor resolution of standalone, and missing propagations
50  trackEmDR = cms.double(0.04), # 1 Ecal crystal size is 0.02, and ~2 cm in HGCal is ~0.007
51  emCaloDR = cms.double(0.10), # 1 Hcal tower size is ~0.09
52  trackCaloDR = cms.double(0.15),
53  maxInvisiblePt = cms.double(10.0), # max allowed pt of a track with no calo energy
54  tightTrackMaxInvisiblePt = cms.double(20),
55  caloResolution = cms.PSet(
56  etaBins = cms.vdouble( 0.700, 1.200, 1.600),
57  offset = cms.vdouble( 2.909, 2.864, 0.294),
58  scale = cms.vdouble( 0.119, 0.127, 0.442),
59  ),
60  ),
61  puAlgo = cms.string("LinearizedPuppi"),
62  puAlgoParameters = cms.PSet(
63  nTrack = cms.uint32(22),
64  nIn = cms.uint32(25),
65  nOut = cms.uint32(25),
66  nVtx = cms.uint32(1),
67  nFinalSort = cms.uint32(18),
68  finalSortAlgo = cms.string("Insertion"),
69  dZ = cms.double(0.5),
70  dr = cms.double(0.3),
71  drMin = cms.double(0.07),
72  ptMax = cms.double(50.),
73  absEtaCuts = cms.vdouble( ), # just one bin, so no edge needd
74  ptCut = cms.vdouble( 1.0 ),
75  ptSlopes = cms.vdouble( 0.3 ), # coefficient for pT
76  ptSlopesPhoton = cms.vdouble( 0.3 ),
77  ptZeros = cms.vdouble( 4.0 ), # ballpark pT from PU
78  ptZerosPhoton = cms.vdouble( 2.5 ),
79  alphaSlopes = cms.vdouble( 0.7 ), # coefficient for alpha
80  alphaZeros = cms.vdouble( 6.0 ), # ballpark alpha from PU
81  alphaCrop = cms.vdouble( 4 ), # max. absolute value for alpha term
82  priors = cms.vdouble( 5.0 ),
83  priorsPhoton = cms.vdouble( 1.0 ),
84  ),
85  tkEgAlgoParameters = tkEgAlgoParameters.clone(
86  nTRACK = 25,
87  nTRACK_EGIN = 13,
88  nEMCALO_EGIN = 10,
89  nEM_EGOUT = 10,
90  ),
91  tkEgSorterAlgo = cms.string("Barrel"),
92  tkEgSorterParameters = tkEgSorterParameters.clone(
93  nObjToSort = 10
94  ),
95  caloSectors = cms.VPSet(
96  cms.PSet(
97  etaBoundaries = cms.vdouble(-1.5, 1.5),
98  phiSlices = cms.uint32(3),
99  )
100  ),
101  regions = cms.VPSet(
102  cms.PSet(
103  etaBoundaries = cms.vdouble(-1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5),
104  phiSlices = cms.uint32(9),
105  ),
106  ),
107  boards = cms.VPSet(
108  cms.PSet(
109  regions = cms.vuint32(*[0+9*ie+i for ie in range(6) for i in range(3)])), # phi splitting
110  cms.PSet(
111  regions = cms.vuint32(*[3+9*ie+i for ie in range(6) for i in range(3)])), # phi splitting
112  cms.PSet(
113  regions = cms.vuint32(*[6+9*ie+i for ie in range(6) for i in range(3)])), # phi splitting
114  )
115 )
116 
117 l1tLayer1BarrelExtended = l1tLayer1Barrel.clone(tracks = cms.InputTag('l1tPFTracksFromL1TracksExtended'))
118 
119 _hgcalSectors = cms.VPSet(
120  cms.PSet(
121  etaBoundaries = cms.vdouble(-3.0, -1.5),
122  phiSlices = cms.uint32(3),
123  phiZero = cms.double(math.pi/2) # The edge of the 0th HGCal sectors is at 30 deg, the center at 30+120/2 = 90 = pi/2
124  ),
125  cms.PSet(
126  etaBoundaries = cms.vdouble(+1.5, +3.0),
127  phiSlices = cms.uint32(3),
128  phiZero = cms.double(math.pi/2) # As above
129  )
130 
131 )
132 
133 l1tLayer1HGCal = cms.EDProducer("L1TCorrelatorLayer1Producer",
134  tracks = cms.InputTag('l1tPFTracksFromL1Tracks'),
135  muons = cms.InputTag('l1tSAMuonsGmt','prompt'),
136  emClusters = cms.VInputTag(cms.InputTag('l1tPFClustersFromHGC3DClusters:egamma')), # used only for E/gamma
137  hadClusters = cms.VInputTag(cms.InputTag('l1tPFClustersFromHGC3DClusters')),
138  vtxCollection = cms.InputTag("l1tVertexFinderEmulator","L1VerticesEmulation"),
139  nVtx = cms.int32(1),
140  emPtCut = cms.double(0.5),
141  hadPtCut = cms.double(1.0),
142  trkPtCut = cms.double(2.0),
143  trackInputConversionAlgo = cms.string("Emulator"),
144  trackInputConversionParameters = cms.PSet(
145  region = cms.string("endcap"),
146  slimDataFormat = cms.bool(False),
147  ptLUTBits = cms.uint32(11),
148  etaLUTBits = cms.uint32(11),
149  etaShift = cms.uint32(15-11),
150  etaPostOffs = cms.int32(150),
151  phiBits = cms.uint32(10),
152  z0Bits = cms.uint32(12),
153  dEtaHGCalBits = cms.uint32(10),
154  dEtaHGCalZ0PreShift = cms.uint32(2),
155  dEtaHGCalRInvPreShift = cms.uint32(6),
156  dEtaHGCalLUTBits = cms.uint32(10),
157  dEtaHGCalLUTShift = cms.uint32(2),
158  dPhiHGCalBits = cms.uint32(4),
159  dPhiHGCalZ0PreShift = cms.uint32(4),
160  dPhiHGCalZ0PostShift = cms.uint32(6),
161  dPhiHGCalRInvShift = cms.uint32(4),
162  dPhiHGCalTanlInvShift = cms.uint32(22),
163  dPhiHGCalTanlLUTBits = cms.uint32(10),
164  ),
165  muonInputConversionAlgo = cms.string("Emulator"),
166  hgcalInputConversionAlgo = cms.string("Emulator"),
167  regionizerAlgo = cms.string("Multififo"),
168  regionizerAlgoParameters = cms.PSet(
169  useAlsoVtxCoords = cms.bool(True),
170  nEndcaps = cms.uint32(2),
171  nClocks = cms.uint32(54),
172  nTkLinks = cms.uint32(2),
173  nCaloLinks = cms.uint32(3),
174  nTrack = cms.uint32(30),
175  nCalo = cms.uint32(20),
176  nEmCalo = cms.uint32(10),
177  nMu = cms.uint32(4),
178  egInterceptMode = cms.PSet(
179  afterFifo = cms.bool(True),
180  emIDMask = cms.uint32(0x1E),
181  nHADCALO_IN = cms.uint32(20),
182  nEMCALO_OUT = cms.uint32(10),
183  )
184  ),
185  pfAlgo = cms.string("PFAlgo2HGC"),
186  pfAlgoParameters = cms.PSet(
187  nTrack = cms.uint32(30),
188  nCalo = cms.uint32(20),
189  nMu = cms.uint32(4),
190  nSelCalo = cms.uint32(20),
191  trackMuDR = cms.double(0.2), # accounts for poor resolution of standalone, and missing propagations
192  trackCaloDR = cms.double(0.1),
193  maxInvisiblePt = cms.double(10.0), # max allowed pt of a track with no calo energy
194  tightTrackMaxInvisiblePt = cms.double(20),
195  caloResolution = cms.PSet(
196  etaBins = cms.vdouble( 1.700, 1.900, 2.200, 2.500, 2.800, 2.900),
197  offset = cms.vdouble( 1.793, 1.827, 2.363, 2.538, 2.812, 2.642),
198  scale = cms.vdouble( 0.138, 0.137, 0.124, 0.115, 0.106, 0.121),
199  ),
200  ),
201  puAlgo = cms.string("LinearizedPuppi"),
202  puAlgoParameters = cms.PSet(
203  nTrack = cms.uint32(30),
204  nIn = cms.uint32(20),
205  nOut = cms.uint32(20),
206  nVtx = cms.uint32(1),
207  nFinalSort = cms.uint32(18),
208  finalSortAlgo = cms.string("FoldedHybrid"),
209  dZ = cms.double(1.33),
210  dr = cms.double(0.3),
211  drMin = cms.double(0.04),
212  ptMax = cms.double(50.),
213  absEtaCuts = cms.vdouble( 2.0 ), # two bins in the tracker (different eta); give only the one boundary between them
214  ptCut = cms.vdouble( 1.0, 2.0 ),
215  ptSlopes = cms.vdouble( 0.3, 0.3 ), # coefficient for pT
216  ptSlopesPhoton = cms.vdouble( 0.4, 0.4 ), #When e/g ID not applied, use: cms.vdouble( 0.3, 0.3, 0.3 ),
217  ptZeros = cms.vdouble( 5.0, 7.0 ), # ballpark pT from PU
218  ptZerosPhoton = cms.vdouble( 3.0, 4.0 ),
219  alphaSlopes = cms.vdouble( 1.5, 1.5 ),
220  alphaZeros = cms.vdouble( 6.0, 6.0 ),
221  alphaCrop = cms.vdouble( 3 , 3 ), # max. absolute value for alpha term
222  priors = cms.vdouble( 5.0, 5.0 ),
223  priorsPhoton = cms.vdouble( 1.5, 1.5 ), #When e/g ID not applied, use: cms.vdouble( 3.5, 3.5, 7.0 ),
224  ),
225  tkEgAlgoParameters = tkEgAlgoParameters.clone(
226  nTRACK = 30,
227  nTRACK_EGIN = 10,
228  nEMCALO_EGIN = 10,
229  nEM_EGOUT = 5,
230  doBremRecovery = True,
231  doEndcapHwQual = True,
232  writeBeforeBremRecovery = False,
233  writeEGSta = True,
234  doCompositeTkEle = True,
235  trkQualityPtMin = 0.), # This should be 10 GeV when doCompositeTkEle = False
236  tkEgSorterAlgo = cms.string("Endcap"),
237  tkEgSorterParameters = tkEgSorterParameters.clone(
238  nObjToSort = 5
239  ),
240  caloSectors = _hgcalSectors,
241  regions = cms.VPSet(
242  cms.PSet(
243  etaBoundaries = cms.vdouble(-2.5, -1.5),
244  phiSlices = cms.uint32(9),
245  ),
246  cms.PSet(
247  etaBoundaries = cms.vdouble(+1.5, +2.5),
248  phiSlices = cms.uint32(9),
249  )
250 
251  ),
252  boards = cms.VPSet(
253  cms.PSet(
254  regions = cms.vuint32(range(0, 9))),
255  cms.PSet(
256  regions = cms.vuint32(range(9, 18))),
257  ),
258  writeRawHgcalCluster = cms.untracked.bool(True)
259 )
260 
261 
262 l1tLayer1HGCalExtended = l1tLayer1HGCal.clone(tracks = ('l1tPFTracksFromL1TracksExtended'))
263 
264 l1tLayer1HGCalElliptic = l1tLayer1HGCal.clone(
265  tkEgAlgoParameters = l1tLayer1HGCal.tkEgAlgoParameters.clone(
266  doCompositeTkEle = False,
267  trkQualityPtMin = 10.)
268 )
269 
270 l1tLayer1HGCalNoTK = cms.EDProducer("L1TCorrelatorLayer1Producer",
271  muons = cms.InputTag('l1tSAMuonsGmt','prompt'),
272  emClusters = cms.VInputTag(cms.InputTag('l1tPFClustersFromHGC3DClusters:egamma')), # used only for E/gamma
273  hadClusters = cms.VInputTag(cms.InputTag('l1tPFClustersFromHGC3DClusters')),
274  vtxCollection = cms.InputTag("l1tVertexFinderEmulator","L1VerticesEmulation"),
275  nVtx = cms.int32(1),
276  emPtCut = cms.double(0.5),
277  hadPtCut = cms.double(1.0),
278  trkPtCut = cms.double(2.0),
279  muonInputConversionAlgo = cms.string("Emulator"),
280  hgcalInputConversionAlgo = cms.string("Emulator"),
281  hgcalInputConversionParameters = cms.PSet(
282  slim = cms.bool(True)
283  ),
284  regionizerAlgo = cms.string("Multififo"),
285  regionizerAlgoParameters = cms.PSet(
286  useAlsoVtxCoords = cms.bool(True),
287  nEndcaps = cms.uint32(2),
288  nClocks = cms.uint32(54),
289  nTkLinks = cms.uint32(0),
290  nCaloLinks = cms.uint32(3),
291  nTrack = cms.uint32(0),
292  nCalo = cms.uint32(12),
293  nEmCalo = cms.uint32(12),
294  nMu = cms.uint32(4),
295  egInterceptMode = cms.PSet(
296  afterFifo = cms.bool(True),
297  emIDMask = cms.uint32(0x1E),
298  nHADCALO_IN = cms.uint32(12),
299  nEMCALO_OUT = cms.uint32(12),
300  )
301  ),
302  pfAlgo = cms.string("PFAlgoDummy"),
303  pfAlgoParameters = cms.PSet(
304  nCalo = cms.uint32(12),
305  nMu = cms.uint32(4), # unused
306  ),
307  puAlgo = cms.string("LinearizedPuppi"),
308  puAlgoParameters = cms.PSet(
309  nTrack = cms.uint32(0), # unused
310  nIn = cms.uint32(12),
311  nOut = cms.uint32(12),
312  nFinalSort = cms.uint32(12), # to be tuned
313  finalSortAlgo = cms.string("Hybrid"),
314  nVtx = cms.uint32(1),
315  dZ = cms.double(1.33),
316  dr = cms.double(0.3),
317  drMin = cms.double(0.04),
318  ptMax = cms.double(50.),
319  absEtaCuts = cms.vdouble( ), # just one bin
320  ptCut = cms.vdouble( 4.0 ),
321  ptSlopes = cms.vdouble( 0.3 ), # coefficient for pT
322  ptSlopesPhoton = cms.vdouble( 0.4 ), #When e/g ID not applied, use: cms.vdouble( 0.3, 0.3, 0.3 ),
323  ptZeros = cms.vdouble( 9.0 ), # ballpark pT from PU
324  ptZerosPhoton = cms.vdouble( 5.0 ),
325  alphaSlopes = cms.vdouble( 2.2 ),
326  alphaZeros = cms.vdouble( 9.0 ),
327  alphaCrop = cms.vdouble( 4 ), # max. absolute value for alpha term
328  priors = cms.vdouble( 7.0 ),
329  priorsPhoton = cms.vdouble( 5.0 ), #When e/g ID not applied, use: cms.vdouble( 3.5, 3.5, 7.0 ),
330  ),
331  tkEgAlgoParameters = tkEgAlgoParameters.clone(
332  nTRACK = 30,
333  nTRACK_EGIN = 10,
334  nEMCALO_EGIN = 10,
335  nEM_EGOUT = 5,
336  doBremRecovery = True,
337  doEndcapHwQual = True,
338  writeBeforeBremRecovery = False,
339  writeEGSta = True),
340  tkEgSorterAlgo = cms.string("Endcap"),
341  tkEgSorterParameters = tkEgSorterParameters.clone(
342  nObjToSort = 5
343  ),
344  caloSectors = _hgcalSectors,
345  regions = cms.VPSet(
346  cms.PSet(
347  etaBoundaries = cms.vdouble(-3.0, -2.5),
348  phiSlices = cms.uint32(9),
349  ),
350  cms.PSet(
351  etaBoundaries = cms.vdouble(+2.5, +3.0),
352  phiSlices = cms.uint32(9),
353  )
354 
355  ),
356  boards = cms.VPSet(
357  cms.PSet(regions = cms.vuint32(range(0,18))),
358  ),
359  writeRawHgcalCluster = cms.untracked.bool(True)
360 )
361 
362 l1tLayer1HF = cms.EDProducer("L1TCorrelatorLayer1Producer",
363  muons = cms.InputTag('l1tSAMuonsGmt','prompt'),
364  hadClusters = cms.VInputTag(cms.InputTag('l1tPFClustersFromCombinedCaloHF:calibrated')),
365  vtxCollection = cms.InputTag("l1tVertexFinderEmulator","L1VerticesEmulation"),
366  nVtx = cms.int32(1),
367  emPtCut = cms.double(0.5),
368  hadPtCut = cms.double(15.0),
369  trkPtCut = cms.double(2.0),
370  pfAlgo = cms.string("PFAlgoDummy"),
371  pfAlgoParameters = cms.PSet(
372  nCalo = cms.uint32(18),
373  nMu = cms.uint32(4), # unused
374  debug = cms.untracked.bool(False)
375  ),
376  puAlgo = cms.string("LinearizedPuppi"),
377  puAlgoParameters = cms.PSet(
378  nTrack = cms.uint32(0), # unused
379  nIn = cms.uint32(18),
380  nOut = cms.uint32(18),
381  nVtx = cms.uint32(1),
382  nFinalSort = cms.uint32(10), # to be tuned
383  finalSortAlgo = cms.string("Insertion"),
384  dZ = cms.double(1.33),
385  dr = cms.double(0.3),
386  drMin = cms.double(0.1),
387  ptMax = cms.double(100.),
388  absEtaCuts = cms.vdouble( ), # just one bin
389  ptCut = cms.vdouble( 10.0 ),
390  ptSlopes = cms.vdouble( 0.25 ),
391  ptSlopesPhoton = cms.vdouble( 0.25 ),
392  ptZeros = cms.vdouble( 14.0 ),
393  ptZerosPhoton = cms.vdouble( 14.0 ),
394  alphaSlopes = cms.vdouble( 0.6 ),
395  alphaZeros = cms.vdouble( 9.0 ),
396  alphaCrop = cms.vdouble( 4 ),
397  priors = cms.vdouble( 6.0 ),
398  priorsPhoton = cms.vdouble( 6.0 ),
399  debug = cms.untracked.bool(False)
400  ),
401  tkEgAlgoParameters = tkEgAlgoParameters.clone(
402  nTRACK = 5, # to be defined
403  nTRACK_EGIN = 5, # to be defined
404  nEMCALO_EGIN = 5, # to be defined
405  nEM_EGOUT = 5, # to be defined
406  doBremRecovery = True,
407  writeEGSta = True),
408  tkEgSorterAlgo = cms.string("Endcap"),
409  tkEgSorterParameters = tkEgSorterParameters.clone(),
410  caloSectors = cms.VPSet(
411  cms.PSet(
412  etaBoundaries = cms.vdouble(-5.5, -3.0),
413  phiSlices = cms.uint32(9),
414  ),
415  cms.PSet(
416  etaBoundaries = cms.vdouble(+3.0, +5.5),
417  phiSlices = cms.uint32(9),
418  )
419  ),
420  regions = cms.VPSet(
421  cms.PSet(
422  etaBoundaries = cms.vdouble(-5.5, -3.0),
423  phiSlices = cms.uint32(9),
424  ),
425  cms.PSet(
426  etaBoundaries = cms.vdouble(+3.0, +5.5),
427  phiSlices = cms.uint32(9),
428  )
429  ),
430  boards = cms.VPSet(),
431 )
432 
433 
434 l1tLayer1 = cms.EDProducer("L1TPFCandMultiMerger",
435  pfProducers = cms.VInputTag(
436  cms.InputTag("l1tLayer1Barrel"),
437  cms.InputTag("l1tLayer1HGCal"),
438  cms.InputTag("l1tLayer1HGCalNoTK"),
439  cms.InputTag("l1tLayer1HF")
440  ),
441 )
442 
443 
444 l1tLayer1Extended = l1tLayer1.clone(
445  pfProducers = [ ("l1tLayer1BarrelExtended"), ("l1tLayer1HGCalExtended"),
446  ("l1tLayer1HGCalNoTK"),("l1tLayer1HF")]
447 )
448 
449 l1tLayer1EG = cms.EDProducer(
450  "L1TEGMultiMerger",
451  tkElectrons = cms.VPSet(
452  cms.PSet(
453  instance = cms.string("L1TkEleEE"),
454  pfProducers = cms.VInputTag(
455  cms.InputTag("l1tLayer1HGCal", 'L1TkEle')
456  )
457  ),
458  cms.PSet(
459  instance = cms.string("L1TkEleEB"),
460  pfProducers = cms.VInputTag(
461  cms.InputTag("l1tLayer1Barrel", 'L1TkEle')
462  )
463  )
464  ),
465  tkEms = cms.VPSet(
466  cms.PSet(
467  instance = cms.string("L1TkEmEE"),
468  pfProducers = cms.VInputTag(
469  cms.InputTag("l1tLayer1HGCal", 'L1TkEm'),
470  cms.InputTag("l1tLayer1HGCalNoTK", 'L1TkEm')
471  )
472  ),
473  cms.PSet(
474  instance = cms.string("L1TkEmEB"),
475  pfProducers = cms.VInputTag(
476  cms.InputTag("l1tLayer1Barrel", 'L1TkEm')
477  )
478  )
479  ),
480  tkEgs = cms.VPSet(
481  cms.PSet(
482  instance = cms.string("L1EgEE"),
483  pfProducers = cms.VInputTag(
484  cms.InputTag("l1tLayer1HGCal", 'L1Eg'),
485  cms.InputTag("l1tLayer1HGCalNoTK", 'L1Eg')
486  )
487  )
488  )
489 )
490 
491 l1tLayer1EGElliptic = cms.EDProducer(
492  "L1TEGMultiMerger",
493  tkElectrons = cms.VPSet(
494  cms.PSet(
495  instance = cms.string("L1TkEleEE"),
496  pfProducers = cms.VInputTag(
497  cms.InputTag("l1tLayer1HGCalElliptic", 'L1TkEle')
498  )
499  ),
500  cms.PSet(
501  instance = cms.string("L1TkEleEB"),
502  pfProducers = cms.VInputTag(
503  cms.InputTag("l1tLayer1Barrel", 'L1TkEle')
504  )
505  )
506  ),
507  tkEms = cms.VPSet(
508  cms.PSet(
509  instance = cms.string("L1TkEmEE"),
510  pfProducers = cms.VInputTag(
511  cms.InputTag("l1tLayer1HGCalElliptic", 'L1TkEm'),
512  cms.InputTag("l1tLayer1HGCalNoTK", 'L1TkEm')
513  )
514  ),
515  cms.PSet(
516  instance = cms.string("L1TkEmEB"),
517  pfProducers = cms.VInputTag(
518  cms.InputTag("l1tLayer1Barrel", 'L1TkEm')
519  )
520  )
521  ),
522  tkEgs = cms.VPSet(
523  cms.PSet(
524  instance = cms.string("L1EgEE"),
525  pfProducers = cms.VInputTag(
526  cms.InputTag("l1tLayer1HGCalElliptic", 'L1Eg'),
527  cms.InputTag("l1tLayer1HGCalNoTK", 'L1Eg')
528  )
529  )
530  )
531 )
532 
533 
534 
535 L1TLayer1TaskInputsTask = cms.Task(
536  l1tPFClustersFromL1EGClusters,
537  l1tPFClustersFromCombinedCaloHCal,
538  l1tPFClustersFromCombinedCaloHF,
539  l1tPFClustersFromHGC3DClusters,
540  l1tPFTracksFromL1Tracks,
541  l1tPFTracksFromL1TracksExtended
542 )
543 
544 L1TLayer1Task = cms.Task(
545  l1tLayer1Barrel,
546  l1tLayer1BarrelExtended,
547  l1tLayer1HGCal,
548  l1tLayer1HGCalExtended,
549  l1tLayer1HGCalNoTK,
550  l1tLayer1HF,
551  l1tLayer1,
552  l1tLayer1Extended,
553  l1tLayer1HGCalElliptic,
554  l1tLayer1EG,
555  l1tLayer1EGElliptic
556 )