#import JetMETAnalysis.HcalReflagging.RemoveAddSevLevel as cms2RemoveAddSevLevel
from RecoLocalCalo.HcalRecAlgos.hcalRecAlgoESProd_cfi import *
#hcalRecAlgos=cms2RemoveAddSevLevel.AddFlag(hcalRecAlgos,"HFLongShort",11)

#if (isMC==False):  # Don't use HFDigiTime on MC !
#    hcalRecAlgos=cms2RemoveAddSevLevel.AddFlag(hcalRecAlgos,"HFDigiTime",11)



# Use the reflagged HF RecHits to make the CaloTowers
from RecoJets.JetProducers. CaloTowerSchemeB_cfi import *
from RecoMET.METProducers.CaloMET_cfi import met
from CMS2.NtupleMaker.deltaMETMaker_cfi import *



cms2towerMakerHF = towerMaker.clone()
cms2towerMakerHF.hfInput = cms.InputTag("cms2hfrecoReflagged")
cms2towerMakerHF.UseEcalTiming = cms.bool(False)
cms2metHF = met.clone()
cms2metHF.src = cms.InputTag("cms2towerMakerHF")
deltaMETMakerHF = deltaMETMaker.clone()
deltaMETMakerHF.aliasPrefix = cms.untracked.string("evthf")
deltaMETMakerHF.metInputTag_ = cms.InputTag("cms2metHF")

#cms2HFcleaningSequence   = cms.Sequence(cms2hfrecoReflagged * cms2towerMakerHF * cms2metHF * deltaMETMakerHF)
cms2HFcleaningSequence   = cms.Sequence(cms2towerMakerHF * cms2metHF * deltaMETMakerHF)

# New SeverityLevelComputer that forces RecHits with UserDefinedBit0 set to be excluded from new rechit collection
#import JetMETAnalysis.HcalReflagging.RemoveAddSevLevel as cms2RemoveAddSevLevel
from RecoLocalCalo.HcalRecAlgos.hcalRecAlgoESProd_cfi import *
#from JetMETAnalysis.HcalReflagging.hbherechitreflaggerJETMET_cfi import *


#hcalRecAlgos= cms2RemoveAddSevLevel.AddFlag(hcalRecAlgos,"UserDefinedBit0",10)

# HBHE RecHit reflagger
#cms2hbherecoReflagged = hbherechitreflaggerJETMET.clone()
#cms2hbherecoReflagged.debug=0


# Use the reflagged HF RecHits to make the CaloTowers
from RecoJets.JetProducers. CaloTowerSchemeB_cfi import *
from RecoMET.METProducers.CaloMET_cfi import met
from CMS2.NtupleMaker.deltaMETMaker_cfi import *

cms2towerMakerHCAL = towerMaker.clone()
cms2towerMakerHCAL.hbheInput = cms.InputTag("cms2hbherecoReflagged")
cms2towerMakerHCAL.UseEcalTiming = cms.bool(False)
cms2metHCAL = met.clone()
cms2metHCAL.src = cms.InputTag("cms2towerMakerHCAL")
deltaMETMakerHCAL = deltaMETMaker.clone()
deltaMETMakerHCAL.aliasPrefix = cms.untracked.string("evthcal")
deltaMETMakerHCAL.metInputTag_ = cms.InputTag("cms2metHCAL")


#cms2HCALcleaningSequence = cms.Sequence(cms2hbherecoReflagged * cms2towerMakerHCAL * cms2metHCAL * deltaMETMakerHCAL)
cms2HCALcleaningSequence = cms.Sequence(cms2towerMakerHCAL * cms2metHCAL * deltaMETMakerHCAL)
unfiltTowersHcalOnly.EBWeight       = cms.double(0.0)
unfiltTowersHcalOnly.EEWeight       = cms.double(0.0)
unfiltTowersHcalOnly.EBWeights      = cms.vdouble(0.,0.,0.,0.,0.)
unfiltTowersHcalOnly.EEWeights      = cms.vdouble(0.,0.,0.,0.,0.)

#unfiltTowersHcalOnly.EBSumThreshold = cms.double(999999.9)
#unfiltTowersHcalOnly.EESumThreshold = cms.double(999999.9)
#unfiltTowersHcalOnly.EBThreshold    = cms.double(9999.9)
#unfiltTowersHcalOnly.EEThreshold    = cms.double(9999.9)

#--------------------------------------------------
# RERECO MET


from RecoMET.METProducers.CaloMET_cfi import met
filtmetStdShape             = met.clone(src = cms.InputTag("filtTowersStdShape"))
filtmetSquareFilter         = met.clone(src = cms.InputTag("filtTowersSquareFilter"))
filtmetSquareFilterStopAt50 = met.clone(src = cms.InputTag("filtTowersSquareFilterStopAt50"))

unfiltmetHcalOnly = met.clone(src = cms.InputTag("unfiltTowersHcalOnly"))
                                      
#--------------------------------------------------
# ANALYZERS

from MyEDmodules.HcalDelayTuner.beamtiminganal_cfi import *
# set global analyzer parameters here before cloning,
# so don't have to repeat for all the clones
#
hbtimeanal.runDescription       = cms.untracked.string("/Jet/Run2010B-PromptReco")
hbtimeanal.ampCutsInfC          = cms.bool(False)
hbtimeanal.minHit_GeVorfC       = cms.double(0.7)