Exemple #1
0
 def addJetPruner(self, output, rcut, zcut, input, modifiersin ="groomed",
                  isTrigger =False, useTriggerStore =False, doArea =True):
   from JetRec.JetRecConf import JetPruner
   from JetRec.JetRecConf import JetRecTool
   groomer = JetPruner(output + "Groomer")
   groomer.RCut = rcut
   groomer.ZCut = zcut
   if doArea:
     groomer.JetBuilder = self.jetBuilderWithArea
   else:
     groomer.JetBuilder = self.jetBuilderWithoutArea
   self += groomer
   jetrec = JetRecTool(output)
   jetrec.JetGroomer = groomer
   jetrec.InputContainer = input
   jetrec.OutputContainer = output
   jetrec.JetModifiers = self.getModifiers(modifiersin)
   jetrec.Trigger = isTrigger or useTriggerStore
   jetrec.Timer = jetFlags.timeJetRecTool()
   self += jetrec
   if isTrigger:
     self.trigjetrecs += [jetrec]
   else:
     self.jetrecs += [jetrec]
   self.jetcons += [output]
   return jetrec
Exemple #2
0
 def addJetReclusterer(self, output, alg, radius, input, modifiersin =None,
                       consumers =None, ivtx =None,
                       ghostArea =0.0, ptmin =0.0, ptminFilter =0.0, rndseed =1,
                       isTrigger =False, useTriggerStore =False,
                       variableRMinRadius =-1.0, variableRMassScale =-1.0,
                       calibOpt ="", jetPseudojetCopier =""):
   self.msg(2, "Adding reclusterer")
   from JetRec.JetRecConf import JetRecTool
   from JetRec.JetRecConf import JetReclusterer
   # Retrieve/build the jet finder.
   lofinder,hifinder = self.addJetFinderTool(output+"Finder", alg, radius, ivtx, ghostArea, ptmin, rndseed, 
                                             variableRMinRadius, variableRMassScale)
   reclname = output + "Reclusterer"
   groomer = JetReclusterer(
     reclname,
     JetConstituentsRetriever = self.tools["jconretriever"],
     JetFinder = hifinder
   )
   self += groomer
   jetrec = JetRecTool(output)
   jetrec.InputContainer = input
   jetrec.OutputContainer = output
   jetrec.JetGroomer = groomer
   jetrec.JetModifiers = self.getModifiers(modifiersin)
   if consumers != None:
     jetrec.JetConsumers = consumers
   jetrec.Trigger = isTrigger or useTriggerStore
   jetrec.Timer = jetFlags.timeJetRecTool()
   self += jetrec
   if isTrigger:
     self.trigjetrecs += [jetrec]
   else:
     self.jetrecs += [jetrec]
   self.jetcons += [output]
   return jetrec
Exemple #3
0
 def addJetSplitter(self, output, mumax, ymin, input, modifiersin ="groomed",
                    isTrigger =False, useTriggerStore =False, doArea =True):
   from JetRec.JetRecConf import JetSplitter
   from JetRec.JetRecConf import JetRecTool
   groomer = JetSplitter(output + "Groomer")
   groomer.MuMax = mumax
   groomer.YMin = ymin
   groomer.BDRS = False
   groomer.NSubjetMax = 3
   if doArea:
     groomer.JetBuilder = self.jetBuilderWithArea
   else:
     groomer.JetBuilder = self.jetBuilderWithoutArea
   self += groomer
   jetrec = JetRecTool(output)
   jetrec.JetGroomer = groomer
   jetrec.InputContainer = input
   jetrec.OutputContainer = output
   jetrec.JetModifiers = self.getModifiers(modifiersin)
   jetrec.Trigger = isTrigger or useTriggerStore
   jetrec.Timer = jetFlags.timeJetRecTool()
   self += jetrec
   if isTrigger:
     self.trigjetrecs += [jetrec]
   else:
     self.jetrecs += [jetrec]
   self.jetcons += [output]
   return jetrec
