import FWCore.ParameterSet.Config as cms

l1tPFProducerBarrel = cms.EDProducer("L1TPFProducer",
    debug = cms.untracked.int32(0),
    emClusters = cms.VInputTag(cms.InputTag("l1tPFClustersFromL1EGClusters")),
    emPtCut = cms.double(0.5),
    etaCharged = cms.double(2.5),
    hadClusters = cms.VInputTag(cms.InputTag("l1tPFClustersFromCombinedCaloHCal","calibrated")),
    hadPtCut = cms.double(1.0),
    linking = cms.PSet(
        caloEmPtMinFrac = cms.double(0.5),
        caloReLink = cms.bool(False),
        caloReLinkDR = cms.double(0.3),
        caloReLinkThreshold = cms.double(0.5),
        ecalPriority = cms.bool(True),
        emCaloDR = cms.double(0.1),
        emCaloSubtractionPtSlope = cms.double(1.2),
        emCaloUseAlsoCaloSigma = cms.bool(True),
        maxInvisiblePt = cms.double(10.0),
        rescaleTracks = cms.bool(False),
        rescaleUnmatchedTrack = cms.bool(False),
        sumTkCaloErr2 = cms.bool(True),
        tightTrackMaxChi2 = cms.double(50),
        tightTrackMaxInvisiblePt = cms.double(20),
        tightTrackMinStubs = cms.uint32(6),
        trackCaloDR = cms.double(0.15),
        trackCaloLinkMetric = cms.string('bestByDRPt'),
        trackCaloNSigmaHigh = cms.double(1.0),
        trackCaloNSigmaLow = cms.double(2.0),
        trackEmDR = cms.double(0.04),
        trackEmMayUseCaloMomenta = cms.bool(True),
        trackEmUseAlsoTrackSigma = cms.bool(True),
        trackMuDR = cms.double(0.2),
        trackMuMatch = cms.string('boxBestByPtRatio'),
        useCaloTrkWeightedAverage = cms.bool(False),
        useTrackCaloSigma = cms.bool(True)
    ),
    muons = cms.InputTag("simGmtStage2Digis"),
    pfAlgo = cms.string('PFAlgo3'),
    puAlgo = cms.string('LinearizedPuppi'),
    puppiAlphaCrops = cms.vdouble(4),
    puppiAlphaCropsPhotons = cms.vdouble(4),
    puppiAlphaSlopes = cms.vdouble(0.7),
    puppiAlphaSlopesPhotons = cms.vdouble(0.7),
    puppiAlphaZeros = cms.vdouble(6.0),
    puppiAlphaZerosPhotons = cms.vdouble(6.0),
    puppiDr = cms.double(0.3),
    puppiDrMin = cms.double(0.07),
    puppiEtaCuts = cms.vdouble(1.6),
    puppiPriors = cms.vdouble(5.0),
    puppiPriorsPhotons = cms.vdouble(1.0),
    puppiPtCuts = cms.vdouble(1.0),
    puppiPtCutsPhotons = cms.vdouble(1.0),
    puppiPtMax = cms.double(50.0),
    puppiPtSlopes = cms.vdouble(0.3),
    puppiPtSlopesPhotons = cms.vdouble(0.3),
    puppiPtZeros = cms.vdouble(4.0),
    puppiPtZerosPhotons = cms.vdouble(2.5),
    puppiUsingBareTracks = cms.bool(True),
    regions = cms.VPSet(cms.PSet(
        etaBoundaries = cms.vdouble(-1.5, 1.5),
        etaExtra = cms.double(0.3),
        phiExtra = cms.double(0.0),
        phiSlices = cms.uint32(1)
    )),
    tkMuons = cms.InputTag("l1tTkMuonsGmt"),
    trackRegionMode = cms.string('atCalo'),
    tracks = cms.InputTag("l1tPFTracksFromL1TracksBarrel"),
    trkMaxChi2 = cms.double(15),
    trkMinStubs = cms.uint32(4),
    trkPtCut = cms.double(2.0),
    useRelativeRegionalCoordinates = cms.bool(False),
    useStandaloneMuons = cms.bool(True),
    useTrackerMuons = cms.bool(False),
    vtxAdaptiveCut = cms.bool(True),
    vtxAlgo = cms.string('external'),
    vtxCollection = cms.InputTag("l1tTkPrimaryVertex"),
    vtxFormat = cms.string('TkPrimaryVertex'),
    vtxRes = cms.double(0.333)
)
