CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/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                   'AlCaLumiPixels' : 'LumiPixels',
00011                   'DoubleMuParked' : 'MuAlCalIsolatedMu+MuAlOverlaps+DtCalib+TkAlZMuMu',
00012                   'MuOniaParked'   : 'TkAlJpsiMuMu+TkAlUpsilonMuMu',
00013                   'Cosmics'        : 'TkAlCosmics0T+MuAlGlobalCosmics+HcalCalHOCosmics+DtCalibCosmics',
00014                   # These two cannot run on RAW, they are just meant to run on the dedicated AlcaRAW so they do not enter the allForPrompt list
00015                   'AlCaP0'         : 'EcalCalPi0Calib+EcalCalEtaCalib',
00016                   # ---------------------------------------------------------------------------------------------------------------------------
00017                   'HcalNZS'        : 'HcalCalMinBias'
00018                   # This is in the AlCaRecoMatrix, but no RelVals are produced
00019                   # 'TestEnablesTracker' : 'TkAlLAS'
00020                   }
00021 
00022 def buildList(pdList, matrix):
00023     """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."""
00024     alCaRecoList = []
00025     for pd in pdList:
00026         alCaRecoList.extend(matrix[pd].split("+"))
00027     # remove duplicates converting to a set
00028     alCaRecoList = set(alCaRecoList)
00029     stringList = ''
00030     for alCaReco in alCaRecoList:
00031         if stringList == '':
00032             stringList += alCaReco
00033         else:
00034             stringList += '+'+alCaReco
00035     return stringList
00036 
00037 # Update the lists anytime a new PD is added to the matrix
00038 autoAlca = { 'allForPrompt'         : buildList(['MinimumBias', 'Commissioning', 'SingleMu', 'DoubleMu', 'MuOnia', 'DoubleMuParked', 'MuOniaParked', 'SingleElectron', 'DoubleElectron', 'HcalNZS'], AlCaRecoMatrix),
00039              'allForExpress'        : buildList(['StreamExpress'], AlCaRecoMatrix),
00040              'allForPromptCosmics'  : buildList(['Cosmics'], AlCaRecoMatrix),
00041              'allForExpressCosmics' : buildList(['ExpressCosmics'], AlCaRecoMatrix) }
00042 autoAlca.update(AlCaRecoMatrix)