Exemple #4
0
 def addJetTrimmer(self, output, rclus, ptfrac, input, modifiersin ="groomed",
                   pseudojetRetriever ="jpjretriever",
                   isTrigger =False, useTriggerStore =False, doArea =True):
   from JetRec.JetRecConf import JetTrimmer
   from JetRec.JetRecConf import JetRecTool
   groomer = JetTrimmer(output + "Groomer")
   groomer.RClus = rclus
   groomer.PtFrac = ptfrac
   if doArea:
     groomer.JetBuilder = self.jetBuilderWithArea
   else:
     groomer.JetBuilder = self.jetBuilderWithoutArea
   self += groomer
   jetrec = JetRecTool(output)
   jetrec.JetGroomer = groomer
   jetrec.InputContainer = input
   jetrec.OutputContainer = output
   jetrec.JetModifiers = self.getModifiers(modifiersin)
   jetrec.Trigger = isTrigger or useTriggerStore
   jetrec.Timer = jetFlags.timeJetRecTool()
   if pseudojetRetriever in self.tools:
     jetrec.JetPseudojetRetriever = self.tools[pseudojetRetriever]
   else:
     print "Requested jet pseudojet retriever is not a registered tool: " \
           + pseudojetRetriever
     raise KeyError
   self += jetrec
   if isTrigger:
     self.trigjetrecs += [jetrec]
   else:
     self.jetrecs += [jetrec]
   self.jetcons += [output]
   return jetrec
Exemple #5
0
 def addJetPruner(self,
                  output,
                  rcut,
                  zcut,
                  input,
                  modifiersin="groomed",
                  isTrigger=False,
                  useTriggerStore=False,
                  doArea=True):
     from JetRec.JetRecConf import JetPruner
     from JetRec.JetRecConf import JetRecTool
     groomer = JetPruner(output + "Groomer")
     groomer.RCut = rcut
     groomer.ZCut = zcut
     if doArea:
         groomer.JetBuilder = self.jetBuilderWithArea
     else:
         groomer.JetBuilder = self.jetBuilderWithoutArea
     self += groomer
     jetrec = JetRecTool(output)
     jetrec.JetGroomer = groomer
     jetrec.InputContainer = input
     jetrec.OutputContainer = output
     jetrec.JetModifiers = self.getModifiers(modifiersin)
     jetrec.Trigger = isTrigger or useTriggerStore
     jetrec.Timer = jetFlags.timeJetRecTool()
     self += jetrec
     if isTrigger:
         self.trigjetrecs += [jetrec]
     else:
         self.jetrecs += [jetrec]
     self.jetcons += [output]
     return jetrec
Exemple #6
0
 def addJetSplitter(self,
                    output,
                    mumax,
                    ymin,
                    input,
                    modifiersin="groomed",
                    isTrigger=False,
                    useTriggerStore=False,
                    doArea=True):
     from JetRec.JetRecConf import JetSplitter
     from JetRec.JetRecConf import JetRecTool
     groomer = JetSplitter(output + "Groomer")
     groomer.MuMax = mumax
     groomer.YMin = ymin
     groomer.BDRS = False
     groomer.NSubjetMax = 3
     if doArea:
         groomer.JetBuilder = self.jetBuilderWithArea
     else:
         groomer.JetBuilder = self.jetBuilderWithoutArea
     self += groomer
     jetrec = JetRecTool(output)
     jetrec.JetGroomer = groomer
     jetrec.InputContainer = input
     jetrec.OutputContainer = output
     jetrec.JetModifiers = self.getModifiers(modifiersin)
     jetrec.Trigger = isTrigger or useTriggerStore
     jetrec.Timer = jetFlags.timeJetRecTool()
     self += jetrec
     if isTrigger:
         self.trigjetrecs += [jetrec]
     else:
         self.jetrecs += [jetrec]
     self.jetcons += [output]
     return jetrec
Exemple #7
0
 def addJetReclusterer(self,
                       output,
                       alg,
                       radius,
                       input,
                       modifiersin=None,
                       consumers=None,
                       ivtx=None,
                       ghostArea=0.0,
                       ptmin=0.0,
                       ptminFilter=0.0,
                       rndseed=1,
                       isTrigger=False,
                       useTriggerStore=False,
                       variableRMinRadius=-1.0,
                       variableRMassScale=-1.0,
                       calibOpt="",
                       jetPseudojetCopier="",
                       constmods=[]):
     self.msg(2, "Adding reclusterer")
     from JetRec.JetRecConf import JetRecTool
     from JetRec.JetRecConf import JetReclusterer
     # Retrieve/build the jet finder.
     lofinder, hifinder = self.addJetFinderTool(output + "Finder",
                                                alg,
                                                radius,
                                                ivtx,
                                                ghostArea,
                                                ptmin,
                                                rndseed,
                                                variableRMinRadius,
                                                variableRMassScale,
                                                constmods=constmods)
     reclname = output + "Reclusterer"
     groomer = JetReclusterer(
         reclname,
         JetConstituentsRetriever=self.tools["jconretriever"],
         JetFinder=hifinder)
     self += groomer
     jetrec = JetRecTool(output)
     jetrec.InputContainer = input
     jetrec.OutputContainer = output
     jetrec.JetGroomer = groomer
     jetrec.JetModifiers = self.getModifiers(modifiersin)
     self.autoconfigureModifiers(jetrec.JetModifiers, output)
     if consumers != None:
         jetrec.JetConsumers = consumers
     jetrec.Trigger = isTrigger or useTriggerStore
     jetrec.Timer = jetFlags.timeJetRecTool()
     self += jetrec
     if isTrigger:
         self.trigjetrecs += [jetrec]
     else:
         self.jetrecs += [jetrec]
     self.jetcons += [output]
     return jetrec
