Example #1
0
def Force_L1DoubleMuOpen(process):
    from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
    process.forceL1DoubleMuOpen = hltHighLevelDev.clone(
        HLTPaths=['HLT_L1DoubleMuOpen'], HLTPathsPrescales=[1])
    process.histoTriggerL1DoubleMuOpen = process.histoTrigger.clone()
    process.tagAndProbeL1DoubleMuOpen = cms.Path(
        process.tagAndProbe._seq + process.forceL1DoubleMuOpen +
        process.histoTriggerL1DoubleMuOpen)
Example #2
0
# jet corrections
#process.load("JetMETCorrections.Configuration.L2L3Corrections_Summer09_7TeV_ReReco332_cff")
process.load('JetMETCorrections.Configuration.DefaultJEC_cff')
#process.load("JetMETCorrections.Configuration.L2L3Corrections_900GeV_cff")
#process.load("JetMETCorrections.Configuration.L2L3Corrections_2360GeV_cff")

# summary
process.options   = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) )

process.load('L1TriggerConfig.L1GtConfigProducers.L1GtTriggerMaskTechTrigConfig_cff')
from HLTrigger.HLTfilters.hltLevel1GTSeed_cfi import hltLevel1GTSeed
process.bit40OR41 = hltLevel1GTSeed.clone(L1TechTriggerSeeding = cms.bool(True), L1SeedsLogicalExpression = cms.string('40 OR 41'))

from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
process.physDecl = hltHighLevelDev.clone(HLTPaths = ['HLT_PhysicsDeclared'], HLTPathsPrescales = [1])

process.promptanaTree = cms.EDAnalyzer("PromptAnaTree",
    outputCommands = cms.untracked.vstring(
    'drop *',
    'keep *_promptanaevent_*_*',
    'keep *_promptanamet_*_*',
    'keep *_promptanatcmet_*_*',
    'keep *_promptanapfmet_*_*',
    'keep *_promptananohf_*_*',
    'keep *_promptanaic5calojet_*_*',
    #'keep *_promptanasc5calojet_*_*',
    #'keep *_promptanakt4calojet_*_*',
    'keep *_promptanaak5calojet_*_*',
    'keep *_promptanaJPTak5_*_*',
    'keep *_promptanaak5pfjet_*_*',
## Di-muons, all
process.dimu = cms.EDProducer("CandViewShallowCloneCombiner",
    decay = cms.string("mu4j@+ mu4j@-"),
    cut   = cms.string("mass > 2"),
)
## Di-muons, both trigger matched
process.dimutt  = process.dimu.clone(decay = "mu4jt@+ mu4jt@-")
## Di-muons, both trigger matched geometrically
process.dimuttg = process.dimu.clone(decay = "mu4jtg@+ mu4jtg@-")
process.any = cms.EDFilter("CandViewCountFilter", src = cms.InputTag("dimu"),    minNumber = cms.uint32(1))
process.tt  = cms.EDFilter("CandViewCountFilter", src = cms.InputTag("dimutt"),  minNumber = cms.uint32(1))
process.ttg = cms.EDFilter("CandViewCountFilter", src = cms.InputTag("dimuttg"), minNumber = cms.uint32(1))

## Test trigger bit
from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
process.trigBit = hltHighLevelDev.clone(HLTPaths = ['HLT_L1DoubleMuOpen'], HLTPathsPrescales = [1])

process.s = cms.Sequence(
    process.csctfDigis *
    process.muonL1MatchExtended *
    process.patMuons *
    ( process.mu4j + process.mu4jt + process.mu4jtg   ) *
    ( process.dimu + process.dimutt + process.dimuttg )
)

process.pAny = cms.Path(
    process.trigBit +
    process.s +
    process.any
)
process.source = cms.Source(
    "PoolSource",
    fileNames=cms.untracked.vstring(
        ## Produced with MuonAnalysis/Examples/test/patSkims/patMuons_mc_cfg.py
        'root://pcmssd12.cern.ch//data/gpetrucc/7TeV/inclusiveMuons/inclusiveMuons_MuHLT_MinBiasMC357_v5/tupleMC_1_1.root',
    ))

process.maxEvents = cms.untracked.PSet(input=cms.untracked.int32(-1))
process.options = cms.untracked.PSet(wantSummary=cms.untracked.bool(True))

process.TFileService = cms.Service(
    'TFileService', fileName=cms.string('inclusiveMuonPlots_MC.class.root'))

from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
reskim = hltHighLevelDev.clone(
    TriggerResultsTag=cms.InputTag('TriggerResults', '', ''))
process.recoMu = reskim.clone(HLTPaths=['skim_RecoMu'], HLTPathsPrescales=[1])
process.bscMinBias = hltHighLevelDev.clone(
    HLTPaths=['HLT_L1_BscMinBiasOR_BptxPlusORMinus'], HLTPathsPrescales=[1])
process.preFilter = cms.Sequence(process.recoMu)

## for some classifications which differ from the basic ones only for arbitration, we save only the code not the flavour
## so to get the flavour we have to use the basic one.
flavourlessClassifiers = {
    'classByHitsTMA': 'classByHitsTM',
    'classByHitsGlbPT': 'classByHitsGlb'
}


def addClassAliases(process, mainlabel, classifier, requireMB=True):
    mainmodule = getattr(process, mainlabel)
process.source = cms.Source("PoolSource",
    fileNames = cms.untracked.vstring(
        ## Produced with MuonAnalysis/Examples/test/patSkims/patMuons_data_cfg.py
        'root://pcmssd12.cern.ch//data/gpetrucc/7TeV/inclusiveMuons/inclusiveMuons_fromMay6th_v4/tupleData_42_1.root',
    )
)
for I in range(len(process.source.fileNames)): 
    process.source.fileNames[I] = process.source.fileNames[I].replace("root://pcmssd12.cern.ch//","file:/")

process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )
process.options   = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) )

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

