Exemplo n.º 1
0
def getSCT_FrontEnd(name="SCT_FrontEnd", **kwargs):
    from Digitization.DigitizationFlags import digitizationFlags
    #Setup noise treament in SCT_FrontEnd
    # To set the mean noise values for the different module types
    # Default values set at 0 degrees, plus/minus ~5 enc per plus/minus degree
    kwargs.setdefault("NoiseBarrel", 1500.0)
    kwargs.setdefault("NoiseBarrel3", 1541.0)
    kwargs.setdefault("NoiseInners", 1090.0)
    kwargs.setdefault("NoiseMiddles", 1557.0)
    kwargs.setdefault("NoiseShortMiddles", 940.0)
    kwargs.setdefault("NoiseOuters", 1618.0)
    kwargs.setdefault("NOBarrel", 1.5e-5)
    kwargs.setdefault("NOBarrel3", 2.1e-5)
    kwargs.setdefault("NOInners", 5.0e-9)
    kwargs.setdefault("NOMiddles", 2.7e-5)
    kwargs.setdefault("NOShortMiddles", 2.0e-9)
    kwargs.setdefault("NOOuters", 3.5e-5)
    # If noise is turned off:
    if not digitizationFlags.doInDetNoise.get_Value():
        ###kwargs.setdefault("OnlyHitElements", True)
        print('SCT_Digitization:::: Turned off Noise in SCT_FrontEnd')
        kwargs.setdefault("NoiseOn", False)
        kwargs.setdefault("AnalogueNoiseOn", False)
    else:
        kwargs.setdefault("NoiseOn", True)
        kwargs.setdefault("AnalogueNoiseOn", True)
    # In overlay MC, only analogue noise is on. Noise hits are not added.
    from AthenaCommon.GlobalFlags import globalflags
    if globalflags.isOverlay() and globalflags.DataSource == 'geant4':
        kwargs["NoiseOn"] = False
        kwargs["AnalogueNoiseOn"] = True
    # Use Calibration data from Conditions DB, still for testing purposes only
    kwargs.setdefault("UseCalibData", True)

    # Setup the ReadCalibChip folders and Svc
    from SCT_ConditionsTools.SCT_ReadCalibChipDataToolSetup import SCT_ReadCalibChipDataToolSetup
    sct_ReadCalibChipDataToolSetup = SCT_ReadCalibChipDataToolSetup()
    sct_ReadCalibChipDataToolSetup.setup()
    kwargs.setdefault("SCT_ReadCalibChipDataTool",
                      sct_ReadCalibChipDataToolSetup.getTool())
    # DataCompressionMode: 1 is level mode X1X (default), 2 is edge mode 01X, 3 is any hit mode (1XX|X1X|XX1)
    from AthenaCommon.BeamFlags import jobproperties
    if digitizationFlags.PileUpPremixing:
        kwargs.setdefault("DataCompressionMode", 3)
    elif globalflags.isOverlay() and globalflags.DataSource == 'geant4':
        kwargs.setdefault("DataCompressionMode", 2)
    elif (jobproperties.Beam.bunchSpacing() <= 50):
        kwargs.setdefault("DataCompressionMode", 1)
    else:
        kwargs.setdefault("DataCompressionMode", 3)
    # DataReadOutMode: 0 is condensed mode and 1 is expanded mode
    if globalflags.isOverlay() and globalflags.DataSource == 'geant4':
        kwargs.setdefault("DataReadOutMode", 0)
    else:
        kwargs.setdefault("DataReadOutMode", 1)
    from SCT_Digitization.SCT_DigitizationConf import SCT_FrontEnd
    return SCT_FrontEnd(name, **kwargs)
Exemplo n.º 2
0
        getPublicTool("IblPlanarChargeTool").DisableDistortions = True
        getPublicTool("Ibl3DChargeTool").DisableDistortions = True

    if hasattr(pixeldigi, 'OfflineCalibSvc'):
        pixeldigi.OfflineCalibSvc = ""

