本文整理汇总了Python中PhysConf.Filters.LoKi_Filters类的典型用法代码示例。如果您正苦于以下问题:Python LoKi_Filters类的具体用法?Python LoKi_Filters怎么用?Python LoKi_Filters使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LoKi_Filters类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: configure_common
def configure_common(rootInTES,
datafiles,
catalogs=[],
castor=False):
"""
Job configuration
"""
from Configurables import DaVinci # needed for job configuration
from Configurables import EventSelector # needed for job configuration
from Configurables import FileCatalog # needed for job configuration
from Configurables import NTupleSvc # needed for job configuration
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code="""
HLT_PASS_RE ( 'Stripping.*CharmAndDiMuon.*Decision' ) |
HLT_PASS_RE ( 'Stripping.*DiMuonAndCharm.*Decision' ) |
HLT_PASS_RE ( 'Stripping.*DiCharm.*Decision' ) |
HLT_PASS_RE ( 'Stripping.*DoubleDiMuon.*Decision' )
"""
)
filters = fltrs.filters('Filters')
# filters.reverse()
davinci = DaVinci(
DataType='2011',
InputType='MDST',
Simulation=False,
PrintFreq=1000,
EventPreFilters=filters,
EvtMax=-1,
#
HistogramFile='2xCharm_Histos.root',
TupleFile='2xCharm.root',
#
Lumi=True,
#
)
from Configurables import CondDB
CondDB(UseLatestTags=["2011"],
## UseOracle = True
)
# from Configurables import Gaudi__IODataManager as IODataManager
# IODataManager().AgeLimit = 2
# ------- decoding set-up start ----------
from Bender.MicroDST import uDstConf
uDstConf(rootInTES)
logger.info("Configure RootInTES: %s " % rootInTES)
# ------- decoding set-up end -----------
# come back to Bender
setData(datafiles, catalogs, castor)
return SUCCESS
示例2: configure
def configure(datafiles, catalogs=[], params={}, castor=False):
from Configurables import DaVinci
from Configurables import EventSelector
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
VOID_Code="""
0 < CONTAINS ('/Event/PSIX/Phys/SelPsi3KPiForPsiX/Particles')
"""
)
filters = fltrs.filters('Filters')
daVinci = DaVinci(
DataType=params['year'],
PrintFreq=1000,
EvtMax=-1,
#
TupleFile='Bu2JpsiKpipi.root',
EventPreFilters=filters,
#
Lumi=True,
#RootInTES = 'PSIX'
#
)
from Configurables import Gaudi__IODataManager as IODataManager
IODataManager().AgeLimit = 2
# define input data
setData(datafiles, catalogs, castor)
#
# Dynamic Configuration: Jump into the wonderful world of GaudiPython
#
# get the actual application manager (create if needed)
gaudi = appMgr()
# create local algorithm:
alg = Bu2JpsiKpipi(
'JpsiKpipi',
# input particles :
RootInTES='/Event/PSIX',
Inputs=['Phys/SelPsi3KPiForPsiX/Particles']
)
mainSeq = gaudi.algorithm('GaudiSequencer/DaVinciUserSequence', True)
mainSeq.Members += [alg.name()]
# gaudi.addAlgorithm ( alg )
return SUCCESS
示例3: configure_Ups
def configure_Ups(datafiles, catalogs=[], castor=False):
"""
Job configuration
"""
## needed for job configuration
from Configurables import DaVinci
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code="""
HLT_PASS_RE ( 'Stripping.*DiMuonHighMass.*Decision' )
""",
VOID_Code="""
( 0.5 < CONTAINS ( '/Event/Dimuon/Phys/FullDSTDiMuonDiMuonHighMassLine/Particles' ) ) &
( 0.5 < CONTAINS ( '/Event/Rec/Vertex/Primary' ) )
"""
)
filters = fltrs.filters('Filters')
filters.reverse()
davinci = DaVinci(
DataType='2011',
InputType='DST',
Simulation=False,
PrintFreq=1000,
EventPreFilters=filters,
EvtMax=-1,
#
HistogramFile='TrgEff_Histos.root',
TupleFile='TrgEff.root',
#
Lumi=True,
#
)
from Configurables import CondDB
CondDB(UseLatestTags=["2011"])
#
# come back to Bender
#
setData(datafiles, catalogs, castor)
gaudi = appMgr()
# for t in ( 'TrgEff.L0TriggerTisTos',
# 'TrgEff.TriggerTisTos' ) :
#
# t1 = gaudi.tool ( t )
# t1.TOSFracMuon = 0.01
# t1.PropertiesPrint = True
alg = TrgUpsEff(
'TrgEff', # Algorithm name ,
Inputs=[
'/Event/Dimuon/Phys/FullDSTDiMuonDiMuonHighMassLine/Particles']
)
#
mainSeq = gaudi.algorithm('GaudiSequencer/DaVinciUserSequence', True)
mainSeq.Members += [alg.name()]
return SUCCESS
示例4: configure
#.........这里部分代码省略.........
bc_pi = CombineParticles(
DecayDescriptor='[B_c+ -> J/psi(1S) pi+ ]cc',
#
Preambulo=Preambulo,
DaughtersCuts={
"J/psi(1S)": " M < 4.0 * GeV "
},
#
CombinationCut="""
in_range ( 5.9 * GeV , AM , 6.6 * GeV )
""" ,
#
MotherCut="""
( chi2vx < 16 ) &
( ctau > 50 * micrometer )
""" ,
ParticleCombiners={'': 'LoKi::VertexFitter'},
ReFitPVs=True
)
#
Bc_1p = Selection(
'Psi1Pi',
Algorithm=bc_pi,
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' ,
示例5: configure
#.........这里部分代码省略.........
"""
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
示例6: configure
def configure(datafiles, catalogs=[], params={}, castor=False):
from Configurables import DaVinci
from Configurables import EventSelector
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
VOID_Code="""
0 < CONTAINS ('/Event/PSIX/Phys/SelPsi3KForPsiX/Particles')
"""
)
filters = fltrs.filters('Filters')
the_year = '2011'
daVinci = DaVinci(
#
EventPreFilters = filters ,
#
DataType = params['year'] ,
InputType = 'MDST' ,
RootInTES = 'PSIX' ,
#
PrintFreq = 1000 ,
EvtMax = -1 ,
#
TupleFile='Bu2JpsiKKK.root',
#
Lumi=True
#
)
daVinci.UserAlgorithms = [ 'JpsiKKK' ]
from Configurables import CondDB
CondDB ( LatestGlobalTagByDataType = the_year )
#
## define input data
#
setData(datafiles, catalogs, castor)
#
## suppress some extra printput
#
from BenderTools.Utils import silence
silence()
#
## get the actual application manager (create if needed)
#
gaudi = appMgr()
#
## create local algorithm:
#
alg = Bu2JpsiKKK (
'JpsiKKK',
# input particles :
RootInTES='/Event/PSIX',
Inputs=['Phys/SelPsi3KForPsiX/Particles']
)
return SUCCESS
示例7: importOptions
#-------------------------------------------------------------------------
from Configurables import DaVinci
from Configurables import OfflineVertexFitter
from Configurables import DecayTreeTuple, MCDecayTreeTuple
importOptions("Xb2JpsiXTree.py")
tuple = DecayTreeTuple( "Lb2JpsiSTree" )
tuple.Inputs = [ SeqLb2JpsiS.outputLocation() ]
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(STRIP_Code = "(HLT_PASS_RE('StrippingFullDSTDiMuonJpsi2MuMuDetachedLineDecision'))" )
from Configurables import DaVinci
DaVinci().Simulation = False
DaVinci().EvtMax = -1 # Number of events
DaVinci().EventPreFilters = fltrs.filters('Filter')
DaVinci().UserAlgorithms = [ seq, tuple ]
from Configurables import CondDB
#CondDB(UseOracle = True)
#importOptions("$APPCONFIGOPTS/DisableLFC.py")
#CondDB().IgnoreHeartBeat = True
DaVinci().DataType = "2012"
#DaVinci().DDDBtag = "head-20110914"
#DaVinci().CondDBtag = "head-20111102"
DaVinci().TupleFile = "DVNtuples.root"
DaVinci().PrintFreq = 10000
示例8: configure
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'
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/Charm'
# Read only fired events to speed up
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code="""
HLT_PASS_RE( 'Stripping.*DsLamCForPromptCharm.*' )
"""
)
dv = DaVinci(
EventPreFilters=fltrs.filters('Filters'),
DataType=the_year,
InputType='MDST',
RootInTES=rootInTES,
Simulation=False,
PrintFreq=1000,
EvtMax=-1,
#
HistogramFile='LB_Histos.root',
TupleFile='LB.root',
#
Lumi=True,
#
)
dv.UserAlgorithms = ['LB']
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 = LB(
'LB',
RootInTES=rootInTES,
Inputs=['Phys/DsLamCForPromptCharm/Particles']
)
return SUCCESS
示例9: configure
def configure(datafiles, catalogs=[]):
"""
Job configuration
"""
## needed for job configuration
from Configurables import DaVinci
## needed for job configuration
from Configurables import EventSelector
## needed for job configuration
from GaudiConf.Configuration import FileCatalog
## needed for job configuration
from GaudiConf.Configuration import NTupleSvc
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
STRIP_Code="""
HLT_PASS_RE ( 'Stripping.*DiMuonInc.*Decision' )
""",
VOID_Code="""
0.5 < CONTAINS ('/Event/Leptonic/Phys/MicroDSTDiMuonDiMuonIncLine/Particles' )
"""
)
filters = fltrs.filters('Filters')
filters.reverse()
davinci = DaVinci(
DataType='2011',
InputType='MDST',
Simulation=False,
PrintFreq=1000,
EventPreFilters=filters,
EvtMax=-1,
#
HistogramFile='MuPidEff_Histos.root',
TupleFile='MuPidEff.root',
#
Lumi=True,
#
)
from Configurables import CondDB
CondDB(UseLatestTags=["2011"],
UseOracle=True
)
# from Configurables import Gaudi__IODataManager as IODataManager
# IODataManager().AgeLimit = 2
# configure TIS-TOS
rootInTES = '/Event/Leptonic'
# ------- decoding set-up start ----------
## from MicroDSTConf.TriggerConfUtils import configureL0AndHltDecoding
# configureL0AndHltDecoding(rootInTES)
# ------- decoding set-up end -----------
# come back to Bender
setData(datafiles, catalogs)
gaudi = appMgr()
alg = MuPidEff(
'MuPidEff', # Algorithm name ,
RootInTES=rootInTES,
Inputs=['Phys/MicroDSTDiMuonDiMuonIncLine/Particles']
)
#
mainSeq = gaudi.algorithm('GaudiSequencer/DaVinciUserSequence', True)
mainSeq.Members += [alg.name()]
return SUCCESS
示例10: stripMicroDSTStreamConf
SelDSTWriterConf = {'default': stripMicroDSTStreamConf(pack=False)}
SelDSTWriterElements = {'default': stripMicroDSTElements(pack=False)}
udstWriter = SelDSTWriter(
"MyMicroDSTWriter",
StreamConf=SelDSTWriterConf,
MicroDSTElements=SelDSTWriterElements,
OutputFileSuffix='PsiC',
SelectionSequences=[B_ALL]
)
# 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
)
#
# protection agains ``corrupted'' Stripping 17b DIMUON.DST
fltrs_0 = LoKi_Filters(
VOID_Code="""
( EXISTS ( '/Event/DAQ/RawEvent') | EXISTS('/Event/Trigger/RawEvent' ) )
& EXISTS ( '/Event/Strip/Phys/DecReports')
"""
)
## the_year = "2011"
the_year = "2012"
from Configurables import DaVinci
示例11: configure
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
示例12: configure
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,
#.........这里部分代码省略.........
示例13: stripMicroDSTElements
SelDSTWriterElements = {'default': stripMicroDSTElements(pack=False)}
udstWriter = SelDSTWriter(
"MyDSTWriter",
StreamConf=SelDSTWriterConf,
MicroDSTElements=SelDSTWriterElements,
OutputFileSuffix='BX',
SelectionSequences=[b_seq]
)
#
# Read only fired events to speed up
#
from PhysConf.Filters import LoKi_Filters
fltrs1 = LoKi_Filters(
STRIP_Code=" HLT_PASS_RE('Stripping.*%s.*') " % jpsi_name
)
fltrs2 = LoKi_Filters(
VOID_Code="""
( RECSUMMARY ( 0 , -1 ) > 0.5 ) &
( RECSUMMARY ( 10 , -1 ) < 500 ) &
( RECSUMMARY ( 13 , -1 ) < 500 )
"""
)
##the_year = "2011"
the_year = "2012"
from Configurables import DaVinci
dv = DaVinci(
EventPreFilters=fltrs1.filters(
示例14: configure
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']
)
#.........这里部分代码省略.........
示例15: configure
def configure(datafiles, catalogs=[]):
"""
Job configuration
"""
## needed for job configuration
from Configurables import DaVinci
## needed for job configuration
from Configurables import EventSelector
## needed for job configuration
from GaudiConf.Configuration import FileCatalog
## needed for job configuration
from GaudiConf.Configuration import NTupleSvc
from PhysConf.Filters import LoKi_Filters
fltrs = LoKi_Filters(
#
MC_Preambulo=[
"from LoKiCore.functions import in_range, count, has ",
"from GaudiKernel.SystemOfUnits import GeV",
"from_B = MCINANCESTORS ( BEAUTY )",
"pt_d_cut = in_range ( 2 * GeV , MCPT , 12 * GeV ) ",
"y_d_cut = in_range ( 2 , MCY , 4.0 ) ",
"pt_j_cut = MCPT < 12 * GeV ",
"y_j_cut = in_range ( 2 , MCY , 4.5 ) ",
"d0 = 'D0' == MCABSID ",
# MCDECTREE ( '[ D0 -> K- pi+ ]CC') " ,
"dp = 'D+' == MCABSID ",
# MCDECTREE ( '[ D+ --> K- pi+ pi+ ]CC') " ,
"ds = 'D_s+' == MCABSID ",
# MCDECTREE ( '[ D_s+ --> K- K+ pi+ ]CC') " ,
"lc = 'Lambda_c+' == MCABSID ",
# MCDECTREE ( '[ Lambda_c+ --> p+ K- pi+ ]CC') " ,
# MCDECTREE ( ' J/psi(1S) => mu+ mu-' ) " ,
"psi = 'J/psi(1S)' == MCABSID ",
"psi_B = psi & from_B ",
"charm = ( d0 | dp | ds | lc ) ",
"charm_B = charm & from_B ",
],
#
# di-charm mode
#
# MC_Code = """
## has ( BEAUTY )
# &
## ( 1.5 < count ( y_d_cut & pt_d_cut & charm_B ) )
# """
#
# dimuon & charm
#
# MC_Code = """
## has ( BEAUTY )
# &
## ( 0.5 < count ( y_d_cut & pt_d_cut & charm_B ) )
# &
## ( 0.5 < count ( y_j_cut & pt_j_cut & psi_B ) )
# """
#
# alltogather
#
MC_Code="""
has ( BEAUTY )
&
( 1.5 < count (
( y_d_cut & pt_d_cut & charm_B ) |
( y_j_cut & pt_j_cut & psi_B ) ) )
"""
)
filters = fltrs.filters('Filters')
filters.reverse()
davinci = DaVinci(
DataType='2011',
InputType='DST',
Simulation=True,
PrintFreq=1000,
#EventPreFilters = filters ,
EvtMax=-1,
#
HistogramFile='2xCharm_fromB_Histos.root',
TupleFile='2xCharm_fromB.root',
#
Lumi=False
#
)
# come back to Bender
setData(datafiles, catalogs)
gaudi = appMgr()
alg = MCB2(
#
'MCB2', # Algorithm name
#
Inputs=[],
#
PP2MCs=[]
#.........这里部分代码省略.........