from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
reskim  = hltHighLevelDev.clone(TriggerResultsTag = cms.InputTag('TriggerResults','',''))
process.recoMu     = reskim.clone(HLTPaths = ['skim_RecoMu'], HLTPathsPrescales = [1])
process.bscMinBias = hltHighLevelDev.clone(HLTPaths = ['HLT_L1_BscMinBiasOR_BptxPlusORMinus'], HLTPathsPrescales = [1])
process.preFilter = cms.Sequence(process.recoMu)

def addPlots(process, label, requireMB=True):
    module = getattr(process,label)
    ## prepare plots for full detector and for separate barrel/endcaps
    abseta = "abs(eta)"
    if label.find("standAlone") == 0: abseta = "abs(outerTrack.eta)";
    mbar   = module.clone(selection = module.selection.value() + " && "+abseta+" < 1.2");
    mec    = module.clone(selection = module.selection.value() + " && "+abseta+" > 1.2");
    setattr(process, label+"B", mbar);
    setattr(process, label+"E", mec );
    if requireMB:
        setattr(process, label+"_Plots", cms.Path(process.preFilter + process.bscMinBias + module + mbar + mec)) 
### standard includes
process.load("FWCore.MessageService.MessageLogger_cfi")
process.MessageLogger.cerr.FwkReport.reportEvery = 1000

### source
process.source = cms.Source("PoolSource",
    fileNames = cms.untracked.vstring(
        'root:://pcmssd12.cern.ch//data/gpetrucc/7TeV/hlt/MC_vecchio.root' ## doesn't actually have HLT debug inside :-(
    )
)
process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )

## Apply other trigger skims (to handle with prescaled triggers)
from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
process.bit40 = hltHighLevelDev.clone(HLTPaths = ['HLT_MinBiasBSC'], HLTPathsPrescales = [1])
process.halo  = hltHighLevelDev.clone(HLTPaths = ['HLT_L1Tech_BSC_halo'], HLTPathsPrescales = [1])

## Quality filter on the muons
process.patMuons = cms.EDFilter("PATMuonSelector", src = cms.InputTag("patMuonsWithTrigger"), cut = cms.string("isGlobalMuon && muonID('GlobalMuonPromptTight')"))
## At least one good muon
process.muonFilter       = cms.EDFilter("CandViewCountFilter", src = cms.InputTag("patMuons"), minNumber = cms.uint32(1))
## No more than one (maxNumber didn't work for me, I don't know why)
process.diMuonFilter     = process.muonFilter.clone(minNumber = 2) 
process.singleMuonFilter = cms.Sequence(~process.diMuonFilter)

