1 AlCaRecoMatrix = {
'ExpressCosmics' :
'SiStripCalZeroBias+TkAlCosmics0T',
2 'StreamExpress' :
'SiStripCalZeroBias+TkAlMinBias+MuAlCalIsolatedMu+DtCalib',
3 'MinimumBias' :
'SiStripCalMinBias+TkAlMinBias',
4 'Commissioning' :
'HcalCalIsoTrk',
5 'SingleMu' :
'MuAlCalIsolatedMu+MuAlOverlaps+TkAlMuonIsolated+DtCalib',
6 'DoubleMu' :
'MuAlCalIsolatedMu+MuAlOverlaps+DtCalib+TkAlZMuMu',
7 'MuOnia' :
'TkAlJpsiMuMu+TkAlUpsilonMuMu',
8 'SingleElectron' :
'EcalCalElectron',
9 'DoubleElectron' :
'EcalCalElectron',
10 'AlCaLumiPixels' :
'LumiPixels',
11 'DoubleMuParked' :
'MuAlCalIsolatedMu+MuAlOverlaps+DtCalib+TkAlZMuMu',
12 'MuOniaParked' :
'TkAlJpsiMuMu+TkAlUpsilonMuMu',
13 'Cosmics' :
'TkAlCosmics0T+MuAlGlobalCosmics+HcalCalHOCosmics+DtCalibCosmics',
15 'AlCaP0' :
'EcalCalPi0Calib+EcalCalEtaCalib',
17 'HcalNZS' :
'HcalCalMinBias'
23 """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."""
26 alCaRecoList.extend(matrix[pd].
split(
"+"))
28 alCaRecoList = set(alCaRecoList)
30 for alCaReco
in alCaRecoList:
32 stringList += alCaReco
34 stringList +=
'+'+alCaReco
38 autoAlca = {
'allForPrompt' :
buildList([
'MinimumBias',
'Commissioning',
'SingleMu',
'DoubleMu',
'MuOnia',
'DoubleMuParked',
'MuOniaParked',
'SingleElectron',
'DoubleElectron',
'HcalNZS'], AlCaRecoMatrix),
39 'allForExpress' :
buildList([
'StreamExpress'], AlCaRecoMatrix),
40 'allForPromptCosmics' :
buildList([
'Cosmics'], AlCaRecoMatrix),
41 'allForExpressCosmics' :
buildList([
'ExpressCosmics'], AlCaRecoMatrix) }
42 autoAlca.update(AlCaRecoMatrix)