process.out.outputCommands += microAODDebugOutputCommand # extra items for debugging, CURRENTLY REQUIRED

# need to allow unscheduled processes otherwise reclustering function will fail
# this is because of the jet clustering tool, and we have to live with it for now.
# NOTE: new PAT default running is "unscheduled" so we just need to say in the outputCommands what we want to store

process.options = cms.untracked.PSet(
    allowUnscheduled = cms.untracked.bool(True)
)

# ++++++++++++ PF +++++++++++++++++++
# uses the vertex leg
from flashgg.MicroAOD.flashggExtraJets_cfi import addFlashggPF , addQGTaggerPF
# call the function, it takes care of everything else.
addFlashggPF(process)
# add QG tagger
addQGTaggerPF(process)
# +++++++++++++++++++++++++++++++++++

# ++++++++++++ PFCHS0 +++++++++++++++
# uses the vertex 0
from flashgg.MicroAOD.flashggExtraJets_cfi import addFlashggPFCHS0 , addQGTaggerPFCHS0
# call the function, it takes care of everything else.
addFlashggPFCHS0(process)
# add QG tagger
addQGTaggerPFCHS0(process)
# +++++++++++++++++++++++++++++++++++

# ++++++++++++ PFCHSLeg +++++++++++++
# import function which takes care of reclustering the jets using legacy vertex     
                               fileName       = cms.untracked.string('myMicroAODOutputFile.root'),
                               outputCommands = microAODDefaultOutputCommand
                           )

process.out.outputCommands += microAODDebugOutputCommand # extra items for debugging, CURRENTLY REQUIRED
 
# need to allow unscheduled processes otherwise reclustering function will fail
# this is because of the jet clustering tool, and we have to live with it for now.
process.options = cms.untracked.PSet(
    allowUnscheduled = cms.untracked.bool(True)
)

# ++++++++++++ PF +++++++++++++++++++
# uses the vertex 0
from flashgg.MicroAOD.flashggExtraJets_cfi import addFlashggPF
addFlashggPF(process)
# +++++++++++++++++++++++++++++++++++

# ++++++++++++ PFCHS0 +++++++++++++++
# uses the vertex 0
from flashgg.MicroAOD.flashggExtraJets_cfi import addFlashggPFCHS0
addFlashggPFCHS0(process)
# +++++++++++++++++++++++++++++++++++

# ++++++++++++ PFCHSLeg +++++++++++++
# import function which takes care of reclustering the jets using legacy vertex     
from flashgg.MicroAOD.flashggJets_cfi import addFlashggPFCHSLegJets 
# call the function, it takes care of everything else.
addFlashggPFCHSLegJets(process)
# +++++++++++++++++++++++++++++++++++
import FWCore.ParameterSet.Config as cms

from flashgg.MicroAOD.flashggExtraJets_cfi import addFlashggPF#, addFlashggPFCHS0
from flashgg.MicroAOD.flashggMicroAODGenSequence_cff import *




flashggMicroAODExtraJetsSequence = cms.Sequence()# addFlashggPF + addFlashggPFCHS0)

# test the sequence parcing
addFlashggPF     (flashggMicroAODExtraJetsSequence,True)
#addFlashggPFCHS0 (flashggMicroAODExtraJetsSequence,True)