Beispiel #1
0
def getMinBiasCache(name="MinBiasCache", **kwargs):
    from Digitization.DigitizationFlags import digitizationFlags
    from AthenaCommon.BeamFlags import jobproperties
    kwargs.setdefault('CollPerXing',
                      (digitizationFlags.numberOfLowPtMinBias() +
                       digitizationFlags.numberOfHighPtMinBias()))
    kwargs.setdefault('FractionOfCache1Collisions',
                      (digitizationFlags.numberOfLowPtMinBias() /
                       (digitizationFlags.numberOfLowPtMinBias() +
                        digitizationFlags.numberOfHighPtMinBias())))
    from Digitization import PileUpEventType
    kwargs.setdefault('PileUpEventType', PileUpEventType.MinimumBias
                      )  # may need to have a separate type in the future
    if (digitizationFlags.doXingByXingPileUp()
            or digitizationFlags.SignalPatternForSteppingCache.statusOn):
        kwargs.setdefault('Cache1ReadDownscaleFactor', 1)
    kwargs.setdefault('Cache1EventSelector',
                      getService('LowPtMinBiasEventSelector'))
    kwargs.setdefault('Cache2ReadDownscaleFactor', 1)
    kwargs.setdefault('Cache2EventSelector',
                      getService('HighPtMinBiasEventSelector'))
    kwargs.setdefault(
        'OccupationFraction',
        float(digitizationFlags.bunchSpacing.get_Value()) /
        float(jobproperties.Beam.bunchSpacing.get_Value()))

    kwargs.setdefault('RndmGenSvc', digitizationFlags.rndmSvc())
    kwargs.setdefault('RndmStreamName', "PileUpCollXingStream")
    return CfgMgr.SplitBkgStreamsCache(name, **kwargs)
Beispiel #2
0
def getLowPtMinBiasCache(name="LowPtMinBiasCache", **kwargs):
    from Digitization.DigitizationFlags import digitizationFlags
    from AthenaCommon.BeamFlags import beamFlags
    kwargs.setdefault('CollPerXing', digitizationFlags.numberOfLowPtMinBias() )
    from Digitization import PileUpEventType
    kwargs.setdefault('PileUpEventType', PileUpEventType.MinimumBias ) # may need to have a separate type in the future
    if (digitizationFlags.doXingByXingPileUp() or digitizationFlags.SignalPatternForSteppingCache.statusOn):
        kwargs.setdefault('ReadDownscaleFactor', 1 )
    kwargs.setdefault('EventSelector', getService('LowPtMinBiasEventSelector') )
    kwargs.setdefault('OccupationFraction', float(digitizationFlags.bunchSpacing.get_Value())/float(beamFlags.bunchSpacing.get_Value()) )

    kwargs.setdefault('RndmGenSvc', digitizationFlags.rndmSvc() )
    kwargs.setdefault('RndmStreamName', "PileUpCollXingStream" )
    #Use BkgStreamsStepCaches when using the StepArrayBM and BkgStreamsCache otherwise
    if digitizationFlags.SignalPatternForSteppingCache.statusOn:
        return CfgMgr.BkgStreamsStepCache(name, **kwargs)
    else:
        return CfgMgr.BkgStreamsCache(name, **kwargs)
Beispiel #3
0
PileUpEventLoopMgr = Service("PileUpEventLoopMgr")

pupStream = "PileUpCollXingStream"
from PileUpComps.PileUpCompsConf import BkgStreamsCache
from Digitization import PileUpEventType
from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import EventSelectorAthenaPool

from Digitization.DigitizationFlags import digitizationFlags
PileUpEventLoopMgr.OrigSelector = "EventSelector"
minBiasCache = BkgStreamsCache("MinBiasCache")
if hasattr(digitizationFlags, 'numberOfNDMinBias'):
    minBiasCache.CollPerXing = digitizationFlags.numberOfNDMinBias()
elif hasattr(digitizationFlags, 'numberOfLowPtMinBias'):
    minBiasCache.CollPerXing = digitizationFlags.numberOfLowPtMinBias()
else:
    raise AttributeError(
        "These job options require digitization jobproperties not present in this release! This job will crash."
    )
minBiasCache.RndmGenSvc = digitizationFlags.rndmSvc()
minBiasCache.RndmStreamName = pupStream
minBiasCache.PileUpEventType = PileUpEventType.MinimumBias
minBiasCache.ReadDownscaleFactor = 10  # read one new event every event

from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import EventSelectorAthenaPool
minBiasEvtSel = EventSelectorAthenaPool("minBiasEventSelector")
if hasattr(digitizationFlags, 'NDMinBiasInputCols'):
    minBiasEvtSel.InputCollections = digitizationFlags.NDMinBiasInputCols()
elif hasattr(digitizationFlags, 'LowPtMinBiasInputCols'):
    minBiasEvtSel.InputCollections = digitizationFlags.LowPtMinBiasInputCols()
else:
    raise AttributeError(