#================ analysis sequence =======================#

process.load('SandBox.Skims.RA2Objects_cff')
process.load('SandBox.Skims.RA2Selection_cff')
process.load('ZInvisibleBkgds.Photons.ZinvMuonJets_cff')
process.load('ZInvisibleBkgds.Photons.ZinvBkgdJets_cff')
process.load('ZInvisibleBkgds.Photons.ZinvBkgdObjects_cff')

process.load('ZInvisibleBkgds.Photons.zCandFilter_cff')
process.load('ZInvisibleBkgds.Photons.specialMuonCollection_cff')
process.specialMuonCollection.candidateLabel = cms.InputTag("zToMuMu")
process.patMuonsPFID.MuonSource    = cms.InputTag("patMuonsPF")
process.patMuonsPFIDIso.MuonSource = cms.InputTag("patMuonsPF")

from SandBox.Skims.RA2Objects_cff import countPFMuonsIDIso
process.countPFMuonsIDIsoForZ  = countPFMuonsIDIso.clone(minNumber = cms.uint32(2))

##top tagger

process.load('ZInvisibleBkgds.Photons.ZinvMETProducers_cff')
process.load('ZInvisibleBkgds.Photons.ZinvVetos_cff')
process.load('ZInvisibleBkgds.Photons.ZinvTopTaggers_cff')

process.load('SandBox.Skims.RA2CleaningFilterResults_cfg')
process.load('RecoMET.METFilters.ecalLaserCorrFilter_cfi')
from SandBox.Skims.htFilter_cfi  import *
process.zmumuHTFilter      = htFilter.clone(HTSource = cms.InputTag("htPFchsNoMuon"),MinHT = cms.double(250))
from SandBox.Skims.mhtFilter_cfi import *
process.zmumuMHTFilter      = mhtFilter.clone(MHTSource = cms.InputTag("mhtPFchsNoMuon"),MinMHT = cms.double(100))

process.analysisSeq = cms.Sequence(  process.ra2PFchsJets
process.load('ZInvisibleBkgds.Photons.zCandFilter_cff')
process.zCandFilter.minPt = cms.double(10.0)
process.zCandPtFilter = process.zCandFilter.clone(minPt = cms.double(100.0))

process.load('ZInvisibleBkgds.Photons.specialMuonCollection_cff')
process.specialMuonCollection.candidateLabel = cms.InputTag("zToMuMu")
process.patMuonsPFID.MuonSource    = cms.InputTag("patMuonsPF")
process.patMuonsPFIDIso.MuonSource = cms.InputTag("patMuonsPF")

from SandBox.Skims.RA2Objects_cff import countJetsPFchsPt50Eta25
process.countJetsPFchsPt50Eta25.src = cms.InputTag('patJetsPFNoMuonPt50Eta25')
process.countJetsPFchsPt50Eta25.minNumber = cms.uint32(2)

from SandBox.Skims.RA2Objects_cff import countPFMuonsIDIso
process.countPFMuonsIDIsoForZ      = countPFMuonsIDIso.clone(
#process.countPFMuonsIDIsoForZ      = countPFMuonsIDIso.clone(src = cms.InputTag("zinvMuonCandidates"),
                                                             minNumber = cms.uint32(2))
process.countPFMuonsIDIsoForZVeto  = countPFMuonsIDIso.clone(minNumber = cms.uint32(2))
process.countPFMuonsIDIsoForZVeto  = process.countPFMuonsIDIsoForZ.clone(maxNumber = cms.uint32(2))

##top tagger

process.load('ZInvisibleBkgds.Photons.ZinvMETProducers_cff')
process.load('ZInvisibleBkgds.Photons.ZinvVetos_cff')

process.load('SandBox.Skims.RA2CleaningFilterResults_cfg')
process.load('SandBox.Skims.RA2CaloVsPFMHTFilterSequence_cff')
process.RA2CaloVsPFMHTFilter.TaggingMode = cms.bool(False)
process.load('RecoMET.METFilters.ecalLaserCorrFilter_cfi')

process.countZsGEN = process.countPhotonsID.clone()