Beispiel #1
0
 def __init__(self, name, xplus="mu", xminus="mu", version="signal"):
     from HltTracking.HltPVs import PV3D
     # Dictionary of the inputs
     inputlist = {
         "mu": Hlt2Muons,
         "pi": Hlt2Pions,
         "K": Hlt2Kaons,
         "p": Hlt2Protons,
         "e": Hlt2Electrons,
     }
     # Current input
     inputs = [inputlist[xminus]] if (
         xminus == xplus) else [inputlist[xminus], inputlist[xplus]]
     # dictionary of the daughter cuts
     d0comb_childcut_list =\
                          ( { xplus+'+'  : self.d0comb_childcut } if ( xplus == xminus ) else \
                            { xplus+'+'  : self.d0comb_childcut,
                              xminus+'+' : self.d0comb_childcut}
                            )
     # Decay descriptor
     decay = "D0 -> " + xplus + "+ " + xminus + "-" if (
         xplus == xminus) else "[D0 -> " + xplus + "+ " + xminus + "- ]cc"
     # Combiner
     Hlt2Combiner.__init__(
         self,
         name,
         decay,
         inputs,
         dependencies=[PV3D('Hlt2')],
         #tistos = 'TisTosSpec',
         DaughtersCuts=d0comb_childcut_list,
         CombinationCut=self.d0comb_combcut_sig
         if version == "signal" else self.d0comb_combcut,
         MotherCut=self.d0comb_d0cut,
         Preambulo=[])
Beispiel #2
0
    def __init__(self, name, inputs):

        daughters_cuts = {
            "mu-":
            ("(TRCHI2DOF < %(MuonTRCHI2)s ) &  (P> %(MuonP)s *MeV) &  (PT> %(MuonPT)s* MeV)"
             + "& (TRGHOSTPROB < %(MuonGHOSTPROB)s)" +
             "& (PIDmu-PIDpi> %(MuonPIDmu)s )" +
             "& (PIDmu-PIDp> %(MuonPIDp)s )" +
             "& (PIDmu-PIDK> %(MuonPIDK)s )" +
             "& (MIPCHI2DV(PRIMARY)> %(MuonMINIPCHI2)s )"),
            "pi+": ("(P > %(Lambda0DaugP)s)& (PT > %(Lambda0DaugPT)s)" +
                    "& (TRCHI2DOF < %(Lambda0DaugTrackChi2)s)" +
                    "& (MIPCHI2DV(PRIMARY) > %(Lambda0DaugMIPChi2)s)")
        }

        combination_cuts = "(ADOCACHI2CUT(25, ''))"

        mother_cuts = "( M > %(MajoranaCutM)s*MeV )&( BPVVDCHI2 > %(MajoranaCutFDChi2)s )&( VFASPF(VCHI2/VDOF) < %(Lambda0VertexChi2)s )&( PT > %(Lambda0PT)s*MeV )"

        decay = "[Lambda0 -> mu- pi+]cc"
        Hlt2Combiner.__init__(self,
                              name,
                              decay,
                              inputs,
                              nickname='LambdaMuPi',
                              dependencies=[PV3D('Hlt2')],
                              DaughtersCuts=daughters_cuts,
                              CombinationCut=combination_cuts,
                              MotherCut=mother_cuts,
                              Preambulo=[])
Beispiel #3
0
 def __init__(self, inputs):
     from Hlt1Lines.Hlt1MVALines import Hlt1MVALinesConf
     props = Hlt1MVALinesConf().getProps()
     pids = ['K+', 'K-', 'KS0', 'Lambda0', 'Lambda~0']
     basic = "(ABSID=='K+')"
     combos = list(combinations_with_replacement(pids, 2))
     decays = ['K*(892)0 -> ' + ' '.join(combo) for combo in combos]
     cc = ("(APT > %(CMB_PRT_PT_MIN)s) "
           "& (ANUM((ID=='KS0')|(ABSID=='Lambda0')) < 2) "
           "& (ACUTDOCACHI2(%(CMB_VRT_CHI2_MAX)s, '')) "
           "& ((AALLSAMEBPV | (AMINCHILD(MIPCHI2DV(PRIMARY)) > 16)) "
           "| (ANUM((ID == 'KS0') | (ABSID == 'Lambda0')) > 0)) "
           "& (AM < %(CMB_VRT_MCOR_MAX)s) "
           "& (ANUM(" + basic + " & (MIPCHI2DV(PRIMARY) < 16)) <"
           " %(CMB_TRK_NLT16_MAX)s) ")
     mc = ("(HASVERTEX)"
           "& (VFASPF(VCHI2) < %(CMB_VRT_CHI2_MAX)s) "
           "& (BPVVDCHI2 > %(CMB_VRT_VDCHI2_MIN)s) "
           "& (in_range(%(CMB_VRT_ETA_MIN)s, BPVETA,"
           " %(CMB_VRT_ETA_MAX)s)) ")
     from Hlt2Lines.Utilities.Hlt2MergedStage import Hlt2MergedStage
     merged = [Hlt2MergedStage('Topo2BodyTos', inputs, shared=True)]
     from HltTracking.HltPVs import PV3D
     Hlt2Combiner.__init__(self,
                           'Topo2BodyTos',
                           decays,
                           merged,
                           shared=True,
                           tistos='ALLTOS',
                           dependencies=[PV3D('Hlt2')],
                           CombinationCut=cc,
                           MotherCut=mc)
