コード例 #1
0
    def makeLc2pee(self, name):

        Lc2pee = DaVinci__N3BodyDecays("Combine" + name)
        Lc2pee.DecayDescriptors = [
            "[Lambda_c+ -> p+ e+ e-]cc", "[Lambda_c+ -> p~- e+ e+]cc",
            "[Lambda_c+ -> p+ e+ e+]cc"
        ]

        Lc2pee.DaughtersCuts = {
            "p+":
            self.TrackCuts + " & ((PIDp-PIDpi)>5)" + " & ((PIDp-PIDK)>0)",
            "e+": self.TrackCuts + " & ((PIDe-PIDpi)>2)"
        }

        Lc2pee.Combination12Cut = self.Combination12Cuts
        Lc2pee.CombinationCut = self.CombinationCutsLoose
        Lc2pee.MotherCut = self.MotherCuts

        _myProtons = DataOnDemand(Location="Phys/StdLooseProtons/Particles")
        _myElectrons = DataOnDemand(
            Location="Phys/StdLooseElectrons/Particles")

        return Selection(name,
                         Algorithm=Lc2pee,
                         RequiredSelections=[_myProtons, _myElectrons])
コード例 #2
0
 def _makeXic2pKpi(self):
     '''Makes Xic -> p K pi + cc'''
     dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW'])
     comboCuts = [
         LoKiCuts(['ASUMPT'], self.config).code(),
         "(ADAMASS('Xi_c+') < %s*%s) " % (dm + 10, units),
         hasTopoChild()
     ]
     comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()]
     comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code())
     comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code())
     comboCuts12 = LoKiCuts.combine(comboCuts12)
     comboCuts = LoKiCuts.combine(comboCuts)
     momCuts = [
         "(ADMASS('Xi_c+') < %s*%s) " % (dm, units),
         LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code()
     ]
     momCuts = LoKiCuts.combine(momCuts)
     cp = DaVinci__N3BodyDecays(Combination12Cut=comboCuts12,
                                CombinationCut=comboCuts,
                                MotherCut=momCuts,
                                DecayDescriptors=["[Xi_c+ -> p+ K- pi+]cc"])
     return Selection(
         'Xic2PKPiBeauty2Charm',
         Algorithm=cp,
         RequiredSelections=[self.pions, self.kaons, self.protons])
コード例 #3
0
    def makeLc2pmumu(self, name):

        Lc2pmumu = DaVinci__N3BodyDecays("Combine" + name)
        Lc2pmumu.DecayDescriptors = [
            "[Lambda_c+ -> p+ mu+ mu-]cc", "[Lambda_c+ -> p~- mu+ mu+]cc",
            "[Lambda_c+ -> p+ mu+ mu+]cc"
        ]

        Lc2pmumu.DaughtersCuts = {
            "p+":
            self.TrackCuts + " & ((PIDp-PIDpi)>5)" + " & ((PIDp-PIDK)>0)",
            "mu+":
            self.TrackCuts + " & ((PIDmu-PIDpi)>-5)" + " & ((PIDmu-PIDK)>-5)"
        }

        Lc2pmumu.Combination12Cut = self.Combination12Cuts
        Lc2pmumu.CombinationCut = self.CombinationCutsLoose
        Lc2pmumu.MotherCut = self.MotherCuts

        _myProtons = DataOnDemand(Location="Phys/StdLooseProtons/Particles")
        _myMuons = DataOnDemand(Location="Phys/StdLooseMuons/Particles")

        return Selection(name,
                         Algorithm=Lc2pmumu,
                         RequiredSelections=[_myProtons, _myMuons])
コード例 #4
0
    def makeB23Pi(self, name):

        B23Pi = DaVinci__N3BodyDecays("Combine" + name)
        B23Pi.DecayDescriptors = ["[B+ -> pi+ pi+ pi-]cc"]
        B23Pi.DaughtersCuts = {"pi+": self.TrackCuts}

        B23Pi.Combination12Cut = self.Combination12Cuts
        B23Pi.CombinationCut = self.CombinationCutsTight
        B23Pi.MotherCut = self.MotherCuts

        _myPions = DataOnDemand(Location="Phys/StdLoosePions/Particles")

        return Selection(name, Algorithm=B23Pi, RequiredSelections=[_myPions])