process.patMuonTree = cms.EDAnalyzer("ProbeTreeProducer",
    src = cms.InputTag("patMuons"),
    cut = cms.string(""), # you might want a quality cut here
    variables = cms.PSet(
        ## Variables of the muon
Example #7
0
### standard includes
process.load("FWCore.MessageService.MessageLogger_cfi")
process.MessageLogger.cerr.FwkReport.reportEvery = 1000

### source
process.source = cms.Source(
    "PoolSource",
    fileNames=cms.untracked.vstring(
        'root:://pcmssd12.cern.ch//data/gpetrucc/7TeV/hlt/MC_vecchio.root'  ## doesn't actually have HLT debug inside :-(
    ))
process.maxEvents = cms.untracked.PSet(input=cms.untracked.int32(-1))

## Apply other trigger skims (to handle with prescaled triggers)
from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev

process.bit40 = hltHighLevelDev.clone(HLTPaths=['HLT_MinBiasBSC'],
                                      HLTPathsPrescales=[1])
process.halo = hltHighLevelDev.clone(HLTPaths=['HLT_L1Tech_BSC_halo'],
                                     HLTPathsPrescales=[1])

## Quality filter on the muons
process.patMuons = cms.EDFilter(
    "PATMuonSelector",
    src=cms.InputTag("patMuonsWithTrigger"),
    cut=cms.string("isGlobalMuon && muonID('GlobalMuonPromptTight')"))
## At least one good muon
process.muonFilter = cms.EDFilter("CandViewCountFilter",
                                  src=cms.InputTag("patMuons"),
                                  minNumber=cms.uint32(1))
## No more than one (maxNumber didn't work for me, I don't know why)
process.diMuonFilter = process.muonFilter.clone(minNumber=2)
process.singleMuonFilter = cms.Sequence(~process.diMuonFilter)
   filter = cms.bool(True),   # otherwise it won't filter the events, just produce an empty vertex collection.
)
process.noScraping = cms.EDFilter("FilterOutScraping",
    applyfilter = cms.untracked.bool(True),
    debugOn = cms.untracked.bool(False), ## Or 'True' to get some per-event info
    numtrack = cms.untracked.uint32(10),
    thresh = cms.untracked.double(0.25)
)

process.globalMuFilter = cms.EDFilter("TrackCountFilter",    src = cms.InputTag("globalMuons"), minNumber = cms.uint32(1))
process.recoMuFilter   = cms.EDFilter("CandViewCountFilter", src = cms.InputTag("muons"),       minNumber = cms.uint32(1))

process.preFilter = cms.Sequence(process.oneGoodVertexFilter * process.noScraping)

from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
process.bscMinBiasOR = hltHighLevelDev.clone(HLTPaths = ['HLT_L1_BscMinBiasOR_BptxPlusORMinus'], HLTPathsPrescales = [1])
process.hltL1MuOpen  = hltHighLevelDev.clone(HLTPaths = ['HLT_L1MuOpen'],                        HLTPathsPrescales = [1])

process.skim_RecoMu            = cms.Path(process.preFilter * process.recoMuFilter  )
process.skim_GlbMu             = cms.Path(process.preFilter * process.globalMuFilter)
process.skim_RecoMuBscOR       = cms.Path(process.preFilter * process.recoMuFilter   * process.bscMinBiasOR)
process.skim_RecoMuHLTL1MuOpen = cms.Path(process.preFilter * process.recoMuFilter   * process.hltL1MuOpen)

### Adding Trigger Info from TriggerResultsSummary to the PATMuon
process.load("MuonAnalysis.MuonAssociators.patMuonsWithTrigger_8E29_cff")
from MuonAnalysis.MuonAssociators.patMuonsWithTrigger_8E29_cff import changeTriggerProcessName, switchOffAmbiguityResolution;

## ==== Change trigger process name ====
#changeTriggerProcessName(process, "HLT2")   # Custom re-run HLT
#changeTriggerProcessName(process, "REDIGI") # Spring10 ReDigi
def Force_L1DoubleMuOpen(process):
    from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
    process.forceL1DoubleMuOpen = hltHighLevelDev.clone(HLTPaths = ['HLT_L1DoubleMuOpen'], HLTPathsPrescales = [1])
    process.histoTriggerL1DoubleMuOpen = process.histoTrigger.clone()
    process.tagAndProbeL1DoubleMuOpen = cms.Path(process.tagAndProbe._seq + process.forceL1DoubleMuOpen + process.histoTriggerL1DoubleMuOpen)
process.dimutt = process.dimu.clone(decay="mu4jt@+ mu4jt@-")
## Di-muons, both trigger matched geometrically
process.dimuttg = process.dimu.clone(decay="mu4jtg@+ mu4jtg@-")
process.any = cms.EDFilter("CandViewCountFilter",
                           src=cms.InputTag("dimu"),
                           minNumber=cms.uint32(1))
process.tt = cms.EDFilter("CandViewCountFilter",
                          src=cms.InputTag("dimutt"),
                          minNumber=cms.uint32(1))
process.ttg = cms.EDFilter("CandViewCountFilter",
                           src=cms.InputTag("dimuttg"),
                           minNumber=cms.uint32(1))

## Test trigger bit
from HLTrigger.HLTfilters.hltHighLevelDev_cfi import hltHighLevelDev
process.trigBit = hltHighLevelDev.clone(HLTPaths=['HLT_L1DoubleMuOpen'],
                                        HLTPathsPrescales=[1])

process.s = cms.Sequence(process.csctfDigis * process.muonL1MatchExtended *
                         process.patMuons *
                         (process.mu4j + process.mu4jt + process.mu4jtg) *
                         (process.dimu + process.dimutt + process.dimuttg))

process.pAny = cms.Path(process.trigBit + process.s + process.any)

process.pMatch = cms.Path(process.trigBit + process.s + process.tt)

process.pMatchGeom = cms.Path(process.trigBit + process.s + process.ttg)

#process.o = cms.OutputModule("PoolOutputModule",
#    fileName = cms.untracked.string("patMuons_L1MatcherExtended.root"),
#    outputCommands = cms.untracked.vstring("drop *", "keep *_patMuons__*", "keep l1extraL1MuonParticles_l1extraParticles__*")