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