Beispiel #4
0
    def __init__(self, name):

        daughters_cuts = { "pi+" : "(TRCHI2DOF< %(TrChi2)s) & (TRGHOSTPROB< %(TrGP)s) & "+\
                                   "(MIPCHI2DV(PRIMARY)>%(piMinIpChi2)s)",
                           }

        combination_cuts = "(ADAMASS('K+') < %(KMassWin)s ) & " + \
                           "(AMAXDOCA('')      < %(KMaxDOCA)s )"


        mother_cuts = "(VFASPF(VCHI2/VDOF)< %(KVtxChi2)s) & " + \
                      "(PT                > %(KMinPt)s ) & " + \
                      "(ADMASS('K+')  < %(KMassWin)s ) & "\
                      "(BPVDIRA           > %(KMinDIRA)s) & "\
                      "(BPVIPCHI2()       < %(KMaxIpChi2)s) & "\
                      "(BPVLTIME()        > %(KMinTauPs)s )"

        inputs = [Hlt2Pions]
        decay = "[K+ -> pi+ pi+ pi-]cc"
        Hlt2Combiner.__init__(self,
                              name,
                              decay,
                              inputs,
                              dependencies=[PV3D('Hlt2')],
                              DaughtersCuts=daughters_cuts,
                              CombinationCut=combination_cuts,
                              MotherCut=mother_cuts,
                              Preambulo=[])
Beispiel #5
0
 def __init__(self, inputs):
     pids = ['K+', 'K-']
     combos = list(combinations_with_replacement(pids, 1))
     basic = "((ABSID=='K+')|(ID=='KS0')|(ABSID=='Lambda0'))"
     decays = ['B0 -> D*(2010)+ ' + ' '.join(combo) for combo in combos]
     cc = ("(AM < %(CMB_VRT_MCOR_MAX)s) "
           "& (ACUTDOCACHI2(%(CMB_VRT_CHI2_MAX)s, '')) "
           "& (AALLSAMEBPV | (AMINCHILD(MIPCHI2DV(PRIMARY)) > 16)) "
           "& (APT > %(CMB_PRT_PT_MIN)s) ")
     mc = ("(HASVERTEX) "
           "& (VFASPF(VCHI2) < %(CMB_VRT_CHI2_MAX)s) "
           "& (BPVVDCHI2 > %(CMB_VRT_VDCHI2_MIN)s) "
           "& (in_range(%(CMB_VRT_ETA_MIN)s, BPVETA,"
           " %(CMB_VRT_ETA_MAX)s)) "
           "& (BPVDIRA > %(CMB_VRT_DIRA_MIN)s)")
     from Hlt2Lines.Utilities.Hlt2MergedStage import Hlt2MergedStage
     merged = [Hlt2MergedStage('Topo4Body', inputs, shared=True)]
     from HltTracking.HltPVs import PV3D
     Hlt2Combiner.__init__(self,
                           'Topo4Body',
                           decays,
                           merged,
                           shared=True,
                           dependencies=[PV3D('Hlt2')],
                           CombinationCut=cc,
                           MotherCut=mc)