Exemple #8
0
  def addJetFinder(self, output, alg, radius, gettersin, modifiersin =None,
                   consumers =None, ivtxin =None,
                   ghostArea =0.0, ptmin =0.0, ptminFilter =0.0, rndseed =1,
                   isTrigger =False, useTriggerStore =False,
                   variableRMinRadius =-1.0, variableRMassScale =-1.0,
                   calibOpt ="", jetPseudojetCopier ="",
                   warnIfDuplicate=True,
                   overwrite=False):
    self.msg(2, "Adding finder")
    from JetRec.JetRecConf import JetRecTool
    if type(gettersin) == str:
      getters = self.gettersMap[gettersin]
    else:
      getters = gettersin
    # If jet finding by vertex is not specified, check for special input type names
    ivtx = ivtxin
    if ivtx == None:
      if gettersin == "ztrack": ivtx = -1        # Find tracs separatesly for each vertex
      elif gettersin == "pv0track": ivtx = 0     # Find tracks only for 1st vertex
    # Retrieve/build the jet finder.
    lofinder,hifinder = self.addJetFinderTool(output+"Finder", alg, radius, ivtx, ghostArea, ptmin, rndseed, 
                                            variableRMinRadius, variableRMassScale)
    jetrec = JetRecTool(output)
    jetrec.PseudoJetGetters = getters
    jetrec.JetFinder = hifinder
    jetrec.OutputContainer = output
    ptminSave = self.ptminFilter
    if ptminFilter > 0.0: self.ptminFilter = ptminFilter
    jetrec.JetModifiers = self.buildModifiers(modifiersin, lofinder, getters, gettersin, output, calibOpt)
    if consumers != None:
      jetrec.JetConsumers = consumers
    self.ptminFilter = ptminSave
    jetrec.Trigger = isTrigger or useTriggerStore
    jetrec.Timer = jetFlags.timeJetRecTool()
    jetrec.WarnIfDuplicate = warnIfDuplicate
    jetrec.Overwrite = overwrite

    self += jetrec
    if isTrigger:
      self.trigjetrecs += [jetrec]
    else:
      self.jetrecs += [jetrec]
    self.jetcons += [output]
    return jetrec
Exemple #9
0
    def addJetCopier(self,
                     output,
                     input,
                     modifiersin,
                     ptminFilter=0.0,
                     radius=0.0,
                     alg="",
                     inp="",
                     isTrigger=False,
                     useTriggerStore=False,
                     calibOpt="",
                     shallow=True,
                     constmods=[]):
        from JetRec.JetRecConf import JetRecTool
        jetrec = JetRecTool(output)
        jetrec.InputContainer = input
        jetrec.OutputContainer = output
        ptminSave = self.ptminFilter
        if ptminFilter > 0.0: self.ptminFilter = ptminFilter

        class finder:
            JetRadius = radius
            JetAlgorithm = alg

        class get:
            Label = inp

        getters = [get]
        jetrec.JetModifiers = self.buildModifiers(modifiersin,
                                                  finder,
                                                  getters,
                                                  None,
                                                  output,
                                                  calibOpt,
                                                  constmods=constmods)
        self.autoconfigureModifiers(jetrec.JetModifiers, output)
        self.ptminFilter = ptminSave
        jetrec.Trigger = isTrigger or useTriggerStore
        jetrec.Timer = jetFlags.timeJetRecTool()
        ###    jetrec.ShallowCopy = shallow
        self += jetrec
        self.jetrecs += [jetrec]
        self.jetcons += [output]
        return jetrec
