示例#1
0
def configure(year, mc):
    """General configuration of DaVinci options.

    Keyword arguments:
    year -- One of lc2pxx.config.years
    mc -- True if booking MC ntuples, else false
    """
    dv = DaVinci()
    # Output ntuple name
    dv.TupleFile = "DVntuple.root"
    # Process all events
    dv.EvtMax = -1
    # Print status every 1000 events
    dv.PrintFreq = 1000
    # Number of events to skip at the beginning of each file
    dv.SkipEvents = 0
    dv.DataType = str(year)
    dv.Simulation = mc
    # Collision streams for Charm are on microDST, and  in MC
    if not mc:
        dv.InputType = "MDST"
        # See "Question about microDST and RootInTES" in lhcb-davinci
        dv.RootInTES = "/Event/Charm"
    # Add a GetIntegratedLuminosity/LumiTuple TTree to output, but not in MC
    dv.Lumi = not mc
示例#2
0
def configure(year, mc, input_type, n_events, root=None, tfn=None):
    """General configuration of DaVinci object.

    Keyword arguments:
    year -- One of (2011, 2012)
    mc -- True if creating Monte Carlo ntuples, else False
    """
    dv = DaVinci()
    # Stripping output on CHARMCOMPLETEEVENT.DST, MC on ALLSTREAMS.DST
    dv.InputType = input_type
    # Output ntuple name
    dv.TupleFile = 'DVntuple.root'
    # Print status every 1000 events
    dv.PrintFreq = 1000
    dv.EvtMax = n_events
    # Year of data taking
    dv.DataType = str(year)
    # Is the data from simulation
    dv.Simulation = mc
    # Add a GetIntegratedLuminosity/LumiTuple TTree to output if appropriate
    dv.Lumi = not mc
    if root is not None:
        dv.RootInTES = root
    if tfn is not None:
        dv.TupleFile = tfn
ttsis.ReportStage = "Stripping"

tttt = dtt.B.addTupleTool('TupleToolTISTOS')
tttt.TriggerList = [
    'Hlt1TrackAllL0Decision', 'Hlt1TrackMuonDecision',
    'Hlt1DiMuonHighMassDecision', 'Hlt2DiMuonDetachedJpsiDecision',
    'Hlt2DiMuonJpsiDecision'
]
tttt.VerboseHlt1 = True
tttt.VerboseHlt2 = True

dv = DaVinci()
dv.DDDBtag = 'head-20110914'
dv.CondDBtag = 'head-20110914'
dv.DataType = '2011'
dv.Lumi = False
dv.InputType = "MDST" if mDST else "DST"
dv.UserAlgorithms = [dtt]
dv.EvtMax = -1

ApplicationMgr().HistogramPersistency = "ROOT"
from Configurables import HistogramPersistencySvc
HistogramPersistencySvc(OutputFile='histos.root')

from Configurables import NTupleSvc
NTupleSvc().Output += ["DTT DATAFILE='tuples.root' TYPE='ROOT' OPT='NEW'"]
NTupleSvc().OutputLevel = 1

## Point the EventClockSvc to the RootInTES
## from Configurables import EventClockSvc, OdinTimeDecoder, TimeDecoderList
## EventClockSvc().addTool( TimeDecoderList, name = "EventTimeDecoder" )
################
from Configurables import DaVinci, L0Conf

dv = DaVinci()

dv.DataType = '2012'
dv.EvtMax = -1
for line_info in line_infos:
  print line_info
  tuple = makeDecayTreeTuple( line_info[0], line_info[1], line_info[2], line_info[3] )
  dv.UserAlgorithms += [ tuple ]
dv.Simulation   = False
#from Configurables import CondDB
#CondDB(UseOracle = True)
DaVinci().DDDBtag = "dddb-20120831"
DaVinci().CondDBtag = "cond-20121211"
DaVinci().EnableUnpack = ['Stripping','Reconstruction']

dv.Lumi = True
dv.HistogramFile = "DVHistos.root"    # Histogram file
dv.TupleFile = "DVNtuples.root"       # Ntuple