Beispiel #6
0
 def __init__(self, inputs, tag=None):
     cc = ("(AMINCHILD(PT) > %(JET_PT)s)"
           " & (abs(ACHILD(PHI,1) - ACHILD(PHI,2)) > %(DPHI)s)")
     if tag == 'SV':
         cc += (" & ((ACHILD(INFO(9600, -1), 1) != -1)"
                " | (ACHILD(INFO(9600, -1), 2) != -1))")
     elif tag == 'SVSV':
         cc += (" & (ACHILD(INFO(9600, -1), 1) != -1)"
                " & (ACHILD(INFO(9600, -1), 2) != -1)")
     elif tag == 'MuMu':
         cc += (" & (ACHILD(INFO(9601, -1), 1) != -1)"
                " & (ACHILD(INFO(9601, -1), 2) != -1)")
     elif tag == "SVMu":
         cc += (" & (((ACHILD(INFO(9600, -1), 1) != -1)"
                " & (ACHILD(INFO(9601, -1), 2) != -1))"
                " | ((ACHILD(INFO(9601, -1), 1) != -1)"
                " & (ACHILD(INFO(9600, -1), 2) != -1)))")
     Hlt2Combiner.__init__(self,
                           'DiJet' + tag, ["CLUSjet -> CELLjet CELLjet"],
                           inputs,
                           dependencies=[PV3D('Hlt2')],
                           CombinationCut=cc,
                           MotherCut='(ALL)',
                           Preambulo=[],
                           shared=True,
                           ParticleCombiners={'': 'ParticleAdder'})
Beispiel #7
0
    def __init__(self, name, inputs, nickname = None, decay = "[B+ -> J/psi(1S) K+]cc", corrm = False):
        cc = ("(in_range(%(LLhCombAMLow)s, AM, %(LLhCombAMHigh)s)) & "
            + "(APT1+APT2 > %(LLhSumPTMin)s)")
        if corrm:
          mc_mass = " & (in_range(%(LLhCombBPVCORRMLow)s, BPVCORRM, %(LLhCombBPVCORRMHigh)s))"
        else:
          mc_mass = " & (in_range(%(LLhCombMLow)s, M, %(LLhCombMHigh)s))"
        mc = ("(VFASPF(VCHI2)<%(LLhVChi2)s) & (BPVVDCHI2 > %(LLhVDChi2)s)"
              + " & (BPVIPCHI2()<%(LLhMaxIPChi2)s)"
              + " & (BPVDIRA > %(LLhMinBPVDIRA)s)"
              + mc_mass)

        dc = { }
        for daug in ['p+', 'pi+', 'K+', 'mu+', 'e+']:
            dc[daug] = ("(PT > %(BachPt)s)" +
                        " & (P > %(BachP)s)" +
                        " & (MIPCHI2DV(PRIMARY) > %(BachIPChi2)s)")
        
        if nickname is None:
          nickname = name
        from HltTracking.HltPVs import PV3D
        Hlt2Combiner.__init__(self, 'PID' + name + 'BCombiner',
            decay,
            inputs,
            shared = True,
            nickname = nickname,
            dependencies = [ PV3D('Hlt2') ],
            tistos = 'CombTisTosSpec',
            DaughtersCuts = dc,
            CombinationCut = cc,
            MotherCut = mc,
            Preambulo = [ ])
Beispiel #8
0
    def __init__(self, name):
        from HltTracking.HltPVs import PV3D
        twoMuElDaughterCut = "(TRCHI2DOF< %(Trk_TRCHI2DOF_MAX_mueX)s )" \
                             "& (PT> %(Trk_PT_MIN_mueX)s)" \
                             "& (P> %(Trk_P_MIN_mueX)s)" \
                             "& (MIPCHI2DV(PRIMARY)> %(Trk_MIPCHI2DV_MIN_mueX)s )"

        twoMuElCombCut = "(AM<2100)" \
                         "& ((APT1+APT2)> %(Pair_SumAPT_MIN_mueX)s)" \
                         "& (AMINDOCA('LoKi::TrgDistanceCalculator') < %(Pair_AMINDOCA_MAX_mueX)s )" \
                         "& (AALLSAMEBPV)"

        twoMuElMotherCut = "(BPVVD> %(Pair_BPVVD_MIN_mueX)s )" \
                           "& (BPVCORRM < %(Pair_BPVCORRM_MAX_mueX)s)" \
                           "& (BPVVDCHI2> %(Pair_BPVVDCHI2_MIN_mueX)s )"
        #First stage - Combine 2 Body with pt > 500MeV

        inputs = [Hlt2Muons, Hlt2Electrons]
        Hlt2Combiner.__init__(self,
                              name, [
                                  "J/psi(1S) -> mu+ e-", "phi(1020) -> e+ mu-",
                                  "rho(770)0 -> mu+ e+", "eta -> mu- e-"
                              ],
                              inputs,
                              dependencies=[PV3D('Hlt2')],
                              DaughtersCuts={
                                  "mu+": twoMuElDaughterCut,
                                  "e-": twoMuElDaughterCut
                              },
                              CombinationCut=twoMuElCombCut,
                              MotherCut=twoMuElMotherCut,
                              Preambulo=[],
                              shared=True)