##     if DetFlags.pileup.pixel_on():
##         #changing the range of the Pixels
##         from AthenaCommon.AppMgr import ServiceMgr
##         from PileUpComps.PileUpCompsConf import PileUpXingFolder
##         pixelxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['PixelRange']
##         pixelxingFolder.FirstXing = -50
##         pixelxingFolder.LastXing = 25

if DetFlags.digitize.SCT_on():
    outStream.ItemList += ["SiHitCollection#SCT_Hits"]
    if not hasattr(ToolSvc, 'SCT_FrontEnd'):
        from SCT_Digitization.SCT_DigitizationConf import SCT_FrontEnd
        ToolSvc += SCT_FrontEnd("SCT_FrontEnd")
    theSCT_FrontEnd = ToolSvc.SCT_FrontEnd
    theSCT_FrontEnd.UseCalibData = False
    ToolSvc += theSCT_FrontEnd

    if DetFlags.pileup.SCT_on():
        #changing the range of the SCT
        from AthenaCommon.AppMgr import ServiceMgr
        from PileUpComps.PileUpCompsConf import PileUpXingFolder
        sctxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['SiliconRange']
        sctxingFolder.FirstXing = -50
        sctxingFolder.LastXing = 25
Exemplo n.º 3
0
def getSCT_FrontEnd(name="SCT_FrontEnd", **kwargs):
    from Digitization.DigitizationFlags import digitizationFlags
    #Setup noise treament in SCT_FrontEnd
    # To set the mean noise values for the different module types
    # Default values set at 0 degrees, plus/minus ~5 enc per plus/minus degree
    kwargs.setdefault("NoiseBarrel", 1500.0)
    kwargs.setdefault("NoiseBarrel3", 1541.0)
    kwargs.setdefault("NoiseInners", 1090.0)
    kwargs.setdefault("NoiseMiddles", 1557.0)
    kwargs.setdefault("NoiseShortMiddles", 940.0)
    kwargs.setdefault("NoiseOuters", 1618.0)
    kwargs.setdefault("NOBarrel", 1.5e-5)
    kwargs.setdefault("NOBarrel3", 2.1e-5)
    kwargs.setdefault("NOInners", 5.0e-9)
    kwargs.setdefault("NOMiddles", 2.7e-5)
    kwargs.setdefault("NOShortMiddles", 2.0e-9)
    kwargs.setdefault("NOOuters", 3.5e-5)
    # If noise is turned off:
    if not digitizationFlags.doInDetNoise.get_Value():
        ###kwargs.setdefault("OnlyHitElements", True)
        print 'SCT_Digitization:::: Turned off Noise in SCT_FrontEnd'
        kwargs.setdefault("NoiseOn", False)
        kwargs.setdefault("AnalogueNoiseOn", False)
    else:
        kwargs.setdefault("NoiseOn", True)
        kwargs.setdefault("AnalogueNoiseOn", True)
    # In overlay MC, only analogue noise is on. Noise hits are not added.
    from AthenaCommon.GlobalFlags import globalflags
    if globalflags.isOverlay() and globalflags.DataSource == 'geant4':
        kwargs["NoiseOn"] = False
        kwargs["AnalogueNoiseOn"] = True
    # Use Calibration data from Conditions DB, still for testing purposes only
    kwargs.setdefault("UseCalibData", True)
    # Setup the ReadCalibChip folders and Svc
    from IOVDbSvc.CondDB import conddb
    if not conddb.folderRequested('/SCT/DAQ/Calibration/ChipGain'):
        conddb.addFolderSplitMC("SCT", "/SCT/DAQ/Calibration/ChipGain",
                                "/SCT/DAQ/Calibration/ChipGain")
    if not conddb.folderRequested('/SCT/DAQ/Calibration/ChipNoise'):
        conddb.addFolderSplitMC("SCT", "/SCT/DAQ/Calibration/ChipNoise",
                                "/SCT/DAQ/Calibration/ChipNoise")
    from AthenaCommon.AppMgr import ServiceMgr
    if not hasattr(ServiceMgr, "InDetSCT_ReadCalibChipDataSvc"):
        from SCT_ConditionsServices.SCT_ConditionsServicesConf import SCT_ReadCalibChipDataSvc
        InDetSCT_ReadCalibChipDataSvc = SCT_ReadCalibChipDataSvc(
            name="InDetSCT_ReadCalibChipDataSvc")
        ServiceMgr += InDetSCT_ReadCalibChipDataSvc
    # DataCompressionMode: 1 is level mode x1x (default), 2 is edge mode 01x, 3 is expanded any hit xxx
    from AthenaCommon.BeamFlags import jobproperties
    if digitizationFlags.PileUpPremixing:
        kwargs.setdefault("DataCompressionMode", 3)
    elif globalflags.isOverlay() and globalflags.DataSource == 'geant4':
        kwargs.setdefault("DataCompressionMode", 2)
    elif (jobproperties.Beam.bunchSpacing() <= 50):
        kwargs.setdefault("DataCompressionMode", 1)
    else:
        kwargs.setdefault("DataCompressionMode", 3)
    # DataReadOutMode: 0 is condensed mode and 1 is expanded mode
    if globalflags.isOverlay() and globalflags.DataSource == 'geant4':
        kwargs.setdefault("DataReadOutMode", 0)
    else:
        kwargs.setdefault("DataReadOutMode", 1)
    from SCT_Digitization.SCT_DigitizationConf import SCT_FrontEnd
    return SCT_FrontEnd(name, **kwargs)
