1 from __future__
import print_function
6 print(
"Error: please, specify the configuration file")
9 configFile = sys.argv[1]
11 if os.path.isfile(configFile):
12 print(
"Using configuration file:", configFile)
14 print(
"Error: configuration file", configFile,
"not found")
18 import HDQMDatabaseProducerConfiguration
22 import DiscoverDQMFiles
33 if len(config.RecoTypes) == 0:
34 fullList = discoverDQMFiles.filesList(config.SourceDir)
38 keys[file.split(
"__")[2]] = 1
39 print(
"Found the following reco types:", keys.keys())
40 config.RecoTypes = keys.keys()
43 recoTypesFile = open(
'recoTypesFile.txt',
'w')
48 for recoType
in config.RecoTypes:
50 fullList = discoverDQMFiles.filesList(config.SourceDir, recoType)
51 for subDetAndTag
in config.SubDetsAndTags:
52 FullTagName = config.TagName+
"_"+subDetAndTag.SubDet+
"_"+subDetAndTag.Tag
54 import DiscoverProcessedRuns
57 discoverProcessedRuns.Database = config.Database
58 discoverProcessedRuns.AuthenticationPath = config.AuthenticationPath
59 discoverProcessedRuns.CMSSW_Version = config.CMSSW_Version
60 discoverProcessedRuns.TagName = FullTagName
62 processedRuns = discoverProcessedRuns.runsList()
65 filteredList =
list(fullList)
66 for run
in processedRuns:
68 if( file.find(run) != -1 ):
71 filteredList.remove(file)
73 print(
"Error, trying to remove file:", file,
"twice!")
77 filteredList = sorted(filteredList, key=
lambda run: run.split(
"R0")[1].
split(
"__")[0])
78 runsToSkip =
int(config.RunsToSkip)
80 for lastRun
in range(runsToSkip):
84 tempDir = config.BaseDir+
"/"+subDetAndTag.SubDet+
"_"+config.RunType+
"/" 85 if not os.path.isdir(tempDir):
88 for file
in filteredList:
89 runNumber =
int(file.split(
"R0")[1].
split(
"__")[0])
91 populateDB.RunNumber =
str(runNumber)
92 populateDB.AuthenticationPath = config.AuthenticationPath
93 populateDB.Database = config.Database
94 populateDB.TagName = FullTagName
95 populateDB.FileName = file
96 populateDB.TemplatesDir = config.TemplatesDir
97 populateDB.DetName = subDetAndTag.SubDet
98 populateDB.Dir = config.BaseDir+
"/"+subDetAndTag.SubDet+
"_"+config.RunType+
"/" 99 populateDB.CMSSW_Version = config.CMSSW_Version
104 if len(filteredList) == 0:
105 print(
"Creating plots")
107 producePlots.Dir = config.BaseDir+
"/" 108 producePlots.TagName = FullTagName
109 producePlots.DetName = subDetAndTag.SubDet
110 producePlots.StorageDir = config.StorageDir
111 producePlots.BaseDir = config.BaseDir
112 producePlots.FirstRun =
str(config.FirstRun)
113 producePlots.CMSSW_Version = config.CMSSW_Version
114 producePlots.Database = config.Database
115 producePlots.Password = PASSWORD
116 producePlots.RunType = config.RunType
117 producePlots.Group = config.Group
118 producePlots.QualityFlag = subDetAndTag.QualityFlag
120 producePlots.makePlots()
123 recoTypesFile.write(recoType+
"\n")
125 recoTypesFile.close()
S & print(S &os, JobReport::InputFile const &f)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run