def trackingPreFilter(name, prefilter):

    VeloMuonBuilder1 = VeloMuonBuilder("VeloMuonBuilder")
    VeloMuonBuilder1.OutputLevel = 6
    VeloMuonBuilder1.MuonLocation = "Hlt1/Track/MuonSeg"
    VeloMuonBuilder1.VeloLocation = "Rec/Track/FittedVelo"
    VeloMuonBuilder1.lhcbids = 4
    VeloMuonBuilder1.OutputLocation = "Rec/VeloMuon/Tracks"

    preve = TrackPrepareVelo("preve")
    preve.inputLocation = "Rec/Track/Velo"
    preve.outputLocation = "Rec/Track/UnfittedPreparedVelo"
    preve.bestLocation = ""
    vefit = ConfiguredFit("vefit", "Rec/Track/UnfittedPreparedVelo")
    vefit.TracksOutContainer = "Rec/Track/FittedVelo"
    vefit.addTool(TrackMasterFitter, name='Fitter')
    ConfiguredFastFitter(getattr(vefit, 'Fitter'))

    alg = GaudiSequencer(
        "VeloMuonTrackingFor" + name,
        Members=[
            DecodeVeloRawBuffer(name + "VeloDecoding",
                                DecodeToVeloLiteClusters=True,
                                DecodeToVeloClusters=True),
            FastVeloTracking(name + "FastVelo",
                             OutputTracksName="Rec/Track/Velo"), preve, vefit,
            StandaloneMuonRec(name + "MuonStandalone"), VeloMuonBuilder1
        ])

    return GSWrapper(name="WrappedVeloMuonTracking",
                     sequencer=alg,
                     output='Rec/VeloMuon/Tracks',
                     requiredSelections=prefilter)
def trackingPreFilter(name, prefilter):

    VeloMuonBuilder1 = VeloMuonBuilder("VeloMuonBuilder")
    VeloMuonBuilder1.OutputLevel = 6
    VeloMuonBuilder1.MuonLocation = "Hlt1/Track/MuonSeg"
    VeloMuonBuilder1.VeloLocation = "Rec/Track/UnFittedVelo"
    VeloMuonBuilder1.lhcbids = 4
    VeloMuonBuilder1.OutputLocation = "Rec/VeloMuon/Tracks"

    preve = TrackPrepareVelo("preve")
    preve.inputLocation = "Rec/Track/Velo"
    preve.outputLocation = "Rec/Track/UnFittedVelo"
    preve.bestLocation = ""

    alg = GaudiSequencer(
        "VeloMuonTrackingFor" + name,
        Members=[
            DecodeVeloRawBuffer(name + "VeloDecoding",
                                DecodeToVeloLiteClusters=True,
                                DecodeToVeloClusters=True),
            FastVeloTracking(name + "FastVelo",
                             OutputTracksName="Rec/Track/Velo"), preve,
            StandaloneMuonRec(name + "MuonStandalone"), VeloMuonBuilder1
        ])

    return GSWrapper(name="WrappedVeloMuonTracking",
                     sequencer=alg,
                     output='Rec/VeloMuon/Tracks',
                     requiredSelections=prefilter)
def trackingPreFilter(name, prefilter):

    VeloMuonBuilder1 = VeloMuonBuilder("VeloMuonBuilder")
    VeloMuonBuilder1.OutputLevel = 6
    VeloMuonBuilder1.MuonLocation = "Hlt1/Track/MuonSeg"
    VeloMuonBuilder1.VeloLocation = "Rec/Track/UnFittedVelo"
    VeloMuonBuilder1.lhcbids = 4
    VeloMuonBuilder1.OutputLocation = "Rec/VeloMuon/Tracks"

    preve = TrackPrepareVelo("preve")
    preve.inputLocation = "Rec/Track/Velo"
    preve.outputLocation = "Rec/Track/UnFittedVelo"
    preve.bestLocation = ""

    #TODO: apparently FastVelo is now (april 2012) run with fixes in the production which don't neccessarily apply to the stripping...
    alg = GaudiSequencer(
        "VeloMuonTrackingFor" + name,
        Members=[
            DecodeVeloRawBuffer(name + "VeloDecoding",
                                DecodeToVeloLiteClusters=True,
                                DecodeToVeloClusters=True),
            FastVeloTracking(name + "FastVelo",
                             OutputTracksName="Rec/Track/Velo"), preve,
            StandaloneMuonRec(name + "MuonStandalone"), VeloMuonBuilder1
        ])

    return GSWrapper(name="WrappedVeloMuonTracking",
                     sequencer=alg,
                     output='Rec/VeloMuon/Tracks',
                     requiredSelections=prefilter)