Beispiel #9
0
    def __init__(self, name):

        picut = ("( TRCHI2DOF < %(TrChi2)s )" + " & ( PT > %(PionPT)s)" +
                 " & ( PIDK < %(PidCutPions)s )")
        kcut = ("( TRCHI2DOF < %(TrChi2)s )" + " & ( PT > %(PionPT)s)" +
                " & ( PIDK > %(PidCutKaons)s )")
        pcut = ("( TRCHI2DOF < %(TrChi2)s )" + " & ( PT > %(PionPT)s)" +
                " & ( PIDp > %(PidCutProtons)s )")
        dc = {'pi+': picut, 'K+': kcut, 'p+': pcut}
        cc = ("( (APT1 + APT2) > %(SumPT)s )" + " & ( AM > %(BMassWinLow)s )" +
              " & ( AM < %(BMassWinHigh)s )" +
              " & ( ACUTDOCACHI2( %(DOCACHI2)s, '' ) )")
        mc = ("( PT > %(BPT)s )" + " & ( BPVDIRA > %(BDIRA)s )" +
              " & ( BPVIPCHI2() < %(BIPCHI2)s )" +
              " & ( BPVLTIME() > %(BLT)s )")

        from HltTracking.HltPVs import PV3D
        from Inputs import Hlt2RichPions, Hlt2RichKaons, Hlt2RichProtons
        inputs = [Hlt2RichPions]
        Hlt2Combiner.__init__(self,
                              'B2PiPi',
                              "B0 -> pi+ pi-",
                              inputs,
                              dependencies=[PV3D('Hlt2')],
                              tistos='TisTosSpec',
                              DaughtersCuts=dc,
                              CombinationCut=cc,
                              MotherCut=mc,
                              Preambulo=[])
Beispiel #10
0
    def __init__(self, name, decayDesc, inputSeq):
        from HltTracking.HltPVs import PV3D

        #      massmin = min(float("%(Sig_M_MIN_HHmumu)s"), float("%(WideMass_M_MIN_HHmumu)s"))
        #       massmax = max(float("%(Sig_M_MAX_HHmumu)s"), float("%(WideMass_M_MAX_HHmumu)s"))

        #        masscut = "in_range(%s,  M, %s)" % (massmin, massmax)
        masscut = "in_range( %(WideMass_M_MIN_HHmumu)s , M , %(WideMass_M_MAX_HHmumu)s )"
        combcuts = "(AM<2100)" \
                   "& (AMAXCHILD(PT) > %(TrkPtMAX_HHmumu)s) "  \
                   "& ((APT1+APT2+APT3+APT4) > %(DSumPt_HHmumu)s)" \
                   "& (AMINDOCA('LoKi::TrgDistanceCalculator') < %(PairMinDoca_HHmumu)s)" \
                   "& (AMAXDOCA('LoKi::TrgDistanceCalculator') < %(PairMaxDoca_HHmumu)s)" \
                   "& (AALLSAMEBPV)"
        mothercuts = masscut + \
                     "& (VFASPF(VCHI2PDOF) < %(VtxChi2_HHmumu)s) " \
                     "& (BPVCORRM < %(MCOR_MAX_HHmumu)s)" \
                     "& (BPVDIRA                 > %(DDira_HHmumu)s         ) " \
                     "& (BPVVDCHI2> %(VtxPVDispChi2_HHmumu)s )" \
                     "& ( SUMTREE( ( (ID=='K+') | (ID=='K-') | (ID=='pi+') | (ID=='pi-') | (ID=='mu+') | (ID=='mu-')  | (ID=='e+') | (ID=='e-') ), sqrt(BPVIPCHI2()) ) > %(TrkPVIPChi2MAX_HHmumu)s)"\
                     "& (BPVIPCHI2() < %(DIPChi2_HHmumu)s )"

        Hlt2Combiner.__init__(self,
                              name,
                              decayDesc,
                              inputSeq,
                              dependencies=[PV3D('Hlt2')],
                              CombinationCut=combcuts,
                              MotherCut=mothercuts,
                              Preambulo=[],
                              shared=True)
