Esempio n. 1
0
    def __getValidation( self, valType, name, alignments, config, options ):
        if valType == "compare":
            alignmentsList = alignments.split( "," )
            firstAlignList = alignmentsList[0].split()
            firstAlignName = firstAlignList[0].strip()
            if firstAlignName == "IDEAL":
                raise AllInOneError("'IDEAL' has to be the second (reference)"
                                      " alignment in 'compare <val_name>: "
                                      "<alignment> <reference>'.")
            if len( firstAlignList ) > 1:
                firstRun = firstAlignList[1]
            else:
                firstRun = "1"
            firstAlign = Alignment( firstAlignName, self.__config, firstRun )
            firstAlignName = firstAlign.name
            secondAlignList = alignmentsList[1].split()
            secondAlignName = secondAlignList[0].strip()
            if len( secondAlignList ) > 1:
                secondRun = secondAlignList[1]
            else:
                secondRun = "1"
            if secondAlignName == "IDEAL":
                secondAlign = secondAlignName
            else:
                secondAlign = Alignment( secondAlignName, self.__config,
                                         secondRun )
                secondAlignName = secondAlign.name
                
            validation = GeometryComparison( name, firstAlign, secondAlign,
                                             self.__config,
                                             self.__commandLineOptions.getImages)
        elif valType == "offline":
            validation = OfflineValidation( name, 
                Alignment( alignments.strip(), self.__config ), self.__config )
        elif valType == "preexistingoffline":
            validation = PreexistingOfflineValidation(name, self.__config)
        elif valType == "offlineDQM":
            validation = OfflineValidationDQM( name, 
                Alignment( alignments.strip(), self.__config ), self.__config )
        elif valType == "mcValidate":
            validation = MonteCarloValidation( name, 
                Alignment( alignments.strip(), self.__config ), self.__config )
        elif valType == "preexistingmcValidate":
            validation = PreexistingMonteCarloValidation(name, self.__config)
        elif valType == "split":
            validation = TrackSplittingValidation( name, 
                Alignment( alignments.strip(), self.__config ), self.__config )
        elif valType == "preexistingsplit":
            validation = PreexistingTrackSplittingValidation(name, self.__config)
        elif valType == "zmumu":
            validation = ZMuMuValidation( name, 
                Alignment( alignments.strip(), self.__config ), self.__config )
        elif valType == "primaryvertex":
            validation = PrimaryVertexValidation( name, 
                Alignment( alignments.strip(), self.__config ), self.__config )
        else:
            raise AllInOneError("Unknown validation mode '%s'"%valType)

        return validation
Esempio n. 2
0
 def __getValidation( self, valType, name, alignments, config, options ):
     if valType == "compare":
         alignmentsList = alignments.split( "," )
         firstAlignList = alignmentsList[0].split()
         firstAlignName = firstAlignList[0].strip()
         if firstAlignName == "IDEAL":
             raise AllInOneError, ("'IDEAL' has to be the second (reference)"
                                   " alignment in 'compare <val_name>: "
                                   "<alignment> <reference>'.")
         if len( firstAlignList ) > 1:
             firstRun = firstAlignList[1]
         else:
             firstRun = "1"
         firstAlign = Alignment( firstAlignName, self.__config, firstRun )
         secondAlignList = alignmentsList[1].split()
         secondAlignName = secondAlignList[0].strip()
         if len( secondAlignList ) > 1:
             secondRun = secondAlignList[1]
         else:
             secondRun = "1"
         if secondAlignName == "IDEAL":
             secondAlign = secondAlignName
         else:
             secondAlign = Alignment( secondAlignName, self.__config,
                                      secondRun )
         # check if alignment was already compared previously
         try:
             randomWorkdirPart = \
                 globalDictionaries.alignRandDict[firstAlignName]
         except KeyError:
             randomWorkdirPart = None
             
         validation = GeometryComparison( name, firstAlign, secondAlign,
                                          self.__config,
                                          self.__commandLineOptions.getImages,
                                          randomWorkdirPart )
         globalDictionaries.alignRandDict[firstAlignName] = \
             validation.randomWorkdirPart
         if not secondAlignName == "IDEAL":
             globalDictionaries.alignRandDict[secondAlignName] = \
                 validation.randomWorkdirPart
     elif valType == "offline":
         validation = OfflineValidation( name, 
             Alignment( alignments.strip(), self.__config ), self.__config )
     elif valType == "offlineDQM":
         validation = OfflineValidationDQM( name, 
             Alignment( alignments.strip(), self.__config ), self.__config )
     elif valType == "mcValidate":
         validation = MonteCarloValidation( name, 
             Alignment( alignments.strip(), self.__config ), self.__config )
     elif valType == "split":
         validation = TrackSplittingValidation( name, 
             Alignment( alignments.strip(), self.__config ), self.__config )
     elif valType == "zmumu":
         validation = ZMuMuValidation( name, 
             Alignment( alignments.strip(), self.__config ), self.__config )
     else:
         raise AllInOneError, "Unknown validation mode '%s'"%valType
     return validation