def fillTuple( tuple, branches, hasPi0, hasPhoton ): from Configurables import DecayTreeTuple, TupleToolDecay from Configurables import TupleToolTrigger, TupleToolTISTOS, TupleToolRecoStats from Configurables import TupleToolAngles, LoKi__Hybrid__TupleTool from Configurables import TupleToolPhotonInfo, TupleToolDecayTreeFitter, TupleToolMCTruth tuple.Branches = branches # Define Trigger list myTriggerListWithPi0 = ["L0HadronDecision","Hlt1L0HadronDecision", "Hlt1SingleHadronDecision", "Hlt1DiHadronDecision", "Hlt1PhotonDecision", "L0GlobalPi0Decision", "L0LocalPi0Decision", "Hlt1L0GlobalPi0Decision", "Hlt1L0LocalPi0Decision", "Hlt1TrackAllL0Decision", "Hlt2TopoOSTF2BodyDecision","Hlt2TopoOSTF3BodyDecision","Hlt2TopoOSTF4BodyDecision" ] myTriggerListWithoutPi0 = ["L0HadronDecision","Hlt1L0HadronDecision", "Hlt1SingleHadronDecision", "Hlt1DiHadronDecision", "Hlt1TrackAllL0Decision", "Hlt2TopoOSTF2BodyDecision","Hlt2TopoOSTF3BodyDecision","Hlt2TopoOSTF4BodyDecision" ] if hasPi0 == True : print 'Trigger list contains pi0s' myTriggerList = myTriggerListWithPi0 else : print 'Trigger list do not contains pi0s' myTriggerList = myTriggerListWithoutPi0 # Trigger tuple.addTool(TupleToolTrigger()) tuple.TupleToolTrigger.Verbose = True # tuple.TupleToolTrigger.FillL0 = True # tuple.TupleToolTrigger.FillHlt = True # tuple.TupleToolTrigger.UseAutomaticTriggerList = True tuple.TupleToolTrigger.TriggerList = myTriggerList # TISTOS tuple.addTool(TupleToolTISTOS()) tuple.TupleToolTISTOS.Verbose=True tuple.TupleToolTISTOS.TriggerList = myTriggerList # RecoStats for filling SpdMult, etc tuple.addTool(TupleToolRecoStats()) tuple.TupleToolRecoStats.Verbose=True # Standard tools tuple.ToolList = [ "TupleToolEventInfo" , "TupleToolGeneration" , "TupleToolGeometry" , "TupleToolKinematic" , "TupleToolPid" , "TupleToolPrimaries" , "TupleToolRecoStats" , "TupleToolTrackInfo" , "TupleToolTISTOS" , "TupleToolTrigger" , "TupleToolMCTruth" , "MCTupleToolEventType" , "MCTupleToolInteractions" , "TupleToolMCBackgroundInfo" ] tuple.addTool(TupleToolMCTruth()) tuple.TupleToolMCTruth.ToolList = [ "MCTupleToolKinematic" , "MCTupleToolHierarchy" , "MCTupleToolDecayType" , "MCTupleToolReconstructed" ] # LoKi variables LoKi_DOCA = LoKi__Hybrid__TupleTool("LoKi_DOCA") LoKi_DOCA.Variables = { "MAXDOCA" : "LoKi.Particles.PFunA(AMAXDOCA('LoKi::TrgDistanceCalculator'))", "MINDOCA" : "LoKi.Particles.PFunA(AMINDOCA('LoKi::TrgDistanceCalculator'))", "DOCA12" : "LoKi.Particles.PFunA(ADOCA(1,2))" } LoKi_LT = LoKi__Hybrid__TupleTool("LoKi_LT") LoKi_LT.Variables = { "LT_FITCHI2" : "BPVLTFITCHI2('PropertimeFitter/properTime:PUBLIC')", "LT" : "BPVLTIME('PropertimeFitter/properTime:PUBLIC')", "LT_CHI2" : "BPVLTCHI2('PropertimeFitter/properTime:PUBLIC')" } from Configurables import LoKi__Hybrid__TupleTool, TupleToolDecay LoKi_tr=LoKi__Hybrid__TupleTool("LoKi_tr") LoKi_tr.Variables = { "LOKI_P" : "P" , "LOKI_PT" : "PT" , "LOKI_ETA": "ETA" } # DOCA tuple.addTool(TupleToolDecay,name="Kstar") tuple.Kstar.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_DOCA"] tuple.Kstar.addTool(LoKi_DOCA) tuple.addTool(TupleToolDecay,name="D0") tuple.D0.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_DOCA"] tuple.D0.addTool(LoKi_DOCA) # LifeTime tuple.addTool(TupleToolDecay,name="Bs") tuple.Bs.ToolList += ["LoKi::Hybrid::TupleTool/LoKi_LT"] tuple.Bs.addTool(LoKi_LT) # Loki track p, pt, eta tuple.addTool(TupleToolDecay,name="KstarK") tuple.KstarK.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_tr"] tuple.KstarK.addTool(LoKi_tr) tuple.addTool(TupleToolDecay,name="KstarPi") tuple.KstarPi.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_tr"] tuple.KstarPi.addTool(LoKi_tr) tuple.addTool(TupleToolDecay,name="D0K") tuple.D0K.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_tr"] tuple.D0K.addTool(LoKi_tr) tuple.addTool(TupleToolDecay,name="D0Pi") tuple.D0Pi.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_tr"] tuple.D0Pi.addTool(LoKi_tr) # Helicity tuple.addTool(TupleToolDecay,name="KstarK") tuple.KstarK.ToolList += ["TupleToolAngles"] # DecayTreeFitter if (hasPi0 == False) | (hasPhoton == True) : tuple.Bs.addTool(TupleToolDecayTreeFitter()) tuple.Bs.TupleToolDecayTreeFitter.DaughtersToConstrain = [ 421 ] tuple.Bs.ToolList += ["TupleToolDecayTreeFitter"] # PhotonInfo if (hasPhoton == True) & (hasPi0 == True) : tuple.addTool(TupleToolDecay,name="D0Pi0Gamma") tuple.D0Pi0Gamma.ToolList += ["TupleToolPhotonInfo"] # --------------------------- # B_s02D0Kstar_D02KPi sequence # --------------------------- from Gaudi.Configuration import * importOptions("$STDOPTS/PreloadUnits.opts") # do the stripping on MC data from StrippingConf.StrippingStream import StrippingStream from StrippingSelections.StrippingB2DX import B2DXLines stream = StrippingStream("Bhadron") stream.appendLines( B2DXLines().lines ) from PhysSelPython.Wrappers import AutomaticData B_s02D0Kstar_D02KPi_Location = "/Event/Phys/B2DXWithD2hhLine" B_s02D0Kstar_D02KPi_Data = AutomaticData(Location = B_s02D0Kstar_D02KPi_Location) from StrippingConf.Configuration import StrippingConf sc = StrippingConf( Streams = [ stream ] ) # MC Decay tree tuple from Configurables import MCDecayTreeTuple B_s02D0Kstar_D02KPi_MCTuple = MCDecayTreeTuple("B_s02D0Kstar_D02KPi_MCTuple") #B_s02D0Kstar_D02KPi_MCTuple.Decay ="[[B_s0]nos -> (D0 -> K- pi+) (K*(892)~0 -> K- pi+)]cc, [[B_s0]os -> (D~0 -> K+ pi-) (K*(892)0 -> K+ pi-)]cc" B_s02D0Kstar_D02KPi_MCTuple.Decay ="[[B_s0]nos -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (^D0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (^D0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (^D0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (^D0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" B_s02D0Kstar_D02KPi_MCTuple.Branches = { "KstarK" : "[[B_s0]nos -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"D0K" : "[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"KstarPi" : "[[B_s0]nos -> (K*(892)~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"D0Pi" : "[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"Kstar" : "[K*(892)0]cc : [[B_s0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"D0" : "[D0]cc : [[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"Bs" : "[B_s0]cc : [[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]nos -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B_s0]os -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" } B_s02D0Kstar_D02KPi_MCTuple.ToolList = [ "MCTupleToolReconstructed" , "MCTupleToolHierarchy" , "MCTupleToolKinematic" ] # Tupling B_s02D0Kstar_D02KPi from PhysSelPython.Wrappers import AutomaticData, Selection, SelectionSequence, EventSelection from Configurables import FilterDesktop from Configurables import DecayTreeTuple B_s02D0Kstar_D02KPi_Tuple = DecayTreeTuple("B_s02D0Kstar_D02KPi_Tuple") B_s02D0Kstar_D02KPi_Tuple.Decay = "{[B~0 -> (^D0 -> ^K- ^pi+) (^K*(892)~0 -> ^K- ^pi+)]cc,[B0 -> (^D~0 -> ^K+ ^pi-) (^K*(892)~0 -> ^K- ^pi+) ]cc}" B_s02D0Kstar_D02KPi_Tuple.InputLocations = [ "SelB_s02D0Kstar_D02KPi" ] B_s02D0Kstar_D02KPi_hasPi0 = False B_s02D0Kstar_D02KPi_hasPhoton = False B_s02D0Kstar_D02KPi_Branches = { "KstarK" : "{[B~0 -> (D0 -> K- pi+) (K*(892)~0 -> ^K- pi+) ]cc, [B~0 -> (D~0 -> K+ pi-) (K*(892)~0 -> ^K- pi+) ]cc}" ,"D0K" : "{[B~0 -> (D0 -> ^K- pi+) (K*(892)~0 -> K- pi+) ]cc, [B~0 -> (D~0 -> ^K+ pi-) (K*(892)~0 -> K- pi+) ]cc}" ,"KstarPi" : "{[B~0 -> (D0 -> K- pi+) (K*(892)~0 -> K- ^pi+) ]cc, [B~0 -> (D~0 -> K+ pi-) (K*(892)~0 -> K- ^pi+) ]cc}" ,"D0Pi" : "{[B~0 -> (D0 -> K- ^pi+) (K*(892)~0 -> K- pi+) ]cc, [B~0 -> (D~0 -> K+ ^pi-) (K*(892)~0 -> K- pi+) ]cc}" ,"Kstar" : "{[B~0 -> (D0 -> K- pi+) (^K*(892)~0 -> K- pi+) ]cc, [B~0 -> (D~0 -> K+ pi-) (^K*(892)~0 -> K- pi+) ]cc}" ,"D0" : "{[B~0 -> (^D0 -> K- pi+) (K*(892)~0 -> K- pi+) ]cc, [B~0 -> (^D~0 -> K+ pi-) (K*(892)~0 -> K- pi+) ]cc}" ,"Bs" : "[B~0]cc: {[B~0 -> (D0 -> K- pi+) (K*(892)~0 -> K- pi+) ]cc,[B~0 -> (D~0 -> K+ pi-) (K*(892)~0 -> K- pi+) ]cc}" } fillTuple( B_s02D0Kstar_D02KPi_Tuple, B_s02D0Kstar_D02KPi_Branches, B_s02D0Kstar_D02KPi_hasPi0, B_s02D0Kstar_D02KPi_hasPhoton ) # extra variables from Configurables import LoKi__Hybrid__EvtTupleTool from Configurables import LoKi__Hybrid__TupleTool, TupleToolDecay LoKi_Tool_Evt = LoKi__Hybrid__EvtTupleTool("LoKi_Tool_Evt") LoKi_Tool_Evt.VOID_Variables = { "nTracks" : "CONTAINS ('Rec/Track/Best') " , ## total number of tracks "nLong" : "TrSOURCE('/Event/Rec/Track/Best', TrLONG) >> TrSIZE" , ##number of long tracks } B_s02D0Kstar_D02KPi_Tuple.addTool(TupleToolDecay,name="LokiTool") B_s02D0Kstar_D02KPi_Tuple.ToolList+=["LoKi::Hybrid::EvtTupleTool/LoKi_Tool_Evt"] B_s02D0Kstar_D02KPi_Tuple.addTool(LoKi_Tool_Evt) # Filter on Stripping Sequence _B_s02D0Kstar_D02KPi_Filter = FilterDesktop('_B_s02D0Kstar_D02KPi_Filter', Code = "ALL" ) SelB_s02D0Kstar_D02KPi = Selection("SelB_s02D0Kstar_D02KPi", Algorithm = _B_s02D0Kstar_D02KPi_Filter, RequiredSelections = [ B_s02D0Kstar_D02KPi_Data ] ) SeqB_s02D0Kstar_D02KPi = SelectionSequence( "SeqB_s02D0Kstar_D02KPi", TopSelection=SelB_s02D0Kstar_D02KPi ) B_s02D0Kstar_D02KPi_Sequence = GaudiSequencer("B_s02D0Kstar_D02KPi_Sequence") B_s02D0Kstar_D02KPi_Sequence.Members += [ sc.sequence() ] B_s02D0Kstar_D02KPi_Sequence.Members += [ SeqB_s02D0Kstar_D02KPi.sequence() ] B_s02D0Kstar_D02KPi_Sequence.Members += [ B_s02D0Kstar_D02KPi_Tuple ] seq = GaudiSequencer("seq") seq.ModeOR = 1 seq.IgnoreFilterPassed = True seq.Members += [ B_s02D0Kstar_D02KPi_MCTuple ] seq.Members += [ B_s02D0Kstar_D02KPi_Sequence ] ######################################################################## # # Standard configuration # from Configurables import DaVinci, LHCbApp LHCbApp().DDDBtag = "head-20100407" LHCbApp().CondDBtag = "sim-20100429-vc-md100" DaVinci().DataType = "2010" DaVinci().Simulation = True DaVinci().EvtMax = -1 # Number of events DaVinci().SkipEvents = 0 # Events to skip DaVinci().PrintFreq = 1 DaVinci().HistogramFile = "DVHistos.root" # Histogram file DaVinci().TupleFile = "DVNtuples.root" # Ntuple DaVinci().UserAlgorithms = [ seq ] # The algorithms #DaVinci().Input = [ "DATAFILE='PFN:/home/hep/nraja/12504069/00006854_00000003_1.dst' TYP='POOL_ROOTTREE' OPT='READ'" ] # DaVinci().MainOptions = "" # None ######################################################################## # HLT DaVinci().Hlt = True DaVinci().HltThresholdSettings = 'Physics_HighNu_3000Vis_200L0_20Hlt1_CoreHlt2_Sep10' ## Hlt1 for MC09 DaVinci().ReplaceL0BanksWithEmulated = True ## enable if you want to rerun L0 DaVinci().OverruleL0TCK = '0x0029' ######################################################################## MessageSvc().Format = "% F%60W%S%7W%R%T %0W%M"