Beispiel #11
0
 def __init__(self, mode, nickname, stat):
     if nickname == 'MuonTT':
         overlap = (
             "(AOVERLAP(1,2, LHCb.LHCbID.TT) > %(OverlapTT)s) & (AOVERLAP(1,2, LHCb.LHCbID.Muon) > %(OverlapMuon)s)"
         )
     elif nickname == 'VeloMuon':
         overlap = (
             "(AOVERLAP(1,2, LHCb.LHCbID.Velo) > %(OverlapVelo)s) & (AOVERLAP(1,2, LHCb.LHCbID.Muon) > %(OverlapMuon)s)"
         )
     else:
         overlap = (
             "(AOVERLAP(1,2, LHCb.LHCbID.TT) > %(OverlapTT)s) & ((AOVERLAP(1,2, LHCb.LHCbID.IT) > %(OverlapIT)s) | (AOVERLAP(1,2, LHCb.LHCbID.OT) > %(OverlapOT)s))"
         )
     inputs = [
         TagFilter(mode, nickname),
         ProbeFilter(mode, nickname, stat),
         LongFilter(mode, nickname)
     ]
     decay = "J/psi(1S) -> pi+ mu+ mu-" if mode == 1 else "J/psi(1S) -> pi- mu- mu+"
     Hlt2Combiner.__init__(self,
                           'TrackEff' + nickname + str(mode) + stat +
                           'N3Body',
                           decay,
                           inputs,
                           combiner=N3Body,
                           dependencies=[PV3D('Hlt2')],
                           nickname=nickname,
                           tistos=[],
                           Combination12Cut=overlap,
                           ParticleCombiners={"": "MomentumCombiner"},
                           MotherCut="ALL",
                           Preambulo=[],
                           shared=True)
Beispiel #12
0
 def __init__(self, name, decay, inputs):
     dc = {'K+': "(PT > %(PTmin)s)", 'K-': "(PT > %(PTmin)s)"}
     mc = ("ALL")
     Hlt2Combiner.__init__(self,
                           name,
                           decay,
                           inputs,
                           DaughtersCuts=dc,
                           MotherCut=mc,
                           Preambulo=[])
Beispiel #13
0
 def __init__(self, name, decay, inputs):
     dc = {'e+': "(PT > %(e_PTmin)s)", 'e-': "(PT > %(e_PTmin)s)"}
     mc = "ALL"
     Hlt2Combiner.__init__(self,
                           name,
                           decay,
                           inputs,
                           dependencies=[TrackGEC(name)],
                           DaughtersCuts=dc,
                           MotherCut=mc,
                           Preambulo=[])
Beispiel #14
0
 def __init__(self, name, decay, inputs):
     dc = {'gamma': "(PT > %(gamma_PTmin)s)"}
     mc = ("( (M > %(digamma_AMmin)s) & (M < %(digamma_AMmax)s) )")
     Hlt2Combiner.__init__(self,
                           name,
                           decay,
                           inputs,
                           dependencies=[TrackGEC(name)],
                           DaughtersCuts=dc,
                           ParticleCombiners={'': 'ParticleAdder'},
                           MotherCut=mc)
Beispiel #15
0
  def __init__(self, name, inputs):

    cc = "APT > %(PT)s"
    mc =  ("(HASVERTEX)" 
           "& (VFASPF(VCHI2) < %(VChi2)s) ") 
    Hlt2Combiner.__init__(self, name, "B0 -> KS0 KS0", inputs,
                          dependencies = [PV3D('Hlt2')],
                          #DaughtersCuts  = dc,
                          CombinationCut = cc,
                          MotherCut      = mc,
                          Preambulo = [])
Beispiel #16
0
 def __init__(self, name,inputs):
     combCut   = ("(in_range( %(D0_MinAM)s,AM, %(D0_MaxAM)s ))"
                  + "& (AMAXDOCA('LoKi::TrgDistanceCalculator') < %(D0_MaxDOCA)s)")
     motherCut = ("(BPVVDZ > %(D0_MinVDZ)s) & ((acos(BPVDIRA)*180./3.142) < %(D0_MaxACosDIRADeg)s) "
                  + "& (VFASPF(VCHI2/VDOF)< %(D0_MaxVCHI2NDF)s)"
                  +"&(in_range( %(D0_MinSimpleFitM)s,D0_M, %(D0_MaxSimpleFitM)s ))")
     from HltTracking.HltPVs import PV3D
     from Preambulo import D0Preambulo
     Hlt2Combiner.__init__(self, name,["[D0 -> K- pi+]cc","[D0 -> K- pi-]cc"], inputs,
                           dependencies = [TrackGEC('TrackGEC'), PV3D('Hlt2')],
                           tistos = 'TisTosSpec',
                           CombinationCut = combCut, MotherCut = motherCut,
                           Preambulo = D0Preambulo())
