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" } from Configurables import LoKi__Hybrid__EvtTupleTool 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 } # 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="Bd") tuple.Bd.ToolList += ["LoKi::Hybrid::TupleTool/LoKi_LT"] tuple.Bd.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.Bd.addTool(TupleToolDecayTreeFitter()) tuple.Bd.TupleToolDecayTreeFitter.DaughtersToConstrain = [ 421 ] tuple.Bd.ToolList += ["TupleToolDecayTreeFitter"] # PhotonInfo if (hasPhoton == True) & (hasPi0 == True) : tuple.addTool(TupleToolDecay,name="D0Pi0Gamma") tuple.D0Pi0Gamma.ToolList += ["TupleToolPhotonInfo"] # --------------------------- # B02D0Kstar_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 B02D0Kstar_D02KPi_Location = "/Event/Phys/B2DXWithD2hhLine" B02D0Kstar_D02KPi_Data = AutomaticData(Location = B02D0Kstar_D02KPi_Location) from StrippingConf.Configuration import StrippingConf sc = StrippingConf( Streams = [ stream ] ) # MC Decay tree tuple from Configurables import MCDecayTreeTuple B02D0Kstar_D02KPi_MCTuple = MCDecayTreeTuple("B02D0Kstar_D02KPi_MCTuple") B02D0Kstar_D02KPi_MCTuple.Decay ="[[B0]nos -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (^D0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (^D0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (^K*(892)0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (^D0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (^D0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (^K*(892)~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (^D~0 -> ^K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" B02D0Kstar_D02KPi_MCTuple.Branches = { "KstarK" : "[[B0]nos -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"D0K" : "[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> ^K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"KstarPi" : "[[B0]nos -> (K*(892)0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"D0Pi" : "[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ ^pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- ^pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"Kstar" : "[K*(892)0]cc : [[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"D0" : "[D0]cc : [[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" ,"Bd" : "[B0]cc : [[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]nos -> (K*(892)0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma} ) (D0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K+ pi- {,gamma}{,gamma}{,gamma}{,gamma})]cc,[[B0]os -> (K*(892)~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma}) (D~0 -> K- pi+ {,gamma}{,gamma}{,gamma}{,gamma})]cc" } B02D0Kstar_D02KPi_MCTuple.ToolList = [ "MCTupleToolReconstructed" , "MCTupleToolHierarchy" , "MCTupleToolKinematic" ] # Tupling B02D0Kstar_D02KPi from PhysSelPython.Wrappers import AutomaticData, Selection, SelectionSequence, EventSelection from Configurables import FilterDesktop from Configurables import DecayTreeTuple B02D0Kstar_D02KPi_Tuple = DecayTreeTuple("B02D0Kstar_D02KPi_Tuple") B02D0Kstar_D02KPi_Tuple.Decay = "{[B0 -> (^D0 -> ^K- ^pi+) (^K*(892)0 -> ^K+ ^pi-)]cc,[B0 -> (^D~0 -> ^K+ ^pi-) (^K*(892)0 -> ^K+ ^pi-) ]cc}" B02D0Kstar_D02KPi_Tuple.InputLocations = [ "SelB02D0Kstar_D02KPi" ] B02D0Kstar_D02KPi_hasPi0 = False B02D0Kstar_D02KPi_hasPhoton = False B02D0Kstar_D02KPi_Branches = { "KstarK" : "{[B0 -> (D0 -> K- pi+) (K*(892)0 -> ^K+ pi-) ]cc, [B0 -> (D~0 -> K+ pi-) (K*(892)0 -> ^K+ pi-) ]cc}" ,"D0K" : "{[B0 -> (D0 -> ^K- pi+) (K*(892)0 -> K+ pi-) ]cc, [B0 -> (D~0 -> ^K+ pi-) (K*(892)0 -> K+ pi-) ]cc}" ,"KstarPi" : "{[B0 -> (D0 -> K- pi+) (K*(892)0 -> K+ ^pi-) ]cc, [B0 -> (D~0 -> K+ pi-) (K*(892)0 -> K+ ^pi-) ]cc}" ,"D0Pi" : "{[B0 -> (D0 -> K- ^pi+) (K*(892)0 -> K+ pi-) ]cc, [B0 -> (D~0 -> K+ ^pi-) (K*(892)0 -> K+ pi-) ]cc}" ,"Kstar" : "{[B0 -> (D0 -> K- pi+) (^K*(892)0 -> K+ pi-) ]cc, [B0 -> (D~0 -> K+ pi-) (^K*(892)0 -> K+ pi-) ]cc}" ,"D0" : "{[B0 -> (^D0 -> K- pi+) (K*(892)0 -> K+ pi-) ]cc, [B0 -> (^D~0 -> K+ pi-) (K*(892)0 -> K+ pi-) ]cc}" ,"Bd" : "[B0]cc: {[B0 -> (D0 -> K- pi+) (K*(892)0 -> K+ pi-) ]cc,[B0 -> (D~0 -> K+ pi-) (K*(892)0 -> K+ pi-) ]cc}" } fillTuple( B02D0Kstar_D02KPi_Tuple, B02D0Kstar_D02KPi_Branches, B02D0Kstar_D02KPi_hasPi0, B02D0Kstar_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 } B02D0Kstar_D02KPi_Tuple.addTool(TupleToolDecay,name="LokiTool") B02D0Kstar_D02KPi_Tuple.ToolList+=["LoKi::Hybrid::EvtTupleTool/LoKi_Tool_Evt"] B02D0Kstar_D02KPi_Tuple.addTool(LoKi_Tool_Evt) # Filter on Stripping Sequence _B02D0Kstar_D02KPi_Filter = FilterDesktop('_B02D0Kstar_D02KPi_Filter', Code = "ALL" ) SelB02D0Kstar_D02KPi = Selection("SelB02D0Kstar_D02KPi", Algorithm = _B02D0Kstar_D02KPi_Filter, RequiredSelections = [ B02D0Kstar_D02KPi_Data ] ) SeqB02D0Kstar_D02KPi = SelectionSequence( "SeqB02D0Kstar_D02KPi", TopSelection=SelB02D0Kstar_D02KPi ) B02D0Kstar_D02KPi_Sequence = GaudiSequencer("B02D0Kstar_D02KPi_Sequence") B02D0Kstar_D02KPi_Sequence.Members += [ sc.sequence() ] B02D0Kstar_D02KPi_Sequence.Members += [ SeqB02D0Kstar_D02KPi.sequence() ] B02D0Kstar_D02KPi_Sequence.Members += [ B02D0Kstar_D02KPi_Tuple ] seq = GaudiSequencer("seq") seq.ModeOR = 1 seq.IgnoreFilterPassed = True seq.Members += [ B02D0Kstar_D02KPi_MCTuple ] seq.Members += [ B02D0Kstar_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().EvtMax = 100 # Number of events DaVinci().SkipEvents = 0 # Events to skip DaVinci().PrintFreq = 10000 DaVinci().HistogramFile = "DVHistos.root" # Histogram file DaVinci().TupleFile = "DVNtuples.root" # Ntuple DaVinci().UserAlgorithms = [ seq ] # The algorithms # 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"