示例#4
0
def trackingPreFilter(name, prefilter):

   VeloMuonBuilder1 = VeloMuonBuilder("VeloMuonBuilder")
   VeloMuonBuilder1.OutputLevel = 6
   VeloMuonBuilder1.MuonLocation = "Hlt1/Track/MuonSeg"
   VeloMuonBuilder1.VeloLocation = "Rec/Track/FittedVelo"
   VeloMuonBuilder1.lhcbids = 4
   VeloMuonBuilder1.OutputLocation = "Rec/VeloMuon/Tracks"

   preve = TrackPrepareVelo("preve")
   preve.inputLocation = "Rec/Track/Velo"
   preve.outputLocation = "Rec/Track/UnfittedPreparedVelo"
   preve.bestLocation = ""
   vefit = TrackEventFitter('vefit')
   vefit.TracksInContainer = "Rec/Track/UnfittedPreparedVelo"
   vefit.TracksOutContainer = "Rec/Track/FittedVelo"
   vefit.addTool(TrackMasterFitter, name = 'Fitter')
   ConfiguredFastFitter( getattr(vefit,'Fitter'))
	
   #define a TrackCloneFinder
   #low = TrackCloneFinder("TrackCloneFinder/low")
   #low.MatchingFraction = 0.6
	
   Tf__PatVeloSpaceTracking("PatVeloSpaceTracking").addTool( Tf__PatVeloSpaceTool(), name="PatVeloSpaceTool" )
   Tf__PatVeloSpaceTracking("PatVeloSpaceTracking").PatVeloSpaceTool.MarkClustersUsed = True;
   #Tf__PatVeloSpaceTracking("PatVeloSpaceTracking").OutputLevel = 0;
	
#	algos = [tisTosPreFilterHlt1Jpsi, tisTosPreFilterHlt2Jpsi, Tf__PatVeloRTracking(), Tf__PatVeloSpaceTracking(),Tf__PatVeloGeneralTracking(), preve,vefit, StandaloneMuonRec(), VeloMuonBuilder1]
#	
   alg = GaudiSequencer("VeloMuonTrackingFor"+name,
                         #Members = [Jpsi_already_there,
                         #           jpsidotracking],
                         Members = [ DecodeVeloRawBuffer(name+"VeloDecoding"),
                                 Tf__PatVeloRTracking(name+"VeloR"), Tf__PatVeloSpaceTracking(name+"VeloSpace"),
				 Tf__PatVeloGeneralTracking(name+"VeloGen"), preve,vefit, 
				 StandaloneMuonRec(name+"MuonStandalone"), VeloMuonBuilder1])

   return GSWrapper(name="WrappedVeloMuonTracking",
                     sequencer=alg,
                     output='Rec/VeloMuon/Tracks',
                     requiredSelections = [ prefilter])
def DefaultDecoderToVeloClusters(
    Name                     = 'DecodeVeloRawBufferToVeloClusters',
    RawEventLocations        = ['Velo/RawEvent',
                                'Other/RawEvent',
                                'DAQ/RawEvent'],
    VeloClusterLocation      ='Raw/Velo/Clusters',
    DecodeToVeloClusters     = True,
    DecodeToVeloLiteClusters = False
    ):
    
    decoder = DecodeVeloRawBuffer( Name )
    
    decoder.RawEventLocations        = RawEventLocations
    decoder.VeloClusterLocation      = VeloClusterLocation
    decoder.DecodeToVeloClusters     = DecodeToVeloClusters
    decoder.DecodeToVeloLiteClusters = DecodeToVeloLiteClusters
    
    return decoder