コード例 #5
0
def makeB23Mu(name):

    B23Mu = DaVinci__N3BodyDecays("Combine" + name)

    B23Mu.DecayDescriptors = ["[B+ -> mu+ mu+ mu-]cc", "[B+ -> mu+ mu+ mu+]cc"]
    B23Mu.DaughtersCuts = {"mu+": TrackCuts}
    B23Mu.Combination12Cut = BCombination12Cut
    B23Mu.CombinationCut = BCombinationCut500

    B23Mu.MotherCut = BMotherCut

    _myMuons = DataOnDemand(Location="Phys/StdLooseMuons/Particles")

    return Selection(name, Algorithm=B23Mu, RequiredSelections=[_myMuons])
コード例 #6
0
    def makeB2Muee(self,name):
    
        B2Muee = DaVinci__N3BodyDecays("Combine"+name)
        B2Muee.DecayDescriptors = [ "[B+ -> mu+ e+ e-]cc","[B+ -> mu- e+ e+]cc","[B+ -> mu+ e+ e+]cc" ]
        B2Muee.DaughtersCuts = { "mu+" : self.TrackCuts, "e+" : self.TrackCuts }
        
        B2Muee.Combination12Cut = self.Combination12Cuts
        B2Muee.CombinationCut   = self.CombinationCutsLoose     
        B2Muee.MotherCut        = self.MotherCuts

        _myMuons = DataOnDemand(Location = "Phys/StdLooseMuons/Particles")
        _myElectrons = DataOnDemand(Location = "Phys/StdLooseElectrons/Particles")
        
        return Selection (name, Algorithm = B2Muee, RequiredSelections = [ _myMuons, _myElectrons ])
コード例 #7
0
    def makeD23Mu(self, name):

        D23Mu = DaVinci__N3BodyDecays("Combine" + name)
        D23Mu.DecayDescriptors = [
            "[D+ -> mu+ mu+ mu-]cc", "[D+ -> mu+ mu+ mu+]cc"
        ]
        D23Mu.DaughtersCuts = {"mu+": self.TrackCuts}

        D23Mu.Combination12Cut = self.Combination12Cuts
        D23Mu.CombinationCut = self.CombinationCutsLoose
        D23Mu.MotherCut = self.MotherCuts

        _myMuons = DataOnDemand(Location="Phys/StdLooseMuons/Particles")

        return Selection(name, Algorithm=D23Mu, RequiredSelections=[_myMuons])
コード例 #8
0
def makeLc23mu(name):

    Lc23mu = DaVinci__N3BodyDecays("Combine" + name)
    Lc23mu.DecayDescriptors = [
        "[Lambda_c+ -> mu+ mu+ mu-]cc", "[Lambda_c+ -> mu+ mu+ mu+]cc"
    ]
    Lc23mu.DaughtersCuts = {"mu+": TrackCuts}
    Lc23mu.Combination12Cut = Combination12Cut
    Lc23mu.CombinationCut = CombinationCut200

    Lc23mu.MotherCut = MotherCut

    _myMuons = DataOnDemand(Location="Phys/StdLooseMuons/Particles")

    return Selection(name, Algorithm=Lc23mu, RequiredSelections=[_myMuons])
コード例 #9
0
    def buildPIDLine(self, configRowId, bodies):
        "Parses the configuration dictionary to build the line"

        ## Resolves possible clone statements
        _config = self._resolveCloning(configRowId)

        ## Selects the algorithm according to the number of bodies
        _algorithm = None
        if (bodies == 2):
            _algorithm = CombineParticles(self.name + configRowId +
                                          'Algorithm')
        elif (bodies == 3):
            #_algorithm = DaVinci__N3BodyDecays(self.name + configRowId + 'Line')
            _algorithm = DaVinci__N3BodyDecays(self.name + configRowId +
                                               'Algorithm')
            _algorithm.Combination12Cut = _config['Combination12Cut']

        ## Prepares the tag&probe cut if needed
        _combinationCut = _config['CombinationCut']
        if 'TagAndProbeIndices' in _config:  ## Tag & Probe defined
            _id = [str(x) for x in _config['TagAndProbeIndices']]
            _combinationCut += ' & '
            _combinationCut += self._buildTagProbeCut(
                _config['TagAndProbeCut'], _id)

