From fe388712b7230e0b1cda633913e8865a459a4467 Mon Sep 17 00:00:00 2001 From: chengw <cheng.wang@cern.ch> Date: Sat, 15 Mar 2025 13:05:51 +0800 Subject: [PATCH 1/3] <The Ap for Run2 MC of Xi_c+ -> p KK and p pi+ pi-> --- run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py | 243 +++++++++++++++++++++ run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py | 244 ++++++++++++++++++++++ run2_MC_XicpTopKK_ppipi/info.yaml | 30 +++ 3 files changed, 517 insertions(+) create mode 100644 run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py create mode 100644 run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py create mode 100644 run2_MC_XicpTopKK_ppipi/info.yaml diff --git a/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py b/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py new file mode 100644 index 0000000000..4bbe6f3c81 --- /dev/null +++ b/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py @@ -0,0 +1,243 @@ +import GaudiKernel.SystemOfUnits as Units +from GaudiKernel.SystemOfUnits import GeV, MeV, picosecond, mm, mrad +from Gaudi.Configuration import * + +from Configurables import DaVinci +from Configurables import CombineParticles, DecayTreeTuple +from Configurables import TupleToolDecay, TupleToolPrimaries +from Configurables import TupleToolGeometry, TupleToolKinematic, TupleToolPropertime, TupleToolPrimaries, TupleToolPid, TupleToolEventInfo, TupleToolTrackInfo, TupleToolRecoStats, TupleToolTrigger +from Configurables import TupleToolTISTOS, L0TriggerTisTos, TriggerTisTos +from Configurables import LoKi__Hybrid__TupleTool +from Configurables import LoKi__Hybrid__TupleTool as LoKiTupleTool +from Configurables import FilterDesktop +from Configurables import CondDB, CheckPV, TupleToolDecayTreeFitter +from Configurables import FilterInTrees + +from DecayTreeTuple.Configuration import * +from PhysConf.Selections import CombineSelection, FilterSelection, RebuildSelection +from PhysConf.Selections import SelectionSequence, StrippingSelection +from PhysSelPython.Wrappers import AutomaticData, Selection, MergedSelection +from PhysSelPython.Wrappers import SelectionSequence, DataOnDemand, TupleSelection + +from Configurables import TupleToolMCBackgroundInfo, TupleToolMCTruth +from TeslaTools import TeslaTruthUtils + +isSimulation = DaVinci().Simulation +#tool list +TupleToolList = [ + "TupleToolGeometry", + "TupleToolKinematic", + "TupleToolPrimaries", + "TupleToolPid", + "TupleToolEventInfo", + "TupleToolTrackInfo", + "TupleToolBremInfo", + "TupleToolRecoStats", + "TupleToolTISTOS", + "TupleToolTrigger", + "TupleToolAngles", + "TupleToolPropertime", + "TupleToolTrackPosition", + "TupleToolANNPID" + ] + +#trigger list +TriggerList = [ + # L0 + "L0ElectronDecision", + "L0HadronDecision", + "L0MuonDecision", + "L0MuonLooseDecision", + "L0MuonEWDecision", + "L0MuonHighDecision", + "L0PhysDecision", + "L0PhotonDecision", + "L0DiMuonDecision", + "L0GlobalDecision", + "L0ElectronHiDecision", + "L0DiElectronDecision", + "L0DiHadronDecision", + # HLT1 + "Hlt1TrackAllL0Decision", + "Hlt1TrackPhotonDecision", + "Hlt1GlobalDecision", + "Hlt1TrackMVADecision", + "Hlt1TwoTrackMVADecision", + "Hlt1TrackMVALooseDecision", + "Hlt1TwoTrackMVALooseDecision", + "Hlt1L0AnyDecision", + "Hlt1TrackMVATightDecision", + "Hlt1TwoTrackMVATightDecision", + + 'Hlt1TrackMuonDecision', + 'Hlt1TrackMuonMVADecision', + 'Hlt1DiMuonHighMassDecision', + 'Hlt1DiMuonLowMassDecision', + 'Hlt1SingleMuonHighPTDecision', + 'Hlt1DiMuonNoL0Decision', + 'Hlt1CalibMuonAlignJpsiDecision', + 'Hlt1DiMuonNoIPDecision', + 'Hlt1DiMuonNoIPSSDecision', + 'Hlt1LowMultMuonDecision', + 'Hlt1MultiDiMuonNoIPDecision', + 'Hlt1MultiMuonNoL0Decision', + 'Hlt1SingleMuonHighPTNoMUIDDecision', + 'Hlt1SingleMuonNoIPDecision', + # HLT2 + 'Hlt2Topo2BodyDecision', + 'Hlt2TopoE2BodyDecision', + "Hlt2Topo3BodyDecision", + "Hlt2Topo4BodyDecision", + "Hlt2IncPhiDecision", + "Hlt2Topo.*Decision", + "Hlt2PhysDecision", + ] + +################################################################################ +LoKi_particle = LoKi__Hybrid__TupleTool("LoKi_particle") +LoKi_particle.Variables = { + "Y" : "Y", + "ETA" : "ETA", + "PHI" : "PHI", + "LOKI_FDCHI2" : "BPVVDCHI2", + "LOKI_FDS" : "BPVDLS", + "LOKI_DIRA" : "BPVDIRA", + "LV01" : "LV01", + "LV02" : "LV02", + "DOCA" : "DOCA(1,2)", + "LOKI_BPVCORRM" : "BPVCORRM", + "LOKI_IPCHI2" : "BPVIPCHI2()", + "LOKI_BPVLTIME" : "BPVLTIME()" +} +LoKi_Xicp2PHH=LoKi__Hybrid__TupleTool("LoKi_Xicp2PHH") +LoKi_Xicp2PHH.Variables = { + 'DOCACHI2_p_h1' : 'DOCACHI2(1,2)', + 'DOCACHI2_p_h2' : 'DOCACHI2(1,3)', + 'DOCACHI2_h1_h2' : 'DOCACHI2(2,3)', + 'DOCA_p_h1' : 'DOCA(1,2)', + 'DOCA_p_h2' : 'DOCA(1,3)', + 'DOCA_h1_h2' : 'DOCA(2,3)', + 'MASS_p_h1' : 'MASS(1,2)', + 'MASS_p_h2' : 'MASS(1,3)', + 'MASS_h1_h2' : 'MASS(2,3)', + } + + +################################################################################ +line_XicpToPKK = "Xic2PHHXicp2PKKLine" + +from PhysConf.Selections import AutomaticData +Input_XicpToPKK = AutomaticData( Location = "Phys/{0}/Particles".format(line_XicpToPKK)) + +from PhysConf.Selections import TupleSelection +XicpToPKK_decay = '[Xi_c+ -> ^p+ ^K+ ^K-]CC' +XicpToPKK_branches = { + "Xicp" : "^([Xi_c+ -> p+ K+ K-]CC)", + "proton" : "[Xi_c+ -> ^p+ K+ K-]CC", + "K1" : "[Xi_c+ -> p+ ^K+ K-]CC", + "K2" : "[Xi_c+ -> p+ K+ ^K-]CC", + } + +Tuple_XicpToPKK = TupleSelection("Tuple_XicpToPKK", [ Input_XicpToPKK ], Decay = XicpToPKK_decay, Branches = XicpToPKK_branches, ToolList = [] ) +################################################################################ +for dtt in [Tuple_XicpToPKK]: + # decay tree fitter (DTF) + dtt.addTool(TupleToolDecay, name="Xicp") + dtt.addTool(TupleToolDecay, name="proton") + dtt.addTool(TupleToolDecay, name="K1") + dtt.addTool(TupleToolDecay, name="K2") + + #LoKi VARIABLES + for particle in [dtt.Xicp,dtt.proton,dtt.K1,dtt.K2]: + particle.addTool(LoKi_particle) + particle.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_particle"] + dtt.Xicp.addTool(LoKi_Xicp2PHH) + dtt.Xicp.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_Xicp2PHH"] + #constrain: PV and Xicp + dtt.Xicp.addTupleTool('TupleToolDecayTreeFitter/DTF') + dtt.Xicp.DTF.constrainToOriginVertex = True + dtt.Xicp.DTF.Verbose = True + dtt.Xicp.DTF.daughtersToConstrain = ["Xi_c+"] + dtt.Xicp.DTF.UpdateDaughters = True + #constrain: PV + dtt.Xicp.addTupleTool('TupleToolDecayTreeFitter/DTFonlyPV') + dtt.Xicp.DTFonlyPV.constrainToOriginVertex = True + dtt.Xicp.DTFonlyPV.Verbose = True + dtt.Xicp.DTFonlyPV.UpdateDaughters = True + #DTF with Momentum Scaling only + dtt.Xicp.addTupleTool('TupleToolDecayTreeFitter/DTFonlyMS') + dtt.Xicp.DTFonlyMS.Verbose = True + dtt.Xicp.DTFonlyMS.UpdateDaughters = True +################################################################################ + +for dtt in [Tuple_XicpToPKK]: + + dtt.TupleName = "ntp" + dtt.ToolList = TupleToolList + + if isSimulation: + dtt.ToolList += [ + "TupleToolMCTruth", + "TupleToolMCBackgroundInfo" + ] + dtt.TupleToolMCTruth.ToolList += ["MCTupleToolHierarchy"] + +####################################### TISTOS ################################## + dtt.TupleToolTrigger.VerboseL0 = True + dtt.TupleToolTrigger.VerboseHlt1 = True + dtt.TupleToolTrigger.VerboseHlt2 = True + dtt.TupleToolTrigger.FillHlt2 = False + dtt.TupleToolTrigger.TriggerList = TriggerList + + dtt.TupleToolTISTOS.addTool(L0TriggerTisTos()) + dtt.TupleToolTISTOS.addTool(TriggerTisTos()) + dtt.TupleToolTISTOS.VerboseL0 = True + dtt.TupleToolTISTOS.VerboseHlt1 = True + dtt.TupleToolTISTOS.VerboseHlt2 = True + dtt.TupleToolTISTOS.FillHlt2 = False + dtt.TupleToolTISTOS.TriggerList = TriggerList + +from Configurables import MCDecayTreeTuple +MCTuple = MCDecayTreeTuple("MCTruth") +MCTuple.Decay = "^[Xi_c+ => ^p+ ^K+ ^K-]CC" +MCTuple.addBranches({ + "Xicp" : "^([ Xi_c+ ==> p+ K+ K-]CC)", + "proton" : "[ Xi_c+ ==> ^p+ K+ K-]CC", + "K1" : "[ Xi_c+ ==> p+ ^K+ K-]CC", + "K2" : "[ Xi_c+ ==> p+ K+ ^K-]CC", + }) +MCTuple.ToolList += [ + "MCTupleToolKinematic" + ,"MCTupleToolPrimaries" + ,"MCTupleToolAngles" + ,"MCTupleToolHierarchy" + ,"TupleToolRecoStats" + ,"MCTupleToolDecayType" + ,"MCTupleToolPID" + ,"MCTupleToolPrompt" + ] + + +################################################################################ +from PhysConf.Selections import SelectionSequence +seq_XicpToPKK = SelectionSequence('seq_XicpToPKK',Tuple_XicpToPKK).sequence() + +from Configurables import DataOnDemandSvc +dod = DataOnDemandSvc() + +from Configurables import Gaudi__DataLink as Link +rawEvt1 = Link ( 'LinkRawEvent1', + What = '/Event/DAQ/RawEvent' , + Target = '/Event/Trigger/RawEvent' ) +dod.AlgMap [ rawEvt1 . Target ] = rawEvt1 +################################################################################ +DaVinci( + InputType = 'MDST' , + Lumi = not isSimulation, + Simulation = isSimulation, + Turbo = False, + UserAlgorithms = [seq_XicpToPKK,MCTuple], + #RootInTES = "ALLSTREAMS" + RootInTES = "/Event/AllStreams" + ) + diff --git a/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py b/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py new file mode 100644 index 0000000000..d1bb4dd30e --- /dev/null +++ b/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py @@ -0,0 +1,244 @@ +import GaudiKernel.SystemOfUnits as Units +from GaudiKernel.SystemOfUnits import GeV, MeV, picosecond, mm, mrad +from Gaudi.Configuration import * + +from Configurables import DaVinci +from Configurables import CombineParticles, DecayTreeTuple +from Configurables import TupleToolDecay, TupleToolPrimaries +from Configurables import TupleToolGeometry, TupleToolKinematic, TupleToolPropertime, TupleToolPrimaries, TupleToolPid, TupleToolEventInfo, TupleToolTrackInfo, TupleToolRecoStats, TupleToolTrigger +from Configurables import TupleToolTISTOS, L0TriggerTisTos, TriggerTisTos +from Configurables import LoKi__Hybrid__TupleTool +from Configurables import LoKi__Hybrid__TupleTool as LoKiTupleTool +from Configurables import FilterDesktop +from Configurables import CondDB, CheckPV, TupleToolDecayTreeFitter +from Configurables import FilterInTrees + +from DecayTreeTuple.Configuration import * +from PhysConf.Selections import CombineSelection, FilterSelection, RebuildSelection +from PhysConf.Selections import SelectionSequence, StrippingSelection +from PhysSelPython.Wrappers import AutomaticData, Selection, MergedSelection +from PhysSelPython.Wrappers import SelectionSequence, DataOnDemand, TupleSelection + +from Configurables import TupleToolMCBackgroundInfo, TupleToolMCTruth +from TeslaTools import TeslaTruthUtils + +isSimulation = DaVinci().Simulation +#tool list +TupleToolList = [ + "TupleToolGeometry", + "TupleToolKinematic", + "TupleToolPrimaries", + "TupleToolPid", + "TupleToolEventInfo", + "TupleToolTrackInfo", + "TupleToolBremInfo", + "TupleToolRecoStats", + "TupleToolTISTOS", + "TupleToolTrigger", + "TupleToolAngles", + "TupleToolPropertime", + "TupleToolTrackPosition", + "TupleToolANNPID" + ] + +#trigger list +TriggerList = [ + # L0 + "L0ElectronDecision", + "L0HadronDecision", + "L0MuonDecision", + "L0MuonLooseDecision", + "L0MuonEWDecision", + "L0MuonHighDecision", + "L0PhysDecision", + "L0PhotonDecision", + "L0DiMuonDecision", + "L0GlobalDecision", + "L0ElectronHiDecision", + "L0DiElectronDecision", + "L0DiHadronDecision", + # HLT1 + "Hlt1TrackAllL0Decision", + "Hlt1TrackPhotonDecision", + "Hlt1GlobalDecision", + "Hlt1TrackMVADecision", + "Hlt1TwoTrackMVADecision", + "Hlt1TrackMVALooseDecision", + "Hlt1TwoTrackMVALooseDecision", + "Hlt1L0AnyDecision", + "Hlt1TrackMVATightDecision", + "Hlt1TwoTrackMVATightDecision", + + 'Hlt1TrackMuonDecision', + 'Hlt1TrackMuonMVADecision', + 'Hlt1DiMuonHighMassDecision', + 'Hlt1DiMuonLowMassDecision', + 'Hlt1SingleMuonHighPTDecision', + 'Hlt1DiMuonNoL0Decision', + 'Hlt1CalibMuonAlignJpsiDecision', + 'Hlt1DiMuonNoIPDecision', + 'Hlt1DiMuonNoIPSSDecision', + 'Hlt1LowMultMuonDecision', + 'Hlt1MultiDiMuonNoIPDecision', + 'Hlt1MultiMuonNoL0Decision', + 'Hlt1SingleMuonHighPTNoMUIDDecision', + 'Hlt1SingleMuonNoIPDecision', + # HLT2 + 'Hlt2Topo2BodyDecision', + 'Hlt2TopoE2BodyDecision', + "Hlt2Topo3BodyDecision", + "Hlt2Topo4BodyDecision", + "Hlt2IncPhiDecision", + "Hlt2Topo.*Decision", + "Hlt2PhysDecision", + ] + +################################################################################ +LoKi_particle = LoKi__Hybrid__TupleTool("LoKi_particle") +LoKi_particle.Variables = { + "Y" : "Y", + "ETA" : "ETA", + "PHI" : "PHI", + "LOKI_FDCHI2" : "BPVVDCHI2", + "LOKI_FDS" : "BPVDLS", + "LOKI_DIRA" : "BPVDIRA", + "LV01" : "LV01", + "LV02" : "LV02", + "DOCA" : "DOCA(1,2)", + "LOKI_BPVCORRM" : "BPVCORRM", + "LOKI_IPCHI2" : "BPVIPCHI2()", + "LOKI_BPVLTIME" : "BPVLTIME()" +} +LoKi_Xicp2PHH=LoKi__Hybrid__TupleTool("LoKi_Xicp2PHH") +LoKi_Xicp2PHH.Variables = { + 'DOCACHI2_p_h1' : 'DOCACHI2(1,2)', + 'DOCACHI2_p_h2' : 'DOCACHI2(1,3)', + 'DOCACHI2_h1_h2' : 'DOCACHI2(2,3)', + 'DOCA_p_h1' : 'DOCA(1,2)', + 'DOCA_p_h2' : 'DOCA(1,3)', + 'DOCA_h1_h2' : 'DOCA(2,3)', + 'MASS_p_h1' : 'MASS(1,2)', + 'MASS_p_h2' : 'MASS(1,3)', + 'MASS_h1_h2' : 'MASS(2,3)', + } + + +################################################################################ +line_XicpToPPiPi = "Xic2PHHXicp2PPiPiLine" + +from PhysConf.Selections import AutomaticData +Input_XicpToPPiPi = AutomaticData( Location = "Phys/{0}/Particles".format(line_XicpToPPiPi)) + +################################################################################ +from PhysConf.Selections import TupleSelection +XicpToPPiPi_decay = '[Xi_c+ -> ^p+ ^pi+ ^pi-]CC' +XicpToPPiPi_branches = { + "Xicp" : "^([Xi_c+ -> p+ pi+ pi-]CC)", + "proton" : "[Xi_c+ -> ^p+ pi+ pi-]CC", + "pi1" : "[Xi_c+ -> p+ ^pi+ pi-]CC", + "pi2" : "[Xi_c+ -> p+ pi+ ^pi-]CC", + } + +Tuple_XicpToPPiPi = TupleSelection("Tuple_XicpToPPiPi", [ Input_XicpToPPiPi ], Decay = XicpToPPiPi_decay, Branches = XicpToPPiPi_branches, ToolList = [] ) +################################################################################ +for dtt in [Tuple_XicpToPPiPi]: + # decay tree fitter (DTF) + dtt.addTool(TupleToolDecay, name="Xicp") + dtt.addTool(TupleToolDecay, name="proton") + dtt.addTool(TupleToolDecay, name="pi1") + dtt.addTool(TupleToolDecay, name="pi2") + + #LoKi VARIABLES + for particle in [dtt.Xicp,dtt.proton,dtt.pi1,dtt.pi2]: + particle.addTool(LoKi_particle) + particle.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_particle"] + dtt.Xicp.addTool(LoKi_Xicp2PHH) + dtt.Xicp.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_Xicp2PHH"] + #constrain: PV and Xicp + dtt.Xicp.addTupleTool('TupleToolDecayTreeFitter/DTF') + dtt.Xicp.DTF.constrainToOriginVertex = True + dtt.Xicp.DTF.Verbose = True + dtt.Xicp.DTF.daughtersToConstrain = ["Xi_c+"] + dtt.Xicp.DTF.UpdateDaughters = True + #constrain: PV + dtt.Xicp.addTupleTool('TupleToolDecayTreeFitter/DTFonlyPV') + dtt.Xicp.DTFonlyPV.constrainToOriginVertex = True + dtt.Xicp.DTFonlyPV.Verbose = True + dtt.Xicp.DTFonlyPV.UpdateDaughters = True + #DTF with Momentum Scaling only + dtt.Xicp.addTupleTool('TupleToolDecayTreeFitter/DTFonlyMS') + dtt.Xicp.DTFonlyMS.Verbose = True + dtt.Xicp.DTFonlyMS.UpdateDaughters = True +################################################################################ + +for dtt in [Tuple_XicpToPPiPi]: + + dtt.TupleName = "ntp" + dtt.ToolList = TupleToolList + + if isSimulation: + dtt.ToolList += [ + "TupleToolMCTruth", + "TupleToolMCBackgroundInfo" + ] + dtt.TupleToolMCTruth.ToolList += ["MCTupleToolHierarchy"] + +####################################### TISTOS ################################## + dtt.TupleToolTrigger.VerboseL0 = True + dtt.TupleToolTrigger.VerboseHlt1 = True + dtt.TupleToolTrigger.VerboseHlt2 = True + dtt.TupleToolTrigger.FillHlt2 = False + dtt.TupleToolTrigger.TriggerList = TriggerList + + dtt.TupleToolTISTOS.addTool(L0TriggerTisTos()) + dtt.TupleToolTISTOS.addTool(TriggerTisTos()) + dtt.TupleToolTISTOS.VerboseL0 = True + dtt.TupleToolTISTOS.VerboseHlt1 = True + dtt.TupleToolTISTOS.VerboseHlt2 = True + dtt.TupleToolTISTOS.FillHlt2 = False + dtt.TupleToolTISTOS.TriggerList = TriggerList + +from Configurables import MCDecayTreeTuple +MCTuple = MCDecayTreeTuple("MCTruth") +MCTuple.Decay = "^[Xi_c+ => ^p+ ^pi+ ^pi-]CC" +MCTuple.addBranches({ + "Xicp" : "^([ Xi_c+ ==> p+ pi+ pi-]CC)", + "proton" : "[ Xi_c+ ==> ^p+ pi+ pi-]CC", + "pi1" : "[ Xi_c+ ==> p+ ^pi+ pi-]CC", + "pi2" : "[ Xi_c+ ==> p+ pi+ ^pi-]CC", + }) +MCTuple.ToolList += [ + "MCTupleToolKinematic" + ,"MCTupleToolPrimaries" + ,"MCTupleToolAngles" + ,"MCTupleToolHierarchy" + ,"TupleToolRecoStats" + ,"MCTupleToolDecayType" + ,"MCTupleToolPID" + ,"MCTupleToolPrompt" + ] + + +################################################################################ +from PhysConf.Selections import SelectionSequence +seq_XicpToPPiPi = SelectionSequence('seq_XicpToPPiPi',Tuple_XicpToPPiPi).sequence() + +from Configurables import DataOnDemandSvc +dod = DataOnDemandSvc() + +from Configurables import Gaudi__DataLink as Link +rawEvt1 = Link ( 'LinkRawEvent1', + What = '/Event/DAQ/RawEvent' , + Target = '/Event/Trigger/RawEvent' ) +dod.AlgMap [ rawEvt1 . Target ] = rawEvt1 +################################################################################ +DaVinci( + InputType = 'MDST' , + Lumi = not isSimulation, + Simulation = isSimulation, + Turbo = False, + UserAlgorithms = [seq_XicpToPPiPi,MCTuple], + #RootInTES = "ALLSTREAMS" + RootInTES = "/Event/AllStreams" + ) + diff --git a/run2_MC_XicpTopKK_ppipi/info.yaml b/run2_MC_XicpTopKK_ppipi/info.yaml new file mode 100644 index 0000000000..5c44d80118 --- /dev/null +++ b/run2_MC_XicpTopKK_ppipi/info.yaml @@ -0,0 +1,30 @@ +defaults: + application: "DaVinci/v44r11p6" + wg: Charm + automatically_configure: true + inform: + - cheng.wang@cern.ch + +{%- set datasets_XicpToPHH_mc = [ + ('16','MagDown','XicpToPPiPi','/MC/2016/Beam6500GeV-2016-MagDown-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x6139160F/Reco16/Turbo03a/Stripping28r2p2NoPrescalingFlagged/26103093/ALLSTREAMS.MDST'), + ('17','MagDown','XicpToPPiPi','/MC/2017/Beam6500GeV-2017-MagDown-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x62661709/Reco17/Turbo04a-WithTurcal/Stripping29r2p3NoPrescalingFlagged/26103093/ALLSTREAMS.MDST'), + ('18','MagDown','XicpToPPiPi','/MC/2018/Beam6500GeV-2018-MagDown-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x617d18a4/Reco18/Turbo05-WithTurcal/Stripping34r0p3NoPrescalingFlagged/26103093/ALLSTREAMS.MDST'), + ('16','MagUp', 'XicpToPPiPi','/MC/2016/Beam6500GeV-2016-MagUp-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x6139160F/Reco16/Turbo03a/Stripping28r2p2NoPrescalingFlagged/26103093/ALLSTREAMS.MDST'), + ('17','MagUp', 'XicpToPPiPi','/MC/2017/Beam6500GeV-2017-MagUp-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x62661709/Reco17/Turbo04a-WithTurcal/Stripping29r2p3NoPrescalingFlagged/26103093/ALLSTREAMS.MDST'), + ('18','MagUp', 'XicpToPPiPi','/MC/2018/Beam6500GeV-2018-MagUp-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x617d18a4/Reco18/Turbo05-WithTurcal/Stripping34r0p3NoPrescalingFlagged/26103093/ALLSTREAMS.MDST'), + ('16','MagDown','XicpToPKK', '/MC/2016/Beam6500GeV-2016-MagDown-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x6139160F/Reco16/Turbo03a/Stripping28r2p2NoPrescalingFlagged/26103094/ALLSTREAMS.MDST'), + ('17','MagDown','XicpToPKK', '/MC/2017/Beam6500GeV-2017-MagDown-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x62661709/Reco17/Turbo04a-WithTurcal/Stripping29r2p3NoPrescalingFlagged/26103094/ALLSTREAMS.MDST'), + ('18','MagDown','XicpToPKK', '/MC/2018/Beam6500GeV-2018-MagDown-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x617d18a4/Reco18/Turbo05-WithTurcal/Stripping34r0p3NoPrescalingFlagged/26103094/ALLSTREAMS.MDST'), + ('16','MagUp', 'XicpToPKK', '/MC/2016/Beam6500GeV-2016-MagUp-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x6139160F/Reco16/Turbo03a/Stripping28r2p2NoPrescalingFlagged/26103094/ALLSTREAMS.MDST'), + ('17','MagUp', 'XicpToPKK', '/MC/2017/Beam6500GeV-2017-MagUp-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x62661709/Reco17/Turbo04a-WithTurcal/Stripping29r2p3NoPrescalingFlagged/26103094/ALLSTREAMS.MDST'), + ('18','MagUp', 'XicpToPKK', '/MC/2018/Beam6500GeV-2018-MagUp-Nu1.6-25ns-Pythia8/Sim10e-ReDecay01/Trig0x617d18a4/Reco18/Turbo05-WithTurcal/Stripping34r0p3NoPrescalingFlagged/26103094/ALLSTREAMS.MDST'), +]%} + +{%- for year, polarity, channel, bk in datasets_XicpToPHH_mc %} +20{{year}}_{{polarity}}_{{channel}}_MC: + input: + bk_query: {{bk}} + output: {{channel}}_MC.ROOT + options: + - {{channel}}_MC.py +{%- endfor %} -- GitLab From a8cc7c2b1e1828a3a8cabd32da1965b0df63210f Mon Sep 17 00:00:00 2001 From: chengw <cheng.wang@cern.ch> Date: Sat, 15 Mar 2025 17:02:53 +0800 Subject: [PATCH 2/3] < update > --- run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py | 4 ++-- run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py b/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py index 4bbe6f3c81..687a994773 100644 --- a/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py +++ b/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py @@ -236,8 +236,8 @@ DaVinci( Lumi = not isSimulation, Simulation = isSimulation, Turbo = False, - UserAlgorithms = [seq_XicpToPKK,MCTuple], - #RootInTES = "ALLSTREAMS" +# UserAlgorithms = [seq_XicpToPKK,MCTuple], + UserAlgorithms = [seq_XicpToPKK], RootInTES = "/Event/AllStreams" ) diff --git a/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py b/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py index d1bb4dd30e..f8dacc8db3 100644 --- a/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py +++ b/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py @@ -237,8 +237,8 @@ DaVinci( Lumi = not isSimulation, Simulation = isSimulation, Turbo = False, - UserAlgorithms = [seq_XicpToPPiPi,MCTuple], - #RootInTES = "ALLSTREAMS" +# UserAlgorithms = [seq_XicpToPPiPi,MCTuple], + UserAlgorithms = [seq_XicpToPPiPi], RootInTES = "/Event/AllStreams" ) -- GitLab From 17d8447ab50bdde07f98b53d6ee1750028f866fc Mon Sep 17 00:00:00 2001 From: chengw <cheng.wang@cern.ch> Date: Sun, 16 Mar 2025 11:44:38 +0800 Subject: [PATCH 3/3] < Update variable name> --- run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py | 22 +++++++++++----------- run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py | 20 ++++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py b/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py index 687a994773..f168d82a2e 100644 --- a/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py +++ b/run2_MC_XicpTopKK_ppipi/XicpToPKK_MC.py @@ -132,10 +132,10 @@ Input_XicpToPKK = AutomaticData( Location = "Phys/{0}/Particles".format(line from PhysConf.Selections import TupleSelection XicpToPKK_decay = '[Xi_c+ -> ^p+ ^K+ ^K-]CC' XicpToPKK_branches = { - "Xicp" : "^([Xi_c+ -> p+ K+ K-]CC)", - "proton" : "[Xi_c+ -> ^p+ K+ K-]CC", - "K1" : "[Xi_c+ -> p+ ^K+ K-]CC", - "K2" : "[Xi_c+ -> p+ K+ ^K-]CC", + "Xicp" : "^([Xi_c+ -> p+ K+ K-]CC)", + "Pp" : "[Xi_c+ -> ^p+ K+ K-]CC", + "Kp" : "[Xi_c+ -> p+ ^K+ K-]CC", + "Km" : "[Xi_c+ -> p+ K+ ^K-]CC", } Tuple_XicpToPKK = TupleSelection("Tuple_XicpToPKK", [ Input_XicpToPKK ], Decay = XicpToPKK_decay, Branches = XicpToPKK_branches, ToolList = [] ) @@ -143,12 +143,12 @@ Tuple_XicpToPKK = TupleSelection("Tuple_XicpToPKK", [ Input_XicpToPKK ], for dtt in [Tuple_XicpToPKK]: # decay tree fitter (DTF) dtt.addTool(TupleToolDecay, name="Xicp") - dtt.addTool(TupleToolDecay, name="proton") - dtt.addTool(TupleToolDecay, name="K1") - dtt.addTool(TupleToolDecay, name="K2") + dtt.addTool(TupleToolDecay, name="Pp") + dtt.addTool(TupleToolDecay, name="Kp") + dtt.addTool(TupleToolDecay, name="Km") #LoKi VARIABLES - for particle in [dtt.Xicp,dtt.proton,dtt.K1,dtt.K2]: + for particle in [dtt.Xicp,dtt.Pp,dtt.Kp,dtt.Km]: particle.addTool(LoKi_particle) particle.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_particle"] dtt.Xicp.addTool(LoKi_Xicp2PHH) @@ -202,9 +202,9 @@ MCTuple = MCDecayTreeTuple("MCTruth") MCTuple.Decay = "^[Xi_c+ => ^p+ ^K+ ^K-]CC" MCTuple.addBranches({ "Xicp" : "^([ Xi_c+ ==> p+ K+ K-]CC)", - "proton" : "[ Xi_c+ ==> ^p+ K+ K-]CC", - "K1" : "[ Xi_c+ ==> p+ ^K+ K-]CC", - "K2" : "[ Xi_c+ ==> p+ K+ ^K-]CC", + "Pp" : "[ Xi_c+ ==> ^p+ K+ K-]CC", + "Kp" : "[ Xi_c+ ==> p+ ^K+ K-]CC", + "Km" : "[ Xi_c+ ==> p+ K+ ^K-]CC", }) MCTuple.ToolList += [ "MCTupleToolKinematic" diff --git a/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py b/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py index f8dacc8db3..d326c65efc 100644 --- a/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py +++ b/run2_MC_XicpTopKK_ppipi/XicpToPPiPi_MC.py @@ -134,9 +134,9 @@ from PhysConf.Selections import TupleSelection XicpToPPiPi_decay = '[Xi_c+ -> ^p+ ^pi+ ^pi-]CC' XicpToPPiPi_branches = { "Xicp" : "^([Xi_c+ -> p+ pi+ pi-]CC)", - "proton" : "[Xi_c+ -> ^p+ pi+ pi-]CC", - "pi1" : "[Xi_c+ -> p+ ^pi+ pi-]CC", - "pi2" : "[Xi_c+ -> p+ pi+ ^pi-]CC", + "Pp" : "[Xi_c+ -> ^p+ pi+ pi-]CC", + "Pip" : "[Xi_c+ -> p+ ^pi+ pi-]CC", + "Pim" : "[Xi_c+ -> p+ pi+ ^pi-]CC", } Tuple_XicpToPPiPi = TupleSelection("Tuple_XicpToPPiPi", [ Input_XicpToPPiPi ], Decay = XicpToPPiPi_decay, Branches = XicpToPPiPi_branches, ToolList = [] ) @@ -144,12 +144,12 @@ Tuple_XicpToPPiPi = TupleSelection("Tuple_XicpToPPiPi", [ Input_XicpToPPiPi for dtt in [Tuple_XicpToPPiPi]: # decay tree fitter (DTF) dtt.addTool(TupleToolDecay, name="Xicp") - dtt.addTool(TupleToolDecay, name="proton") - dtt.addTool(TupleToolDecay, name="pi1") - dtt.addTool(TupleToolDecay, name="pi2") + dtt.addTool(TupleToolDecay, name="Pp") + dtt.addTool(TupleToolDecay, name="Pip") + dtt.addTool(TupleToolDecay, name="Pim") #LoKi VARIABLES - for particle in [dtt.Xicp,dtt.proton,dtt.pi1,dtt.pi2]: + for particle in [dtt.Xicp,dtt.Pp,dtt.Pip,dtt.Pim]: particle.addTool(LoKi_particle) particle.ToolList+=["LoKi::Hybrid::TupleTool/LoKi_particle"] dtt.Xicp.addTool(LoKi_Xicp2PHH) @@ -203,9 +203,9 @@ MCTuple = MCDecayTreeTuple("MCTruth") MCTuple.Decay = "^[Xi_c+ => ^p+ ^pi+ ^pi-]CC" MCTuple.addBranches({ "Xicp" : "^([ Xi_c+ ==> p+ pi+ pi-]CC)", - "proton" : "[ Xi_c+ ==> ^p+ pi+ pi-]CC", - "pi1" : "[ Xi_c+ ==> p+ ^pi+ pi-]CC", - "pi2" : "[ Xi_c+ ==> p+ pi+ ^pi-]CC", + "Pp" : "[ Xi_c+ ==> ^p+ pi+ pi-]CC", + "Pip" : "[ Xi_c+ ==> p+ ^pi+ pi-]CC", + "Pim" : "[ Xi_c+ ==> p+ pi+ ^pi-]CC", }) MCTuple.ToolList += [ "MCTupleToolKinematic" -- GitLab