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)
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
"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:
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()
" 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() ]
# '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
"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__
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")
# 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'