Forked from
atlas / athena
92925 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
vp1.py 22.00 KiB
if not 'vp1InputFiles' in dir(): vp1InputFiles = []
if not 'vp1CfgFiles' in dir(): vp1CfgFiles = []
if not 'vp1ID' in dir(): vp1ID=True
if not 'vp1Calo' in dir(): vp1Calo=True
if not 'vp1Muon' in dir(): vp1Muon=True
if not 'vp1LUCID' in dir(): vp1LUCID=False
if not 'vp1ALFA' in dir(): vp1ALFA=False
if not 'vp1ForwardRegion' in dir(): vp1ForwardRegion=False
if not 'vp1ZDC' in dir(): vp1ZDC=False
if not 'vp1Extrapolator' in dir(): vp1Extrapolator=True
# if not 'vp1Fitter' in dir(): vp1Fitter=False
if not 'vp1Fatras' in dir(): vp1Fatras=False
if not 'vp1FatrasMuon' in dir(): vp1FatrasMuon=(vp1Fatras and vp1Muon)
if not 'vp1FatrasCalo' in dir(): vp1FatrasCalo=(vp1Fatras and vp1Calo)
if not 'vp1FatrasTruthKey' in dir(): vp1FatrasTruthKey=""
if not 'vp1Online' in dir(): vp1Online=False
if not 'vp1Mc' in dir(): vp1Mc=False
if not 'vp1Multinp' in dir(): vp1Multinp=False
if not 'vp1Multinpsrc' in dir(): vp1Multinpsrc=""
if not 'vp1Multinpcpy' in dir(): vp1Multinpcpy=""
if not 'vp1MultiAvailableSrcDirs' in dir(): vp1MultiAvailableSrcDirs = []
if not 'vp1TrigDecXML' in dir(): vp1TrigDecXML=""
if not 'vp1Batch' in dir(): vp1Batch=False
if not 'vp1BatchAllEvents' in dir(): vp1BatchAllEvents=False
if not 'vp1BatchNEvents' in dir(): vp1BatchNEvents=0
if not 'vp1BatchOutFolder' in dir(): vp1BatchOutFolder=""
if not 'vp1BatchRandomConfiguration' in dir(): vp1BatchRandomConfiguration=False
if not 'vp1LarHvData' in dir(): vp1LarHvData=False
# if not 'vp1FullToroids' in dir(): vp1FullToroids=False
if not 'vp1CruiseTime' in dir(): vp1CruiseTime=0
if not 'vp1NoSortDBReplicas' in dir(): vp1NoSortDBReplicas=False
if not 'vp1FilterEvents' in dir(): vp1FilterEvents=""
if not 'vp1NoGui' in dir(): vp1NoGui=False
if not 'vp1SpacePoints' in dir(): vp1SpacePoints=False
if not 'vp1Cavern' in dir(): vp1Cavern=False
if not 'vp1NoAutoConf' in dir(): vp1NoAutoConf=False
if not 'vp1Trig' in dir(): vp1Trig=False
if not 'vp1NSWAGDDFiles' in dir(): vp1NSWAGDDFiles=[]
if not 'vp1MuonLayout' in dir(): vp1MuonLayout=""
def vp1CfgErr(s): printfunc ("VP1 CONFIGURATION ERROR: %s" % s)
if (vp1Fatras and not vp1ID):
vp1CfgErr("Fatras can not be enabled without inner detector. Turning off Fatras.")
vp1Fatras=False
if (vp1FatrasMuon and not vp1Fatras):
vp1CfgErr("FatrasMuon can not be enabled without Fatras enabled. Turning off FatrasMuon.")
vp1FatrasMuon=False
if (vp1FatrasMuon and not vp1Muon):
vp1CfgErr("FatrasMuon can not be enabled without muon systems. Turning off FatrasMuon.")
vp1FatrasMuon=False
if (vp1FatrasCalo and not vp1Fatras):
vp1CfgErr("FatrasCalo can not be enabled without Fatras enabled. Turning off FatrasCalo.")
vp1FatrasCalo=False
if (vp1FatrasCalo and not vp1Calo):
vp1CfgErr("FatrasCalo can not be enabled without calo systems. Turning off FatrasCalo.")
vp1FatrasCalo=False
if ( vp1FatrasTruthKey != "" and not vp1Fatras ):
vp1CfgErr("FatrasTruthKey set but Fatras not enabled. Unsetting FatrasTruthKey.")
vp1FatrasTruthKey=""
printfunc ("*** VP1 NOTE *** setting COIN_GLXGLUE env vars to make screenshots working remotely...")
printfunc ("*** VP1 NOTE *** COIN_GLXGLUE_NO_GLX13_PBUFFERS=1 - " + "COIN_GLXGLUE_NO_PBUFFERS=1")
os.putenv("COIN_GLXGLUE_NO_GLX13_PBUFFERS","1")
os.putenv("COIN_GLXGLUE_NO_PBUFFERS","1")
#Set VP1ATLREL integer so we can do e.g. "if VP1ATLREL>=160002:"
include('VP1Algs/vp1FragmentConstructVP1ATLREL.py')
#Disable FPE checks :-(
from RecExConfig.RecFlags import rec
rec.doFloatingPointException.set_Value_and_Lock(False)
if (vp1InputFiles == []):
# Create an event selector:
import AthenaCommon.AtlasUnixGeneratorJob
# Configure GlobalFlags
from AthenaCommon.GlobalFlags import globalflags
globalflags.DetGeo.set_Value_and_Lock('atlas')
globalflags.DataSource.set_Value_and_Lock('geant4')
# Set geometry version
if (not "DetDescrVersion" in dir()):
DetDescrVersion = "ATLAS-R2-2016-01-00-01" # default Run 2 geometry
globalflags.DetDescrVersion = DetDescrVersion
# Set conditions tag
if not 'vp1GlobCond' in dir():
vp1GlobCond="OFLCOND-SDR-BS7T-05-14"
from IOVDbSvc.CondDB import conddb
conddb.setGlobalTag(vp1GlobCond)
### NEW FOR REL. >= 22
# Conditions Service for reading conditions data in serial and MT Athena
from IOVSvc.IOVSvcConf import CondSvc
svcMgr += CondSvc()
from AthenaCommon.AlgSequence import AthSequencer
condSeq = AthSequencer("AthCondSeq")
# Conditions data access infrastructure for serial and MT Athena
from IOVSvc.IOVSvcConf import CondInputLoader
condSeq += CondInputLoader( "CondInputLoader")
import StoreGate.StoreGateConf as StoreGateConf
svcMgr += StoreGateConf.StoreGateSvc("ConditionStore")
else:
if(vp1NoAutoConf):
# AutoConfiguration disabled
import AthenaCommon.AtlasUnixStandardJob
if(vp1Online):
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
athenaCommonFlags.isOnline = True
from AthenaCommon.GlobalFlags import globalflags
globalflags.DetGeo.set_Value_and_Lock('atlas')
if(vp1Mc):
globalflags.DataSource.set_Value_and_Lock('geant4')
else:
globalflags.DataSource.set_Value_and_Lock('data')
globalflags.InputFormat.set_Value_and_Lock('pool')
globalflags.Luminosity.set_Value_and_Lock('zero')
from AthenaCommon.BeamFlags import jobproperties
jobproperties.Beam.beamType="collisions"
# Set geometry version
if (not "DetDescrVersion" in dir()):
DetDescrVersion = "ATLAS-GEO-10-00-02"
globalflags.DetDescrVersion = DetDescrVersion
# Set conditions tag
if not 'vp1GlobCond' in dir():
if (vp1Mc):
vp1GlobCond="OFLCOND-SIM-BS7T-02"
else:
vp1GlobCond="COMCOND-BLKPST-004-01"
from IOVDbSvc.CondDB import conddb
conddb.setGlobalTag(vp1GlobCond)
### NEW FOR REL. >= 22
# Conditions Service for reading conditions data in serial and MT Athena
from IOVSvc.IOVSvcConf import CondSvc
svcMgr += CondSvc()
from AthenaCommon.AlgSequence import AthSequencer
condSeq = AthSequencer("AthCondSeq")
# Conditions data access infrastructure for serial and MT Athena
from IOVSvc.IOVSvcConf import CondInputLoader
condSeq += CondInputLoader( "CondInputLoader")
import StoreGate.StoreGateConf as StoreGateConf
svcMgr += StoreGateConf.StoreGateSvc("ConditionStore")
else:
# AutoConfiguration enabled
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
athenaCommonFlags.FilesInput=vp1InputFiles
from RecExConfig.RecFlags import rec
rec.AutoConfiguration=['everything']
rec.doAOD.set_Value_and_Lock(False)
rec.doESD.set_Value_and_Lock(False)
# Override geometry tag from command line
if("DetDescrVersion" in dir()):
from AthenaCommon.GlobalFlags import globalflags
globalflags.DetDescrVersion = DetDescrVersion
#globalflags.DetDescrVersion.set_Value_and_Lock(DetDescrVersion)
athenaCommonFlags.EvtMax=-1
include('RecExCond/RecExCommon_flags.py')
# Override global conditions tag from command line
if('vp1GlobCond' in dir()):
from IOVDbSvc.CondDB import conddb
conddb.setGlobalTag(vp1GlobCond)
### NEW FOR REL. >= 22
# Conditions Service for reading conditions data in serial and MT Athena
from IOVSvc.IOVSvcConf import CondSvc
svcMgr += CondSvc()
from AthenaCommon.AlgSequence import AthSequencer
condSeq = AthSequencer("AthCondSeq")
# Conditions data access infrastructure for serial and MT Athena
from IOVSvc.IOVSvcConf import CondInputLoader
condSeq += CondInputLoader( "CondInputLoader")
import StoreGate.StoreGateConf as StoreGateConf
svcMgr += StoreGateConf.StoreGateSvc("ConditionStore")
if vp1FilterEvents:
import VP1Algs.VP1EvtFilter
vp1FilterEvents = VP1Algs.VP1EvtFilter.parseFilterString(vp1FilterEvents)
VP1Algs.VP1EvtFilter.installEventFilter(vp1FilterEvents)
from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
#BATCH-MODE
# If "vp1Batch" is TRUE, then set the corresponding env var.
# The GUI of VP1 will not be shown, but the config file will be taken
# and in the end a render of the 3D window will be saved as PNG file.
#
# Moreover, if "vp1BatchAllEvents" is TRUE, then all the events
# in the provided data file will be processed with the same configuration
# file provided by the user.
#
if vp1Batch:
os.putenv("VP1_BATCHMODE","1")
if vp1BatchAllEvents:
os.putenv("VP1_BATCHMODE_ALLEVENTS","1")
if vp1BatchNEvents > 0:
os.putenv("VP1_BATCHMODE_NEVENTS", str(vp1BatchNEvents) )
if (vp1BatchOutFolder != ""):
os.putenv("VP1_BATCHMODE_OUT_FOLDER", vp1BatchOutFolder)
if vp1BatchRandomConfiguration:
os.putenv("VP1_BATCHMODE_RANDOMCONFIG","1")
#Detector setup:
from AthenaCommon.DetFlags import DetFlags
if (vp1ID): DetFlags.ID_setOn()
else: DetFlags.ID_setOff()
if (vp1Calo): DetFlags.Calo_setOn()
else: DetFlags.Calo_setOff()
if (vp1Muon):
DetFlags.Muon_setOn()
from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff()
if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff()
if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff()
else: DetFlags.Muon_setOff()
if (vp1LUCID): DetFlags.Lucid_setOn()
else: DetFlags.Lucid_setOff()
if (vp1ALFA): DetFlags.ALFA_setOn()
else: DetFlags.ALFA_setOff()
if (vp1ForwardRegion): DetFlags.FwdRegion_setOn()
else: DetFlags.FwdRegion_setOff()
if (vp1ZDC): DetFlags.ZDC_setOn()
else: DetFlags.ZDC_setOff()
DetFlags.Print()
# --- GeoModel
from AtlasGeoModel import SetGeometryVersion
from AtlasGeoModel import GeoModelInit
from AthenaCommon.AppMgr import ToolSvc
if vp1Muon and len(vp1NSWAGDDFiles)>0:
printfunc ("*** VP1 NOTE *** You specified custom vp1NSWAGDDFiles, creating NSWAGDDTool to read NSWAGDD information from custom file(s) '%s' instead from built-in geometry"%(', '.join(vp1NSWAGDDFiles)))
from AthenaCommon.AppMgr import theApp
from AGDD2GeoSvc.AGDD2GeoSvcConf import AGDDtoGeoSvc
AGDD2Geo = AGDDtoGeoSvc()
theApp.CreateSvc += ["AGDDtoGeoSvc"]
svcMgr += AGDD2Geo
from AthenaCommon import CfgMgr
from MuonAGDD.MuonAGDDConf import NSWAGDDTool
NSWAGDDTool = CfgMgr.NSWAGDDTool("NewSmallWheel", DefaultDetector="Muon", ReadAGDD=False, XMLFiles=vp1NSWAGDDFiles, Volumes=["NewSmallWheel"])
AGDD2Geo.Builders += [ NSWAGDDTool ]
if vp1Muon and vp1MuonLayout!="":
printfunc ("*** VP1 NOTE *** You specified custom vp1MuonLayout, using %s as muon geometry"%vp1MuonLayout)
from GeoModelSvc.GeoModelSvcConf import GeoModelSvc
GeoModelSvc = GeoModelSvc()
GeoModelSvc.MuonVersionOverride=vp1MuonLayout
from AthenaCommon.AppMgr import ServiceMgr as svcMgr
if vp1Cavern:
from CavernInfraGeoModel.CavernInfraGeoModelConf import CavernInfraDetectorTool
svcMgr.GeoModelSvc.DetectorTools += [ CavernInfraDetectorTool() ]
# --- AGDD2Geo
# Switch it ON if
# - Muon is ON
# - Major geometry version is greater than 10
if (vp1Muon):
from AtlasGeoModel import Agdd2Geo
#MagneticField:
import MagFieldServices.SetupField
# Fatras
if (vp1Fatras):
from FatrasExample.FatrasJobProperties import FatrasFlags
FatrasFlags.SingleTrackSimulation.set_Value(vp1InputFiles==[])
from FastSimulationConfig.FastSimulationFlags import jobproperties
jobproperties.FastSimulation.doFatrasID.set_Value(True)
jobproperties.FastSimulation.doFatrasMuon.set_Value(vp1FatrasMuon)
FatrasFlags.FastCaloSim.set_Value(vp1FatrasCalo)
if (vp1InputFiles != []):
import AthenaPoolCnvSvc.ReadAthenaPool
if (vp1ID):
if (vp1Fatras and vp1FatrasTruthKey!=""):
from FatrasExample.FatrasKeys import FatrasKeyFlags
FatrasKeyFlags.InputMcEventCollection.set_Value(vp1FatrasTruthKey)
if (vp1Trig):
from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter
TriggerConfigGetter( "ReadPool" )
if (vp1Calo):
from LArConditionsCommon import LArAlignable
#
# Following is needed to display Tile Pulse shapes on ESD files
#
from TileConditions.TileInfoConfigurator import TileInfoConfigurator
tileInfoConfigurator = TileInfoConfigurator()
if (vp1Muon):
include( "AmdcAth/AmdcAth_jobOptions.py" )
include( "PartPropSvc/PartPropSvc.py" )
if(vp1NoAutoConf):
svcMgr.EventSelector.InputCollections=vp1InputFiles
else:
svcMgr.EventSelector.InputCollections=athenaCommonFlags.FilesInput()
if 'skipEvents' in dir():
svcMgr.EventSelector.SkipEvents=skipEvents
else:
vp1Extrapolator = False
#watch LAr HV:
if ( vp1LarHvData ):
from time import time
svcMgr.AthenaSealSvc.CheckDictionary = TRUE
svcMgr.EventSelector.InitialTimeStamp = int (time())
svcMgr.EventSelector.TimeStampInterval = 1
from IOVDbSvc.CondDB import conddb
conddb.addFolder("DCS_OFL","/LAR/DCS/HV/BARREl/I16")
conddb.addFolder("DCS_OFL","/LAR/DCS/HV/BARREL/I8")
#------------
if (vp1Fatras):
include( "FatrasExample/Fatras_jobOptions.py" )
if (vp1TrigDecXML!=""):
include( "TrigConfigSvc/jobOptions_commonSetup.py" )
include( "TrigConfigSvc/jobOptions_setupLVL1Svc.py" )
include( "TrigConfigSvc/jobOptions_setupHLTSvc.py" )
HLTConfigSvc.XMLMenuFile = vp1TrigDecXML
from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool
ToolSvc += Trig__TrigDecisionTool("TrigDecisionTool")
if (vp1Calo):
from AthenaCommon.GlobalFlags import globalflags
if globalflags.DataSource() == 'data' :
include ("LArConditionsCommon/LArIdMap_comm_jobOptions.py")
else:
include ("LArConditionsCommon/LArConditionsCommon_MC_jobOptions.py")
include ("LArConditionsCommon/LArIdMap_MC_jobOptions.py")
#Extrapolator:
if vp1Extrapolator and (vp1ID or vp1Muon):
# Force tool initializations needed by the extrapolator
from VP1TrkAuxAlgs.VP1TrkAuxAlgsConf import VP1TrkInitializer
VP1TrkInitializer = VP1TrkInitializer()
VP1TrkInitializer.ForceExtrapolatorTools = True
topSequence += VP1TrkInitializer
if not vp1Fatras and vp1Mc:
include ('TrkDetDescrSvc/AtlasTrackingGeometrySvc.py')
from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
VP1ExtraPolatorName='VP1Extrapolator';
VP1Extrapolator = AtlasExtrapolator(name=VP1ExtraPolatorName)
from TrkExEngine.AtlasExtrapolationEngine import AtlasExtrapolationEngine
ExtrapolationEngine = AtlasExtrapolationEngine(name='Extrapolation', nameprefix='Atlas', ToolOutputLevel=INFO)
ToolSvc += ExtrapolationEngine
# Previous config from SetupFitters.py
# from TrkExTools.TrkExToolsConf import Trk__Extrapolator as Extrapolator
# VP1Extrapolator = Extrapolator(name='VP1Extrapolator',
# Navigator = VP1Navigator,
# MaterialEffectsUpdators = [ VP1MaterialUpdator ],
# Propagators = [ VP1Propagator ] )
ToolSvc += VP1Extrapolator
#We should append to variable instead:
os.putenv("VP1_JOBCFG_EXTRA_VP1_EXTRAPOLATORS","Trk::Extrapolator/"+VP1ExtraPolatorName)
#Fitter:
# if vp1Fitter and vp1Extrapolator and (vp1ID or vp1Muon):
# VP1TrkInitializer.ForceFitterTools = True
# os.putenv("VP1_DEVEL_ENABLEREFIT","1")
# ##########################################################
# # The Extrapolator
# include('TrkDetDescrSvc/AtlasTrackingGeometrySvc.py')
#
# from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
# VP1Propagator = Propagator(name = 'VP1Propagator')
# ToolSvc += VP1Propagator
#
# # the Navigator has to get this one
# from TrkExTools.TrkExToolsConf import Trk__Navigator
# VP1Navigator = Trk__Navigator(name = 'VP1Navigator')
# VP1Navigator.TrackingGeometrySvc = svcMgr.AtlasTrackingGeometrySvc
# ToolSvc += VP1Navigator
#
# from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator as MatUpdator
# VP1MaterialUpdator = MatUpdator(name='VP1MaterialEffectsUpdator')
# ToolSvc += VP1MaterialUpdator
#
# from TrkMeasurementUpdator_xk.TrkMeasurementUpdator_xkConf import Trk__KalmanUpdator_xk
# VP1Updator = Trk__KalmanUpdator_xk(name = 'VP1Updator')
# ToolSvc += VP1Updator
#
# from TrkDynamicNoiseAdjustor.TrkDynamicNoiseAdjustorConf import Trk__InDetDynamicNoiseAdjustment
# VP1DNAdjustor = Trk__InDetDynamicNoiseAdjustment(name = 'VP1DNAdjustor')
# #yminmax = 100.0)
# ToolSvc += VP1DNAdjustor
# from TrkKalmanFitter.TrkKalmanFitterConf import Trk__ForwardKalmanFitter as PublicFKF
# VP1FKF = PublicFKF(name = 'VP1FKF',
# StateChi2PerNDFPreCut = 25.0)
# ToolSvc += VP1FKF
#
# from TrkKalmanFitter.TrkKalmanFitterConf import Trk__KalmanSmoother as PublicBKS
# VP1BKS = PublicBKS(name = 'VP1BKS',
# InitialCovarianceSeedFactor = 200.)
# ToolSvc += VP1BKS
#
# from TrkKalmanFitter.TrkKalmanFitterConf import Trk__KalmanOutlierLogic as PublicKOL
# VP1KOL = PublicKOL(name = 'VP1KOL',
# StateChi2PerNDFCut = 12.5)
# ToolSvc += VP1KOL
#
# #FIXME! Only do this for Muons?
# from MuonRecExample import MuonRecTools
# MdtTubeHitOnTrackCreator = MuonRecTools.getPublicTool("MdtTubeHitOnTrackCreator")
#
# from TrkRIO_OnTrackCreator.TrkRIO_OnTrackCreatorConf import Trk__RIO_OnTrackCreator
# VP1RotCreator = Trk__RIO_OnTrackCreator(name = 'VP1RotCreator',
# ToolMuonDriftCircle = MdtTubeHitOnTrackCreator ,
# Mode = 'all')
# ToolSvc += VP1RotCreator
# printfunc (VP1RotCreator)
# printfunc (MdtTubeHitOnTrackCreator)
#
# from TrkKalmanFitter.TrkKalmanFitterConf import Trk__KalmanFitter as ConfiguredKalmanFitter
# VP1KalmanFitter = ConfiguredKalmanFitter(name = 'VP1KalmanFitter',
# ExtrapolatorHandle = VP1Extrapolator,
# RIO_OnTrackCreatorHandle = VP1RotCreator,
# MeasurementUpdatorHandle = VP1Updator,
# ForwardKalmanFitterHandle = VP1FKF,
# KalmanSmootherHandle = VP1BKS,
# KalmanOutlierLogicHandle = VP1KOL,
# DynamicNoiseAdjustorHandle = None,
# AlignableSurfaceProviderHandle = None)
#
# ToolSvc += VP1KalmanFitter
#
# printfunc (VP1KalmanFitter)
# os.putenv("VP1_JOBCFG_EXTRA_VP1_FITTERS",VP1KalmanFitter.name())
#
#
# VP1KalmanFitterDNA = ConfiguredKalmanFitter(name = 'VP1KalmanFitterDNA',
# ExtrapolatorHandle = VP1Extrapolator,
# RIO_OnTrackCreatorHandle = VP1RotCreator,
# MeasurementUpdatorHandle = VP1Updator,
# ForwardKalmanFitterHandle = VP1FKF,
# KalmanSmootherHandle = VP1BKS,
# KalmanOutlierLogicHandle = VP1KOL,
# DynamicNoiseAdjustorHandle = VP1DNAdjustor,
# AlignableSurfaceProviderHandle = None)
#
# ToolSvc += VP1KalmanFitterDNA
# os.putenv("VP1_JOBCFG_EXTRA_VP1_FITTERS",VP1KalmanFitterDNA.name())
#
#
# from TrkGlobalChi2Fitter.TrkGlobalChi2FitterConf import Trk__GlobalChi2Fitter
# VP1GlobalChi2Fitter = Trk__GlobalChi2Fitter(name = 'VP1GlobalChi2Fitter',
# ExtrapolationTool = VP1Extrapolator,
# NavigatorTool = VP1Navigator,
# PropagatorTool = VP1Propagator,
# RotCreatorTool = VP1RotCreator,
# MeasurementUpdateTool = VP1Updator,
# StraightLine = False,
# OutlierCut = 3.0,
# SignedDriftRadius = True,
# RecalculateDerivatives= True
# )
# printfunc (VP1GlobalChi2Fitter)
# ToolSvc += VP1GlobalChi2Fitter
#
# VP1GlobalChi2Fitter.OutputLevel=DEBUG
#
# os.putenv("VP1_JOBCFG_EXTRA_VP1_FITTERS","Trk::KalmanFitter/"+VP1KalmanFitter.name()+";"+"Trk::KalmanFitter/"+VP1KalmanFitterDNA.name()+";"+"Trk::GlobalChi2Fitter/"+VP1GlobalChi2Fitter.name())
#On a machine where the hostname does not indicate domain, pool will
#fail if trying to find nearest replica. In any case, dblookup.xml
#needs to be patched when running on real data:
include('VP1Algs/vp1FragmentFixDBReplica.py')
if vp1NoSortDBReplicas:
PoolSvc = Service( "PoolSvc" )
PoolSvc.SortReplicas = False
#Finally, the VP1 algorithm itself:
from VP1Algs.VP1AlgsConf import VP1Alg
topSequence += VP1Alg()
VP1Alg.NoGui=vp1NoGui
if vp1CruiseTime > 0:
VP1Alg.InitialCruiseMode = "EVENT"
VP1Alg.InitialCruiseModePeriod = vp1CruiseTime
VP1Alg.InitiallyLoadedVP1Files = vp1CfgFiles
if (vp1Multinp):
VP1Alg.MultipleFilesON = True
VP1Alg.MFSourceDir = vp1Multinpsrc
VP1Alg.MFLocalCopyDir = vp1Multinpcpy
VP1Alg.MFAvailableLocalInputDirectories = vp1MultiAvailableSrcDirs
topSequence.TimeOut=0