from Configurables import DecodeVeloRawBuffer, RawBankToSTClusterAlg, UnpackTrack, STOfflinePosition

itClusterPosition = STOfflinePosition('ToolSvc.ITClusterPosition')
itClusterPosition.DetType  = 'IT'
#itClusterPosition.ErrorVec = [ 0.28, 0.2, 0.3, 0.32 ]
#itClusterPosition.APE      = 0.05

ttClusterPosition = STOfflinePosition('ToolSvc.STOfflinePosition')
#ttClusterPosition.ErrorVec = [ 0.29, 0.34, 0.32, 0.46 ]
#ttClusterPosition.APE      = 0.197

from Configurables import HltRoutingBitsFilter

physFilter = HltRoutingBitsFilter( "PhysFilter", RequireMask = [ 0x0, 0x4, 0x0 ] )

veloDecoder = DecodeVeloRawBuffer('VeloDecoder')
veloDecoder.DecodeToVeloLiteClusters = False
veloDecoder.DecodeToVeloClusters = True

itDecoder = RawBankToSTClusterAlg('ITDecoder') 
itDecoder.DetType = 'IT'

ttDecoder = RawBankToSTClusterAlg('TTDecoder')

#from Configurables import CondDB, CondDBAccessSvc
# Adding an extra slice of the database (example: alignment constants)
#mycalib = CondDBAccessSvc( 'myCalib' )
#mycalib.ConnectionString = 'sqlite_file:/afs/cern.ch/user/m/mamartin/public/AlignDB/v6.2series.db/LHCBCOND'
#CondDB().addLayer( mycalib )

#In DV2012.py
]

appConf.HistogramPersistency = "ROOT"
HistogramPersistencySvc.OutputFile = "testOutput.root"

#########################################################################################
from Configurables import DecodeVeloRawBuffer, Tf__PatVeloRTracking
from Configurables import BeamGasTrigClusterCut, BeamGasTrigExtractClusters, BeamGasTrigVertexCut

rzTracking1 = Tf__PatVeloRTracking('RZTracking1')
rzTracking1.OutputTracksName = "Hlt/Track/RZVelo"
# What happens with the Number of unused clusters
# if we don't set this ???

mySeqRZTr = GaudiSequencer('mySeqRZTr')
mySeqRZTr.Members = [DecodeVeloRawBuffer()]
mySeqRZTr.Members += [rzTracking1]

clustCut = BeamGasTrigClusterCut()
clustCut.SensorsBegin = 22
clustCut.SensorsEnd = 39
clustCut.FracUnusedClustersCut = 0.27
print clustCut

extrCl = BeamGasTrigExtractClusters()
extrCl.OutputLocation = "Raw/Velo/UnusedRLiteClusters"
print extrCl

rzTracking2 = Tf__PatVeloRTracking('RZTracking2')
#rzTracking2.HitManagerName = "SecondDefaultVeloRHitManager"
#ToolSvc.SecondDefaultVeloRHitManager.LiteClusterLocation = extrCl.OutputLocation
示例#8
0
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32484/032484_0000081651.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32493/032493_0000081660.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32498/032498_0000081699.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32500/032500_0000081701.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32501/032501_0000081702.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32576/032576_0000081818.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32578/032578_0000081820.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32580/032580_0000081822.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32581/032581_0000081823.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'",
        "DATAFILE='mdf:root://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/data/2008/RAW/LHCb/BEAM/32583/032583_0000081825.raw?svcClass=lhcbtape'  SVC='LHCb::MDFSelector'"
    ]
    # Above file requires following special options for Velo
    from Configurables import (RawBankToSTClusterAlg,
                               RawBankToSTLiteClusterAlg, DecodeVeloRawBuffer,
                               UpdateManagerSvc)
    DecodeVeloRawBuffer().ForceBankVersion = 3
    DecodeVeloRawBuffer().RawEventLocations = ['Prev2/DAQ/RawEvent']
    DecodeVeloRawBuffer('DecodeVeloClusters').RawEventLocations = [
        'Prev2/DAQ/RawEvent'
    ]
    DecodeVeloRawBuffer('DecodeVeloClusters').ForceBankVersion = 3
    UpdateManagerSvc().ConditionsOverride += [
        "Conditions/Online/Velo/MotionSystem := double ResolPosRC =-29. ; double ResolPosLA = 29. ;"
    ]
    RawBankToSTClusterAlg('CreateTTClusters').RawEventLocations = [
        "/Event/Prev2/DAQ/RawEvent"
    ]
    RawBankToSTLiteClusterAlg('CreateTTLiteClusters').RawEventLocations = [
        "/Event/Prev2/DAQ/RawEvent"
    ]
