예제 #1
0
#process.selectedPatJetsCAVHFatCalo.cut = defaultFatJetCut
process.selectedPatJetsCAVHFatPF.cut = defaultFatJetCut
process.selectedPatJetsCAVHSubPF.cut = cms.string("pt > 15. & abs(eta) < 5.0")
process.selectedPatJetsCAVHFilterPF.cut = cms.string("pt > 5. & abs(eta) < 5.0")

# ------------------------------------------------------------------------------
# Jet Substructure (FastJet 3)
# ------------------------------------------------------------------------------
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak5PrunedPFlow = ak5PFJetsPruned.clone(doAreaFastjet = cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak5FilteredPFlow = ak5PFJetsFiltered.clone(doAreaFastjet = cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsMassDropFiltered
ak5MassDropFilteredPFlow = ak5PFJetsMassDropFiltered.clone(doAreaFastjet = cms.bool(True))

#process.ca12GenJetsNoNu = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJetsNoNu"))
process.ca12GenJets = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJets"))
process.ca12PFJetsPFlow = ca4PFJets.clone(
    rParam = cms.double(1.2),
    src = cms.InputTag("pfNoElectron"+postfix),
    doAreaFastjet = cms.bool(True),
    doRhoFastjet = cms.bool(True),
    Rho_EtaMax = cms.double(6.0),
    Ghost_EtaMax = cms.double(7.0)
    )
## this thing produces subjets by default
예제 #2
0
# configure additional jet collections, based on chs.
process.chs = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedPFCandidates"), cut = cms.string("fromPV"))

process.ca8CHSJets  = ca8PFJets.clone (src = 'chs', doAreaFastjet = True, jetPtMin = fatjet_ptmin)
process.ak8CHSJets  = ak8PFJets.clone (src = 'chs', doAreaFastjet = True, jetPtMin = 10.)
process.ak8CHSJetsFat  = ak8PFJets.clone (src = 'chs', doAreaFastjet = True, jetPtMin = fatjet_ptmin)
process.ca15CHSJets = process.ca8CHSJets.clone (rParam = 1.5)

from RecoJets.JetProducers.ak4PFJetsPruned_cfi import ak4PFJetsPruned
process.ca8CHSJetsPruned = ak4PFJetsPruned.clone(rParam = 0.8, jetAlgorithm = "CambridgeAachen", doAreaFastjet = True, src = 'chs', jetPtMin = fatjet_ptmin)

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ca15CHSJetsFiltered = ak5PFJetsFiltered.clone(
        src = 'chs',
        jetAlgorithm = cms.string("CambridgeAachen"),
        rParam       = cms.double(1.5),
        writeCompound = cms.bool(True),
        doAreaFastjet = cms.bool(True),
        jetPtMin = cms.double(fatjet_ptmin)
)

from RecoJets.JetProducers.AnomalousCellParameters_cfi import *  
from RecoJets.JetProducers.PFJetParameters_cfi import *          
from RecoJets.JetProducers.CATopJetParameters_cfi import CATopJetParameters
process.cmsTopTagCHS = cms.EDProducer(
    "CATopJetProducer",
    PFJetParameters.clone( src = cms.InputTag('chs'),
                           doAreaFastjet = cms.bool(True),
                           doRhoFastjet = cms.bool(False),
                           jetPtMin = cms.double(fatjet_ptmin)
                           ),
    AnomalousCellParameters,
예제 #3
0
#
# configure additional jet collections, based on chs.
process.chs = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedPFCandidates"), cut = cms.string("fromPV"))

process.ca8CHSJets  = ca8PFJets.clone (src = 'chs', doAreaFastjet = True, jetPtMin = fatjet_ptmin)
process.ak8CHSJets  = ak8PFJets.clone (src = 'chs', doAreaFastjet = True, jetPtMin = fatjet_ptmin)
process.ca15CHSJets = process.ca8CHSJets.clone (rParam = 1.5)

from RecoJets.JetProducers.ak4PFJetsPruned_cfi import ak4PFJetsPruned
process.ca8CHSJetsPruned = ak4PFJetsPruned.clone(rParam = 0.8, jetAlgorithm = "CambridgeAachen", doAreaFastjet = True, src = 'chs', jetPtMin = fatjet_ptmin)

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ca15CHSJetsFiltered = ak5PFJetsFiltered.clone(
        src = 'chs',
        jetAlgorithm = cms.string("CambridgeAachen"),
        rParam       = cms.double(1.5),
        writeCompound = cms.bool(True),
        doAreaFastjet = cms.bool(True),
        jetPtMin = cms.double(fatjet_ptmin)
)

from RecoJets.JetProducers.AnomalousCellParameters_cfi import *  
from RecoJets.JetProducers.PFJetParameters_cfi import *          
from RecoJets.JetProducers.CATopJetParameters_cfi import CATopJetParameters
process.cmsTopTagCHS = cms.EDProducer(
    "CATopJetProducer",
    PFJetParameters.clone( src = cms.InputTag('chs'),
                           doAreaFastjet = cms.bool(True),
                           doRhoFastjet = cms.bool(False),
                           jetPtMin = cms.double(fatjet_ptmin)
                           ),
    AnomalousCellParameters,
###############################
###### AK 0.5 jets groomed ####
###############################

ak5JetSrc = cms.InputTag("selectedPatJetsPFlow","pfCandidates")

from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed
process.ak5TrimmedPFlow = ak5PFJetsTrimmed.clone(
    src = ak5JetSrc,
    doAreaFastjet = cms.bool(True)
    )

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak5FilteredPFlow = ak5PFJetsFiltered.clone(
    src = ak5JetSrc,
    doAreaFastjet = cms.bool(True)
    )

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak5PrunedPFlow = ak5PFJetsPruned.clone(
    src = ak5JetSrc,
    doAreaFastjet = cms.bool(True)
    )


process.ak5Ungroomed = cms.EDProducer(
    "CandViewNtpProducer", 
    src = cms.InputTag("goodPatJetsPFlow"),
    lazyParser = cms.untracked.bool(True),
    prefix = cms.untracked.string(""),
    eventInfo = cms.untracked.bool(True),
예제 #5
0
# Advanced Algorithms for AK4, AK5, AK8 and CA8 :
#   - CHS, ungroomed
#   - CHS, pruned
#   - CHS, filtered
#   - CHS, trimmed
ak5PFJetsCHS = ak5PFJets.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSPruned = ak5PFJetsPruned.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSFiltered = ak5PFJetsFiltered.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSTrimmed = ak5PFJetsTrimmed.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSSoftDrop = ak5PFJetsSoftDrop.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

    
ak4PFJetsCHS = ak5PFJetsCHS.clone(
    rParam = 0.4
    )    
)
process.myPartons = cms.EDProducer("PartonSelector",
    src = cms.InputTag("genParticles"),
    withLeptons = cms.bool(False)
)

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJets
process.ak8PFJets = ak5PFJets.clone(
            rParam              = cms.double(0.8),
            src                 = cms.InputTag("particleFlow"),
            )

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak8PFJetsFiltered = ak5PFJetsFiltered.clone(
            rParam              = cms.double(0.8),
            src                 = cms.InputTag("particleFlow"),
            writeCompound       = cms.bool(True),
            jetCollInstanceName = cms.string("SubJets")
            )
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak8PFJetsPruned = ak5PFJetsPruned.clone(
            rParam              = cms.double(0.8),
            src                 = cms.InputTag("particleFlow"),
            writeCompound       = cms.bool(True),
            jetCollInstanceName = cms.string("SubJets")
            )
from RecoJets.JetProducers.kt4PFJets_cfi import kt4PFJets
process.kt8PFJets = kt4PFJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("particleFlow")
) 
process.kt8PFJetsCompound = kt4PFJets.clone(
예제 #7
0
###############################
###### AK 0.8 jets ############
###############################
process.ak8PFlow = process.pfJetsPFlow.clone(rParam=cms.double(0.8))

###############################
###### AK 0.5 jets groomed ####
###############################

from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed
process.ak5TrimmedPFlow = ak5PFJetsTrimmed.clone(src=process.pfJetsPFlow.src,
                                                 doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak5FilteredPFlow = ak5PFJetsFiltered.clone(
    src=process.pfJetsPFlow.src, doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak5PrunedPFlow = ak5PFJetsPruned.clone(src=process.pfJetsPFlow.src,
                                               doAreaFastjet=cms.bool(True))

###############################
###### AK 0.7 jets groomed ####
###############################

process.ak7TrimmedPFlow = process.ak5TrimmedPFlow.clone(
    src=process.pfJetsPFlow.src, rParam=cms.double(0.7))

process.ak7FilteredPFlow = process.ak5FilteredPFlow.clone(
    src=process.pfJetsPFlow.src, rParam=cms.double(0.7))
예제 #8
0
patJetsAK4CHStrimmed.getJetMCFlavour = False
patJetsAK4CHStrimmed.jetCorrFactorsSource = cms.VInputTag(
    cms.InputTag('patJetCorrFactorsAK4CHStrimmed'))

#### Adding Nsubjetiness
patJetsAK4CHStrimmedwithNsub = cms.EDProducer(
    "NjettinessAdder",
    src=cms.InputTag("patJetsAK4CHStrimmed"),
    cone=cms.double(0.4))

############################################################### FILTERING
from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak4PFJetsCHSfilteredN2 = ak5PFJetsFiltered.clone(
    src='pfNoPileUp',
    jetPtMin=cms.double(20.0),
    doAreaFastjet=cms.bool(True),
    nFilt=cms.int32(2),
    rParam=cms.double(0.4),
    jetAlgorithm=cms.string("AntiKt"),
)

jetSourceFilteredN2 = 'ak4PFJetsCHSfilteredN2'

# corrections
patJetCorrFactorsAK4CHSfilteredN2 = patJetCorrFactors.clone()
patJetCorrFactorsAK4CHSfilteredN2.src = jetSourceFilteredN2
# will need to add L2L3 corrections in the cfg
patJetCorrFactorsAK4CHSfilteredN2.levels = [
    'L1FastJet', 'L2Relative', 'L3Absolute'
]
patJetCorrFactorsAK4CHSfilteredN2.payload = 'AK5PFchs'
patJetCorrFactorsAK4CHSfilteredN2.useRho = True
예제 #9
0
    jetPtMin = cms.double(100.0)
    )



ak8PFJetsCSConstituents = cms.EDProducer("PFJetConstituentSelector",
                                         src = cms.InputTag("ak8PFJetsCS"),
                                         cut = cms.string("pt > 100.0")
                                        )


ak8PFJetsCSPruned = ak5PFJetsPruned.clone(
    rParam = 0.8,
    jetPtMin = 15.0,
    src = cms.InputTag("ak8PFJetsCSConstituents", "constituents")
    )

ak8PFJetsCSTrimmed = ak5PFJetsTrimmed.clone(
    rParam = 0.8,
    jetPtMin = 15.0,
    src = cms.InputTag("ak8PFJetsCSConstituents", "constituents")
    )


ak8PFJetsCSFiltered = ak5PFJetsFiltered.clone(
    rParam = 0.8,
    jetPtMin = 15.0,
    src = cms.InputTag("ak8PFJetsCSConstituents", "constituents")
    )

patJetsAK7CHStrimmed.addGenJetMatch = False
patJetsAK7CHStrimmed.getJetMCFlavour = False
patJetsAK7CHStrimmed.jetCorrFactorsSource = cms.VInputTag(cms.InputTag('patJetCorrFactorsAK7CHStrimmed'))

#### Adding Nsubjetiness
patJetsAK7CHStrimmedwithNsub = cms.EDProducer("NjettinessAdder",
  src=cms.InputTag("patJetsAK7CHStrimmed"),
  cone=cms.double(0.7)
)

############################################################### FILTERING
from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak7PFJetsCHSfilteredN2 = ak5PFJetsFiltered.clone(
  src = 'pfNoPileUp',
  jetPtMin = cms.double(20.0),
  doAreaFastjet = cms.bool(True),
  nFilt = cms.int32(2),
  rParam = cms.double(0.7),
  jetAlgorithm = cms.string("AntiKt"),
)

jetSourceFilteredN2 = 'ak7PFJetsCHSfilteredN2'

# corrections 
patJetCorrFactorsAK7CHSfilteredN2 = patJetCorrFactors.clone()
patJetCorrFactorsAK7CHSfilteredN2.src = jetSourceFilteredN2
# will need to add L2L3 corrections in the cfg
patJetCorrFactorsAK7CHSfilteredN2.levels = ['L1FastJet', 'L2Relative', 'L3Absolute']
patJetCorrFactorsAK7CHSfilteredN2.payload = 'AK7PFchs'
patJetCorrFactorsAK7CHSfilteredN2.useRho = True

patJetsAK7CHSfilteredN2 = patJets.clone()
    )


###############################
###### AK 0.5 jets groomed ####
###############################

from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed
process.ak5TrimmedPFlow = ak5PFJetsTrimmed.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True)
    )

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak5FilteredPFlow = ak5PFJetsFiltered.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True)
    )

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak5PrunedPFlow = ak5PFJetsPruned.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True)
    )



