CMS 3D CMS Logo

autoAlca.py
Go to the documentation of this file.
1 AlCaRecoMatrix = {
2  "ALCALumiPixelsCountsExpress" : "AlCaPCCRandom",
3  "AlCaLumiPixelsCountsPrompt" : "AlCaPCCZeroBias+RawPCCProducer",
4  # These two (AlCaPhiSym, AlCaP0) cannot run on RAW, they are just meant to run on the dedicated AlcaRAW so they do not enter the allForPrompt list
5  "AlCaPhiSym" : "",
6  "AlCaP0" : "",
7  "ALCAPPSExpress" : "PPSCalMaxTracks", # Express producer
8  "AlCaPPSPrompt" : "PPSCalMaxTracks", # Prompt producer
9  "Commissioning" : "HcalCalIsoTrk+TkAlMinBias+SiStripCalMinBias",
10  "Cosmics" : "SiPixelCalCosmics+SiStripCalCosmics+TkAlCosmics0T+MuAlGlobalCosmics",
11  "EGamma" : "EcalESAlign+EcalUncalWElectron+EcalUncalZElectron+HcalCalIsoTrkProducerFilter+HcalCalIterativePhiSym",
12  "Express" : "SiStripCalZeroBias+TkAlMinBias+SiStripPCLHistos+SiStripCalMinBias+SiStripCalMinBiasAAG+Hotline+SiPixelCalZeroBias",
13  "ExpressAlignment" : "TkAlMinBias",
14  "ExpressCosmics" : "SiStripPCLHistos+SiStripCalZeroBias+TkAlCosmics0T+SiPixelCalZeroBias",
15  "HcalNZS" : "HcalCalMinBias",
16  "HLTPhysics" : "TkAlMinBias",
17  "JetMET" : "HcalCalIsoTrkProducerFilter+TkAlJetHT+HcalCalNoise",
18  "Muon" : "TkAlZMuMu+TkAlDiMuonAndVertex+MuAlCalIsolatedMu+SiPixelCalSingleMuonLoose+SiPixelCalSingleMuonTight+TkAlMuonIsolated+HcalCalHO+HcalCalIterativePhiSym+HcalCalHBHEMuonProducerFilter",
19  "NoBPTX" : "TkAlCosmicsInCollisions",
20  "ParkingDoubleMuonLowMass" : "TkAlJpsiMuMu+TkAlUpsilonMuMu",
21  "StreamExpress" : "SiStripCalZeroBias+TkAlMinBias+SiStripPCLHistos+SiStripCalMinBias+SiStripCalMinBiasAAG+Hotline+SiPixelCalZeroBias+SiPixelCalSingleMuon",
22  "StreamExpressHI" : "SiStripCalZeroBias+TkAlMinBiasHI+SiStripPCLHistos+SiStripCalMinBias+SiStripCalMinBiasAAG+SiPixelCalZeroBias",
23  # These (TestEnablesTracker, TestEnablesEcalHcal) are in the AlCaRecoMatrix, but no RelVals are produced
24  # 'TestEnablesTracker' : 'TkAlLAS'
25  # 'TestEnablesEcalHcal' : 'HcalCalPedestal'
26  "ZeroBias" : "HcalCalIsolatedBunchSelector+SiStripCalZeroBias+TkAlMinBias+SiStripCalMinBias",
27  }
28 
29 
30 def buildList(pdList, matrix):
31  """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."""
32  alCaRecoList = []
33  for pd in pdList:
34  alCaRecoList.extend(matrix[pd].split("+"))
35  # remove duplicates converting to a set
36  alCaRecoList = set(alCaRecoList)
37  stringList = ''
38  for alCaReco in alCaRecoList:
39  if stringList == '':
40  stringList += alCaReco
41  else:
42  stringList += '+'+alCaReco
43  return stringList
44 
45 # Update the lists anytime a new PD is added to the matrix
46 autoAlca = { 'allForPrompt' : buildList(['Commissioning', 'EGamma', 'HLTPhysics', 'HcalNZS', 'JetMET', 'Muon', 'NoBPTX', 'ParkingDoubleMuonLowMass', 'ZeroBias'], AlCaRecoMatrix),
47  'allForExpress' : buildList(['StreamExpress'], AlCaRecoMatrix),
48  'allForExpressHI' : buildList(['StreamExpressHI'], AlCaRecoMatrix),
49  'allForPromptCosmics' : buildList(['Cosmics'], AlCaRecoMatrix),
50  'allForExpressCosmics' : buildList(['ExpressCosmics'], AlCaRecoMatrix) }
51 autoAlca.update(AlCaRecoMatrix)
52 
53 # list of AlCa sequences that have modules that do not support concurrent LuminosityBlocks
54 AlCaNoConcurrentLumis = [
55  'PromptCalibProd', # AlcaBeamSpotProducer
56  'PromptCalibProdSiPixelAli', # AlignmentProducerAsAnalyzer, MillePedeFileConverter
57  'PromptCalibProdBeamSpotHP', # AlcaBeamSpotProducer
58  'PromptCalibProdBeamSpotHPLowPU', # AlcaBeamSpotProducer
59 ]
def buildList(pdList, matrix)
Definition: autoAlca.py:30