else:
示例#9
0
    dondem.AlgMap['/Event/' + b + '/Raw/OT/Times'] = ot_conf['oTTimeCreator' +
                                                             b].getFullName()

from Configurables import MuonRec, MuonRawBuffer
muon_conf = {}
for b in bunch:
    muon_conf['MuonRec' + b] = MuonRec('MuonRec' + b)
    muon_conf['MuonRec' + b].RootInTES = b
    muon_conf['MuonRec' + b].Context = 'TAE'
    dondem.AlgMap['/Event/' + b +
                  '/Raw/Muon/Coords'] = muon_conf['MuonRec' + b].getFullName()

from Configurables import DecodeVeloRawBuffer
velo_conf = {}
for b in bunch:
    velo_conf['createVeloClusters' +
              b] = DecodeVeloRawBuffer('createVeloClusters' + b)
    velo_conf['createVeloClusters' + b].ForceBankVersion = 3
    velo_conf['createVeloClusters' + b].RawEventLocation = b + '/DAQ/RawEvent'
    velo_conf['createVeloClusters' +
              b].VeloClusterLocation = b + '/Raw/Velo/Clusters'
    velo_conf['createVeloClusters' + b].DecodeToVeloClusters = True
    velo_conf['createVeloClusters' + b].DecodeToVeloLiteClusters = False
    velo_conf['createVeloLiteClusters' +
              b] = DecodeVeloRawBuffer('createVeloLiteClusters' + b)
    velo_conf['createVeloLiteClusters' + b].ForceBankVersion = 3
    velo_conf['createVeloLiteClusters' +
              b].RawEventLocation = b + '/DAQ/RawEvent'
    velo_conf['createVeloLiteClusters' +
              b].VeloLiteClustersLocation = b + '/Raw/Velo/LiteClusters'
    dondem.AlgMap['/Event/' + b + '/Raw/Velo/LiteClusters'] = velo_conf[
        'createVeloLiteClusters' + b].getFullName()
示例#10
0
    "   DATAFILE='PFN:castor:/castor/cern.ch/grid/lhcb/MC/MC09/XDST/00004918/0000/00004918_00000011_1.xdst' TYP='POOL_ROOTTREE' OPT='READ'",
    "   DATAFILE='PFN:castor:/castor/cern.ch/grid/lhcb/MC/MC09/XDST/00004918/0000/00004918_00000012_1.xdst' TYP='POOL_ROOTTREE' OPT='READ'",
    "   DATAFILE='PFN:castor:/castor/cern.ch/grid/lhcb/MC/MC09/XDST/00004918/0000/00004918_00000013_1.xdst' TYP='POOL_ROOTTREE' OPT='READ'"
]

Brunel().EvtMax = 1000

from Configurables import (GaudiSequencer, DecodeVeloRawBuffer,
                           TrackAssociator, Tf__PatVeloRTracking,
                           Tf__PatVeloSpaceTool, Tf__PatVeloSpaceTracking,
                           Tf__PatVeloGeneralTracking, NewVeloSpaceTool,
                           UnpackMCParticle, UnpackMCVertex,
                           MCParticleSelector)