###############################
###### AK 0.7 jets groomed ####
###############################

process.ak7TrimmedPFlow = process.ak5TrimmedPFlow.clone(
예제 #12
0
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNuFiltered = ca4GenJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    useFiltering = cms.bool(True),
    nFilt = cms.int32(3),
    rFilt = cms.double(0.3),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets")
)
from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ca8PFJetsCHSFiltered = ak5PFJetsFiltered.clone(
    jetAlgorithm = cms.string("CambridgeAachen"),
    rParam = cms.double(0.8),
    src = getattr(process,"pfJets"+postfix).src,
    srcPVs = getattr(process,"pfJets"+postfix).srcPVs,
    doAreaFastjet = getattr(process,"pfJets"+postfix).doAreaFastjet,
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(20.)
)
## CA8 BDRS filtered jets (Gen and Reco) (each module produces two jet collections, fat jets and subjets)
## Compared to the above filtered jets, here dynamic filtering radius is used (as in arXiv:0802.2470)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNuBDRSFiltered = ca4GenJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    useFiltering = cms.bool(True),
    useDynamicFiltering = cms.bool(True),
    nFilt = cms.int32(3),
    rFilt = cms.double(0.3),
    rFiltFactor = cms.double(0.5),
예제 #13
0
process.ak6GenJetsNoNu = process.ak5GenJetsNoNu.clone( rParam = 0.6 )
process.ak6PFJets = process.pfJetsPFlow.clone( rParam = 0.6 )