Beispiel #17
0
 def __init__(self, name, decay, inputs):
     dc = {'mu+': "(PT > %(mu_PTmin)s)", 'mu-': "(PT > %(mu_PTmin)s)"}
     cc = ("(AM > %(AMmin)s)")
     mc = "ALL"
     Hlt2Combiner.__init__(self,
                           name,
                           decay,
                           inputs,
                           dependencies=[TrackGEC(name)],
                           DaughtersCuts=dc,
                           CombinationCut=cc,
                           MotherCut=mc,
                           Preambulo=[])
Beispiel #18
0
    def __init__(self, name):

        DauCuts  = ( "%(DauCuts)s" )
        ComCuts  = ( "%(ComCuts)s" )
        MomCuts  = ( "%(MomCuts)s" ) 
        
        from Inputs import Hlt2Protons
        inputs = [ Hlt2Protons ]
        Hlt2Combiner.__init__(self, name, "J/psi(1S) -> p+ p~-", inputs,                             
                              DaughtersCuts  = { 'p+' : DauCuts },
                              CombinationCut = ComCuts,
                              MotherCut      = MomCuts,
                              Preambulo = [])
Beispiel #19
0
 def __init__(self, inputs):
     cc = ("(abs(ACHILD(BPVPHI, 1) - ACHILD(PHI, 2)) > (%(DPHI)s - 1.0))"
           " & (ACHILD(ABSID, 1) == 313) & (ACHILD(ABSID, 2) == 13)")
     Hlt2Combiner.__init__(self,
                           'JetsSVMu',
                           ["D0 -> K*(892)0 mu+", "D0 -> K*(892)0 mu-"],
                           inputs,
                           dependencies=[PV3D('Hlt2')],
                           CombinationCut=cc,
                           MotherCut='(ALL)',
                           Preambulo=[],
                           shared=True,
                           ParticleCombiners={'': 'ParticleAdder'})
Beispiel #20
0
    def __init__(self, inputs):

        cc = "(abs(ACHILD(PHI,1)-ACHILD(PHI,2)) > (%(DPHI)s-1.0))"
        Hlt2Combiner.__init__(self,
                              'JetsMuMu',
                              ["[D0 -> mu+ mu+]cc", "D0 -> mu+ mu-"],
                              inputs,
                              dependencies=[PV3D('Hlt2')],
                              CombinationCut=cc,
                              MotherCut='(ALL)',
                              Preambulo=[],
                              shared=True,
                              ParticleCombiners={'': 'ParticleAdder'})
Beispiel #21
0
    def __init__(self, name):

        DauCuts  = ( "%(DauCuts)s" )
        ComCuts  = ( "%(ComCuts)s" )
        MomCuts  = ( "%(MomCuts)s" ) 
        
        from Inputs import Hlt2UnbiasedPhi
        inputs = [ Hlt2UnbiasedPhi ]
        Hlt2Combiner.__init__(self, name, "J/psi(1S) -> phi(1020) phi(1020)", inputs,                             
                              DaughtersCuts  = { 'phi(1020)' : DauCuts },
                              CombinationCut = ComCuts,
                              MotherCut      = MomCuts,
                              Preambulo = [])
Beispiel #22
0
    def __init__(self, name, inputs):
        decay = "rho(770)0 -> pi+ pi-"
        cc = "(AMINCHILD(PT,ISBASIC)>%(PI_PT_MIN)s)"
        mc = "(M>%(RHO_M_MIN)s) & (M<%(RHO_M_MAX)s) & (PT>%(RHO_PT_MIN)s)"

        from HltTracking.HltPVs import PV3D
        Hlt2Combiner.__init__(self,
                              name,
                              decay,
                              inputs,
                              shared=True,
                              dependencies=[PV3D('Hlt2')],
                              CombinationCut=cc,
                              MotherCut=mc)
Beispiel #23
0
    def __init__(self, inputs):

        cc = "(abs(ACHILD(BPVPHI,1)-ACHILD(BPVPHI,2)) > (%(DPHI)s-1.0))"

        Hlt2Combiner.__init__(self,
                              'JetsSVSV',
                              "D0  -> K*(892)0 K*(892)0",
                              inputs,
                              dependencies=[PV3D('Hlt2')],
                              CombinationCut=cc,
                              MotherCut='(ALL)',
                              Preambulo=[],
                              shared=True,
                              ParticleCombiners={'': 'ParticleAdder'})
