3 import globalDictionaries
4 from genericValidation
import GenericValidationData_CTSR, 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" 16 "pvvalidationreference": (
"/store/group/alca_trackeralign/validation/PVValidation/Reference/PrimaryVertexValidation_phaseIMC92X_upgrade2017_Ideal.root"),
19 "forceBeamSpot":
"False",
21 mandatories = {
"isda",
"ismc",
"runboundary",
"trackcollection",
"vertexcollection",
"lumilist",
"ptCut",
"etaCut",
"runControl",
"numberOfBins"}
22 valType =
"primaryvertex" 23 def __init__(self, valName, alignment, config):
24 super(PrimaryVertexValidation, self).
__init__(valName, alignment, config)
26 for name
in "doBPix",
"doFPix",
"forceBeamSpot":
29 if self.
general[
"pvvalidationreference"].startswith(
"/store"):
30 self.
general[
"pvvalidationreference"] =
"root://eoscms//eos/cms" + self.
general[
"pvvalidationreference"]
32 raise AllInOneError(
"Parallel jobs not implemented for the PrimaryVertex validation!\n" 33 "Please set parallelJobs = 1.")
37 return configTemplates.PrimaryVertexValidationTemplate
41 return configTemplates.PVValidationPath
58 return "PrimaryVertexValidation" 61 return super(PrimaryVertexValidation, self).
createScript(path, template = configTemplates.PVValidationScriptTemplate)
69 repMap = super(PrimaryVertexValidation, self).
getRepMap(alignment)
71 "nEvents": self.
general[
"maxevents"],
72 "TrackCollection": self.
general[
"trackcollection"],
73 "VertexCollection": self.
general[
"vertexcollection"],
74 "eosdir": os.path.join(self.
general[
"eosdir"]),
76 "workingdir":
".oO[datadir]Oo./%s/%s/%s" % (self.
outputBaseName, self.
name, alignment.name),
77 "plotsdir":
".oO[datadir]Oo./%s/%s/%s/plots" % (self.
outputBaseName, self.
name, alignment.name),
78 "filetoplot":
"root://eoscms//eos/cms.oO[finalResultFile]Oo.",
85 if no argument or "" is passed a string with an instantiation is returned, 86 else the validation is appended to the list 90 parameters =
" ".
join(os.path.join(
"root://eoscms//eos/cms", file.lstrip(
"/"))
for file
in repMap[
"resultFiles"])
92 mergedoutputfile = os.path.join(
"root://eoscms//eos/cms", repMap[
"finalResultFile"].lstrip(
"/"))
93 return "hadd -f %s %s\n" % (mergedoutputfile, parameters)
97 return (
' loadFileList("%(filetoplot)s",' 98 '"PVValidation", "%(title)s", %(color)s, %(style)s);\n')%repMap
102 return configTemplates.PrimaryVertexPlotExecution
106 return "TkAlPrimaryVertexValidationPlot.C" 110 return configTemplates.PrimaryVertexPlotTemplate
114 return "PrimaryVertexValidation" def ValidationSequence(self)
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)
static std::string join(char **cmd)
def ValidationTemplate(self)
def getRepMap(self, alignment=None)
def __init__(self, valName, alignment, config)