###        print _combinationCut

        _algorithm.CombinationCut = _combinationCut
        _algorithm.DaughtersCuts = _config['DaughtersCuts']
        _algorithm.MotherCut = _config['MotherCut']
        _algorithm.DecayDescriptor = _config['DecayDescriptor']

        _requiredSelections = [DataOnDemand(x) for x in _config['InputTES']]
        _selection = Selection(self.name + configRowId + 'Selection',
                               Algorithm=_algorithm,
                               RequiredSelections=_requiredSelections)

        _line = StrippingLine(self.name + configRowId + 'Line',
                              prescale=_config['Prescale'],
                              checkPV=_config['CheckPV'],
                              EnableFlavourTagging=False,
                              RequiredRawEvents=_config['RawEvent'],
                              MDSTFlag=_config['MDST.DST'],
                              HLT1=_config['HLT1'],
                              HLT2=_config['HLT2'],
                              algos=[_selection])

        return _line
コード例 #10
0
 def _makeX2HHH(self,name,decays,amass,config,inputs):
     ''' Makes all X -> HHH selections with charged tracks only.'''
     comboCuts = [LoKiCuts(['ASUMPT'],config).code(),amass,hasTopoChild()]
     comboCuts12 = [LoKiCuts(['ADOCA12'],config).code()]
     comboCuts.append(LoKiCuts(['ADOCA13'],config).code())
     comboCuts.append(LoKiCuts(['ADOCA23'],config).code())
     numPassPtCut = "(ANUM(PT < %s) <= 1)" %(config['PTMIN1'])
     comboCuts.append(numPassPtCut)
     comboCuts = LoKiCuts.combine(comboCuts)
     comboCuts12 = LoKiCuts.combine(comboCuts12)
     momCuts = LoKiCuts(['VCHI2DOF','BPVVDCHI2','BPVDIRA','MIPCHI2DV',
                         'BPVVDRHO','BPVVDZ'],config).code()
     cp = DaVinci__N3BodyDecays(Combination12Cut=comboCuts12,CombinationCut=comboCuts,MotherCut=momCuts,
                           DecayDescriptors=decays)
     return Selection(name+'Beauty2Charm',Algorithm=cp,
                      RequiredSelections=inputs)
コード例 #11
0
def makeLc2pKpi(name):

    Lc2pKpi = DaVinci__N3BodyDecays("Combine" + name)
    Lc2pKpi.DecayDescriptors = ["[Lambda_c+ -> p+ K- pi+]cc"]
    Lc2pKpi.DaughtersCuts = {
        "p+": TrackCuts + " & ((PIDp-PIDpi)>5)" + " & ((PIDp-PIDK)>0)",
        "K-": TrackCuts + " & ((PIDK-PIDpi)>5)" + " & ((PIDK-PIDp)>0)",
        "pi+": TrackCuts
    }
    Lc2pKpi.Combination12Cut = Combination12Cut
    Lc2pKpi.CombinationCut = CombinationCut150
    Lc2pKpi.MotherCut = MotherCut

    _myProtons = DataOnDemand(Location="Phys/StdLooseProtons/Particles")
    _myKaons = DataOnDemand(Location="Phys/StdLooseKaons/Particles")
    _myPions = DataOnDemand(Location="Phys/StdLoosePions/Particles")

    return Selection(name,
                     Algorithm=Lc2pKpi,
                     RequiredSelections=[_myProtons, _myKaons, _myPions])
コード例 #12
0
def makeLc2muee(name):

    Lc2muee = DaVinci__N3BodyDecays("Combine" + name)
    Lc2muee.DecayDescriptors = [
        "[Lambda_c+ -> mu+ e+ e-]cc", "[Lambda_c+ -> mu- e+ e+]cc",
        "[Lambda_c+ -> mu+ e+ e+]cc"
    ]
    Lc2muee.DaughtersCuts = {
        "mu+": TrackCuts,
        "e+": TrackCuts + " & ((PIDe-PIDpi)>2)"
    }
    Lc2muee.Combination12Cut = Combination12Cut
    Lc2muee.CombinationCut = CombinationCut200

    Lc2muee.MotherCut = MotherCut

    _myMuons = DataOnDemand(Location="Phys/StdLooseMuons/Particles")
    _myElectrons = DataOnDemand(Location="Phys/StdLooseElectrons/Particles")

    return Selection(name,
                     Algorithm=Lc2muee,
                     RequiredSelections=[_myMuons, _myElectrons])