3 import globalDictionaries
4 from genericValidation
import GenericValidationData, ValidationWithPlots, pythonboolstring
5 from helperFunctions
import replaceByMap
6 from TkAlExceptions
import AllInOneError
9 configBaseName =
"TkAlPrimaryVertexValidation" 10 scriptBaseName =
"TkAlPrimaryVertexValidation" 11 crabCfgBaseName =
"TkAlPrimaryVertexValidation" 12 resultBaseName =
"PrimaryVertexValidation" 13 outputBaseName =
"PrimaryVertexValidation" 15 "pvvalidationreference": (
"/store/caf/user/musich/Alignment/TkAlPrimaryVertexValidation/Reference/PrimaryVertexValidation_test_pvvalidation_upgrade2017_design_mc_48bins.root"),
19 mandatories = {
"isda",
"ismc",
"runboundary",
"trackcollection",
"vertexcollection",
"lumilist",
"ptCut",
"etaCut",
"runControl",
"numberOfBins"}
20 valType =
"primaryvertex" 21 def __init__(self, valName, alignment, config):
22 super(PrimaryVertexValidation, self).
__init__(valName, alignment, config)
24 for name
in "doBPix",
"doFPix":
27 if self.
general[
"pvvalidationreference"].startswith(
"/store"):
28 self.
general[
"pvvalidationreference"] =
"root://eoscms//eos/cms" + self.
general[
"pvvalidationreference"]
30 raise AllInOneError(
"Parallel jobs not implemented for the PrimaryVertex validation!\n" 31 "Please set parallelJobs = 1.")
35 return configTemplates.PrimaryVertexValidationTemplate
39 return configTemplates.SingleTrackRefitter
43 return "PrimaryVertexValidation" 47 return configTemplates.PVValidationPath
50 return super(PrimaryVertexValidation, self).
createScript(path, template = configTemplates.PVValidationScriptTemplate)
58 repMap = super(PrimaryVertexValidation, self).
getRepMap(alignment)
60 "nEvents": self.
general[
"maxevents"],
61 "TrackCollection": self.
general[
"trackcollection"],
62 "VertexCollection": self.
general[
"vertexcollection"],
63 "eosdir": os.path.join(self.
general[
"eosdir"]),
65 "workingdir":
".oO[datadir]Oo./%s/%s/%s" % (self.
outputBaseName, self.
name, alignment.name),
66 "plotsdir":
".oO[datadir]Oo./%s/%s/%s/plots" % (self.
outputBaseName, self.
name, alignment.name),
73 if no argument or "" is passed a string with an instantiation is returned, 74 else the validation is appended to the list 78 parameters =
" ".
join(os.path.join(
"root://eoscms//eos/cms", file.lstrip(
"/"))
for file
in repMap[
"resultFiles"])
80 mergedoutputfile = os.path.join(
"root://eoscms//eos/cms", repMap[
"finalResultFile"].lstrip(
"/"))
81 return "hadd -f %s %s\n" % (mergedoutputfile, parameters)
85 return (
' loadFileList("root://eoscms//eos/cms%(finalResultFile)s",' 86 '"PVValidation","%(title)s", %(color)s, %(style)s);\n')%repMap
90 return configTemplates.PrimaryVertexPlotExecution
94 return "TkAlPrimaryVertexValidationPlot.C" 98 return configTemplates.PrimaryVertexPlotTemplate
102 return "PrimaryVertexValidation" def pythonboolstring(string, name)
def plottingscriptname(cls)
def runPlots(cls, validations)
def plottingscripttemplate(cls)
def createCrabCfg(self, path)
def getRepMap(self, alignment=None)
def createScript(self, path)
def TrackSelectionRefitting(self)
static std::string join(char **cmd)
def ValidationTemplate(self)
def getRepMap(self, alignment=None)
def __init__(self, valName, alignment, config)