GaudiSequencer("RecoVELOSeq").Members = [
    DecodeVeloRawBuffer(),
    Tf__PatVeloRTracking("PatVeloRTracking"),
    Tf__PatVeloSpaceTracking("PatVeloSpaceTracking"),
    Tf__PatVeloGeneralTracking("PatVeloGeneralTracking"),
    UnpackMCParticle(),
    UnpackMCVertex(),
    TrackAssociator("AssocVeloRZ"),
    TrackAssociator("AssocVelo")
]
from Configurables import (FwdFitParams, SeedFitParams, KsFitParams)

GaudiSequencer("CheckFitSeq").Members += [
    FwdFitParams(), SeedFitParams(),
    KsFitParams()
]
示例#11
0
#                'my' : [7.46, -0.5, -112],
#                'x'  : [0.75, 0.6, 0.49, 0.65],
#                'y'  : [0.483, 0.589, 0.738, 0.813]}

## Recombine RawEvent
# from Configurables import RawEventFormatConf, RawEventJuggler, RecombineRawEvent
# juggleSeq = GaudiSequencer("JuggleSeq")
# RawEventJuggler().Input = 2.0
# RawEventJuggler().Output = 0.0
# RawEventJuggler().Sequencer = juggleSeq

## Configure Reco
co = createODIN()
mr = MuonRec()

decodeVelo = DecodeVeloRawBuffer( "createVeloLiteClusters" )
recoVelo = FastVeloTracking( 'FastVeloHlt', OutputTracksName = "Hlt/Track/Velo" )
recoVelo.HLT1Only = False
decodeIT = RawBankToSTLiteClusterAlg("createITLiteClusters")
decodeIT.DetType  = "IT"

## Configure L0 emulation by hand
# from Configurables import L0DUFromRawAlg, L0DUFromRawTool
# l0du   = L0DUFromRawAlg("L0DUFromRaw")
# l0du.addTool(L0DUFromRawTool,name = "L0DUFromRawTool")
# l0du = getattr( l0du, 'L0DUFromRawTool' )
# l0du.StatusOnTES         = False
seq.Members = [ co, decodeVelo, recoVelo, decodeIT, mr ]

from Configurables import CombinedParticleMaker
from Configurables import ProtoParticleMUONFilter
示例#12
0
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50447/050447_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50448/050448_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50449/050449_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50450/050450_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50452/050452_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50454/050454_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50457/050457_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50462/050462_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50463/050463_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50465/050465_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50468/050468_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50472/050472_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50473/050473_0000000001.raw' SVC='LHCb::MDFSelector'",
        "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50474/050474_0000000001.raw' SVC='LHCb::MDFSelector'"
    ]
    DecodeVeloRawBuffer().RawEventLocation = 'Prev1/DAQ/RawEvent'
    DecodeVeloRawBuffer(
        'DecodeVeloClusters').RawEventLocation = 'Prev1/DAQ/RawEvent'
    DecodeVeloRawBuffer('DecodeVeloClusters').DecodeToVeloClusters = True
    DecodeVeloRawBuffer('DecodeVeloClusters').DecodeToVeloLiteClusters = False
    UpdateManagerSvc().ConditionsOverride += [
        "Conditions/Online/Velo/MotionSystem := double ResolPosRC =-1 ; double ResolPosLA = 1 ;"
    ]
    UpdateManagerSvc().ConditionsOverride += [
        "Conditions/Alignment/Velo/VeloRight :=  double_v dPosXYZ = 0 0 0;",
        "Conditions/Alignment/Velo/VeloLeft  :=  double_v dPosXYZ = 0 0 0;"
    ]

    ## ##  # in Central
    ## EventSelector().Input = [
    ##     "DATA='castor:/castor/cern.ch/grid/lhcb/data/2009/RAW/FULL/LHCb/TED/50475/050475_0000000001.raw' SVC='LHCb::MDFSelector'"