Exemple #10
0
 def addJetTrimmer(self,
                   output,
                   rclus,
                   ptfrac,
                   input,
                   modifiersin="groomed",
                   pseudojetRetriever="jpjretriever",
                   isTrigger=False,
                   useTriggerStore=False,
                   doArea=True):
     from JetRec.JetRecConf import JetTrimmer
     from JetRec.JetRecConf import JetRecTool
     groomer = JetTrimmer(output + "Groomer")
     groomer.RClus = rclus
     groomer.PtFrac = ptfrac
     if doArea:
         groomer.JetBuilder = self.jetBuilderWithArea
     else:
         groomer.JetBuilder = self.jetBuilderWithoutArea
     self += groomer
     jetrec = JetRecTool(output)
     jetrec.JetGroomer = groomer
     jetrec.InputContainer = input
     jetrec.OutputContainer = output
     jetrec.JetModifiers = self.getModifiers(modifiersin)
     self.autoconfigureModifiers(jetrec.JetModifiers, output)
     jetrec.Trigger = isTrigger or useTriggerStore
     jetrec.Timer = jetFlags.timeJetRecTool()
     if pseudojetRetriever in self.tools:
         jetrec.JetPseudojetRetriever = self.tools[pseudojetRetriever]
     else:
         jetlog.info( "Requested jet pseudojet retriever is not a registered tool: " \
               + pseudojetRetriever )
         raise KeyError
     self += jetrec
     if isTrigger:
         self.trigjetrecs += [jetrec]
     else:
         self.jetrecs += [jetrec]
     self.jetcons += [output]
     return jetrec
Exemple #11
0
    def addJetRecursiveSoftDrop(self,
                                output,
                                beta,
                                zcut,
                                N,
                                r0,
                                input,
                                modifiersin="groomed",
                                isTrigger=False,
                                useTriggerStore=False,
                                doArea=True):
        from JetRec.JetRecConf import JetRecursiveSoftDrop
        from JetRec.JetRecConf import JetRecTool

        groomer = JetRecursiveSoftDrop(output + "Groomer")
        groomer.ZCut = zcut
        groomer.Beta = beta
        groomer.N = N
        groomer.R0 = r0
        if doArea:
            groomer.JetBuilder = self.jetBuilderWithArea
        else:
            groomer.JetBuilder = self.jetBuilderWithoutArea
        self += groomer
        jetrec = JetRecTool(output)
        jetrec.JetGroomer = groomer
        jetrec.InputContainer = input
        jetrec.OutputContainer = output
        jetrec.JetModifiers = self.getModifiers(modifiersin)
        self.autoconfigureModifiers(jetrec.JetModifiers, output)
        jetrec.Trigger = isTrigger or useTriggerStore
        jetrec.Timer = jetFlags.timeJetRecTool()
        self += jetrec
        if isTrigger:
            self.trigjetrecs += [jetrec]
        else:
            self.jetrecs += [jetrec]
        self.jetcons += [output]
        return jetrec
Exemple #12
0
 def addJetCopier(self, output, input, modifiersin, ptminFilter =0.0, radius =0.0, alg ="", inp ="",
                  isTrigger=False, useTriggerStore=False, calibOpt ="", shallow =True):
   from JetRec.JetRecConf import JetRecTool
   jetrec = JetRecTool(output)
   jetrec.InputContainer = input
   jetrec.OutputContainer = output
   ptminSave = self.ptminFilter
   if ptminFilter > 0.0: self.ptminFilter = ptminFilter
   class finder:
     JetRadius = radius
     JetAlgorithm = alg
   class get:
     Label = inp
   getters = [get]
   jetrec.JetModifiers = self.buildModifiers(modifiersin, finder, getters, None, output, calibOpt)
   self.ptminFilter = ptminSave
   jetrec.Trigger = isTrigger or useTriggerStore
   jetrec.Timer = jetFlags.timeJetRecTool()
   jetrec.ShallowCopy = shallow
   self += jetrec
   self.jetrecs += [jetrec]
   self.jetcons += [output]
   return jetrec
