Example #1
0
process.source = cms.Source("PoolSource",
  fileNames = cms.untracked.vstring(
    'file:patTuple.root'
  )
)

process.MessageLogger = cms.Service("MessageLogger")

## prepare jet collections
from PhysicsTools.PatAlgos.selectionLayer1.jetSelector_cfi import selectedPatJets
process.goodCaloJets = selectedPatJets.clone(src='cleanPatJets', cut='pt>30 & abs(eta)<3')

## monitor jet collections
from PhysicsTools.PatExamples.PatJetAnalyzer_cfi import analyzePatJets
## modules for jet response
process.rawJets     = analyzePatJets.clone(corrLevel='Uncorrected')
process.relJets     = analyzePatJets.clone(corrLevel='L2Relative')
process.absJets     = analyzePatJets.clone(corrLevel='L3Absolute')
## modules to compare calo and pflow jets
process.caloJets    = analyzePatJets.clone(src='goodCaloJets')
process.pflowJets   = analyzePatJets.clone(src='goodCaloJets')
## modules for shift in JES
process.shiftedJets = analyzePatJets.clone(src='goodCaloJets')


process.TFileService = cms.Service("TFileService",
  fileName = cms.string('analyzePatJets.root')
)

## process path
process.p = cms.Path(
process.goodJets = selectedPatJets.clone(src="cleanPatJets",
                                         cut='abs(eta) < 3 & pt > 30. &'
                                         'emEnergyFraction > 0.01       &'
                                         'jetID.fHPD < 0.98             &'
                                         'jetID.n90Hits > 1')

## use this selection of particle flow jets
#process. goodJets   = selectedPatJets.clone(
#    src = 'cleanPatJetsAK5PF',
#    cut = 'abs(eta) < 2.4 & pt > 30.          &'
#    'chargedHadronEnergyFraction > 0.0  &'
#    'neutralHadronEnergyFraction/corrFactor("raw") < 0.99 &'
#    'chargedEmEnergyFraction/corrFactor("raw")     < 0.99 &'
#    'neutralEmEnergyFraction/corrFactor("raw")     < 0.99 &'
#    'chargedMultiplicity > 0            &'
#    'nConstituents > 0'
#)

## Analyze jets
from PhysicsTools.PatExamples.PatJetAnalyzer_cfi import analyzePatJets
process.Uncorrected = analyzePatJets.clone(src='goodJets', corrLevel='raw')
process.L2Relative = analyzePatJets.clone(src='goodJets', corrLevel='rel')
process.L3Absolute = analyzePatJets.clone(src='goodJets', corrLevel='abs')

## Define output file
process.TFileService = cms.Service(
    "TFileService", fileName=cms.string('analyzeJetEnergyScale.root'))

process.p = cms.Path(process.goodJets * process.Uncorrected *
                     process.L2Relative * process.L3Absolute)
## use this selection of particle flow jets
#process. goodJets   = selectedPatJets.clone(
#    src = 'cleanPatJetsAK5PF',
#    cut = 'abs(eta) < 2.4 & pt > 30.          &'
#    'chargedHadronEnergyFraction > 0.0  &'
#    'neutralHadronEnergyFraction/corrFactor("raw") < 0.99 &'
#    'chargedEmEnergyFraction/corrFactor("raw")     < 0.99 &'
#    'neutralEmEnergyFraction/corrFactor("raw")     < 0.99 &'
#    'chargedMultiplicity > 0            &'
#    'nConstituents > 0'
#)

## Analyze jets
from PhysicsTools.PatExamples.PatJetAnalyzer_cfi import analyzePatJets
process.Uncorrected = analyzePatJets.clone(src = 'goodJets', corrLevel='raw')
process.L2Relative  = analyzePatJets.clone(src = 'goodJets', corrLevel='rel')
process.L3Absolute  = analyzePatJets.clone(src = 'goodJets', corrLevel='abs')

## Define output file
process.TFileService = cms.Service("TFileService",
  fileName = cms.string('analyzeJetEnergyScale.root')
)

process.p = cms.Path(
    process.goodJets    * 
    process.Uncorrected *
    process.L2Relative  *
    process.L3Absolute

)