Beispiel #24
0
 def __init__(self, name):
     inputs = [UnbiasedPhi2KK]
     mc = ("(ALL)")
     Hlt2Combiner.__init__(
         self,
         name,
         "B_s0 -> phi(1020) phi(1020)",
         inputs,
         dependencies=[PV3D('Hlt2')],
         tistos='TisTosSpec',
         #DaughtersCuts  = dc,
         #CombinationCut = cc,
         MotherCut=mc,
         Preambulo=[])
Beispiel #25
0
    def __init__(self, name, taginput, probeinput, mode, nickname, dependencies = [ ]):
        if nickname == "JPsiMuMu":
          decay = "J/psi(1S) -> mu+ mu-"
          extra_cut = " & (ISMUON)"
          lp = "mu+"
          lm = "mu-"
        elif nickname == "JPsiEE":
          decay = "J/psi(1S) -> e+ e-"
          extra_cut = " & (PIDe > %(TagPIDe)s)"
          lp = "e+"
          lm = "e-"
        elif nickname == "JPsiPP":
          decay = "J/psi(1S) -> p+ p~-"
          extra_cut = " & (PIDp > %(TagPIDp)s)"
          lp = "p+"
          lm = "p~-"
        elif nickname == "PhiMuMu":
          decay = "phi(1020) -> mu+ mu-"
          extra_cut = " & (ISMUON)"
          lp = "mu+"
          lm = "mu-"
        elif nickname == "PhiKK":
          decay = "phi(1020) -> K+ K-"
          extra_cut = " & (PIDK > %(TagPIDK)s)"
          lp = "K+"
          lm = "K-"
        else:
          print "Don't know how to handle: " + nickname

        name = "PID" + name + "Tagged"
       
        dc = {
            lp : "ALL",
            lm : "ALL"
            }
        cc = ("(in_range(%(LLCombAMLow)s, AM, %(LLCombAMHigh)s)) & (ACHI2DOCA(1,2) < %(LLCombMaxDocaChi2)s)")
        mc = ("(in_range(%(LLCombMLow)s, M, %(LLCombMHigh)s))")
        from HltTracking.HltPVs import PV3D
        Hlt2Combiner.__init__(self, name,
            decay,
            [ TagFilter(name, taginput, mode, nickname, extra_cut), ProbeFilter(name, probeinput, mode, nickname) ],
            dependencies = [ PV3D('Hlt2') ] + dependencies,
            #tistos = 'LLTisTos',
            DaughtersCuts = dc,
            CombinationCut = cc,
            MotherCut = mc,
            Preambulo = [ ],
            shared = True,
            nickname = nickname)
Beispiel #26
0
    def __init__(self, name):

        JpsiCuts = ( "%(JpsiCuts)s" )
        DauCuts  = ( "%(DauCuts)s" )
        ComCuts  = ( "%(ComCuts)s" )
        MomCuts  = ( "%(MomCuts)s" ) 
        
        from Inputs import BiKalmanFittedPions
        inputs = [ DiMuonFilter("JpsiForBc2JpsiH", JpsiCuts, nickname=name),
                   BiKalmanFittedPions ]
        Hlt2Combiner.__init__(self, name, "[ B_c+ -> J/psi(1S) pi+ ]cc", inputs,                             
                              DaughtersCuts  = { 'pi+' : DauCuts },
                              CombinationCut = ComCuts,
                              MotherCut      = MomCuts,
                              Preambulo = [])
Beispiel #27
0
 def __init__(self, name):
     cc = (" (APT > %(D0_PT_MIN)s)" +
           " & (ACUTDOCACHI2(%(D0_DOCACHI2_MAX)s,''))" +
           " & (ADAMASS('D0') < %(D0_MASS_WINDOW)s)")
     mc = ("(VFASPF(VCHI2/VDOF) < %(D0_VCHI2NDOF_MAX)s)")
     from HltTracking.HltPVs import PV3D
     inputs = [goodKs]
     Hlt2Combiner.__init__(self,
                           name,
                           "[D0 -> KS0 KS0]cc",
                           inputs,
                           dependencies=[PV3D('Hlt2')],
                           CombinationCut=cc,
                           MotherCut=mc,
                           Preambulo=[])
Beispiel #28
0
 def __init__(self, name, decay, inputs, pidcut={}):
     dc = pidcut
     cc = ("(APT > %(APTmin)s)" + "& (APT < %(APTmax)s)" +
           "& (AP  > %(APmin)s)" + "& (ADOCAMAX('') < %(ADOCAmax)s)" +
           "& (in_range( %(AMmin)s, AM, %(AMmax)s ))")
     mc = ("(VFASPF(VCHI2PDOF) < %(VtxChi2DoFmax)s)")
     Hlt2Combiner.__init__(self,
                           name,
                           decay,
                           inputs,
                           dependencies=[TrackGEC(name)],
                           DaughtersCuts=dc,
                           CombinationCut=cc,
                           MotherCut=mc,
                           Preambulo=[])