DataOnDemandSvc().AlgMap["Raw/Muon/Coords"] = "MuonRec"
DataOnDemandSvc().AlgMap["DAQ/ODIN"] = "createODIN"
DataOnDemandSvc().AlgMap[
    "Raw/Rich/Digits"] = "Rich::DAQ::RawBufferToRichDigitsAlg/RichRawEventToDigits"

RawBankToSTClusterAlg("createITClusters").DetType = "IT"
RawBankToSTLiteClusterAlg("createITLiteClusters").DetType = "IT"

RawBankToSTClusterAlg("createUTClusters").DetType = "UT"
RawBankToSTLiteClusterAlg("createUTLiteClusters").DetType = "UT"

#Moved to ST/STTools/python/STTools/STOfflineConf, as with TT and IT
#from Configurables import STOfflinePosition
#UT = STOfflinePosition('ToolSvc.UTClusterPosition')
#UT.DetType = "UT"

DecodeVeloRawBuffer("createVeloClusters").DecodeToVeloClusters = True
DecodeVeloRawBuffer("createVeloClusters").DecodeToVeloLiteClusters = False
DecodeVeloRawBuffer("createVeloLiteClusters").DecodeToVeloClusters = False
DecodeVeloRawBuffer("createVeloLiteClusters").DecodeToVeloLiteClusters = True

Rich__DAQ__RawBufferToRichDigitsAlg(
    "RichRawEventToDigits").DecodeBufferOnly = False
# Calorimeters
from Configurables import CaloDigitConf
CaloDigitConf(EnableDigitsOnDemand=True).applyConf()

importOptions("$L0DUOPTS/L0OnDemand.opts")

