CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch2/src/Configuration/AlCa/python/autoAlca.py

Go to the documentation of this file.
00001 AlCaRecoMatrix = {'ExpressCosmics' : 'SiStripCalZeroBias+TkAlCosmics0T',
00002                   'StreamExpress'  : 'SiStripCalZeroBias+TkAlMinBias+MuAlCalIsolatedMu+DtCalib',
00003                   'MinimumBias'    : 'SiStripCalMinBias+TkAlMinBias',
00004                   'Commissioning'  : 'HcalCalIsoTrk',
00005                   'SingleMu'       : 'MuAlCalIsolatedMu+MuAlOverlaps+TkAlMuonIsolated+DtCalib',
00006                   'DoubleMu'       : 'MuAlCalIsolatedMu+MuAlOverlaps+DtCalib+TkAlZMuMu',
00007                   'MuOnia'         : 'TkAlJpsiMuMu+TkAlUpsilonMuMu',
00008                   'SingleElectron' : 'EcalCalElectron',
00009                   'DoubleElectron' : 'EcalCalElectron',
00010                   'Cosmics'        : 'TkAlCosmics0T+MuAlGlobalCosmics+HcalCalHOCosmics+DtCalibCosmics',
00011                   # These two cannot run on RAW, they are just meant to run on the dedicated AlcaRAW so they do not enter the allForPrompt list
00012                   'AlCaP0'         : 'EcalCalPi0Calib+EcalCalEtaCalib',
00013                   # ---------------------------------------------------------------------------------------------------------------------------
00014                   'HcalNZS'        : 'HcalCalMinBias'
00015                   # This is in the AlCaRecoMatrix, but no RelVals are produced
00016                   # 'TestEnablesTracker' : 'TkAlLAS'
00017                   }
00018 
00019 def buildList(pdList, matrix):
00020     """Takes a list of primary datasets (PDs) and the AlCaRecoMatrix (a dictinary) and returns a string with all the AlCaRecos for the selected PDs separated by the '+' character without duplicates."""
00021     alCaRecoList = []
00022     for pd in pdList:
00023         alCaRecoList.extend(matrix[pd].split("+"))
00024     # remove duplicates converting to a set
00025     alCaRecoList = set(alCaRecoList)
00026     stringList = ''
00027     for alCaReco in alCaRecoList:
00028         if stringList == '':
00029             stringList += alCaReco
00030         else:
00031             stringList += '+'+alCaReco
00032     return stringList
00033 
00034 # Update the lists anytime a new PD is added to the matrix
00035 autoAlca = { 'allForPrompt'         : buildList(['MinimumBias', 'Commissioning', 'SingleMu', 'DoubleMu', 'MuOnia', 'SingleElectron', 'DoubleElectron', 'HcalNZS'], AlCaRecoMatrix),
00036              'allForExpress'        : buildList(['StreamExpress'], AlCaRecoMatrix),
00037              'allForPromptCosmics'  : buildList(['Cosmics'], AlCaRecoMatrix),
00038              'allForExpressCosmics' : buildList(['ExpressCosmics'], AlCaRecoMatrix) }
00039 autoAlca.update(AlCaRecoMatrix)