## AK6 groomed jets
from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed
process.ak6PFJetsTrimmed = ak5PFJetsTrimmed.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(0.6)
)

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak6PFJetsFiltered = ak5PFJetsFiltered.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(0.6),
    writeCompound = cms.bool(False),
    jetCollInstanceName=cms.string("")
)

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak6PFJetsPruned = ak5PFJetsPruned.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(0.6),
    writeCompound = cms.bool(False),
    jetCollInstanceName=cms.string("")
)

### Define AK8 jets (GEN and RECO)
#process.ak8GenJetsNoNu = process.ak5GenJetsNoNu.clone( rParam = 0.8 )
예제 #14
0
    rParam=cms.double(0.8),
    useConstituentSubtraction=cms.bool(True),
    csRParam=cms.double(0.4),
    csRho_EtaMax=ak4PFJets.
    Rho_EtaMax,  # Just use the same eta for both C.S. and rho by default
    useExplicitGhosts=cms.bool(True),
    doAreaFastjet=cms.bool(True),
    jetPtMin=cms.double(100.0))

ak8PFJetsCSConstituents = cms.EDProducer("PFJetConstituentSelector",
                                         src=cms.InputTag("ak8PFJetsCS"),
                                         cut=cms.string("pt > 100.0"))

ak8PFJetsCSPruned = ak5PFJetsPruned.clone(rParam=0.8,
                                          jetPtMin=15.0,
                                          src=cms.InputTag(
                                              "ak8PFJetsCSConstituents",
                                              "constituents"))

