本文整理汇总了Python中Configurables.DaVinci.UserAlgorithms方法的典型用法代码示例。如果您正苦于以下问题:Python DaVinci.UserAlgorithms方法的具体用法?Python DaVinci.UserAlgorithms怎么用?Python DaVinci.UserAlgorithms使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Configurables.DaVinci
的用法示例。
在下文中一共展示了DaVinci.UserAlgorithms方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: configure_DATA
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
def configure_DATA(datafiles,
catalogs,
castor,
params):
logger.info('Configure DATA')
the_year = params['Year']
from Configurables import CondDB
CondDB(LatestGlobalTagByDataType=the_year)
from Configurables import DaVinci
dv = DaVinci(Lumi=True,
#
HistogramFile='B_Histos.root',
TupleFile='B.root'
)
from Configurables import TrackScaleState
state_scale = TrackScaleState('StateScale')
dv.UserAlgorithms = [state_scale]
logger.info('Momentum scaling is applied!')
return configure_COMMON(datafiles, catalogs, castor, params)
示例2: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
#.........这里部分代码省略.........
( MIPCHI2DV() > 9. )
"""
from GaudiConfUtils.ConfigurableGenerators import FilterDesktop
_alg_pi = FilterDesktop (
##
Code = _PionCut_ ,
##
)
from PhysSelPython.Wrappers import Selection
from StandardParticles import StdAllNoPIDsPions as input_pions
pions = Selection (
"SelPiForBQ" ,
Algorithm = _alg_pi ,
RequiredSelections = [ input_pions ]
)
from GaudiConfUtils.ConfigurableGenerators import FilterDesktop
_alg_k = FilterDesktop (
##
Code = _KaonCut_ ,
##
)
from PhysSelPython.Wrappers import Selection
from StandardParticles import StdAllNoPIDsKaons as input_kaons
kaons = Selection (
"SelKForBQ" ,
Algorithm = _alg_k ,
RequiredSelections = [ input_kaons ]
)
def _kaons_ ( self ) : return kaons
def _pions_ ( self ) : return pions
#
## get the selections
#
for s in [ PsiX ] :
s.pions = _pions_
s.kaons = _kaons_
logger.warning ( "Redefine PsiX.kaons " )
logger.warning ( "Redefine PsiX.kaons " )
psix = PsiX ( 'PsiX' , {} )
for s in [ psix.psi_pi() ] :
a = s.algorithm ()
a.ParticleCombiners = { '' : 'LoKi::VertexFitter:PUBLIC' }
from PhysSelPython.Wrappers import SelectionSequence
sel_seq = SelectionSequence ( 'B2PsiPi' , psix . psi_pi () )
the_year = '2012'
davinci = DaVinci (
DataType = the_year ,
InputType = 'DST' ,
Simulation = True ,
PrintFreq = 1000 ,
EvtMax = -1 ,
HistogramFile = 'DVHistos.root' ,
TupleFile = 'DVNtuples.root' ,
Lumi = True ,
##
# MC :
## SIMCOND : 'Sim08-20130503-1', 'Sim08-20130503-1-vc-md100'
#
DDDBtag = "Sim08-20130503-1" ,
CondDBtag = "Sim08-20130503-1-vc-md100"
)
my_name = "Bplus"
from Configurables import GaudiSequencer
davinci.UserAlgorithms = [ sel_seq.sequence() , my_name ]
setData ( datafiles , catalogs , castor )
gaudi = appMgr()
print 'seq.outputLocation()= ', sel_seq.outputLocation() # Phys/SelPsi3KPiForPsiX/Particles
alg = Jpsi_mu(
my_name , ## Algorithm name
Inputs = [
sel_seq.outputLocation()
] ,
PP2MCs = [ 'Relations/Rec/ProtoP/Charged' ]
)
return SUCCESS
示例3: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
#.........这里部分代码省略.........
"pions = SOURCE ( '/Event/Phys/StdAllNoPIDsPions/Particles' , pion_cuts ) ",
"gammas = SOURCE ( '/Event/Phys/StdLooseAllPhotons/Particles' , gamma_cuts ) ",
],
Variables={
"px_c": " pions >> sum ( PX ) ",
"py_c": " pions >> sum ( PY ) ",
"px_g": " gammas >> sum ( PX ) ",
"py_g": " gammas >> sum ( PY ) ",
"n_c": " pions >> SIZE ",
"g_c": " gammas >> SIZE ",
}
)
from Configurables import DataOnDemandSvc
dod = DataOnDemandSvc()
dod.AlgMap['/Event/Counters/CharmEW'] = cnt
# ========================================================================
# prefilters for drastical speedup in the reading of input data
# ========================================================================
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code=" HLT_PASS_RE ( 'Stripping.*WMuLine.*Decision' ) "
)
davinci = DaVinci(
EventPreFilters=fltrs.filters('Filters'), # PREFILTERS
DataType=the_year,
InputType='DST',
Simulation=True,
PrintFreq=10000,
EvtMax=-1,
#
HistogramFile='MCW_Histos.root',
TupleFile='MCW.root',
#
)
# connect to DaVinci
from Configurables import GaudiSequencer
davinci.UserAlgorithms = [
GaudiSequencer('MySeq', Members=[seq.sequence(), 'MCW'])
]
#
# take care abotu DB-tags:
#
# try to get the tags from Rec/Header
from BenderTools.GetDBtags import getDBTags
tags = getDBTags(
datafiles[0],
castor
)
logger.info('Extract tags from DATA : %s' % tags)
if tags.has_key('DDDB') and tags['DDDB']:
davinci.DDDBtag = tags['DDDB']
logger.info('Set DDDB %s ' % davinci.DDDBtag)
if tags.has_key('CONDDB') and tags['CONDDB']:
davinci.CondDBtag = tags['CONDDB']
logger.info('Set CONDDB %s ' % davinci.CondDBtag)
if tags.has_key('SIMCOND') and tags['SIMCOND']:
davinci.CondDBtag = tags['SIMCOND']
logger.info('Set SIMCOND %s ' % davinci.CondDBtag)
#
# remove excessive printout
#
from Configurables import MessageSvc
msg = MessageSvc()
msg.setError += ['HcalDet.Quality',
'EcalDet.Quality',
'MagneticFieldSvc',
'PropertyConfigSvc',
'ToolSvc.L0DUConfig',
'ToolSvc.L0CondDBProvider',
'L0MuonFromRaw',
'IntegrateBeamCrossing']
#
# come back to Bender
#
setData(datafiles, catalogs, castor)
#
# start Gaudi
#
gaudi = appMgr()
#
# more silence
#
_a = gaudi.tool('ToolSvc.L0DUConfig')
_a.OutputLevel = 4
alg = MCW(
'MCW',
Inputs=[seq.outputLocation()],
PP2MCs=['Relations/Rec/ProtoP/Charged']
)
return SUCCESS
示例4: execute
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
#.........这里部分代码省略.........
"Hlt1TrackMuonDecision", "Hlt1TrackAllL0Decision",
"Hlt2DiMuonJPsiDecision", "Hlt2SingleMuonDecision",
]
dtt.addTool(TupleToolTrigger, name="TupleToolTrigger")
dtt.addTool(TupleToolTISTOS, name="TupleToolTISTOS")
# Get trigger info
dtt.TupleToolTrigger.Verbose = True
dtt.TupleToolTrigger.TriggerList = tlist
dtt.TupleToolTISTOS.Verbose = True
dtt.TupleToolTISTOS.TriggerList = tlist
from Configurables import TupleToolMCTruth, MCTupleToolHierarchy
dtt.addTool(TupleToolMCBackgroundInfo,
name="TupleToolMCBackgroundInfo")
dtt.TupleToolMCBackgroundInfo.Verbose = True
dtt.addTool(MCTupleToolHierarchy,
name="MCTupleToolHierarchy")
dtt.MCTupleToolHierarchy.Verbose = True
dtt.addTool(TupleToolMCTruth,
name="TupleToolMCTruth")
dtt.TupleToolMCTruth.Verbose = True
if turbo:
assoc_seq = TeslaTruthUtils.associateSequence(tesla_prefix, False)
ChargedPP2MC(tesla_prefix+"ProtoAssocPP").OutputLevel = 1
assoc_seq.Members.insert(0, PatLHCbID2MCParticle())
from Configurables import MuonCoord2MCParticleLink
muon_coords = MuonCoord2MCParticleLink("TeslaMuonCoordLinker")
assoc_seq.Members.insert(1, muon_coords)
TrackAssociator("TeslaAssocTr").DecideUsingMuons = True
relations = TeslaTruthUtils.getRelLoc(tesla_prefix)
else:
relations = "Relations/Rec/ProtoP/Charged"
TeslaTruthUtils.makeTruth(dtt,
relations,
["MCTupleToolKinematic",
"MCTupleToolHierarchy",
"MCTupleToolPID",
]
)
dtt.Decay = mark(2, mark(3, decay_descriptor)) #"J/psi(1S) -> ^mu- ^mu+"
dtt.addBranches({"X": "^(%s)"%(decay_descriptor),
"muplus": mark(3, decay_descriptor),#"J/psi(1S) -> mu- ^mu+",
"muminus": mark(2, decay_descriptor),#"J/psi(1S) -> ^mu- mu+",
})
x_preamble = ["DZ = VFASPF(VZ) - BPV(VZ)",
]
x_vars = {"ETA": "ETA",
"Y": "Y",
"PHI": "PHI",
"VPCHI2": "VFASPF(VPCHI2)",
"DELTAZ": "DZ",
# DZ * M / PZ / c with c in units of mm/s
# XXX should this be the PDG mass or measured mass?
#"TZ": "DZ*M / PZ / 299792458000.0", #seconds
"TZ": "DZ*3096.916 / PZ/299792458000.0*(10**12)", #ps
"minpt": "MINTREE('mu+' == ABSID, PT)",
"minclonedist": "MINTREE(ISBASIC & HASTRACK, CLONEDIST)",
"maxtrchi2dof": "MAXTREE(ISBASIC & HASTRACK, TRCHI2DOF)",
}
muon_vars = {"ETA": "ETA",
"Y": "Y",
"PHI": "PHI",
"CHARGE": "Q",
"CLONEDIST": "CLONEDIST",
"TRCHI2DOF": "TRCHI2DOF",
}
loki_X = dtt.X.addTupleTool("LoKi::Hybrid::TupleTool/LoKi_X")
loki_X.Variables = x_vars
loki_X.Preambulo = x_preamble
loki_mup = dtt.muplus.addTupleTool("LoKi::Hybrid::TupleTool/LoKi_MuPlus")
loki_mup.Variables = muon_vars
#dtt.muplus.addTupleTool("TupleToolGeometry")
loki_mum = dtt.muminus.addTupleTool("LoKi::Hybrid::TupleTool/LoKi_MuMinus")
loki_mum.Variables = muon_vars
#dtt.muminus.addTupleTool("TupleToolGeometry")
dv.TupleFile = "DVNtuples.root"
if turbo:
dv.UserAlgorithms = [assoc_seq, dtt]
else:
assocpp = ChargedPP2MC("TimsChargedPP2MC")
assocpp.OutputLevel = 1
dv.UserAlgorithms = [jpsi_seq.sequence(), assocpp, dtt]
示例5: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
#.........这里部分代码省略.........
from GaudiConfUtils.ConfigurableGenerators import CombineParticles
# ========================================================================
# B -> J/psi + K pi pi
# ========================================================================
from GaudiConfUtils.ConfigurableGenerators import CombineParticles
bc_Kpp = CombineParticles(
DecayDescriptor='[B+ -> J/psi(1S) K+ pi+ pi-]cc',
#
Preambulo=Preambulo,
DaughtersCuts={
"J/psi(1S)": " in_range( 3.096 * GeV - 45 * MeV , M , 3.096 * GeV + 45 * MeV ) "
},
#
CombinationCut="""
in_range ( 5.0 * GeV , AM , 5.6 * GeV )
""" ,
#
MotherCut="""
in_range ( 5.1 * GeV , M , 5.5 * GeV ) &
( PT > 1 * GeV ) &
( chi2vx < 49 ) &
in_range ( 150 * micrometer , ctau , 1000 * micrometer )
""" ,
#
ParticleCombiners={'': 'LoKi::VertexFitter'},
ReFitPVs=True
)
#
from PhysSelPython.Wrappers import Selection
Bc_Kpp = Selection(
'PsiKpp',
Algorithm=bc_Kpp,
RequiredSelections=[jpsi, pions, kaons]
)
# ========================================================================
# B -> J/psi + K
# ========================================================================
from GaudiConfUtils.ConfigurableGenerators import CombineParticles
bc_K = CombineParticles(
DecayDescriptor='[ B+ -> J/psi(1S) K+ ]cc',
#
Preambulo=Preambulo,
DaughtersCuts={
"J/psi(1S)": " in_range( 3.096 * GeV - 45 * MeV , M , 3.096 * GeV + 45 * MeV ) "
},
#
CombinationCut="""
in_range ( 5.0 * GeV , AM , 5.6 * GeV )
""" ,
#
MotherCut="""
in_range ( 5.1 * GeV , M , 5.5 * GeV ) &
( PT > 1 * GeV ) &
( chi2vx < 16 ) &
in_range ( 150 * micrometer , ctau , 1000 * micrometer )
""" ,
ParticleCombiners={'': 'LoKi::VertexFitter'},
ReFitPVs=True
)
#
Bc_K = Selection(
'PsiK',
Algorithm=bc_K,
RequiredSelections=[jpsi, kaons]
)
from PhysSelPython.Wrappers import SelectionSequence
Seq_Kpp = SelectionSequence("PSIKPP", TopSelection=Bc_Kpp)
Seq_K = SelectionSequence("PSIK", TopSelection=Bc_K)
from Configurables import GaudiSequencer
davinci.UserAlgorithms = [
GaudiSequencer(
'K', Members=[Seq_K .sequence(), 'B2PsiK']),
GaudiSequencer('KPP', Members=[Seq_Kpp.sequence(), 'B2PsiKpp'])
]
#
# come back to Bender
#
setData(datafiles, catalogs, castor)
#
# start Gaudi
#
gaudi = appMgr()
#
algKpp = B2Kpp(
'B2PsiKpp', # Algorithm name ,
Inputs=[Seq_Kpp.outputLocation()]
)
algK = B2K(
'B2PsiK', # Algorithm name ,
Inputs=[Seq_K .outputLocation()]
)
return SUCCESS
示例6: DaVinci
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
dv = DaVinci()
dv.DataType = "2010"
dv.Simulation = False
dv.EvtMax = -1
dv.TupleFile = 'b2hh_stripped.root'
dv.PrintFreq = 100
condDB = CondDB()
condDB.UseOracle = True
dv.DDDBtag = "head-20100518"
dv.CondDBtag = "head-20100715"
dv.Lumi = True
dv.WriteFSR = True
dv.UserAlgorithms = [ evttuple, preseltuple ]
示例7: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
def configure(datafiles,
catalogs=[],
castor=False,
params={}):
"""
Job configuration
"""
## needed for job configuration
from Configurables import DaVinci
the_year = "2012"
from BenderTools.Parser import hasInFile
if params:
the_year = params['Year']
logger.info('Year is set from params to be %s ' % the_year)
else:
if hasInFile(datafiles, 'Collision11'):
the_year = '2011'
elif hasInFile(datafiles, 'Collision12'):
the_year = '2012'
elif hasInFile(datafiles, 'Collision13'):
the_year = '2013'
logger.info('Year is set from files to be %s ' % the_year)
#
# check
#
if '2011' == the_year and hasInFile(datafiles, 'Collision12'):
raise AttributeError, 'Invalid Year %s ' % the_year
if '2012' == the_year and hasInFile(datafiles, 'Collision11'):
raise AttributeError, 'Invalid Year %s ' % the_year
logger.info('Use the Year = %s ' % the_year)
rootInTES = '/Event/BOTTOM'
dv = DaVinci(
DataType=the_year,
InputType='DST',
RootInTES=rootInTES,
Simulation=False,
PrintFreq=1000,
EvtMax=-1,
#
HistogramFile='Y_Histos.root',
TupleFile='Y.root',
#
Lumi=True,
#
)
from Configurables import CondDB
CondDB(LatestGlobalTagByDataType=the_year)
dv.UserAlgorithms = ['Y']
from BenderTools.Utils import silence
silence()
#
# come back to Bender
#
setData(datafiles, catalogs, castor)
#
# start Gaudi
#
gaudi = appMgr()
alg = TrgY(
'Y',
RootInTES=rootInTES,
Inputs=['Phys/Upsilon/Particles']
)
return SUCCESS
示例8: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
#.........这里部分代码省略.........
"""
Pions for B -> psi X lines
"""
from GaudiConfUtils.ConfigurableGenerators import FilterDesktop
## from StandardParticles import StdAllLoosePions as inpts
from StandardParticles import StdNoPIDsPions as inpts
##
return self.make_selection (
'Pion' ,
FilterDesktop ,
[ inpts ] ,
Code = self['PionCut'] ,
)
jpsi_name = 'FullDSTDiMuonJpsi2MuMuDetachedLine'
psi2_name = 'FullDSTDiMuonPsi2MuMuDetachedLine'
from PhysSelPython.Wrappers import AutomaticData
jpsi = AutomaticData ( '/Event/AllStreams/Phys/%s/Particles' % jpsi_name )
psi2s = AutomaticData ( '/Event/AllStreams/Phys/%s/Particles' % psi2_name )
#
## merged selectoon for J/psi & psi'
#
from PhysSelPython.Wrappers import MergedSelection
psis = MergedSelection (
'SelDetachedPsisForBandQ' ,
RequiredSelections = [ jpsi ]
)
def _psi_ ( self ) :
"""
psi(') -> mu+ mu-
"""
return psis
PSIX.pions = _pions_
PSIX.kaons = _kaons_
PSIX.psi = _psi_
## use builder
builder = PSIX ( 'PsiX' , builder_configuration )
from PhysSelPython.Wrappers import SelectionSequence
psi3k = SelectionSequence ( 'Psi3K' , builder.psi_3K () )
psi3kpi = SelectionSequence ( 'Psi3Kpi' , builder.psi_3Kpi () )
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters (
STRIP_Code = """
HLT_PASS_RE('Stripping.*FullDSTDiMuonJpsi2MuMuDetachedLine.*')
"""
)
davinci = DaVinci(
EventPreFilters = fltrs.filters('WG'),
InputType = 'DST' ,
Simulation = True ,
PrintFreq = 1000 ,
EvtMax = -1 ,
Lumi = True ,
DataType = params['Year'],
DDDBtag = params['DDDB'],
CondDBtag = params['SIMCOND'],
# HistogramFile = 'DVHistos.root' ,
TupleFile = 'output_kpipi.root' ,
)
from Configurables import GaudiSequencer
# seq = GaudiSequencer('SEQ1', Members=[psi3k.sequence()])
seq = GaudiSequencer('SEQ2', Members=[psi3kpi.sequence()])
my_name = "Bplus"
davinci.UserAlgorithms = [ my_name ]
setData ( datafiles , catalogs , castor )
gaudi = appMgr()
from StandardParticles import StdAllNoPIDsPions, StdAllNoPIDsKaons
# create local algorithm:
alg = MCAnalysisAlgorithm(
my_name,
Inputs = [
StdAllNoPIDsPions.outputLocation(),
StdAllNoPIDsKaons.outputLocation(),
'/Event/AllStreams/Phys/%s/Particles' % jpsi_name
] ,
PP2MCs = [ 'Relations/Rec/ProtoP/Charged' ],
ReFitPVs = True
)
return SUCCESS
示例9: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
#.........这里部分代码省略.........
( TRGHOSTPROB < 0.4 ) &
( PT > 200 * MeV ) &
in_range ( 2 , ETA , 4.9 ) &
in_range ( 3.2 * GeV , P , 150 * GeV ) &
HASRICH &
( PROBNNk > 0.15 ) &
( MIPCHI2DV() > 9. )
"""
from GaudiConfUtils.ConfigurableGenerators import FilterDesktop
_alg_pi = FilterDesktop(
##
Code=_PionCut_,
##
)
from PhysSelPython.Wrappers import Selection
from StandardParticles import StdAllNoPIDsPions as input_pions
pions = Selection(
"SelPiForBQ",
Algorithm=_alg_pi,
RequiredSelections=[input_pions]
)
from GaudiConfUtils.ConfigurableGenerators import FilterDesktop
_alg_k = FilterDesktop(
##
Code=_KaonCut_,
##
)
from PhysSelPython.Wrappers import Selection
from StandardParticles import StdAllNoPIDsKaons as input_kaons
kaons = Selection(
"SelKForBQ",
Algorithm=_alg_k,
RequiredSelections=[input_kaons]
)
def _kaons_(self):
return kaons
def _pions_(self):
return pions
#
## get the selections
#
for s in [PsiX]:
s.pions = _pions_
s.kaons = _kaons_
logger.warning("Redefine PsiX.kaons ")
logger.warning("Redefine PsiX.kaons ")
psix = PsiX('PsiX', {})
for s in [psix.psi_3Kpi()]:
a = s.algorithm()
a.ParticleCombiners = {'': 'LoKi::VertexFitter:PUBLIC'}
from PhysSelPython.Wrappers import SelectionSequence
sel_seq = SelectionSequence('B2Psi3Kpi', psix . psi_3Kpi())
davinci = DaVinci(
InputType = 'DST' ,
Simulation = True ,
PrintFreq = 1000 ,
EvtMax = -1 ,
Lumi = True ,
DataType = params['Year'],
DDDBtag = params['DDDB'],
CondDBtag = params['SIMCOND'],
# HistogramFile = 'DVHistos.root' ,
TupleFile = 'DVNtuples.root' ,
)
my_name = "Bplus"
from Configurables import GaudiSequencer
davinci.UserAlgorithms = [ sel_seq.sequence() , my_name ]
setData ( datafiles , catalogs , castor )
gaudi = appMgr()
print 'seq.outputLocation()= ', sel_seq.outputLocation() # Phys/SelPsi3KPiForPsiX/Particles
# create local algorithm:
alg = MCAnalysisAlgorithm(
my_name,
Inputs = [
sel_seq.outputLocation()
] ,
PP2MCs = [ 'Relations/Rec/ProtoP/Charged' ]
)
return SUCCESS
示例10: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
def configure(datafiles,
catalogs=[],
castor=False,
params={}):
"""
Job configuration
"""
## needed for job configuration
from Configurables import DaVinci
from BenderTools.Parser import hasInFile
the_year = "2011"
if params:
the_year = params['Year']
logger.info('Year is set from params to be %s ' % the_year)
else:
if hasInFile(datafiles, 'Collision11'):
the_year = '2011'
elif hasInFile(datafiles, 'Collision12'):
the_year = '2012'
elif hasInFile(datafiles, 'Stripping17'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping13'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping15'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping17'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping19'):
the_year = '2012'
logger.info('Year is set from files to be %s ' % the_year)
#
# check
#
if '2011' == the_year and hasInFile(datafiles, 'Collision12'):
raise AttributeError, 'Invalid Year %s ' % the_year
if '2012' == the_year and hasInFile(datafiles, 'Collision11'):
raise AttributeError, 'Invalid Year %s ' % the_year
logger.info('Use the Year = %s ' % the_year)
rootInTES = '/Event/PSIX'
# Read only fired events to speed up
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
VOID_Code="""
( CONTAINS('/Event/PSIX/Phys/SelPsiKForPsiX/Particles' ) > 0.5 ) |
( CONTAINS('/Event/PSIX/Phys/SelPsiPiForPsiX/Particles' ) > 0.5 )
"""
)
davinci = DaVinci(
EventPreFilters=fltrs.filters('Filters'),
DataType=the_year,
InputType='MDST',
RootInTES=rootInTES,
Simulation=False,
PrintFreq=1000,
EvtMax=-1,
#
HistogramFile='Bc_Histos.root',
TupleFile='Bc.root',
#
Lumi=True,
#
)
from BenderTools.Utils import silence
silence()
from Configurables import TrackScaleState
state_scale = TrackScaleState('StateScale')
davinci.UserAlgorithms = [
state_scale,
'B2K',
'B2P'
]
from Configurables import CondDB
CondDB(LatestGlobalTagByDataType=the_year)
#
# come back to Bender
#
setData(datafiles, catalogs, castor)
#
# start Gaudi
#
gaudi = appMgr()
#
alg1 = B2PsiH(
'B2K', # Algorithm name ,
RootInTES=rootInTES,
#.........这里部分代码省略.........
示例11: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
def configure(datafiles,
catalogs=[],
castor=False,
params={}):
"""
Job configuration
"""
## needed for job configuration
from Configurables import DaVinci
from BenderTools.Parser import hasInFile
the_year = "2011"
if params:
the_year = params['Year']
logger.info('Year is set from params to be %s ' % the_year)
else:
if hasInFile(datafiles, 'Collision11'):
the_year = '2011'
elif hasInFile(datafiles, 'Collision12'):
the_year = '2012'
elif hasInFile(datafiles, 'Stripping17'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping13'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping15'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping17'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping19'):
the_year = '2012'
logger.info('Year is set from files to be %s ' % the_year)
#
# check
#
if '2011' == the_year and hasInFile(datafiles, 'Collision12'):
raise AttributeError, 'Invalid Year %s ' % the_year
if '2012' == the_year and hasInFile(datafiles, 'Collision11'):
raise AttributeError, 'Invalid Year %s ' % the_year
logger.info('Use the Year = %s ' % the_year)
rootInTES = '/Event/Charm'
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code="""
HLT_PASS_RE ( 'Stripping.*Xicc.*ForPromptCharm.*' )
"""
)
davinci = DaVinci(
DataType=the_year,
EventPreFilters=fltrs.filters('Filters'),
InputType='MDST',
RootInTES=rootInTES,
Simulation=False,
PrintFreq=1000,
EvtMax=-1,
#
HistogramFile='Xic_Histos.root',
TupleFile='Xic.root',
#
Lumi=True,
#
)
from BenderTools.Utils import silence
silence()
from Configurables import TrackScaleState
state_scale = TrackScaleState(
'StateScale',
)
davinci.UserAlgorithms = [state_scale, 'Xi1', 'Xi2']
from Configurables import CondDB
CondDB(LatestGlobalTagByDataType=the_year)
#
# come back to Bender
#
setData(datafiles, catalogs, castor)
#
# start Gaudi
#
gaudi = appMgr()
#
alg1 = Xicc(
'Xi1', # Algorithm name ,
RootInTES=rootInTES,
Inputs=['Phys/Xicc+ForPromptCharm/Particles']
)
#.........这里部分代码省略.........
示例12: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
#.........这里部分代码省略.........
RequiredSelections=[jpsi, pions]
)
from PhysSelPython.Wrappers import SelectionSequence
Bc_1PI = SelectionSequence("PSIPi", TopSelection=Bc_1p)
Bc_3PI = SelectionSequence("PSI3Pi", TopSelection=Bc_3p)
Bc_Ds = SelectionSequence("PSIDs", TopSelection=BDs_sel)
# Read only fired events to speed up
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code="HLT_PASS_RE('Stripping.*DiMuonJpsi2MuMuDeta.*')",
VOID_Code="""
0.5 < CONTAINS('%s')
""" % jpsi_location
)
# =====================================================================
from Configurables import DaVinci # needed for job configuration
the_year = '2011'
davinci = DaVinci(
EventPreFilters=fltrs.filters('FilterMC'),
DataType=the_year,
InputType='DST',
Simulation=True,
PrintFreq=1000,
EvtMax=-1,
#
HistogramFile='BcMC_Histos.root',
TupleFile='BcMC.root',
## HistogramFile = 'BcMC1pi_Histos.root' ,
## TupleFile = 'BcMC1pi.root' ,
#
# for Ds
#DDDBtag = 'MC2011-20120727' ,
#CondDBtag = 'MC2011-20120727-vc-mu100' ,
#
# for pi
# DDDBtag = 'MC11-20111102' ,
# CondDBtag = 'sim-20111111-vc-md100' ,
#
## Lumi = True ,
#
)
from Configurables import GaudiSequencer
seqDs = GaudiSequencer(
'DS',
Members=[Bc_Ds . sequence(),
"MCBc2Ds"]
)
from Configurables import GaudiSequencer
seq1pi = GaudiSequencer(
'Pi1',
Members=[Bc_1PI . sequence(),
"MCBc1Pi"]
)
from Configurables import TrackSmearState
state_smear = TrackSmearState(
'StateSmear',
## RootInTES = rootInTES ,
)
davinci.UserAlgorithms = [state_smear, seqDs]
## davinci.UserAlgorithms = [ seq1pi ]
# from Configurables import CondDB
# CondDB ( LatestGlobalTagByDataType = the_year )
# ------- decoding set-up start ----------
# from BenderTools.MicroDST import uDstConf
# uDstConf ( rootInTES )
# ------- decoding set-up end -----------
# come back to Bender
setData(datafiles, catalogs, castor)
#
# start Gaudi
#
gaudi = appMgr()
alg1 = MCBc(
'MCBc2Ds', # Algorithm name ,
Inputs=[Bc_Ds.outputLocation()],
PP2MCs=['Relations/Rec/ProtoP/Charged']
)
alg2 = MCBc1Pi(
'MCBc1Pi', # Algorithm name ,
Inputs=[Bc_1PI.outputLocation()],
PP2MCs=['Relations/Rec/ProtoP/Charged']
)
return SUCCESS
示例13: DaVinci
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
from Configurables import DaVinci
from Configurables import Velo__VeloIPResolutionMonitorNT as IPMoni
dv = DaVinci()
dv.DataType = '2015'
dv.DDDBtag = 'dddb-20150526'
dv.CondDBtag = 'cond-20150625'
#dv.EvtMax = 100
ipMoni = IPMoni('VeloIPResolutionMonitor')
ipMoni.CheckIDs = True
dv.UserAlgorithms = [ipMoni]
dv.TupleFile = 'IPTuple.root'
示例14: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
def configure(datafiles,
catalogs=[],
castor=False,
params={}):
"""
Job configuration
"""
## needed for job configuration
from Configurables import DaVinci
the_year = "2011"
from BenderTools.Parser import hasInFile
if params:
the_year = params['Year']
logger.info('Year is set from params to be %s ' % the_year)
else:
if hasInFile(datafiles, 'Collision11'):
the_year = '2011'
elif hasInFile(datafiles, 'Collision12'):
the_year = '2012'
elif hasInFile(datafiles, 'Collision13'):
the_year = '2013'
elif hasInFile(datafiles, 'Stripping17'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping13'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping15'):
the_year = '2011'
elif hasInFile(datafiles, 'Stripping19'):
the_year = '2012'
logger.info('Year is set from files to be %s ' % the_year)
#
# check
#
if '2011' == the_year and hasInFile(datafiles, 'Collision12'):
raise AttributeError, 'Invalid Year %s ' % the_year
if '2012' == the_year and hasInFile(datafiles, 'Collision11'):
raise AttributeError, 'Invalid Year %s ' % the_year
logger.info('Use the Year = %s ' % the_year)
rootInTES = '/Event/PSIX'
# Read only fired events to speed up
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
VOID_Code="""
0.5 < CONTAINS('/Event/PSIX/Phys/SelB&B/Particles' )
"""
)
dv = DaVinci(
DataType=the_year,
InputType='MDST',
RootInTES=rootInTES,
Simulation=False,
PrintFreq=1000,
EvtMax=-1,
#
HistogramFile='BB_Histos.root',
TupleFile='BB.root',
#
Lumi=True,
#
)
dv.UserAlgorithms = ['BB']
from Configurables import CondDB
CondDB(LatestGlobalTagByDataType=the_year)
from BenderTools.Utils import silence
silence()
#
# come back to Bender
#
setData(datafiles, catalogs, castor)
#
# start Gaudi
#
gaudi = appMgr()
alg = BB(
'BB',
RootInTES=rootInTES,
Inputs=['Phys/SelB&B/Particles']
)
return SUCCESS
示例15: configure
# 需要导入模块: from Configurables import DaVinci [as 别名]
# 或者: from Configurables.DaVinci import UserAlgorithms [as 别名]
def configure(datafiles, catalogs=[], castor=True, params={}):
"""
Configure the job
"""
from Configurables import DaVinci # needed for job configuration
from Configurables import EventSelector # needed for job configuration
from Configurables import NTupleSvc
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code="""
HLT_PASS_RE ( 'Stripping.*DiMuonHighMass.*Decision' )
""",
VOID_Code="""
0 < CONTAINS (
'/Event/Dimuon/Phys/FullDSTDiMuonDiMuonHighMassLine/Particles')
"""
)
filters = fltrs.filters('Filters')
filters.reverse()
the_year = params["year"]
davinci = DaVinci( # noqa
DataType=the_year,
InputType='MDST',
HistogramFile="chib_histos.root",
TupleFile="chib_tuples.root",
PrintFreq=1000,
Lumi=True,
EvtMax=-1
)
from Configurables import CondDB
CondDB(LatestGlobalTagByDataType=the_year)
#=========================================================================
# RootInTES = '/Event/ChiB'
# RootInTES = '/Event/Bottomonia'
RootInTES = '/Event/BOTTOM'
#=========================================================================
from BenderTools.MicroDST import uDstConf
uDstConf(RootInTES)
# =========================================================================
from Configurables import Gaudi__IODataManager as IODataManager
IODataManager().AgeLimit = 2
# =========================================================================
from Configurables import TrackScaleState
state_scale = TrackScaleState('StateScale', RootInTES='/Event/BOTTOM')
# =========================================================================
davinci.UserAlgorithms = [
state_scale,
"ChibAlg",
"UpsilonAlg"
]
# =========================================================================
# come back to Bender
setData(datafiles, catalogs, castor)
gaudi = appMgr()
alg_chib = Chib(
'ChibAlg', # Algorithm name ,
# input particles
RootInTES=RootInTES,
Inputs=[
# 'Phys/Chi_b/Particles'
'Phys/ChiB/Particles'
],
# take care about the proper particle combiner
ParticleCombiners={'': 'LoKi::VertexFitter'}
)
alg_upsilon = Upsilon(
'UpsilonAlg', # Algorithm name ,
# input particles
RootInTES=RootInTES,
Inputs=[
'Phys/Upsilon/Particles'
],
# take care about the proper particle combiner
ParticleCombiners={'': 'LoKi::VertexFitter'}
)
# =========================================================================
# mainSeq = gaudi.algorithm('GaudiSequencer/DaVinciUserSequence', True)
# mainSeq.Members += [state_scale, alg_chib.name(), alg_upsilon.name()]
# =========================================================================
return SUCCESS