diff --git a/ganga/Lb2Lcmunu/DV2011.py b/ganga/Lb2Lcmunu/DV2011.py new file mode 100644 index 0000000..03e4d25 --- /dev/null +++ b/ganga/Lb2Lcmunu/DV2011.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# @Author: Elena Graverini +# @Date: 2016-01-14 09:58:21 +# @Last Modified by: Elena Graverini +# @Last Modified time: 2016-01-14 09:59:26 +from Configurables import DaVinci +DaVinci().DataType = "2011" # Default is "DC06" diff --git a/ganga/Lb2Lcmunu/DV2012.py b/ganga/Lb2Lcmunu/DV2012.py new file mode 100644 index 0000000..5e73d52 --- /dev/null +++ b/ganga/Lb2Lcmunu/DV2012.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# @Author: Elena Graverini +# @Date: 2016-01-14 09:58:15 +# @Last Modified by: Elena Graverini +# @Last Modified time: 2016-01-14 10:00:01 +from Configurables import DaVinci +DaVinci().DataType = "2012" # Default is "DC06" diff --git a/ganga/Lb2Lcmunu/DaVinci_Ganga_11_md.py b/ganga/Lb2Lcmunu/DaVinci_Ganga_11_md.py index ba80034..cce2bb5 100644 --- a/ganga/Lb2Lcmunu/DaVinci_Ganga_11_md.py +++ b/ganga/Lb2Lcmunu/DaVinci_Ganga_11_md.py @@ -59,6 +59,7 @@ appOpts = j.application.user_release_area + '/DaVinci_' + j.application.version + '/Phys/DaVinci/options/' path = '/afs/cern.ch/work/e/egraveri/Analysis/ganga/Lb2Lcmunu/' j.application.optsfile = [ File(path + 'Lb2Lcmunu_S20_data_11_NEWJET.py' ), + File(path + 'DV2011.py'), File(path + 'LHCbCollision11Beam3500GeV-VeloClosed-MagDownRealDataReco14Stripping20r190000000SEMILEPTONICDST.py') ] # Extra options # Appended to the end of the main options to override default settings diff --git a/ganga/Lb2Lcmunu/DaVinci_Ganga_11_mu.py b/ganga/Lb2Lcmunu/DaVinci_Ganga_11_mu.py index b9b02a3..725e34f 100644 --- a/ganga/Lb2Lcmunu/DaVinci_Ganga_11_mu.py +++ b/ganga/Lb2Lcmunu/DaVinci_Ganga_11_mu.py @@ -59,6 +59,7 @@ appOpts = j.application.user_release_area + '/DaVinci_' + j.application.version + '/Phys/DaVinci/options/' path = '/afs/cern.ch/work/e/egraveri/Analysis/ganga/Lb2Lcmunu/' j.application.optsfile = [ File(path + 'Lb2Lcmunu_S20_data_11_NEWJET.py' ), + File(path + 'DV2011.py'), File(path + 'LHCbCollision11Beam3500GeV-VeloClosed-MagUpRealDataReco14Stripping20r190000000SEMILEPTONICDST.py') ] # Extra options # Appended to the end of the main options to override default settings diff --git a/ganga/Lb2Lcmunu/DaVinci_Ganga_12_md.py b/ganga/Lb2Lcmunu/DaVinci_Ganga_12_md.py index 8daecab..0f7460e 100644 --- a/ganga/Lb2Lcmunu/DaVinci_Ganga_12_md.py +++ b/ganga/Lb2Lcmunu/DaVinci_Ganga_12_md.py @@ -59,6 +59,7 @@ appOpts = j.application.user_release_area + '/DaVinci_' + j.application.version + '/Phys/DaVinci/options/' path = '/afs/cern.ch/work/e/egraveri/Analysis/ganga/Lb2Lcmunu/' j.application.optsfile = [ File(path + 'Lb2Lcmunu_S20_data_12_NEWJET.py' ), + File(path + 'DV2012.py'), File(path + 'LHCbCollision12Beam4000GeV-VeloClosed-MagDownRealDataReco14Stripping2090000000SEMILEPTONICDST.py') ] # Extra options # Appended to the end of the main options to override default settings diff --git a/ganga/Lb2Lcmunu/DaVinci_Ganga_12_mu.py b/ganga/Lb2Lcmunu/DaVinci_Ganga_12_mu.py index 92ee847..038c6c7 100644 --- a/ganga/Lb2Lcmunu/DaVinci_Ganga_12_mu.py +++ b/ganga/Lb2Lcmunu/DaVinci_Ganga_12_mu.py @@ -59,6 +59,7 @@ appOpts = j.application.user_release_area + '/DaVinci_' + j.application.version + '/Phys/DaVinci/options/' path = '/afs/cern.ch/work/e/egraveri/Analysis/ganga/Lb2Lcmunu/' j.application.optsfile = [ File(path + 'Lb2Lcmunu_S20_data_12_NEWJET.py' ), + File(path + 'DV2012.py'), File(path + 'LHCbCollision12Beam4000GeV-VeloClosed-MagUpRealDataReco14Stripping2090000000SEMILEPTONICDST.py') ] # Extra options # Appended to the end of the main options to override default settings diff --git a/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_11_NEWJET.py b/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_11_NEWJET.py deleted file mode 100644 index 78c1fa3..0000000 --- a/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_11_NEWJET.py +++ /dev/null @@ -1,249 +0,0 @@ -######################################################################## -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 ) - -########################################################################### - - -#from StandardParticles import StdAllLoosePions - - -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)" - - -''' -################################################################################ -Lb_SLSel = CombineParticles("Lb_SLSel") -Lb_SLSel.Preambulo=JJACUT -Lb_SLSel.Inputs = ["Phys/Lb_SL/Particles","Phys/StdJetsJEC/Particles"] - -Lb_SLSel.DecayDescriptors = ["[H_10 -> Lambda_b0 CELLjet]cc"] -Lb_SLSel.Preambulo = JJACUT - -Lb_SLSel.MotherCut = "(M<15000)" -Lb_SLSel.CombinationCut = "(AM < 15000)&(DR<1.5)" -''' - - -######################################################################## -#decay = "[ B*_s20 -> ^(B- -> ^(J/psi(1S) -> ^mu+ ^mu-) ^K-) ^[pi+]CC]CC" -decay0 = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi+ ^pi-) ^mu- ]CC" -#decay0 = "[H_10 -> ^( B*_s20 -> ^K+ ^(B- -> ^(D0 -> ^K- ^pi+) ^mu-)) ^CELLjet ]CC" -#decay0 = "[H_10 -> ^( Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) ) ^mu- ) ^CELLjet ]CC" -#decay1 = "[H_10 -> ^( B*_s20-> ^K- ^(B- -> ^(D0 -> ^K- ^pi+) ^mu-)) ^CELLjet ]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 = { - # "H_10": "[^H_10 -> (Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ) CELLjet]CC", - "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ]CC", - # "CELLjet": "[H_10 -> (Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ) ^CELLjet]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" -} -Lb_SL_OfflineTree.ToolList = [ - "TupleToolKinematic", - "TupleToolPid", - "TupleToolGeometry", - "TupleToolPrimaries", - "TupleToolTrackInfo", - "TupleToolEventInfo", - "TupleToolRecoStats", - "TupleToolAngles", - "TupleToolNeutrinoReco", - "TupleToolMCBackgroundInfo", - "TupleToolMCTruth", - "TupleToolJets", - 'TupleToolTrigger', - 'TupleToolTISTOS', - 'TupleToolRICHPid', - 'TupleToolDira', - 'TupleToolEventInfo', - 'TupleToolPropertime', - 'TupleToolRecoStats', - 'TupleToolTrackPosition' -] - - -Lb_SL_OfflineTree.addTool( TupleToolTrigger, name='TupleToolTrigger' ) -Lb_SL_OfflineTree.TupleToolTrigger.Verbose = True -Lb_SL_OfflineTree.TupleToolTrigger.TriggerList = trigger_list - - -Lb_SL_OfflineTree.addTool( TupleToolTISTOS, name='TupleToolTISTOS' ) -Lb_SL_OfflineTree.TupleToolTISTOS.Verbose = True -Lb_SL_OfflineTree.TupleToolTISTOS.TriggerList = trigger_list -Lb_SL_OfflineTree.ToolList += [ "TupleToolTISTOS" ] - - -######################################################################## -from Configurables import TupleToolNeutrinoReco -Lb_SL_OfflineTree.addTool( TupleToolNeutrinoReco, name = "TupleToolNeutrinoReco" ) -Lb_SL_OfflineTree.TupleToolNeutrinoReco.Verbose = True -Lb_SL_OfflineTree.TupleToolNeutrinoReco.MotherMass = 5619.5 # MeV -Lb_SL_OfflineTree.TupleToolNeutrinoReco.ExtraName = 'mLb' - -from Configurables import TupleToolKinematic -Lb_SL_OfflineTree.addTool( TupleToolKinematic, name = "TupleToolKinematic" ) -Lb_SL_OfflineTree.TupleToolKinematic.Verbose = True - -from Configurables import TupleToolGeometry -Lb_SL_OfflineTree.addTool( TupleToolGeometry, name = "TupleToolGeometry" ) -Lb_SL_OfflineTree.TupleToolGeometry.Verbose = True - -Lb_SL_OfflineTree.addTool(TupleToolRecoStats, name="TupleToolRecoStats") -Lb_SL_OfflineTree.TupleToolRecoStats.Verbose = True -Lb_SL_OfflineTree.UseLabXSyntax = True -Lb_SL_OfflineTree.RevertToPositiveID = False - -from Configurables import TupleToolTrackIsolation -Lb_SL_OfflineTree.addTupleTool('TupleToolTrackIsolation/TrackIsolation') -Lb_SL_OfflineTree.TrackIsolation.MinConeAngle = 0.5 -Lb_SL_OfflineTree.TrackIsolation.MaxConeAngle = 1.5 -Lb_SL_OfflineTree.TrackIsolation.StepSize = 0.1 -Lb_SL_OfflineTree.TrackIsolation.Verbose = True - - -################################################## -#DaVinci().Input = ([ -#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000002_1.allstreams.dst' -#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000003_1.allstreams.dst', -#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000004_1.allstreams.dst' -#]) -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().DataType = "2011" # Default is "DC06" -DaVinci().Simulation = False -DaVinci().Lumi = True -DaVinci().appendToMainSequence( [ eventNodeKiller ] ) -DaVinci().appendToMainSequence( [ sc.sequence() ] ) -DaVinci().UserAlgorithms = [ HltSelReportsDecoder(), - HltVertexReportsDecoder(), - HltDecReportsDecoder(), - Lc_star, Lb_SL, - Lb_SL_OfflineTree] -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 ) diff --git a/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_12_NEWJET.py b/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_12_NEWJET.py deleted file mode 100644 index ffd4791..0000000 --- a/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_12_NEWJET.py +++ /dev/null @@ -1,249 +0,0 @@ -######################################################################## -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 ) - -########################################################################### - - -#from StandardParticles import StdAllLoosePions - -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)" - - -''' -################################################################################ -Lb_SLSel = CombineParticles("Lb_SLSel") -Lb_SLSel.Preambulo=JJACUT -Lb_SLSel.Inputs = ["Phys/Lb_SL/Particles","Phys/StdJetsJEC/Particles"] - -Lb_SLSel.DecayDescriptors = ["[H_10 -> Lambda_b0 CELLjet]cc"] -Lb_SLSel.Preambulo = JJACUT - -Lb_SLSel.MotherCut = "(M<15000)" -Lb_SLSel.CombinationCut = "(AM < 15000)&(DR<1.5)" -''' - - -######################################################################## -#decay = "[ B*_s20 -> ^(B- -> ^(J/psi(1S) -> ^mu+ ^mu-) ^K-) ^[pi+]CC]CC" -decay0 = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi+ ^pi-) ^mu- ]CC" -#decay0 = "[H_10 -> ^( B*_s20 -> ^K+ ^(B- -> ^(D0 -> ^K- ^pi+) ^mu-)) ^CELLjet ]CC" -#decay0 = "[H_10 -> ^( Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) ) ^mu- ) ^CELLjet ]CC" -#decay1 = "[H_10 -> ^( B*_s20-> ^K- ^(B- -> ^(D0 -> ^K- ^pi+) ^mu-)) ^CELLjet ]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 = { - # "H_10": "[^H_10 -> (Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ) CELLjet]CC", - "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ]CC", - # "CELLjet": "[H_10 -> (Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ) ^CELLjet]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" -} - -Lb_SL_OfflineTree.ToolList = [ - "TupleToolKinematic", - "TupleToolPid", - "TupleToolGeometry", - "TupleToolPrimaries", - "TupleToolTrackInfo", - "TupleToolEventInfo", - "TupleToolRecoStats", - "TupleToolAngles", - "TupleToolNeutrinoReco", - "TupleToolMCBackgroundInfo", - "TupleToolMCTruth", - "TupleToolJets", - 'TupleToolTrigger', - 'TupleToolTISTOS', - 'TupleToolRICHPid', - 'TupleToolDira', - 'TupleToolEventInfo', - 'TupleToolPropertime', - 'TupleToolRecoStats', - 'TupleToolTrackPosition' -] - - -Lb_SL_OfflineTree.addTool( TupleToolTrigger, name='TupleToolTrigger' ) -Lb_SL_OfflineTree.TupleToolTrigger.Verbose = True -Lb_SL_OfflineTree.TupleToolTrigger.TriggerList = trigger_list - - -Lb_SL_OfflineTree.addTool( TupleToolTISTOS, name='TupleToolTISTOS' ) -Lb_SL_OfflineTree.TupleToolTISTOS.Verbose = True -Lb_SL_OfflineTree.TupleToolTISTOS.TriggerList = trigger_list -Lb_SL_OfflineTree.ToolList += [ "TupleToolTISTOS" ] - - -######################################################################## -from Configurables import TupleToolNeutrinoReco -Lb_SL_OfflineTree.addTool( TupleToolNeutrinoReco, name = "TupleToolNeutrinoReco" ) -Lb_SL_OfflineTree.TupleToolNeutrinoReco.Verbose = True -Lb_SL_OfflineTree.TupleToolNeutrinoReco.MotherMass = 5619.5 # MeV -Lb_SL_OfflineTree.TupleToolNeutrinoReco.ExtraName = 'mLb' - -from Configurables import TupleToolKinematic -Lb_SL_OfflineTree.addTool( TupleToolKinematic, name = "TupleToolKinematic" ) -Lb_SL_OfflineTree.TupleToolKinematic.Verbose = True - -from Configurables import TupleToolGeometry -Lb_SL_OfflineTree.addTool( TupleToolGeometry, name = "TupleToolGeometry" ) -Lb_SL_OfflineTree.TupleToolGeometry.Verbose = True - -Lb_SL_OfflineTree.addTool(TupleToolRecoStats, name="TupleToolRecoStats") -Lb_SL_OfflineTree.TupleToolRecoStats.Verbose = True -Lb_SL_OfflineTree.UseLabXSyntax = True -Lb_SL_OfflineTree.RevertToPositiveID = False - -from Configurables import TupleToolTrackIsolation -Lb_SL_OfflineTree.addTupleTool('TupleToolTrackIsolation/TrackIsolation') -Lb_SL_OfflineTree.TrackIsolation.MinConeAngle = 0.5 -Lb_SL_OfflineTree.TrackIsolation.MaxConeAngle = 1.5 -Lb_SL_OfflineTree.TrackIsolation.StepSize = 0.1 -Lb_SL_OfflineTree.TrackIsolation.Verbose = True - - -################################################## -#DaVinci().Input = ([ - #"DATAFILE='PFN:00021317_00001395_1.semileptonic.dst' TYP='POOL_ROOTTREE' OPT='READ'" - #'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000003_1.allstreams.dst', - #'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000004_1.allstreams.dst' -#]) -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().DataType = "2012" # Default is "DC06" -DaVinci().Simulation = False -DaVinci().Lumi = True -DaVinci().appendToMainSequence( [ eventNodeKiller ] ) -DaVinci().appendToMainSequence( [ sc.sequence() ] ) -DaVinci().UserAlgorithms = [ HltSelReportsDecoder(), - HltVertexReportsDecoder(), - HltDecReportsDecoder(), - Lc_star, Lb_SL, - Lb_SL_OfflineTree] -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 ) diff --git a/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_NEWJET.py b/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_NEWJET.py new file mode 100644 index 0000000..c9dcfd6 --- /dev/null +++ b/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_NEWJET.py @@ -0,0 +1,248 @@ +######################################################################## +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 ) + +########################################################################### + + +#from StandardParticles import StdAllLoosePions + + +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)" + + +''' +################################################################################ +Lb_SLSel = CombineParticles("Lb_SLSel") +Lb_SLSel.Preambulo=JJACUT +Lb_SLSel.Inputs = ["Phys/Lb_SL/Particles","Phys/StdJetsJEC/Particles"] + +Lb_SLSel.DecayDescriptors = ["[H_10 -> Lambda_b0 CELLjet]cc"] +Lb_SLSel.Preambulo = JJACUT + +Lb_SLSel.MotherCut = "(M<15000)" +Lb_SLSel.CombinationCut = "(AM < 15000)&(DR<1.5)" +''' + + +######################################################################## +#decay = "[ B*_s20 -> ^(B- -> ^(J/psi(1S) -> ^mu+ ^mu-) ^K-) ^[pi+]CC]CC" +decay0 = "[Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> ^K- ^p+ ^pi+ ) ^pi+ ^pi-) ^mu- ]CC" +#decay0 = "[H_10 -> ^( B*_s20 -> ^K+ ^(B- -> ^(D0 -> ^K- ^pi+) ^mu-)) ^CELLjet ]CC" +#decay0 = "[H_10 -> ^( Lambda_b0 -> ^(Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) ) ^mu- ) ^CELLjet ]CC" +#decay1 = "[H_10 -> ^( B*_s20-> ^K- ^(B- -> ^(D0 -> ^K- ^pi+) ^mu-)) ^CELLjet ]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 = { + # "H_10": "[^H_10 -> (Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ) CELLjet]CC", + "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ]CC", + # "CELLjet": "[H_10 -> (Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu- ) ^CELLjet]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" +} +Lb_SL_OfflineTree.ToolList = [ + "TupleToolKinematic", + "TupleToolPid", + "TupleToolGeometry", + "TupleToolPrimaries", + "TupleToolTrackInfo", + "TupleToolEventInfo", + "TupleToolRecoStats", + "TupleToolAngles", + "TupleToolNeutrinoReco", + "TupleToolMCBackgroundInfo", + "TupleToolMCTruth", + "TupleToolJets", + 'TupleToolTrigger', + 'TupleToolTISTOS', + 'TupleToolRICHPid', + 'TupleToolDira', + 'TupleToolEventInfo', + 'TupleToolPropertime', + 'TupleToolRecoStats', + 'TupleToolTrackPosition' +] + + +Lb_SL_OfflineTree.addTool( TupleToolTrigger, name='TupleToolTrigger' ) +Lb_SL_OfflineTree.TupleToolTrigger.Verbose = True +Lb_SL_OfflineTree.TupleToolTrigger.TriggerList = trigger_list + + +Lb_SL_OfflineTree.addTool( TupleToolTISTOS, name='TupleToolTISTOS' ) +Lb_SL_OfflineTree.TupleToolTISTOS.Verbose = True +Lb_SL_OfflineTree.TupleToolTISTOS.TriggerList = trigger_list +Lb_SL_OfflineTree.ToolList += [ "TupleToolTISTOS" ] + + +######################################################################## +from Configurables import TupleToolNeutrinoReco +Lb_SL_OfflineTree.addTool( TupleToolNeutrinoReco, name = "TupleToolNeutrinoReco" ) +Lb_SL_OfflineTree.TupleToolNeutrinoReco.Verbose = True +Lb_SL_OfflineTree.TupleToolNeutrinoReco.MotherMass = 5619.5 # MeV +Lb_SL_OfflineTree.TupleToolNeutrinoReco.ExtraName = 'mLb' + +from Configurables import TupleToolKinematic +Lb_SL_OfflineTree.addTool( TupleToolKinematic, name = "TupleToolKinematic" ) +Lb_SL_OfflineTree.TupleToolKinematic.Verbose = True + +from Configurables import TupleToolGeometry +Lb_SL_OfflineTree.addTool( TupleToolGeometry, name = "TupleToolGeometry" ) +Lb_SL_OfflineTree.TupleToolGeometry.Verbose = True + +Lb_SL_OfflineTree.addTool(TupleToolRecoStats, name="TupleToolRecoStats") +Lb_SL_OfflineTree.TupleToolRecoStats.Verbose = True +Lb_SL_OfflineTree.UseLabXSyntax = True +Lb_SL_OfflineTree.RevertToPositiveID = False + +from Configurables import TupleToolTrackIsolation +Lb_SL_OfflineTree.addTupleTool('TupleToolTrackIsolation/TrackIsolation') +Lb_SL_OfflineTree.TrackIsolation.MinConeAngle = 0.5 +Lb_SL_OfflineTree.TrackIsolation.MaxConeAngle = 1.5 +Lb_SL_OfflineTree.TrackIsolation.StepSize = 0.1 +Lb_SL_OfflineTree.TrackIsolation.Verbose = True + + +################################################## +#DaVinci().Input = ([ +#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000002_1.allstreams.dst' +#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000003_1.allstreams.dst', +#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000004_1.allstreams.dst' +#]) +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(), + Lc_star, Lb_SL, + Lb_SL_OfflineTree] +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 ) diff --git a/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_NEWJET_1pi.py b/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_NEWJET_1pi.py new file mode 100644 index 0000000..a239110 --- /dev/null +++ b/ganga/Lb2Lcmunu/Lb2Lcmunu_S20_data_NEWJET_1pi.py @@ -0,0 +1,406 @@ +######################################################################## +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<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 7.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 ################################################################## +Lc_star1pi0 = CombineParticles("Lc_star1pi0") +Lc_star1pi0.Inputs = ["Phys/StdLooseMergedPi0/Particles", "Phys/Lc2PKPiforB2DMuNuX/Particles"] +Lc_star1pi0.DecayDescriptors = ["[Lambda_c(2595)+ -> Lambda_c+ pi0]cc"] +Lc_star1pi0.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 7.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/StdLooseMergedPi0/Particles", "Phys/Lc2PKPiforB2DMuNuX/Particles", "Phys/StdAllLoosePions/Particles"] +Lc_starpi0pipi.DecayDescriptors = ["[Lambda_c(2595)+ -> Lambda_c+ pi0 pi+ pi-]cc"] +Lc_starpi0pipi.MotherCut = "(M<3000) & (M>2300) & (VFASPF(VCHI2/VDOF) < 7.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 + +for DTT in [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]: + + 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 + +################################################## +#DaVinci().Input = ([ +#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000002_1.allstreams.dst' +#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000003_1.allstreams.dst', +#'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/2012/ALLSTREAMS.DST/00025296/0000/00025296_00000004_1.allstreams.dst' +#]) +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(), + Lc_star, Lb_SL, + Lb_SL_OfflineTree] +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 )