print __doc__
示例#14
0
    def configureLink(self, linkDets, moniDets):
        """
        Set up the MC links sequence
        """

        doWriteTruth = ("DIGI" in self.getProp("Outputs")) and (
            self.getProp("DigiType").capitalize() != "Minimal")

        if "Velo" in linkDets or "Velo" in moniDets or "Tr" in linkDets:
            seq = GaudiSequencer("LinkVeloSeq")
            from Configurables import DecodeVeloRawBuffer
            decodeVelo = DecodeVeloRawBuffer()
            decodeVelo.DecodeToVeloClusters = True
            decodeVelo.DecodeToVeloLiteClusters = False
            seq.Members += [decodeVelo]
            seq.Members += ["VeloCluster2MCHitLinker"]
            seq.Members += ["VeloCluster2MCParticleLinker"]

        if "VeloPix" in linkDets or "VeloPix" in moniDets:
            from Configurables import VeloPixDigit2MCHitLinker, VeloPixDigit2MCParticleLinker, VeloPixCluster2MCHitLinker, VeloPixCluster2MCParticleLinker
            seq = GaudiSequencer("LinkVeloPixSeq")
            seq.Members += [
                VeloPixDigit2MCHitLinker("VeloPixDigit2MCHitLinker")
            ]
            seq.Members += [
                VeloPixDigit2MCParticleLinker("VeloPixDigit2MCParticleLinker")
            ]
            seq.Members += [
                VeloPixCluster2MCHitLinker("VeloPixCluster2MCHitLinker")
            ]
            seq.Members += [
                VeloPixCluster2MCParticleLinker(
                    "VeloPixCluster2MCParticleLinker")
            ]

        if "TT" in linkDets or "IT" in linkDets or "TT" in moniDets or "IT" in moniDets or "Tr" in linkDets:
            from Configurables import STDigit2MCHitLinker, STCluster2MCHitLinker, STCluster2MCParticleLinker
            if "TT" in linkDets or "TT" in moniDets:
                seq = GaudiSequencer("LinkTTSeq")
                seq.Members += [STDigit2MCHitLinker("TTDigitLinker")]
                seq.Members += [STCluster2MCHitLinker("TTClusterLinker")]
                seq.Members += [STCluster2MCParticleLinker("TTTruthLinker")]

            if "IT" in linkDets or "IT" in moniDets:
                seq = GaudiSequencer("LinkITSeq")
                seq.Members += [
                    STDigit2MCHitLinker("ITDigitLinker", DetType="IT")
                ]
                seq.Members += [
                    STCluster2MCHitLinker("ITClusterLinker", DetType="IT")
                ]
                seq.Members += [
                    STCluster2MCParticleLinker("ITTruthLinker", DetType="IT")
                ]

        if "OT" in linkDets or "OT" in moniDets or "Tr" in linkDets:
            seq = GaudiSequencer("LinkOTSeq")
            seq.Members += ["OTMCDepositLinker"]
            seq.Members += ["OTMCHitLinker"]
            seq.Members += ["OTMCParticleLinker"]

        if "Tr" in linkDets and doWriteTruth:
            seq = GaudiSequencer("LinkTrSeq")
            if "VeloPix" in linkDets:
                seq.Members += ["BuildMCTrackWithVeloPixInfo"]
            else:
                seq.Members += ["BuildMCTrackInfo"]

        if "Rich" in linkDets and doWriteTruth:
            seq = GaudiSequencer("LinkRichSeq")
            seq.Members += ["Rich::MC::MCRichDigitSummaryAlg"]

        if "Calo" in linkDets or "Calo" in moniDets:
            from Configurables import CaloDigitsFromRaw, CaloReCreateMCLinks, CaloDigitMCTruth
            seq = GaudiSequencer("LinkCaloSeq")
            seq.Members += [CaloDigitsFromRaw("EcalFromRaw")]
            seq.Members += [CaloDigitsFromRaw("HcalFromRaw")]
            recreateLinks = CaloReCreateMCLinks()
            recreateLinks.Digits = ["Raw/Ecal/Digits", "Raw/Hcal/Digits"]
            recreateLinks.MCDigits = ["MC/Ecal/Digits", "MC/Hcal/Digits"]
            seq.Members += [recreateLinks]
            seq.Members += [CaloDigitMCTruth("EcalDigitMCTruth")]
            hcalTruth = CaloDigitMCTruth("HcalDigitMCTruth")
            hcalTruth.Input = "Raw/Hcal/Digits"
            hcalTruth.Detector = "/dd/Structure/LHCb/DownstreamRegion/Hcal"
            seq.Members += [hcalTruth]

        if "Muon" in linkDets and doWriteTruth:
            seq = GaudiSequencer("LinkMuonSeq")
            seq.Members += ["MuonDigit2MCParticleAlg"]
            seq.Members += ["MuonTileDigitInfo"]

        if "L0" in linkDets and doWriteTruth:
            from Configurables import L0Conf
            L0Conf().LinkSequencer = GaudiSequencer("LinkL0Seq")
示例#15
0
# This file is for reconstructing the VELO TED data between August and mid September 2008
# load the configurables I'll need
from Gaudi.Configuration import *
from Configurables import (UpdateManagerSvc, DecodeVeloRawBuffer,
                           Tf__PatVeloGeneric, Tf__PatVeloGeneralTracking)

# Fully open the detector
UpdateManagerSvc().ConditionsOverride += [
    "Conditions/Online/Velo/MotionSystem := double ResolPosRC =-29. ; double ResolPosLA = 29.;"
]

# delete and reset the RecVELOSeq to decode (to lite and full), Generic then General PR
GaudiSequencer("RecoVELOSeq").Members = [
    DecodeVeloRawBuffer(),
    Tf__PatVeloGeneric("PatVeloGeneric"),
    Tf__PatVeloGeneralTracking("PatVeloGeneralTracking")
]

# Save having the algorithm run twice
DecodeVeloRawBuffer("DecodeVeloRawBuffer").DecodeToVeloClusters = True
# Fix for bug in TELL1 scripts (fixed mid Sept)
DecodeVeloRawBuffer('DecodeVeloRawBuffer').ForceBankVersion = 3
# Move to SPD timed in BEAM2 "main" BX bin
DecodeVeloRawBuffer(
    'DecodeVeloRawBuffer').RawEventLocation = 'Prev2/DAQ/RawEvent'