######################################################################## from os import environ import math from Gaudi.Configuration import * #from GaudiPython import AppMgr from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets from DecayTreeTuple.Configuration import * from StrippingConf.Configuration import StrippingConf, StrippingStream from StrippingSettings.Utils import strippingConfiguration from StrippingArchive.Utils import buildStreams, cloneLinesFromStream from Configurables import CombineParticles from StrippingArchive import strippingArchive trigger_list = [ 'L0HadronDecision', 'L0ElectronDecision', 'L0ElectronHiDecision', 'L0MuonDecision', 'L0DiMuonDecision', # 'Hlt1SingleMuonNoIPDecision', # 'Hlt1SingleMuonHighPTDecision', # 'Hlt1DiMuonHighMassDecision', # 'Hlt1DiMuonLowMassDecision', 'Hlt1GlobalDecision', 'Hlt1TrackAllL0Decision', 'Hlt1SingleMuonNoIPDecision', 'Hlt1SingleMuonHighPTDecision', 'Hlt1TrackMuonDecision', 'Hlt1MuTrackDecision', # 'Hlt1GlobalDecision', 'Hlt2TopoOSTF2BodyDecision', 'Hlt2TopoOSTF3BodyDecision', 'Hlt2TopoOSTF4BodyDecision', 'Hlt2Topo2BodySimpleDecision', 'Hlt2Topo3BodySimpleDecision', 'Hlt2Topo4BodySimpleDecision', 'Hlt2Topo2BodyBBDTDecision', 'Hlt2Topo3BodyBBDTDecision', 'Hlt2Topo4BodyBBDTDecision', 'Hlt2TopoMu2BodyBBDTDecision', 'Hlt2TopoMu3BodyBBDTDecision', 'Hlt2TopoMu4BodyBBDTDecision', 'Hlt2TopoE2BodyBBDTDecision', 'Hlt2TopoE3BodyBBDTDecision', 'Hlt2TopoE4BodyBBDTDecision', # 'Hlt2MuonFromHLT1Decision', 'Hlt2SingleMuonDecision', # 'Hlt2SingleMuonHighPTDecision', # 'Hlt2SingleMuonLowPTDecision', # 'Hlt2DisplVerticesLowMassSingleDecision', # 'Hlt2DisplVerticesHighMassSingleDecision', # 'Hlt2DisplVerticesDoubleDecision', # 'Hlt2DisplVerticesSinglePostScaledDecision', # 'Hlt2DisplVerticesHighFDSingleDecision', # 'Hlt2DisplVerticesSingleDownDecision', # 'Hlt2DiMuonDecision', # 'Hlt2DiMuonLowMassDecision', # 'Hlt2DiMuonBDecision', 'Hlt2DiMuonDetachedDecision', 'Hlt2MuTrackDecision', 'Hlt2GlobalDecision' ] ########################################################################### # First run the stripping eventNodeKiller = EventNodeKiller('Stripkiller') eventNodeKiller.Nodes = [ '/Event/AllStreams', '/Event/Strip' ] stripping = 'stripping20' #get the configuration dictionary from the database config = strippingConfiguration(stripping) #get the line builders from the archive archive = strippingArchive(stripping) streams = buildStreams(stripping = config, archive = archive) MyStream = StrippingStream("MyStream") MyLines = [ 'Strippingb2LcMuXB2DMuNuXLine' ] for stream in streams: for line in stream.lines: if line.name() in MyLines: print 'Strippingb2LcMuXB2DMuNuXLine' MyStream.appendLines( [ line ] ) from Configurables import ProcStatusCheck filterBadEvents = ProcStatusCheck() sc = StrippingConf( Streams = [ MyStream ], MaxCandidates = 2000, AcceptBadEvents = False, BadEventSelection = filterBadEvents ) ###################################################################################################### ########## Tree for Lc* -> Lc pi pi ################################################################## Lc_star = CombineParticles("Lc_star") Lc_star.Inputs = ["Phys/StdAllLoosePions/Particles", "Phys/Lc2PKPiforB2DMuNuX/Particles"] Lc_star.DecayDescriptors = ["[Lambda_c(2595)+ -> Lambda_c+ pi+ pi-]cc"] Lc_star.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 7.0) " Lc_star.DaughtersCuts = { "pi+": "PT>0", "pi-": "PT>0", "Lambda_c+": "ADMASS('Lambda_c+') < 50.0 *MeV" } Lb_SL = CombineParticles("Lb_SL") Lb_SL.Inputs = [ "Phys/MuforB2DMuNuX/Particles", "Phys/Lc_star/Particles"] Lb_SL.DecayDescriptors = [ "[Lambda_b0 -> Lambda_c(2595)+ mu-]cc" ] Lb_SL.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 7.0) & (BPVDIRA>0.999)" decay0 = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi+ ^pi-) ^mu- ]CC" Lb_SL_OfflineTree = DecayTreeTuple("Lb_SL_OfflineTree") Lb_SL_OfflineTree.Inputs = ["Phys/Lb_SL/Particles"] Lb_SL_OfflineTree.Decay = decay0 Lb_SL_OfflineTree.Branches = { "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ]CC", "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ]CC", "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu- ]CC", "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ]CC", "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu- ]CC", "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu- ]CC", "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu- ]CC", "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu- ]CC", "K_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu- ]CC" } ########## Tree for Lc* -> Lc pi pi pi pi ################################################################## Lc_star4pi = CombineParticles("Lc_star4pi") Lc_star4pi.Inputs = ["Phys/StdAllLoosePions/Particles", "Phys/Lc2PKPiforB2DMuNuX/Particles"] Lc_star4pi.DecayDescriptors = ["[Lambda_c(2595)+ -> Lambda_c+ pi+ pi- pi+ pi-]cc"] Lc_star4pi.MotherCut = "(M<3500) & (M>2300) & (VFASPF(VCHI2/VDOF) < 15.0) " Lc_star4pi.DaughtersCuts = { "pi+": "PT>0", "pi-": "PT>0", "Lambda_c+": "ADMASS('Lambda_c+') < 50.0 *MeV" } Lb_SL_Lc4pi = CombineParticles("Lb_SL_Lc4pi") Lb_SL_Lc4pi.Inputs = [ "Phys/MuforB2DMuNuX/Particles", "Phys/Lc_star4pi/Particles"] Lb_SL_Lc4pi.DecayDescriptors = [ "[Lambda_b0 -> Lambda_c(2595)+ mu-]cc" ] Lb_SL_Lc4pi.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 7.0) & (BPVDIRA>0.999)" decay0_Lc4pi = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi+ ^pi- ^pi+ ^pi-) ^mu- ]CC" Lb_SL_Lc4pi_OfflineTree = DecayTreeTuple("Lb_SL_Lc4pi_OfflineTree") Lb_SL_Lc4pi_OfflineTree.Inputs = ["Phys/Lb_SL_Lc4pi/Particles"] Lb_SL_Lc4pi_OfflineTree.Decay = decay0_Lc4pi Lb_SL_Lc4pi_OfflineTree.Branches = { "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi- pi+ pi-) mu- ]CC", "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi- pi+ pi-) mu- ]CC", "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi- pi+ pi-) ^mu- ]CC", "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi- pi+ pi-) mu- ]CC", "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi- pi+ pi-) mu- ]CC", "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi- pi+ pi-) mu- ]CC", "pi_plus2": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi- ^pi+ pi-) mu- ]CC", "pi_minus2": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi- pi+ ^pi-) mu- ]CC", "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi- pi+ pi-) mu- ]CC", "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi- pi+ pi-) mu- ]CC", "K_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi- pi+ pi-) mu- ]CC" } ########## Tree for Lc* -> Lc pi0 ################################################################## pi0containers = ['StdLooseMergedPi0', 'StdLoosePi024e', 'StdLoosePi02gee', 'StdLoosePi02gg'] Lc_star1pi0 = CombineParticles("Lc_star1pi0") Lc_star1pi0.Inputs = ["Phys/StdLooseMergedPi0/Particles", "Phys/Lc2PKPiforB2DMuNuX/Particles"] for pc in pi0containers: Lc_star1pi0.Inputs.append('Phys/%s/Particles' % pc) Lc_star1pi0.DecayDescriptors = ["[Lambda_c(2595)+ -> Lambda_c+ pi0]cc"] Lc_star1pi0.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 15.0) " Lc_star1pi0.DaughtersCuts = { "pi0": "PT>0", "Lambda_c+": "ADMASS('Lambda_c+') < 50.0 *MeV" } Lb_SL_Lc1pi0 = CombineParticles("Lb_SL_Lc1pi0") Lb_SL_Lc1pi0.Inputs = [ "Phys/MuforB2DMuNuX/Particles", "Phys/Lc_star1pi0/Particles"] Lb_SL_Lc1pi0.DecayDescriptors = [ "[Lambda_b0 -> Lambda_c(2595)+ mu-]cc" ] Lb_SL_Lc1pi0.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 7.0) & (BPVDIRA>0.999)" decay0_1pi0 = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi0) ^mu- ]CC" Lb_SL_Lc1pi0_OfflineTree = DecayTreeTuple("Lb_SL_Lc1pi0_OfflineTree") Lb_SL_Lc1pi0_OfflineTree.Inputs = ["Phys/Lb_SL_Lc1pi0/Particles"] Lb_SL_Lc1pi0_OfflineTree.Decay = decay0_1pi0 Lb_SL_Lc1pi0_OfflineTree.Branches = { "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0) mu- ]CC", "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0) mu- ]CC", "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0) ^mu- ]CC", "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi0) mu- ]CC", "pi": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi0) mu- ]CC", "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi0) mu- ]CC", "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi0) mu- ]CC", "K_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi0) mu- ]CC" } ########## Tree for Lc* -> Lc pi0 pi pi ################################################################## Lc_starpi0pipi = CombineParticles("Lc_starpi0pipi") Lc_starpi0pipi.Inputs = ["Phys/Lc2PKPiforB2DMuNuX/Particles", "Phys/StdAllLoosePions/Particles"] for pc in pi0containers: Lc_starpi0pipi.Inputs.append('Phys/%s/Particles' % pc) Lc_starpi0pipi.DecayDescriptors = ["[Lambda_c(2595)+ -> Lambda_c+ pi0 pi+ pi-]cc"] Lc_starpi0pipi.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 15.0) " Lc_starpi0pipi.DaughtersCuts = { "pi0": "PT>0", "pi+": "PT>0", "pi-": "PT>0", "Lambda_c+": "ADMASS('Lambda_c+') < 50.0 *MeV" } Lb_SL_Lcpi0pipi = CombineParticles("Lb_SL_Lcpi0pipi") Lb_SL_Lcpi0pipi.Inputs = [ "Phys/MuforB2DMuNuX/Particles", "Phys/Lc_starpi0pipi/Particles"] Lb_SL_Lcpi0pipi.DecayDescriptors = [ "[Lambda_b0 -> Lambda_c(2595)+ mu-]cc" ] Lb_SL_Lcpi0pipi.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 7.0) & (BPVDIRA>0.999)" decay0_pi0pipi = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi0 ^pi+ ^pi-) ^mu- ]CC" Lb_SL_Lcpi0pipi_OfflineTree = DecayTreeTuple("Lb_SL_Lcpi0pipi_OfflineTree") Lb_SL_Lcpi0pipi_OfflineTree.Inputs = ["Phys/Lb_SL_Lcpi0pipi/Particles"] Lb_SL_Lcpi0pipi_OfflineTree.Decay = decay0_pi0pipi Lb_SL_Lcpi0pipi_OfflineTree.Branches = { "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0 pi+ pi-) mu- ]CC", "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0 pi+ pi-) mu- ]CC", "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0 pi+ pi-) ^mu- ]CC", "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi0 pi+ pi-) mu- ]CC", "pi0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi0 pi+ pi-) mu- ]CC", "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0 ^pi+ pi-) mu- ]CC", "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi0 pi+ ^pi-) mu- ]CC", "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi0 pi+ pi-) mu- ]CC", "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi0 pi+ pi-) mu- ]CC", "K_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi0 pi+ pi-) mu- ]CC", } ########## Tree for Sc*++ -> Lc pi+ ################################################################## Lc_star1pi = CombineParticles("Lc_star1pi") Lc_star1pi.Inputs = ["Phys/StdAllLoosePions/Particles", "Phys/Lc2PKPiforB2DMuNuX/Particles"] Lc_star1pi.DecayDescriptors = ["[Sigma_c+ -> Lambda_c+ pi+]cc"] Lc_star1pi.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 7.0) " Lc_star1pi.DaughtersCuts = { "pi+": "PT>0", "Lambda_c+": "ADMASS('Lambda_c+') < 50.0 *MeV" } Lb_SL_Sc1pi = CombineParticles("Lb_SL_Sc1pi") Lb_SL_Sc1pi.Inputs = [ "Phys/MuforB2DMuNuX/Particles", "Phys/Lc_star1pi/Particles"] Lb_SL_Sc1pi.DecayDescriptors = [ "[Lambda_b0 -> Sigma_c+ mu-]cc" ] Lb_SL_Sc1pi.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 7.0) & (BPVDIRA>0.999)" decay0_1pi = "[Lambda_b0 -> ^(Sigma_c+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi+) ^mu- ]CC" Lb_SL_Sc1pi_OfflineTree = DecayTreeTuple("Lb_SL_Sc1pi_OfflineTree") Lb_SL_Sc1pi_OfflineTree.Inputs = ["Phys/Lb_SL_Sc1pi/Particles"] Lb_SL_Sc1pi_OfflineTree.Decay = decay0_1pi Lb_SL_Sc1pi_OfflineTree.Branches = { "Lambda_b0": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+) mu- ]CC", "Lambda_c_STAR": "[Lambda_b0 -> ^(Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+) mu- ]CC", "mu": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+) ^mu- ]CC", "Lambda_c": "[Lambda_b0 -> (Sigma_c+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+) mu- ]CC", "pi": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+) mu- ]CC", "p": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+) mu- ]CC", "pi_Lc": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+) mu- ]CC", "K_Lc": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+) mu- ]CC" } ########## Tree for Sc*++ -> Lc pi+ pi+ pi- ################################################################## Lc_star3pi = CombineParticles("Lc_star3pi") Lc_star3pi.Inputs = ["Phys/StdAllLoosePions/Particles", "Phys/Lc2PKPiforB2DMuNuX/Particles"] Lc_star3pi.DecayDescriptors = ["[Sigma_c+ -> Lambda_c+ pi+ pi+ pi-]cc"] Lc_star3pi.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 7.0) " Lc_star3pi.DaughtersCuts = { "pi+": "PT>0", "pi+": "PT>0", "pi-": "PT>0", "Lambda_c+": "ADMASS('Lambda_c+') < 50.0 *MeV" } Lb_SL_Sc3pi = CombineParticles("Lb_SL_Sc3pi") Lb_SL_Sc3pi.Inputs = [ "Phys/MuforB2DMuNuX/Particles", "Phys/Lc_star3pi/Particles"] Lb_SL_Sc3pi.DecayDescriptors = [ "[Lambda_b0 -> Sigma_c+ mu-]cc" ] Lb_SL_Sc3pi.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 7.0) & (BPVDIRA>0.999)" decay0_3pi = "[Lambda_b0 -> ^(Sigma_c+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi+ ^pi+ ^pi-) ^mu- ]CC" Lb_SL_Sc3pi_OfflineTree = DecayTreeTuple("Lb_SL_Sc3pi_OfflineTree") Lb_SL_Sc3pi_OfflineTree.Inputs = ["Phys/Lb_SL_Sc3pi/Particles"] Lb_SL_Sc3pi_OfflineTree.Decay = decay0_3pi Lb_SL_Sc3pi_OfflineTree.Branches = { "Lambda_b0": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi+ pi-) mu- ]CC", "Lambda_c_STAR": "[Lambda_b0 -> ^(Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi+ pi-) mu- ]CC", "mu": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi+ pi-) ^mu- ]CC", "Lambda_c": "[Lambda_b0 -> (Sigma_c+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi+ pi-) mu- ]CC", "pi_plus1": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi+ pi-) mu- ]CC", "pi_plus2": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi+ pi-) mu- ]CC", "pi_minus": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi+ ^pi-) mu- ]CC", "p": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi+ pi-) mu- ]CC", "pi_Lc": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi+ pi-) mu- ]CC", "K_Lc": "[Lambda_b0 -> (Sigma_c+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi+ pi-) mu- ]CC" } ########## Tree for Lc* -> Lc gamma ################################################################## Lc_starG = CombineParticles("Lc_starG") Lc_starG.Inputs = ["Phys/Lc2PKPiforB2DMuNuX/Particles"] for g in ['StdAllLooseGammaDD', 'StdAllLooseGammaLL', 'StdAllTightGammaDD', 'StdAllTightGammaLL', 'StdAllTightSymGammaDD', 'StdAllTightSymGammaLL', 'StdDiElectronGamma']: Lc_starG.Inputs.append('Phys/%s/Particles' % g) Lc_starG.DecayDescriptors = ["[Lambda_c(2595)+ -> Lambda_c+ gamma]cc"] Lc_starG.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 7.0) " Lc_starG.DaughtersCuts = { "gamma": "PT>0", "Lambda_c+": "ADMASS('Lambda_c+') < 50.0 *MeV" } Lb_SL_LcG = CombineParticles("Lb_SL_LcG") Lb_SL_LcG.Inputs = [ "Phys/MuforB2DMuNuX/Particles", "Phys/Lc_starG/Particles"] Lb_SL_LcG.DecayDescriptors = [ "[Lambda_b0 -> Lambda_c(2595)+ mu-]cc" ] Lb_SL_LcG.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 7.0) & (BPVDIRA>0.999)" decay0_G = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^gamma) ^mu- ]CC" Lb_SL_LcG_OfflineTree = DecayTreeTuple("Lb_SL_LcG_OfflineTree") Lb_SL_LcG_OfflineTree.Inputs = ["Phys/Lb_SL_LcG/Particles"] Lb_SL_LcG_OfflineTree.Decay = decay0_G Lb_SL_LcG_OfflineTree.Branches = { "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) gamma) mu- ]CC", "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) gamma) mu- ]CC", "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) gamma) ^mu- ]CC", "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) gamma) mu- ]CC", "gamma": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^gamma) mu- ]CC", "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) gamma) mu- ]CC", "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) gamma) mu- ]CC", "K_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) gamma) mu- ]CC" } ############################## Configuring all DecayTreeTuples ####################################### from Configurables import TupleToolNeutrinoReco from Configurables import TupleToolKinematic from Configurables import TupleToolGeometry from Configurables import TupleToolTrackIsolation Lc_star_list = [Lc_starG, Lc_star3pi, Lc_star1pi, Lc_starpi0pipi, Lc_star1pi0, Lc_star4pi, Lc_star] Lb_list = [Lb_SL_LcG, Lb_SL_Sc3pi, Lb_SL_Sc1pi, Lb_SL_Lcpi0pipi, Lb_SL_Lc1pi0, Lb_SL_Lc4pi, Lb_SL] DTTlist = [Lb_SL_LcG_OfflineTree, Lb_SL_Sc3pi_OfflineTree, Lb_SL_Sc1pi_OfflineTree, Lb_SL_Lcpi0pipi_OfflineTree, Lb_SL_Lc1pi0_OfflineTree, Lb_SL_OfflineTree, Lb_SL_Lc4pi_OfflineTree] for DTT in DTTlist: DTT.ToolList = [ "TupleToolKinematic", "TupleToolPid", "TupleToolGeometry", "TupleToolPrimaries", "TupleToolTrackInfo", "TupleToolEventInfo", "TupleToolRecoStats", "TupleToolAngles", "TupleToolNeutrinoReco", "TupleToolMCBackgroundInfo", "TupleToolMCTruth", "TupleToolJets", 'TupleToolTrigger', 'TupleToolTISTOS', 'TupleToolRICHPid', 'TupleToolDira', 'TupleToolEventInfo', 'TupleToolPropertime', 'TupleToolRecoStats', 'TupleToolTrackPosition' ] DTT.addTool( TupleToolTrigger, name='TupleToolTrigger' ) DTT.TupleToolTrigger.Verbose = True DTT.TupleToolTrigger.TriggerList = trigger_list DTT.addTool( TupleToolTISTOS, name='TupleToolTISTOS' ) DTT.TupleToolTISTOS.Verbose = True DTT.TupleToolTISTOS.TriggerList = trigger_list DTT.ToolList += [ "TupleToolTISTOS" ] DTT.addTool( TupleToolNeutrinoReco, name = "TupleToolNeutrinoReco" ) DTT.TupleToolNeutrinoReco.Verbose = True DTT.TupleToolNeutrinoReco.MotherMass = 5619.5 # MeV DTT.TupleToolNeutrinoReco.ExtraName = 'mLb' DTT.addTool( TupleToolKinematic, name = "TupleToolKinematic" ) DTT.TupleToolKinematic.Verbose = True DTT.addTool( TupleToolGeometry, name = "TupleToolGeometry" ) DTT.TupleToolGeometry.Verbose = True DTT.addTool(TupleToolRecoStats, name="TupleToolRecoStats") DTT.TupleToolRecoStats.Verbose = True DTT.UseLabXSyntax = True DTT.RevertToPositiveID = False DTT.addTupleTool('TupleToolTrackIsolation/TrackIsolation') DTT.TrackIsolation.MinConeAngle = 0.5 DTT.TrackIsolation.MaxConeAngle = 1.5 DTT.TrackIsolation.StepSize = 0.1 DTT.TrackIsolation.Verbose = True ################################################## from Configurables import DaVinci #DaVinci().EventPreFilters = fltrs.filters('Filters') DaVinci().EvtMax = -1 # Number of events DaVinci().SkipEvents = 0 # Events to skip DaVinci().PrintFreq = 10000 DaVinci().Simulation = False DaVinci().Lumi = True DaVinci().appendToMainSequence( [ eventNodeKiller ] ) DaVinci().appendToMainSequence( [ sc.sequence() ] ) DaVinci().UserAlgorithms = [ HltSelReportsDecoder(), HltVertexReportsDecoder(), HltDecReportsDecoder()] for lc in Lc_star_list: DaVinci().UserAlgorithms.append(lc) for lb in Lb_list: DaVinci().UserAlgorithms.append(lb) for DTT in DTTlist: DaVinci().UserAlgorithms.append(DTT) DaVinci().TupleFile = "Lb_Lcstarmunu.root" #DaVinci().CondDBtag = "Sim08-20130503-1-vc-md100" #DaVinci().DDDBtag = "Sim08-20130503-1" #appMgr = AppMgr() #appMgr.initialize() #appMgr.run( DaVinci().EvtMax )