Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AnalysisProductions
Manage
Activity
Members
Labels
Plan
Issues
63
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
114
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LHCb Data Packages
AnalysisProductions
Merge requests
!2156
DrellYan track efficiency Sample (MCDecayTree) v1
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
DrellYan track efficiency Sample (MCDecayTree) v1
sunyi/DrellYan_Track_v1
into
master
Overview
20
Commits
3
Pipelines
1
Changes
3
2 unresolved threads
Hide all comments
Merged
Yichen Sun
requested to merge
sunyi/DrellYan_Track_v1
into
master
1 month ago
Overview
20
Commits
3
Pipelines
1
Changes
3
2 unresolved threads
Hide all comments
Expand
mct trk eff for lowmass drellyan
0
0
Merge request reports
Compare
master
master (base)
and
latest version
latest version
1c6bd202
3 commits,
1 month ago
3 files
+
371
−
0
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
3
Search (e.g. *.vue) (Ctrl+P)
DrellYan_Track_v1/DV_MC_TRK_LM.py
0 → 100644
+
238
−
0
Options
from
os
import
environ
from
GaudiKernel.SystemOfUnits
import
*
from
Gaudi.Configuration
import
*
from
Configurables
import
GaudiSequencer
,
CombineParticles
from
Configurables
import
DecayTreeTuple
,
EventTuple
,
TupleToolTrigger
,
TupleToolTISTOS
from
Configurables
import
BackgroundCategory
,
TupleToolDecay
,
TupleToolVtxIsoln
,
TupleToolPid
,
EventCountHisto
,
TupleToolRecoStats
,
TupleToolDecayTreeFitter
from
Configurables
import
LoKi__Hybrid__TupleTool
,
TupleToolVeto
from
PhysConf.Selections
import
TupleSelection
,
CombineSelection
from
DecayTreeTuple.Configuration
import
*
from
PhysSelPython.Wrappers
import
AutomaticData
,
SelectionSequence
from
Configurables
import
GaudiSequencer
## ------------------------------------------------------------------------- ##
## ------------------------------------------------------------------------- ##
## trigger lines
mtl
=
[
# L0 lines
'
L0MuonDecision
'
,
'
L0DiMuonDecision
'
,
'
L0MuonEWDecision
'
,
# Hlt1 lines
"
Hlt1DiMuonHighMassDecision
"
,
"
Hlt1DiMuonLowMassDecision
"
,
"
Hlt1DiMuonNoIPDecision
"
,
"
Hlt1SingleMuonNoIPDecision
"
,
"
Hlt1SingleMuonHighPTDecision
"
,
"
Hlt1TrackMuonDecision
"
,
# Hlt2 lines
"
Hlt2SingleMuonDecision
"
,
"
Hlt2SingleMuonHighPTDecision
"
,
"
Hlt2SingleMuonVHighPTDecision
"
,
"
Hlt2DiMuonZDecision
"
,
"
Hlt2EWSingleMuonHighPtDecision
"
,
"
Hlt2EWSingleMuonLowPtDecision
"
,
"
Hlt2EWSingleMuonVHighPtDecision
"
,
"
Hlt2EWDiMuonDY1Decision
"
,
"
Hlt2EWDiMuonDY2Decision
"
,
"
Hlt2EWDiMuonDY3Decision
"
,
"
Hlt2EWDiMuonDY4Decision
"
,
"
Hlt2EWDiMuonDYSSDecision
"
"
Hlt2EWDiMuonZDecision
"
]
tl
=
[
"
TupleToolBremInfo
"
,
"
TupleToolAngles
"
,
"
TupleToolTrigger
"
,
"
TupleToolKinematic
"
,
"
TupleToolPid
"
,
"
TupleToolTrackInfo
"
,
"
TupleToolPrimaries
"
,
#"TupleToolPropertime",
"
TupleToolEventInfo
"
,
"
TupleToolRecoStats
"
,
"
TupleToolGeometry
"
,
"
TupleToolTrackIsolation
"
,
"
TupleToolTrackPosition
"
,
"
TupleToolConeIsolation
"
,
"
TupleToolVtxIsoln
"
,
"
TupleToolVeto
"
,
]
z_decay
=
"
Z0-> ^mu+ ^mu-
"
upsilon_decay
=
"
Upsilon(1S) -> ^mu+ ^mu-
"
z_branches
=
{
"
mup
"
:
"
Z0 -> ^mu+ mu-
"
,
"
mum
"
:
"
Z0 -> mu+ ^mu-
"
,
"
ZBoson
"
:
"
Z0 -> mu+ mu-
"
,
}
upsilon_branches
=
{
"
mup
"
:
"
Upsilon(1S) -> ^mu+ mu-
"
,
"
mum
"
:
"
Upsilon(1S) -> mu+ ^mu-
"
,
"
ZBoson
"
:
"
Upsilon(1S) -> mu+ mu-
"
,
}
## ------------------------------------------------------------------------- ##
## ------------------------------------------------------------------------- ##
"""
Lines of interest:
TrackEffMuonTT_JpsiLine1 : Jpsi-> mu mu, long: minus, muonTT: plus
TrackEffMuonTT_JpsiLine2 : Jpsi-> mu mu, long: plus, muonTT: minus
TrackEffMuonTT_UpsilonLine1 : Upsilon-> mu mu, long: minus, muonTT: plus
TrackEffMuonTT_UpsilonLine2 : Upsilon-> mu mu, long: plus, muonTT: minus
TrackEffMuonTT_ZLine1 : Z-> mu mu, long: minus, muonTT: plus
TrackEffMuonTT_ZLine2 : Z-> mu mu, long: plus, muonTT: minus
"""
## W: reco from StdAllLooseMuons
ZLine1_location
=
"
/Event/AllStreams/Phys/TrackEffMuonTT_ZLine1/Particles
"
ZLine2_location
=
"
/Event/AllStreams/Phys/TrackEffMuonTT_ZLine2/Particles
"
UpsilonLine1_location
=
"
/Event/AllStreams/Phys/TrackEffMuonTT_UpsilonLine1/Particles
"
UpsilonLine2_location
=
"
/Event/AllStreams/Phys/TrackEffMuonTT_UpsilonLine2/Particles
"
ZLine1_input
=
AutomaticData
(
ZLine1_location
)
ZLine2_input
=
AutomaticData
(
ZLine2_location
)
UpsilonLine1_input
=
AutomaticData
(
UpsilonLine1_location
)
UpsilonLine2_input
=
AutomaticData
(
UpsilonLine2_location
)
## ------------------------------------------------------------------------- ##
## DY:
tuple_ZLine1
=
TupleSelection
(
"
ZLine1
"
,
[
ZLine1_input
],
Decay
=
z_decay
,
Branches
=
z_branches
)
tuple_ZLine2
=
TupleSelection
(
"
ZLine2
"
,
[
ZLine2_input
],
Decay
=
z_decay
,
Branches
=
z_branches
)
tuple_UpsilonLine1
=
TupleSelection
(
"
UpsilonLine1
"
,
[
UpsilonLine1_input
],
Decay
=
upsilon_decay
,
Branches
=
upsilon_branches
)
tuple_UpsilonLine2
=
TupleSelection
(
"
UpsilonLine2
"
,
[
UpsilonLine2_input
],
Decay
=
upsilon_decay
,
Branches
=
upsilon_branches
)
## define a list of tuples
ztuples
=
[
tuple_ZLine1
,
tuple_ZLine2
,
tuple_UpsilonLine1
,
tuple_UpsilonLine2
]
## ------------------------------------------------------------------------- ##
## ------------------------------------------------------------------------- ##
## add algorithms
for
tpm
in
ztuples
:
tpm
.
ToolList
+=
tl
tool
=
tpm
.
addTupleTool
(
TupleToolTISTOS
)
tool
.
Verbose
=
True
tool
.
VerboseL0
=
True
tool
.
VerboseHlt1
=
True
tool
.
VerboseHlt2
=
True
tool
.
FillL0
=
True
tool
.
FillHlt1
=
True
tool
.
FillHlt2
=
True
tool
.
OutputLevel
=
INFO
tool
.
TriggerList
=
mtl
# solve TISTOS problems[2] 2017/9/14 10:00
from
Configurables
import
TriggerTisTos
#tool = tpm.addTupleTool(TupleToolTISTOS)
tool
.
addTool
(
TriggerTisTos
())
## disable CALO hit matching
tool
.
TriggerTisTos
.
TOSFracEcal
=
0.
tool
.
TriggerTisTos
.
TOSFracHcal
=
0.
tool
.
TriggerTisTos
.
PropertiesPrint
=
True
## disable muon hit matching (change TOSFracMu)
tool
.
TriggerTisTos
.
TOSFracMuon
=
0.
tool
.
TriggerTisTos
.
PropertiesPrint
=
True
from
Configurables
import
LoKi__Hybrid__TupleTool
LoKi_All
=
LoKi__Hybrid__TupleTool
(
'
LoKi_All
'
)
LoKi_All
.
Preambulo
=
[
"
from LoKiTracks.decorators import *
"
]
LoKi_All
.
Variables
=
{
'
ETA
'
:
'
ETA
'
,
'
PHI
'
:
'
PHI
'
,
}
tpm
.
mup
.
addTupleTool
(
LoKi_All
)
tpm
.
mum
.
addTupleTool
(
LoKi_All
)
## ------------------------------------------------------------------------- ##
## ------------------------------------------------------------------------- ##
seq_ZLine1
=
SelectionSequence
(
'
SEQ_ZLine1
'
,
tuple_ZLine1
)
seq_ZLine2
=
SelectionSequence
(
'
SEQ_ZLine2
'
,
tuple_ZLine2
)
seq_UpsilonLine1
=
SelectionSequence
(
'
SEQ_UpsilonLine1
'
,
tuple_UpsilonLine1
)
seq_UpsilonLine2
=
SelectionSequence
(
'
SEQ_UpsilonLine2
'
,
tuple_UpsilonLine2
)
## ------------------------------------------------------------------------- ##
## ------------------------------------------------------------------------- ##
#fill the truth information
mct
=
MCDecayTreeTuple
(
'
mct
'
)
mct
.
Decay
=
"
Z0-> ^mu+ ^mu-
"
mct
.
Branches
=
{
"
mup
"
:
"
Z0 -> ^mu+ mu-
"
,
"
mum
"
:
"
Z0 -> mu+ ^mu-
"
,
"
ZBoson
"
:
"
Z0 -> mu+ mu-
"
,
}
mctl
=
[
'
LoKi::Hybrid::MCTupleTool/MCLoKiTool
'
,
'
MCTupleToolAngles
'
,
'
MCTupleToolHierarchy
'
,
'
MCTupleToolKinematic
'
,
'
MCTupleToolPrimaries
'
,
'
MCTupleToolReconstructed
'
,
'
MCTupleToolInteractions
'
]
mct
.
ToolList
=
mctl
from
Configurables
import
LoKi__Hybrid__MCTupleTool
MCLoKiTool
=
LoKi__Hybrid__MCTupleTool
(
'
MCLoKiTool
'
)
mct
.
addTool
(
MCLoKiTool
,
name
=
'
MCLoKiTool
'
)
mct
.
MCLoKiTool
.
Variables
=
{
'
TRUEID
'
:
'
MCID
'
,
'
TRUEETA
'
:
'
MCETA
'
,
'
TRUEPHI
'
:
'
MCPHI
'
,
'
TRUEP
'
:
'
MCP
'
}
## ------------------------------------------------------------------------- ##
## ------------------------------------------------------------------------- ##
## DaVinci
from
Configurables
import
DaVinci
DaVinci
().
EvtMax
=
-
1
# Number of events
DaVinci
().
PrintFreq
=
5000
DaVinci
().
SkipEvents
=
0
# Events to skip
#DaVinci().InputType = 'DST'
#DaVinci().DataType = "2018"
#DaVinci().Lumi = False
#DaVinci().Simulation = True
#DaVinci().DDDBtag="dddb-20170721-3"
#DaVinci().CondDBtag="sim-20190430-vc-md100"
#DaVinci().TupleFile = "Tuple.root" # Ntuple
DaVinci
().
UserAlgorithms
=
[
seq_ZLine1
.
sequence
(),
seq_ZLine2
.
sequence
(),
seq_UpsilonLine1
.
sequence
(),
seq_UpsilonLine2
.
sequence
(),
mct
]
#from GaudiConf import IOHelper
######################### Test ##################################################
'''
# Use the local input data
if DaVinci().Simulation == True:
DaVinci().EvtMax = 1000
IOHelper().inputFiles([
'
/afs/cern.ch/user/s/sunyi/eos/18/MC_DY_5GeV_dst/00120488_00000004_7.AllStreams.dst
'
], clear=True)
#
'
/afs/cern.ch/user/d/duliu/eos/Duanqing_work/xia_bookkeeping/test_DaVinci/00098349_00000001_1.b2dh.strip.dst
'
# ], clear=True)
else:
IOHelper().inputFiles([
'
/afs/cern.ch/user/d/duliu/eos/Duanqing_work/xia_bookkeeping/test_DaVinci/2018_Data.bhadroncompleteevent.dst
'
], clear=True)
'''
Loading