-
Notifications
You must be signed in to change notification settings - Fork 4.4k
/
Copy pathautoAlca.py
70 lines (66 loc) · 5.39 KB
/
autoAlca.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
AlCaRecoMatrix = {
"AlCaLumiPixelsCountsExpress" : "AlCaPCCRandom",
"AlCaLumiPixelsCountsPrompt" : "AlCaPCCZeroBias+RawPCCProducer",
# 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
"AlCaPhiSym" : "",
"AlCaP0" : "",
"AlCaPPSExpress" : "PPSCalMaxTracks", # Express producer
"AlCaPPSPrompt" : "PPSCalMaxTracks", # Prompt producer
"Commissioning" : "HcalCalIsoTrk+TkAlMinBias+SiStripCalMinBias+HcalCalIsolatedBunchSelector",
"Cosmics" : "SiPixelCalCosmics+SiStripCalCosmics+TkAlCosmics0T+MuAlGlobalCosmics",
"DoubleMuon" : "TkAlZMuMu+TkAlDiMuonAndVertex+MuAlCalIsolatedMu",
"DoubleMuonLowMass" : "TkAlJpsiMuMu+TkAlUpsilonMuMu",
"EGamma" : "EcalESAlign+EcalUncalWElectron+EcalUncalZElectron+HcalCalIsoTrkProducerFilter+HcalCalIterativePhiSym",
"Express" : "SiStripCalZeroBias+TkAlMinBias+TkAlZMuMu+SiStripPCLHistos+SiStripCalMinBias+SiStripCalMinBiasAAG+Hotline+SiPixelCalZeroBias",
"ExpressAlignment" : "TkAlMinBias",
"ExpressCosmics" : "SiStripPCLHistos+SiStripCalZeroBias+TkAlCosmics0T+SiPixelCalZeroBias+SiPixelCalCosmics+SiStripCalCosmics",
"HcalNZS" : "HcalCalMinBias",
"HLTPhysics" : "TkAlMinBias+TkAlV0s",
"HLTMonitor" : "TkAlHLTTracks+TkAlHLTTracksZMuMu",
"JetHT" : "HcalCalIsoTrkProducerFilter+TkAlJetHT",
"JetMET" : "HcalCalIsoTrkProducerFilter+TkAlJetHT+HcalCalNoise",
"MinimumBias" : "SiStripCalZeroBias+SiStripCalMinBias+TkAlMinBias",
"MET" : "HcalCalNoise",
"Muon" : "TkAlZMuMu+TkAlDiMuonAndVertex+MuAlCalIsolatedMu+SiPixelCalSingleMuonLoose+SiPixelCalSingleMuonTight+TkAlMuonIsolated+HcalCalHO+HcalCalIterativePhiSym+HcalCalHBHEMuonProducerFilter",
"NoBPTX" : "TkAlCosmicsInCollisions",
"ParkingDoubleMuonLowMass" : "TkAlJpsiMuMu+TkAlUpsilonMuMu",
"SingleMuon" : "SiPixelCalSingleMuonLoose+SiPixelCalSingleMuonTight+TkAlMuonIsolated+MuAlCalIsolatedMu+HcalCalHO+HcalCalIterativePhiSym+HcalCalHBHEMuonProducerFilter",
"SpecialHLTPhysics" : "LumiPixelsMinBias",
"StreamExpress" : "SiStripCalZeroBias+TkAlMinBias+TkAlZMuMu+SiStripPCLHistos+SiStripCalMinBias+SiStripCalMinBiasAAG+Hotline+SiPixelCalZeroBias+SiPixelCalSingleMuon",
"StreamExpressHI" : "SiStripCalZeroBias+TkAlMinBiasHI+SiStripPCLHistos+SiStripCalMinBias+SiStripCalMinBiasAAG+SiPixelCalZeroBias",
# These (TestEnablesTracker, TestEnablesEcalHcal) are in the AlCaRecoMatrix, but no RelVals are produced
# 'TestEnablesTracker' : 'TkAlLAS'
# 'TestEnablesEcalHcal' : 'HcalCalPedestal'
"ZeroBias" : "HcalCalIsolatedBunchSelector+SiStripCalZeroBias+TkAlMinBias+SiStripCalMinBias",
}
def buildList(pdList, matrix):
"""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."""
alCaRecoList = []
for pd in pdList:
alCaRecoList.extend(matrix[pd].split("+"))
# remove duplicates converting to a set
alCaRecoList = set(alCaRecoList)
stringList = ''
for alCaReco in alCaRecoList:
if stringList == '':
stringList += alCaReco
else:
stringList += '+'+alCaReco
return stringList
# Update the lists anytime a new PD is added to the matrix
autoAlca = { 'allForPrompt' : buildList(['Commissioning', 'EGamma', 'HLTPhysics', 'HcalNZS', 'JetMET', 'Muon', 'NoBPTX', 'ParkingDoubleMuonLowMass', 'ZeroBias'], AlCaRecoMatrix),
'allForExpress' : buildList(['StreamExpress'], AlCaRecoMatrix),
'allForExpressHI' : buildList(['StreamExpressHI'], AlCaRecoMatrix),
'allForPromptCosmics' : buildList(['Cosmics'], AlCaRecoMatrix),
'allForExpressCosmics' : buildList(['ExpressCosmics'], AlCaRecoMatrix) }
autoAlca.update(AlCaRecoMatrix)
# list of AlCa sequences that have modules that do not support concurrent LuminosityBlocks
AlCaNoConcurrentLumis = [
'PromptCalibProd', # AlcaBeamSpotProducer
'PromptCalibProdSiPixelAli', # AlignmentProducerAsAnalyzer, MillePedeFileConverter
'PromptCalibProdSiPixelAliHG', # AlignmentProducerAsAnalyzer, MillePedeFileConverter
'PromptCalibProdSiPixelAliHGComb', # AlignmentProducerAsAnalyzer, MillePedeFileConverter
'PromptCalibProdSiPixelAliHLTHGC', # AlignmentProducerAsAnalyzer, MillePedeFileConverter
'PromptCalibProdBeamSpotHP', # AlcaBeamSpotProducer
'PromptCalibProdBeamSpotHPLowPU', # AlcaBeamSpotProducer
]