def getSCT_SurfaceChargesGenerator(name="SCT_SurfaceChargesGenerator", **kwargs): ## Set up services used by SCT_SurfaceChargesGenerator # Set up SCT_DCSConditiosnTool from SCT_ConditionsTools.SCT_DCSConditionsToolSetup import SCT_DCSConditionsToolSetup sct_DCSConditionsToolSetup = SCT_DCSConditionsToolSetup() sct_DCSConditionsToolSetup.setup() # Set up SCT_SiliconConditionsTool from SCT_ConditionsTools.SCT_SiliconConditionsToolSetup import SCT_SiliconConditionsToolSetup sct_SiliconConditionsToolSetup = SCT_SiliconConditionsToolSetup() sct_SiliconConditionsToolSetup.setDcsTool( sct_DCSConditionsToolSetup.getTool()) sct_SiliconConditionsToolSetup.setup() # Set up SCT_SiPropertiesTool from SiPropertiesTool.SCT_SiPropertiesToolSetup import SCT_SiPropertiesToolSetup sct_SiPropertiesToolSetup = SCT_SiPropertiesToolSetup() sct_SiPropertiesToolSetup.setSiliconTool( sct_SiliconConditionsToolSetup.getTool()) sct_SiPropertiesToolSetup.setup() ## Charge trapping tool - used by SCT_SurfaceChargesGenerator from AthenaCommon.AppMgr import ToolSvc ## SiLorentzAngleTool for SCT_SurfaceChargesGenerator from SiLorentzAngleTool.SCTLorentzAngleToolSetup import SCTLorentzAngleToolSetup sctLorentzAngleToolSetup = SCTLorentzAngleToolSetup() kwargs.setdefault("FixedTime", -999) kwargs.setdefault("SubtractTime", -999) kwargs.setdefault("SurfaceDriftTime", 10 * Units.ns) kwargs.setdefault("NumberOfCharges", 1) kwargs.setdefault("SmallStepLength", 5 * Units.micrometer) kwargs.setdefault("DepletionVoltage", 70) kwargs.setdefault("BiasVoltage", 150) kwargs.setdefault("SiPropertiesTool", sct_SiPropertiesToolSetup.getTool()) kwargs.setdefault("LorentzAngleTool", sctLorentzAngleToolSetup.SCTLorentzAngleTool) from AthenaCommon.GlobalFlags import globalflags kwargs.setdefault("isOverlay", globalflags.isOverlay()) # kwargs.setdefault("doTrapping", True) # ATL-INDET-INT-2016-019 from Digitization.DigitizationFlags import digitizationFlags if 'doDetailedSurfChargesGen' in digitizationFlags.experimentalDigi(): kwargs.setdefault("ChargeDriftModel", 1) kwargs.setdefault("EFieldModel", 2) kwargs.setdefault("MagneticField", -2.0) kwargs.setdefault("SensorTemperature", 273.15) kwargs.setdefault("TransportTimeStep", 0.25) kwargs.setdefault("TransportTimeMax", 25.0) from SCT_Digitization.SCT_DigitizationConf import SCT_DetailedSurfaceChargesGenerator return SCT_DetailedSurfaceChargesGenerator(name, **kwargs) else: from SCT_ConditionsTools.SCT_ConditionsToolsConf import SCT_RadDamageSummaryTool kwargs.setdefault( "RadDamageSummaryTool", SCT_RadDamageSummaryTool(name="InDetSCT_RadDamageSummaryTool")) from SCT_Digitization.SCT_DigitizationConf import SCT_SurfaceChargesGenerator return SCT_SurfaceChargesGenerator(name, **kwargs)
def commonSCT_FastDigitizationConfig(name,**kwargs): # Setup the DCS folders and tool used in the sctSiliconConditionsTool from SCT_ConditionsTools.SCT_DCSConditionsToolSetup import SCT_DCSConditionsToolSetup sct_DCSConditionsToolSetup = SCT_DCSConditionsToolSetup() sct_DCSConditionsToolSetup.setup() kwargs.setdefault("ClusterMaker", "FastClusterMakerTool") # Import Digitization job properties from Digitization.DigitizationFlags import digitizationFlags # set the random service, stream name streamName = kwargs.setdefault("RndmEngine", "FastSCT_Digitization") kwargs.setdefault("RndmSvc", digitizationFlags.rndmSvc() ) # set rndm seeds if not digitizationFlags.rndmSeedList.checkForExistingSeed(streamName): digitizationFlags.rndmSeedList.addSeed(streamName, 49261510, 105132394 ) if digitizationFlags.doXingByXingPileUp(): kwargs.setdefault("FirstXing", FastSCT_FirstXing()) kwargs.setdefault("LastXing", FastSCT_LastXing() ) # Set up SCT_SiliconConditionsTool from SCT_ConditionsTools.SCT_SiliconConditionsToolSetup import SCT_SiliconConditionsToolSetup sct_SiliconConditionsToolSetup = SCT_SiliconConditionsToolSetup() sct_SiliconConditionsToolSetup.setDcsTool(sct_DCSConditionsToolSetup.getTool()) sct_SiliconConditionsToolSetup.setup() # Set up SCT_SiPropertiesTool from SiPropertiesTool.SCT_SiPropertiesToolSetup import SCT_SiPropertiesToolSetup sct_SiPropertiesToolSetup = SCT_SiPropertiesToolSetup() sct_SiPropertiesToolSetup.setSiliconTool(sct_SiliconConditionsToolSetup.getTool()) sct_SiPropertiesToolSetup.setup() # SiLorentzAngleTool for SCT_FastDigitizationTool from AthenaCommon.AppMgr import ToolSvc from SiLorentzAngleTool.SCTLorentzAngleToolSetup import SCTLorentzAngleToolSetup sctLorentzAngleToolSetup = SCTLorentzAngleToolSetup() kwargs.setdefault("LorentzAngleTool", sctLorentzAngleToolSetup.SCTLorentzAngleTool) from AthenaCommon import CfgMgr return CfgMgr.SCT_FastDigitizationTool(name,**kwargs)
pixelSiPropertiesTool = pixelSiPropertiesToolSetup.getTool() from SiLorentzAngleTool.PixelLorentzAngleToolSetup import PixelLorentzAngleToolSetup pixelLorentzAngleToolSetup = PixelLorentzAngleToolSetup() pixelLorentzAngleTool = pixelLorentzAngleToolSetup.PixelLorentzAngleTool ReadPixelElements.UseConditionsTools = True ReadPixelElements.SiLorentzAngleTool = pixelLorentzAngleTool ReadPixelElements.SiPropertiesTool = pixelSiPropertiesTool ReadPixelElements.SiConditionsTool = None # # SCT # # Silicon Lorentz angle tool from SiLorentzAngleTool.SCTLorentzAngleToolSetup import SCTLorentzAngleToolSetup sctLorentzAngleToolSetup = SCTLorentzAngleToolSetup() sctLorentzAngleTool = sctLorentzAngleToolSetup.SCTLorentzAngleTool sctSiliconConditionsTool = sctLorentzAngleToolSetup.sctSiliconConditionsTool # Silicon properties tool from SiPropertiesTool.SCT_SiPropertiesToolSetup import SCT_SiPropertiesToolSetup sct_SiPropertiesToolSetup = SCT_SiPropertiesToolSetup() sct_SiPropertiesToolSetup.setSiliconTool(sctSiliconConditionsTool) sct_SiPropertiesToolSetup.setup() sctSiPropertiesTool = sct_SiPropertiesToolSetup.getTool() ReadSCTElements.UseConditionsTools = True ReadSCTElements.SiLorentzAngleTool = sctLorentzAngleTool ReadSCTElements.SiPropertiesTool = sctSiPropertiesTool ReadSCTElements.SiConditionsTool = sctSiliconConditionsTool ReadSCTElements.DetEleCollKey = "SCT_DetectorElementCollection"
InDetSCT_ConditionsSummaryToolWithoutFlagged.ConditionsTools = condTools # Setup Lorentz angle tool. from SiLorentzAngleTool.SCTLorentzAngleToolSetup import SCTLorentzAngleToolSetup forceUseDB = False forceUseGeoModel = False if InDetFlags.useSctDCS() or athenaCommonFlags.isOnline(): # Force Lorentz angle calculation to use DCS for data # (Not actually using DCS yet but rather temperature and voltage from joboptions.) if (globalflags.DataSource() == 'data'): forceUseDB = True else: forceUseGeoModel = True sctLorentzAngleToolSetup = SCTLorentzAngleToolSetup( forceUseDB=forceUseDB, forceUseGeoModel=forceUseGeoModel) SCTLorentzAngleTool = sctLorentzAngleToolSetup.SCTLorentzAngleTool # # --- Load necessary TRT conditions folders # if DetFlags.haveRIO.TRT_on(): # Compression table if (globalflags.DataSource() == 'data'): if not conddb.folderRequested('/TRT/Onl/ROD/Compress'): conddb.addFolder("TRT_ONL", "/TRT/Onl/ROD/Compress", className='CondAttrListCollection') # Rt calibration coinstants if not conddb.folderRequested('/TRT/Calib/RT'):