1 from __future__
import absolute_import
3 from .
import configTemplates
4 from .
import globalDictionaries
5 from .genericValidation
import GenericValidationData_CTSR, ParallelValidation, ValidationWithPlots, pythonboolstring
6 from .helperFunctions
import replaceByMap
7 from .TkAlExceptions
import AllInOneError
10 configBaseName =
"TkAlPrimaryVertexValidation" 11 scriptBaseName =
"TkAlPrimaryVertexValidation" 12 crabCfgBaseName =
"TkAlPrimaryVertexValidation" 13 resultBaseName =
"PrimaryVertexValidation" 14 outputBaseName =
"PrimaryVertexValidation" 17 "pvvalidationreference": (
"/store/group/alca_trackeralign/validation/PVValidation/Reference/PrimaryVertexValidation_phaseIMC92X_upgrade2017_Ideal.root"),
20 "forceBeamSpot":
"False",
22 mandatories = {
"isda",
"ismc",
"runboundary",
"trackcollection",
"vertexcollection",
"lumilist",
"ptCut",
"etaCut",
"runControl",
"numberOfBins"}
23 valType =
"primaryvertex" 24 def __init__(self, valName, alignment, config):
25 super(PrimaryVertexValidation, self).
__init__(valName, alignment, config)
27 for name
in "doBPix",
"doFPix",
"forceBeamSpot":
30 if self.
general[
"pvvalidationreference"].startswith(
"/store"):
31 self.
general[
"pvvalidationreference"] =
"root://eoscms//eos/cms" + self.
general[
"pvvalidationreference"]
35 return configTemplates.PrimaryVertexValidationTemplate
39 return configTemplates.PVValidationPath
56 return "PrimaryVertexValidation" 59 return super(PrimaryVertexValidation, self).
createScript(path, template = configTemplates.PVValidationScriptTemplate)
67 repMap = super(PrimaryVertexValidation, self).
getRepMap(alignment)
69 "nEvents": self.
general[
"maxevents"],
70 "TrackCollection": self.
general[
"trackcollection"],
71 "VertexCollection": self.
general[
"vertexcollection"],
72 "eosdir": os.path.join(self.
general[
"eosdir"]),
74 "workingdir":
".oO[datadir]Oo./%s/%s/%s" % (self.
outputBaseName, self.
name, alignment.name),
75 "plotsdir":
".oO[datadir]Oo./%s/%s/%s/plots" % (self.
outputBaseName, self.
name, alignment.name),
76 "filetoplot":
"root://eoscms//eos/cms.oO[finalResultFile]Oo.",
83 if no argument or "" is passed a string with an instantiation is returned, 84 else the validation is appended to the list 88 parameters =
" ".
join(os.path.join(
"root://eoscms//eos/cms", file.lstrip(
"/"))
for file
in repMap[
"resultFiles"])
90 mergedoutputfile = os.path.join(
"root://eoscms//eos/cms", repMap[
"finalResultFile"].lstrip(
"/"))
91 return "hadd -f %s %s\n" % (mergedoutputfile, parameters)
95 return (
' loadFileList("%(filetoplot)s",' 96 '"PVValidation", "%(title)s", %(color)s, %(style)s);\n')%repMap
100 return configTemplates.PrimaryVertexPlotExecution
104 return "TkAlPrimaryVertexValidationPlot.C" 108 return configTemplates.PrimaryVertexPlotTemplate
112 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)