CMS 3D CMS Logo

l1pfProducer_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 from math import sqrt
4 
5 l1pfProducer = cms.EDProducer("L1TPFProducer",
6  tracks = cms.InputTag('pfTracksFromL1Tracks'),
7  muons = cms.InputTag('simGmtStage2Digis',),
8  tkMuons = cms.InputTag('L1TkMuons'),
9  # type of muons to be used in PF (enable only one at a time)
10  useStandaloneMuons = cms.bool(True),
11  useTrackerMuons = cms.bool(False),
12  emClusters = cms.VInputTag(cms.InputTag('pfClustersFromHGC3DClustersEM'), cms.InputTag('pfClustersFromL1EGClusters')),
13  hadClusters = cms.VInputTag(cms.InputTag('pfClustersFromCombinedCalo:calibrated')),
14  emPtCut = cms.double(0.5),
15  hadPtCut = cms.double(1.0),
16  trkPtCut = cms.double(2.0),
17  trkMinStubs = cms.uint32(4),
18  trkMaxChi2 = cms.double(15),
19  etaCharged = cms.double(2.5),
20  puppiDr = cms.double(0.3),
21  puppiDrMin = cms.double(0.1),
22  puppiPtMax = cms.double(999),
23  puppiEtaCuts = cms.vdouble(1.5, 2.5, 3.0, 5.5),
24  puppiPtCuts = cms.vdouble(0.0, 3.0, 6.0, 8.0),
25  puppiPtCutsPhotons = cms.vdouble(0.0, 3.0, 6.0, 8.0),
26  puppiUsingBareTracks = cms.bool(False), # use PF
27  vtxRes = cms.double(0.333),
28  vtxAlgo = cms.string("TP"),
29  vtxAdaptiveCut = cms.bool(True),
30  pfAlgo = cms.string("PFAlgo3"),
31  puAlgo = cms.string("Puppi"),
32  linking = cms.PSet(
33  # track -> mu linking configurables
34  trackMuDR = cms.double(0.2), # accounts for poor resolution of standalone, and missing propagations
35  trackMuMatch = cms.string("boxBestByPtRatio"), # also drBestByPtRatio
36  # track -> em linking configurables
37  trackEmDR = cms.double(0.04), # 1 Ecal crystal size is 0.02, and ~2 cm in HGCal is ~0.007
38  trackEmUseAlsoTrackSigma = cms.bool(True), # also use the track uncertainty for electron linking
39  trackEmMayUseCaloMomenta = cms.bool(True), # use calo momenta for 1 emcalo to 1 track match electrons
40  # em -> calo linking configurables
41  emCaloDR = cms.double(0.10), # 1 Hcal tower size is ~0.09
42  caloEmPtMinFrac = cms.double(0.5), # Calo object must have an EM Et at least half of that of the EM cluster to allow linking
43  emCaloUseAlsoCaloSigma = cms.bool(True), # also use the track uncertainty for electron linking
44  emCaloSubtractionPtSlope = cms.double(1.2), # e/pi ratio of HCal
45  # track -> calo linking configurables
46  trackCaloLinkMetric = cms.string("bestByDRPt"),
47  #trackCaloLinkMetric = cms.string("bestByDR"),
48  trackCaloDR = cms.double(0.15),
49  trackCaloNSigmaLow = cms.double(2.0),
50  trackCaloNSigmaHigh = cms.double(sqrt(1.0)), # sqrt(x) since in the hardware we use sigma squared
51  useTrackCaloSigma = cms.bool(True), # take the uncertainty on the calo cluster from the track, for linking purposes
52  sumTkCaloErr2 = cms.bool(True), # add up track calo errors in quadrature instead of linearly
53  rescaleTracks = cms.bool(False), # if tracks exceed the calo, rescale the track momenta
54  useCaloTrkWeightedAverage = cms.bool(False), # do the weighted average of track & calo pTs if it's a 1-1 link
55  # how to deal with unlinked tracks
56  maxInvisiblePt = cms.double(10.0), # max allowed pt of a track with no calo energy
57  tightTrackMinStubs = cms.uint32(6),
58  tightTrackMaxChi2 = cms.double(50),
59  tightTrackMaxInvisiblePt = cms.double(20),
60  # how to deal with neutrals
61  ecalPriority = cms.bool(True), # take first ecal energy when making neutrals
62  # other features not turned on: reliniking of neutrals to track-matched calo clusters with track excess
63  caloReLink = cms.bool(False),
64  caloReLinkDR = cms.double(0.3),
65  caloReLinkThreshold = cms.double(0.5),
66  # other features not turned on: matching too high pt tracks to calo but rescaling track pt (not implemented in PFAlgo3)
67  rescaleUnmatchedTrack = cms.bool(False),
68  ),
69  debug = cms.untracked.int32(0),
70 )
71 
72 
T sqrt(T t)
Definition: SSEVec.h:19