Beispiel #29
0
    def __init__(self, name,inputs):
        ## opening angle between slow pion and D0 flight
        dot_prod = "(ACHILD( VFASPF( VX ),1)*ACHILD(PX,2) + ACHILD( VFASPF( VY ),1)*ACHILD(PY,2) + ACHILD( VFASPF( VZ ),1)*ACHILD(PZ,2))"
        mag = "math.sqrt(ACHILD( VFASPF( VX ),1)**2+ACHILD( VFASPF( VY ),1)**2+ACHILD( VFASPF( VZ ),1)**2)"
        formula = "(180./3.1415)*acos( %(dot_prod)s / (ACHILD(P,2)*%(mag)s) )" %{"dot_prod":dot_prod,
                                                                                 "mag":mag}

        DstCombinationCut = "("+formula+" < %(Dst_MaxAOA)s) & (APT > %(Dst_MinAPT)s ) & (AALLSAMEBPV)"
        DstMotherCut      = "(Dst_M - D0_M < %(Dst_MaxSimpleFitDeltaMass)s)"
        DaughtersCuts     = {'pi+' : "(PT > %(Slowpi_MinPt)s)"}
        from HltTracking.HltPVs import PV3D
        from Preambulo import DstPreambulo
        Hlt2Combiner.__init__(self, name, "[D*(2010)+ -> D0 pi+]cc", inputs,
                              dependencies = [TrackGEC('TrackGEC'), PV3D('Hlt2')],
                              CombinationCut = DstCombinationCut, MotherCut = DstMotherCut,
                              DaughtersCuts = DaughtersCuts, Preambulo = DstPreambulo())
Beispiel #30
0
 def __init__(self, tag, n, inputs):
     if n == 3:
         decays = [
             "D*(2010)+ -> K*(892)0 K+", "D*(2010)+ -> K*(892)0 K-",
             "D*(2010)+ -> K*(892)0 KS0", "D*(2010)+ -> K*(892)0 KS0",
             "D*(2010)+ -> K*(892)0 Lambda0",
             "D*(2010)+ -> K*(892)0 Lambda~0"
         ]
     elif n == 4:
         decays = [
             "B0 -> D*(2010)+ K-", "B0 -> D*(2010)+ K+",
             "B0 -> D*(2010)+ KS0", "B0 -> D*(2010)+ Lambda0",
             "B0 -> D*(2010)+ Lambda~0"
         ]
     else:
         decays = [
             "K*(892)0 -> K+ K+", "K*(892)0 -> K+ K-", "K*(892)0 -> K- K-",
             "K*(892)0 -> K+ KS0", "K*(892)0 -> K- KS0",
             "K*(892)0 -> K+ Lambda0", "K*(892)0 -> K- Lambda0",
             "K*(892)0 -> K+ Lambda~0", "K*(892)0 -> K- Lambda~0",
             "K*(892)0 -> KS0 KS0"
         ]
     cc = (
         "(AM < 7000*MeV) & ((ANUM((ID=='KS0') | (ABSID=='Lambda0')) > 0) "
         "| ((AALLSAMEBPV | (AMINCHILD(MIPCHI2DV(PRIMARY)) > 16)) "
         "& (AMAXDOCA('LoKi::DistanceCalculator') <"
         " %(RUN1_AMAXDOCA_MAX)s)))")
     mc = "(BPVDIRA > 0) & (BPVVDCHI2 > %(RUN1_BPVVDCHI2_MIN)s)"
     if tag == 'RAD':
         decays = ['B+ -> K*(892)0  gamma']
         cc = "AM > 0"
     from HltTracking.HltPVs import PV3D
     dep = [PV3D('Hlt2')]
     if tag == 'RAD':
         from HltLine.HltDecodeRaw import DecodeL0CALO
         dep.append(DecodeL0CALO)
     from Hlt2Lines.Utilities.Hlt2MergedStage import Hlt2MergedStage
     merged = Hlt2MergedStage('Run1Topo%s%iBody' % (tag, n),
                              inputs,
                              shared=True)
     Hlt2Combiner.__init__(self,
                           'Run1Topo%s%iBody' % (tag, n),
                           decays, [merged],
                           shared=True,
                           dependencies=dep,
                           CombinationCut=cc,
                           MotherCut=mc)