Example #1
0
    def initialize(self,config_name):
        """
        Initialize the selection (before looping the events)

        @param config_name   Name of the configuration to use (e.g., 'miniSL')
        """
        self.cfg_name = config_name

        logging.getLogger('share/{0}.log'.format(self.cfg_name))
        self.loggingLEVEL = logging.getLogger().getEffectiveLevel() # DEBUG, INFO, ERROR, etc.
        logging.info("")
        logging.critical(" -- In file 'SelectionBase.py'\n")
        logging.info("  ------------  ")

        parser_cutsfile_name = self.parser.get(self.cfg_name,'cutsfile') # default
        if not self.cutsfile:
            self.cutsfile = parser_cutsfile_name
        self.cuts = config.processCuts(self.cutsfile)

        ## We only need to load the cuts files once 
        ## (the cuts don't change from event-to-event!)
        self.object_level_cuts    = ObjectCuts(self.parser,self.cuts)
        self.event_level_cuts     = EventCuts(self.parser,self.cuts)
        self.build_custom_objects = (self.parser.get(self.cfg_name,'new_objects'))
        self.btag_WP              = info.btagging_WP(self.parser.get(self.cfg_name,'btag_wkpt'))

        return
Example #2
0
    def __init__(self,parser,cuts):
        """
        Initialize the class by loading the config file.
        
        @param objects
        @param cuts
        """
        self.ops     = config.logicOperators()
        self.cuts    = cuts
        self.parser  = parser
        #cut_result   = self.applyCuts()

        self.section             = 'object_level'
        self.btag_WP             = info.btagging_WP(self.parser.get('miniSL','btag_wkpt'))
        self.user_specified_cuts = [k for k in cuts[self.section].keys()]

        self.lepton_keys = []
        self.met_keys    = []
        self.nu_keys     = []
        self.jet_keys    = []
        self.bjet_keys   = []
        self.fatjet_keys = []
        self.rcjet_keys  = []
        self.leptonicW_keys = []
        self.leptonicT_keys = []
        self.hadronicT_keys = []

        for k in self.user_specified_cuts:
            if "lepton" in k:
                self.lepton_keys.append(k)
            elif "met" in k:
                self.met_keys.append(k)
            elif "nu" in k:
                self.nu_keys.append(k)
            elif k.startswith("jet"):
                self.jet_keys.append(k)
            elif k.startswith("bjet"):
                self.bjet_keys.append(k)
            elif "fatjets" in k:
                self.fatjet_keys.append(k)
            elif "rcjet" in k:
                self.rcjet_keys.append(k)
            elif "leptonicW" in k:
                self.leptonicW_keys.append(k)
            elif "leptonicT" in k:
                self.leptonicT_keys.append(k)
            elif "hadronicT" in k:
                self.hadronicT_keys.append(k)

        return