File indexing completed on 2023-03-17 10:40:24
0001 from __future__ import absolute_import
0002
0003 import os
0004
0005 from . import configTemplates
0006 from .genericValidation import GenericValidationData_CTSR, ParallelValidation, ValidationWithPlots
0007 from .helperFunctions import replaceByMap
0008 from .presentation import SubsectionFromList, SubsectionOnePage
0009 from .TkAlExceptions import AllInOneError
0010
0011
0012 class OverlapValidation(GenericValidationData_CTSR, ParallelValidation, ValidationWithPlots):
0013 configBaseName = "TkAlOverlapValidation"
0014 scriptBaseName = "TkAlOverlapValidation"
0015 crabCfgBaseName = "TkAlOverlapValidation"
0016 resultBaseName = "OverlapValidation"
0017 outputBaseName = "OverlapValidation"
0018 mandatories = {"trackcollection"}
0019 valType = "overlap"
0020
0021 @property
0022 def ValidationTemplate(self):
0023 return configTemplates.overlapTemplate
0024
0025 @property
0026 def ValidationSequence(self):
0027 return configTemplates.overlapValidationSequence
0028
0029 @property
0030 def ProcessName(self):
0031 return "overlap"
0032
0033 def getRepMap( self, alignment = None ):
0034 repMap = super(OverlapValidation, self).getRepMap(alignment)
0035 repMap.update({
0036 "nEvents": self.general["maxevents"],
0037 "TrackCollection": self.general["trackcollection"],
0038 })
0039 return repMap
0040
0041 def appendToPlots(self):
0042 """
0043 if no argument or "" is passed a string with an instantiation is
0044 returned, else the validation is appended to the list
0045 """
0046 return '("{file}", "{title}", {color}, {style}),'.format(file=self.getCompareStrings(plain=True)["DEFAULT"], **self.getRepMap())
0047
0048 def appendToMerge(self):
0049 repMap = self.getRepMap()
0050
0051 parameters = " ".join(os.path.join("root://eoscms//eos/cms", file.lstrip("/")) for file in repMap["resultFiles"])
0052
0053 mergedoutputfile = os.path.join("root://eoscms//eos/cms", repMap["finalResultFile"].lstrip("/"))
0054 return "hadd -f %s %s" % (mergedoutputfile, parameters)
0055
0056 @classmethod
0057 def plottingscriptname(cls):
0058 return "TkAlOverlapValidation.py"
0059
0060 @classmethod
0061 def plottingscripttemplate(cls):
0062 return configTemplates.overlapPlottingTemplate
0063
0064 @classmethod
0065 def plotsdirname(cls):
0066 return "OverlapValidationPlots"
0067
0068 @classmethod
0069 def runPlots(cls, validations):
0070 return ("rfcp .oO[plottingscriptpath]Oo. .\n"
0071 "python .oO[plottingscriptname]Oo.")
0072