Exemplo n.º 4
0
# JobOption fragment to activate any hit mode

# Get the SCT Digitization Alg
from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
theSCT_Digitization = topSequence.SCT_Digitization

# Get the SCT FrontEnd Tool
from AthenaCommon.AppMgr import ToolSvc
from SCT_Digitization.SCT_DigitizationConf import SCT_FrontEnd
theSCT_FrontEnd = SCT_FrontEnd("SCT_FrontEnd")

# DataCompressionMode: 1 is level mode X1X (default), 2 is edge mode 01X, 3 is any hit mode (1XX|X1X|XX1)
theSCT_FrontEnd.DataCompressionMode = 3

ToolSvc += theSCT_FrontEnd

Exemplo n.º 5
0
    calibSvc.UseCalibCondDB = False
    calibSvc.UsePixMapCondDB = False
    getPublicTool("SpecialPixelGenerator").UsePixCondSum = False
    getPublicTool("PixelBarrelChargeTool").DisableDistortions = True
    getPublicTool("PixelECChargeTool").DisableDistortions = True
    getPublicTool("DBMChargeTool").DisableDistortions = True
    getPublicTool("IblPlanarChargeTool").DisableDistortions = True
    getPublicTool("Ibl3DChargeTool").DisableDistortions = True
    pixeldigi.EnableNoise = False
    getPublicTool("PixelNoisyCellGenerator").RndNoiseProb = 0
    getPublicTool("PixelNoisyCellGenerator").SpmNoiseOccu = 0

if DetFlags.digitize.SCT_on():
    Stream1.ItemList += ["SiHitCollection#SCT_Hits"]
    from SCT_Digitization.SCT_DigitizationConf import SCT_FrontEnd
    theSCT_FrontEnd = SCT_FrontEnd("SCT_FrontEnd")
    theSCT_FrontEnd.MaxStripsPerSide = 1280
    theSCT_FrontEnd.UseCalibData = False
    ToolSvc += theSCT_FrontEnd

#
# Suppress usage of pixel distortions when validating simulation
# (otherwise clusters are corrected for module bow while G4 is not)
#
from IOVDbSvc.CondDB import conddb
if not conddb.folderRequested('/Indet/PixelDist'):
    conddb.addFolder('PIXEL_OFL', '/Indet/PixelDist')
    conddb.addOverride("/Indet/PixelDist", "InDetPixelDist-nominal")

#
# Include clusterization