ak8PFJetsCSTrimmed = ak5PFJetsTrimmed.clone(rParam=0.8,
                                            jetPtMin=15.0,
                                            src=cms.InputTag(
                                                "ak8PFJetsCSConstituents",
                                                "constituents"))

ak8PFJetsCSFiltered = ak5PFJetsFiltered.clone(rParam=0.8,
                                              jetPtMin=15.0,
                                              src=cms.InputTag(
                                                  "ak8PFJetsCSConstituents",
                                                  "constituents"))
예제 #15
0
process.selectedPatJetsCAVHFatPF.cut = defaultFatJetCut
process.selectedPatJetsCAVHSubPF.cut = cms.string("pt > 15. & abs(eta) < 5.0")
process.selectedPatJetsCAVHFilterPF.cut = cms.string(
    "pt > 5. & abs(eta) < 5.0")

# ------------------------------------------------------------------------------
# Jet Substructure (FastJet 3)
# ------------------------------------------------------------------------------
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak5PrunedPFlow = ak5PFJetsPruned.clone(doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak5FilteredPFlow = ak5PFJetsFiltered.clone(doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsMassDropFiltered
ak5MassDropFilteredPFlow = ak5PFJetsMassDropFiltered.clone(
    doAreaFastjet=cms.bool(True))

#process.ca12GenJetsNoNu = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJetsNoNu"))
process.ca12GenJets = ca4GenJets.clone(rParam=cms.double(1.2),
                                       src=cms.InputTag("genParticlesForJets"))
process.ca12PFJetsPFlow = ca4PFJets.clone(rParam=cms.double(1.2),
                                          src=cms.InputTag("pfNoElectron" +
                                                           postfix),
                                          doAreaFastjet=cms.bool(True),
                                          doRhoFastjet=cms.bool(True),
                                          Rho_EtaMax=cms.double(6.0),
                                          Ghost_EtaMax=cms.double(7.0))
예제 #16
0
process.ca8PFJetsPFlowCHS = ca4PFJets.clone(
    rParam=cms.double(0.8),
    src=cms.InputTag("pfNoElectron"),
    doAreaFastjet=cms.bool(True),
    doRhoFastjet=cms.bool(True),
    Rho_EtaMax=cms.double(6.0),
    Ghost_EtaMax=cms.double(7.0),
)

from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed

process.ak5TrimmedPFlow = ak5PFJetsTrimmed.clone(src=process.ak5PFJetsCHS.src, doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered

process.ak5FilteredPFlow = ak5PFJetsFiltered.clone(src=process.ak5PFJetsCHS.src, doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned

process.ak5PrunedPFlow = ak5PFJetsPruned.clone(src=process.ak5PFJetsCHS.src, doAreaFastjet=cms.bool(True))
###############################
###### AK 0.8 jets groomed ####
###############################

process.ak8TrimmedPFlow = process.ak5TrimmedPFlow.clone(src=process.ak5PFJetsCHS.src, rParam=cms.double(0.8))

process.ak8FilteredPFlow = process.ak5FilteredPFlow.clone(src=process.ak5PFJetsCHS.src, rParam=cms.double(0.8))

process.ak8PrunedPFlow = process.ak5PrunedPFlow.clone(src=process.ak5PFJetsCHS.src, rParam=cms.double(0.8))
###############################
###### CA8 Pruning Setup ######
예제 #17
0
patJetsCA8CHStrimmed.addGenJetMatch = False
patJetsCA8CHStrimmed.getJetMCFlavour = False
patJetsCA8CHStrimmed.jetCorrFactorsSource = cms.VInputTag(cms.InputTag('patJetCorrFactorsCA8CHStrimmed'))

#### Adding Nsubjetiness
patJetsCA8CHStrimmedwithNsub = cms.EDProducer("NjettinessAdder",
  src=cms.InputTag("patJetsCA8CHStrimmed"),
  cone=cms.double(0.8)
)

############################################################### FILTERING
from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ca8PFJetsCHSfilteredN2 = ak5PFJetsFiltered.clone(
  src = 'pfNoPileUp',
  jetPtMin = cms.double(20.0),
  doAreaFastjet = cms.bool(True),
  nFilt = cms.int32(2),
  rParam = cms.double(0.8),
  jetAlgorithm = cms.string("CambridgeAachen"),
)

jetSourceFilteredN2 = 'ca8PFJetsCHSfilteredN2'

# corrections 
patJetCorrFactorsCA8CHSfilteredN2 = patJetCorrFactors.clone()
patJetCorrFactorsCA8CHSfilteredN2.src = jetSourceFilteredN2
# will need to add L2L3 corrections in the cfg
patJetCorrFactorsCA8CHSfilteredN2.levels = ['L1FastJet', 'L2Relative', 'L3Absolute']
patJetCorrFactorsCA8CHSfilteredN2.payload = 'AK7PFchs'
patJetCorrFactorsCA8CHSfilteredN2.useRho = True

patJetsCA8CHSfilteredN2 = patJets.clone()
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNuFiltered = ca4GenJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    useFiltering = cms.bool(True),
    nFilt = cms.int32(3),
    rFilt = cms.double(0.3),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets")
)
from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ca8PFJetsCHSFiltered = ak5PFJetsFiltered.clone(
    jetAlgorithm = cms.string("CambridgeAachen"),
    rParam = cms.double(0.8),
    src = process.ca8PFJetsCHS.src,
    srcPVs = process.ca8PFJetsCHS.srcPVs,
    doAreaFastjet = process.ca8PFJetsCHS.doAreaFastjet,
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(20.)
)
## CA8 MassDrop-BDRS filtered jets (Gen and Reco) (each module produces two jet collections, fat jets and subjets)
## Compared to the above filtered jets, here dynamic filtering radius is used (as in arXiv:0802.2470)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNuMDBDRSFiltered = ca4GenJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    useMassDropTagger = cms.bool(True),
    muCut = cms.double(0.667),
    yCut = cms.double(0.08),
    useFiltering = cms.bool(True),
    useDynamicFiltering = cms.bool(True),