# to test rejecting hot CALO cells 
#from Gaudi.Configuration import *
#def recomputeL0Calo():
#  from Configurables import L0CaloAlg
#  DataOnDemandSvc().AlgMap[ 'Trig/L0/FullCalo'  ] = L0CaloAlg( WriteOnTES = True , WriteBanks = False )
#  DataOnDemandSvc().AlgMap[ 'Trig/L0/Calo'  ] = L0CaloAlg( WriteOnTES = True , WriteBanks = False )
#
#appendPostConfigAction(recomputeL0Calo)
    def __init__(self, fname, version, linename, datafile, explicitTags = False,
                 useTrackScaleState = True, 
                 toolList = ["TupleToolPropertime",
                             "TupleToolKinematic",
                             "TupleToolGeometry",
                             "TupleToolEventInfo",
                             "TupleToolPrimaries",
                             "TupleToolPid",
                             "TupleToolANNPID",
                             "TupleToolTrackInfo",
                             "TupleToolRecoStats",],
                 mcToolList = ['TupleToolMCTruth',
                               'TupleToolMCBackgroundInfo',
                               'MCTupleToolPrompt'],
                 L0List = [],
                 HLT1List = [],
                 HLT2List = [],
                 strippingList = [],
                 aliases = {},
                 labXAliases = False, 
                 substitutions = {}, 
                 optssuffix = 'settings',
                 extraopts = '', 
                 extraoptsfile = '',
                 datatype = None,
                 diracversion = None,
                 force = False) :
        from Configurables import GaudiSequencer, DaVinci, TupleToolStripping, \
            TupleToolTrigger
    
        # Defines Simulation, CondDBtag, DDDBtag, InputType, DataType
        dv = DaVinci()
        dataopts = get_data_opts(datafile, explicitTags, optssuffix, datatype, diracversion, force)
        dv.configure_data_opts(dataopts)

        dv.TupleFile = 'DVTuples.root'
        dv.HistogramFile = 'DVHistos.root'
        dv.Lumi = True

        # Can't use TrackScaleState for 2015 data yet as it's not been calibrated.
        if useTrackScaleState :
            dv.add_TrackScaleState()

        # Defines rootInTES, inputLocation, and decayDescs
        lineopts = get_line_settings(linename, version, os.path.split(fname)[0], optssuffix, force)
        lineopts, lineseq = dv.add_line_tuple_sequence(lineopts, 
                                                       toolList, mcToolList,
                                                       L0List, HLT1List, HLT2List, strippingList,
                                                       aliases, labXAliases, substitutions)
        dtt = lineseq.Members[-1]

        if dataopts['Simulation'] :
            mcunbseqs = []
            for desc in lineopts['decayDescs'] :
                mcunbseq = dv.add_mc_unbiased_sequence(desc)
                mcunbseqs.append(mcunbseq)
        localns = dict(locals())
        localns.update(globals())
        if extraopts :
            exec extraopts in localns
        if extraoptsfile :
            execfile(os.path.expandvars(extraoptsfile)) in localns 

        objsdict = {'dv' : dv}

        Script.__init__(self, fname, dv.extraobjs, objsdict)
示例#6
0
    def __init__(self, fname, version, linename, datafile, explicitTags = False,
                 useTrackScaleState = True, 
                 toolList = ["TupleToolPropertime",
                             "TupleToolKinematic",
                             "TupleToolGeometry",
                             "TupleToolEventInfo",
                             "TupleToolPrimaries",
                             "TupleToolPid",
                             "TupleToolANNPID",
                             "TupleToolTrackInfo",
                             "TupleToolRecoStats",],
                 mcToolList = ['TupleToolMCTruth',
                               'TupleToolMCBackgroundInfo',
                               'MCTupleToolPrompt'],
                 L0List = [],
                 HLT1List = [],
                 HLT2List = [],
                 strippingList = [],
                 aliases = {},
                 labXAliases = False, 
                 substitutions = {}, 
                 optssuffix = 'settings',
                 extraopts = '', 
                 extraoptsfile = '',
                 datatype = None,
                 diracversion = 'prod',
                 force = False,
                 mooreversion = 'latest') :
        from Configurables import GaudiSequencer, DaVinci, TupleToolStripping, \
            TupleToolTrigger
    
        # Defines Simulation, CondDBtag, DDDBtag, InputType, DataType
        dv = DaVinci()
        dataopts = get_data_opts(datafile, explicitTags, optssuffix, datatype, diracversion, force)
        dv.configure_data_opts(dataopts)

        dv.TupleFile = 'DVTuples.root'
        dv.HistogramFile = 'DVHistos.root'
        dv.Lumi = True

        # Can't use TrackScaleState for 2015 data yet as it's not been calibrated.
        if useTrackScaleState :
            dv.add_TrackScaleState()

        # Defines rootInTES, inputLocation, and decayDescs
        lineopts = get_line_settings(linename, version, os.path.split(fname)[0], optssuffix, force,
                                     mooreversion)
        lineopts, lineseq = dv.add_line_tuple_sequence(lineopts, 
                                                       toolList, mcToolList,
                                                       L0List, HLT1List, HLT2List, strippingList,
                                                       aliases, labXAliases, substitutions)
        dtt = lineseq.Members[-1]

        if dataopts['Simulation'] :
            mcunbseqs = []
            for desc in lineopts['decayDescs'] :
                mcunbseq = dv.add_mc_unbiased_sequence(desc,
                                                       toolList = toolList,
                                                       mcToolList = mcToolList,
                                                       L0List = L0List,
                                                       HLT1List = HLT1List,
                                                       HLT2List = HLT2List,
                                                       strippingList = strippingList)
                mcunbseqs.append(mcunbseq)
        localns = dict(locals())
        localns.update(globals())
        if extraopts :
            exec extraopts in localns
        if extraoptsfile :
            if isinstance(extraoptsfile, (tuple, list)) :
                for fextraopts in extraoptsfile :
                    execfile(os.path.expandvars(fextraopts)) in localns 
            else :
                execfile(os.path.expandvars(extraoptsfile)) in localns 

        objsdict = {'dv' : dv}

        Script.__init__(self, fname, dv.extraobjs, objsdict)