def longtrackFilter(name, trackAlgo, partSource, muCut): """ Select plus or minus charge for longtrack """ Filter = FilterDesktop() #there is maybe a change needed myFilter1 = Filter.configurable("mylongFilter1") myFilter1.Code = muCut return Selection( name+'_longFilter'+'LongMu', Algorithm = myFilter1, RequiredSelections = [ partSource ] )
def selFilterLongPartsK(name): """ Get Kaons from StdLooseKaons """ Filter = FilterDesktop() FilterLongPartsK = Filter.configurable(name + "FilterLongPartsK") FilterLongPartsK.Code = "(~ISMUON) & (P > 10000) & (PT > 800) & (PIDK > 10) & (TRCHI2DOF < 5.0) & (MIPDV(PRIMARY) > 0.1*mm)" # return Selection(name + "_SelFilterLongPartsK", Algorithm=FilterLongPartsK, RequiredSelections=[StdLooseKaons])
def selFilterLongPartsMu(name, IPcut): """ Get Muons from StdLooseMuons """ Filter = FilterDesktop() FilterLongPartsMu = Filter.configurable(name + "FilterLongPartsMu") FilterLongPartsMu.Code = "(ISMUON) & (P > 3000) & (PT > 1300) & (PIDmu > -2.0) & (TRCHI2DOF < 3.0) & (MIPDV(PRIMARY) > %(IPcut)s)" % locals( ) # return Selection(name + "_SelFilterLongPartsMu", Algorithm=FilterLongPartsMu, RequiredSelections=[StdLooseMuons])
def chargeFilter(name, trackAlgo, partSource, charge): """ Select plus or minus charge for Velomuon or long track """ Filter = FilterDesktop() #there is maybe a change needed myFilter1 = Filter.configurable("myFilter1") if(charge == -1): myFilter1.Code = "(Q < 0)" if(charge == 1): myFilter1.Code = "(Q > 0)" if(trackAlgo == 'VeloMuon'): return Selection( name+'_chargeFilter'+'VeloMuon', Algorithm = myFilter1, RequiredSelections = [ partSource ] ) if(trackAlgo == 'LongMu'): return Selection( name+'_chargeFilter'+'LongMu', Algorithm = myFilter1, RequiredSelections = [ partSource ] )