Exemple #13
0
    def addJetFinder(self,
                     output,
                     alg,
                     radius,
                     gettersin,
                     modifiersin=None,
                     consumers=None,
                     ivtxin=None,
                     ghostArea=0.0,
                     ptmin=0.0,
                     ptminFilter=0.0,
                     rndseed=1,
                     isTrigger=False,
                     useTriggerStore=False,
                     variableRMinRadius=-1.0,
                     variableRMassScale=-1.0,
                     calibOpt="",
                     jetPseudojetCopier="",
                     warnIfDuplicate=True,
                     overwrite=False):
        self.msg(2, "Adding finder")
        from JetRec.JetRecConf import JetRecTool
        if type(gettersin) == str:
            getters = self.gettersMap[gettersin]
        else:
            getters = gettersin
        # If jet finding by vertex is not specified, check for special input type names
        ivtx = ivtxin
        if ivtx == None:
            if gettersin == "ztrack":
                ivtx = -1  # Find tracs separatesly for each vertex
            elif gettersin == "pv0track":
                ivtx = 0  # Find tracks only for 1st vertex
        # Retrieve/build the jet finder.
        lofinder, hifinder = self.addJetFinderTool(output + "Finder", alg,
                                                   radius, ivtx, ghostArea,
                                                   ptmin, rndseed,
                                                   variableRMinRadius,
                                                   variableRMassScale)
        jetrec = JetRecTool(output)
        jetrec.PseudoJetGetters = getters
        jetrec.JetFinder = hifinder
        jetrec.OutputContainer = output
        ptminSave = self.ptminFilter
        if ptminFilter > 0.0: self.ptminFilter = ptminFilter
        jetrec.JetModifiers = self.buildModifiers(modifiersin, lofinder,
                                                  getters, gettersin, output,
                                                  calibOpt)
        if consumers != None:
            jetrec.JetConsumers = consumers
        self.ptminFilter = ptminSave
        jetrec.Trigger = isTrigger or useTriggerStore
        jetrec.Timer = jetFlags.timeJetRecTool()
        jetrec.WarnIfDuplicate = warnIfDuplicate
        jetrec.Overwrite = overwrite

        self += jetrec
        if isTrigger:
            self.trigjetrecs += [jetrec]
        else:
            self.jetrecs += [jetrec]
        self.jetcons += [output]
        return jetrec
Exemple #14
0
    def addJetFinder(self,
                     output,
                     alg,
                     radius,
                     gettersin,
                     modifiersin=None,
                     consumers=None,
                     ivtxin=None,
                     ghostArea=0.0,
                     ptmin=0.0,
                     ptminFilter=0.0,
                     rndseed=1,
                     isTrigger=False,
                     useTriggerStore=False,
                     variableRMinRadius=-1.0,
                     variableRMassScale=-1.0,
                     calibOpt="",
                     jetPseudojetCopier="",
                     constmods=[]):
        self.msg(2, "Adding finder")
        from JetRec.JetRecConf import JetRecTool
        if type(gettersin) == str:
            getters = self.gettersMap[gettersin]
        else:
            getters = gettersin

        # Accumulate all PseudoJetGetters such that we can schedule all
        # needed PseudoJetAlgorithms before jet building
        self.allGetters += [
            getter for getter in getters if not getter in self.allGetters
        ]
        # If jet finding by vertex is not specified, check for special input type names
        ivtx = ivtxin
        if ivtx == None:
            if gettersin == "ztrack":
                ivtx = -1  # Find tracs separatesly for each vertex
            elif gettersin == "pv0track":
                ivtx = 0  # Find tracks only for 1st vertex
        # Retrieve/build the jet finder.
        lofinder, hifinder = self.addJetFinderTool(output + "Finder",
                                                   alg,
                                                   radius,
                                                   ivtx,
                                                   ghostArea,
                                                   ptmin,
                                                   rndseed,
                                                   variableRMinRadius,
                                                   variableRMassScale,
                                                   constmods=constmods)
        jetrec = JetRecTool(output)
        jetrec.InputPseudoJets = [getter.OutputContainer for getter in getters]
        jetrec.JetFinder = hifinder
        jetrec.OutputContainer = output
        ptminSave = self.ptminFilter
        if ptminFilter > 0.0: self.ptminFilter = ptminFilter
        jetrec.JetModifiers = self.buildModifiers(modifiersin,
                                                  lofinder,
                                                  getters,
                                                  gettersin,
                                                  output,
                                                  calibOpt,
                                                  constmods=constmods)
        self.autoconfigureModifiers(jetrec.JetModifiers, output)
        if consumers != None:
            jetrec.JetConsumers = consumers
        self.ptminFilter = ptminSave
        jetrec.Trigger = isTrigger or useTriggerStore
        jetrec.Timer = jetFlags.timeJetRecTool()
        #jetrec.WarnIfDuplicate = warnIfDuplicate
        #jetrec.Overwrite = overwrite
        # JetRecTool.OutputLevel = VERBOSE
        self += jetrec
        if isTrigger:
            self.trigjetrecs += [jetrec]
        else:
            self.jetrecs += [jetrec]
        self.jetcons += [output]
        return jetrec