14 """Return component accumulator with configured Tile digits from pulse algorithm
17 flags -- Athena configuration flags
19 OutputDigitsContainer -- Name of container with TileDigits to write
20 ImperfectionMean -- Mean value of pulse shape broadening
21 ImperfectionRMS -- RMS of pulse shape broadening
22 InTimeAmp -- Amplitude of in-time pulse
23 OutOfTimeAmp -- Amplitude of out-of-time pulse
24 InTimeOffset -- In-time pulse offset from nominal time
25 OutOfTimeOffset -- Out-of-time pulse offset from nominal time
26 UseGaussNoise -- Set to TRUE in order to create noise from double gaussian
27 GaussNoiseAmpOne -- Amplitude of first gaussian of double gaussian noise
28 GaussNoiseSigmaOne -- Standard deviation of first gaussian of double gaussian noise
29 GaussNoiseAmpTwo -- Amplitude of second gaussian of double gaussian noise
30 GaussNoiseSigmaTwo -- Standard deviation of second gaussian of double gaussian noise
31 UseInTimeAmpDist -- Set to TRUE in order to use a distribution for the in-time amplitude instead of a const.
32 UseOutOfTimeAmpDist -- Set to TRUE in order to use a distribution for the out-of-time amplitude instead of a const
33 InTimeAmpDistFileName -- Filename of file to use for amplitude distribution of in-time pulses
34 InTimeAmpDistHistogramName -- Name of the histogram to use for in-time amplitude distribution
35 InTimeAmpPulseProb -- Probability to add an in-time pulse
36 OutOfTimeAmpDistFileName -- Filename of file to use for amplitude distribution of out-of-time pulses
37 InTimeAmpPulseProb -- Probability to add an in-time pulse
38 PileUpFraction -- Probability that an out-of-time component will be added
39 GaussianC2CPhaseVariation -- RMS for the in-time pulse offset (channel-to-channel phase variation)
40 ChannelSpecificPedestal -- Set to TRUE in order to use a channel specific value for the pedestal
41 ChannelSpecificNoise -- Set to TRUE in order to add channel specific noise
42 OutOfTimeOffsetHistogramFile -- Filename of file containing histogram of pile-up timing distribution
43 OutOfTimeOffsetHistogramName -- Name of the histogram to use for pile-up timing distribution
44 AmpDistLowerLimit -- Set all bins lower than this to zero. Default = 135
45 PedestalValueHG -- Pedestal in HG if not taken from database
46 PedestalValueLG -- Pedestal in LG if not taken from database
47 SimulatePileUpWithPoiss -- Simulate pile-up overlaying signals from distribution
48 AvgMuForPileUpSimulation -- Average number of pp collisions for pile-up simulation with SimulatePileUpWithPoiss
49 PileUpAmpDistFileName -- Distribution to simulate pile-up with SimulatePileUpWithPoiss
50 RandomSeed -- Random seed for random number generator
51 SimulatePulseChain -- Simulate continuous output from readout cosidering HL-LHC paradigm
52 Bigain -- Save two gains in ntuple
53 NPulses -- The number of neighboring bunch crossings (before and after the in-time crossing) whose signals are accounted for when simulating the total contribution to a given bunch crossing
56 kwargs.setdefault(
'InTimeAmp', 1000)
57 kwargs.setdefault(
'InTimeAmpPulseProb', 1)
58 kwargs.setdefault(
'ImperfectionMean', 1)
59 kwargs.setdefault(
'ImperfectionRms', 0)
60 kwargs.setdefault(
'TilePhaseII',
False)
61 kwargs.setdefault(
'NSamples', 7)
62 kwargs.setdefault(
'Bigain',
False)
63 kwargs.setdefault(
'SimulatePulseChain',
False)
65 PhaseII = kwargs[
'TilePhaseII']
66 PulseChain = kwargs[
'SimulatePulseChain']
70 kwargs.setdefault(
'PedestalValueHG', 100)
71 kwargs.setdefault(
'PedestalValueLG', 100)
72 kwargs.setdefault(
'ChannelSpecificPedestal',
False)
73 kwargs.setdefault(
'UseGaussNoise',
True)
75 kwargs.setdefault(
'ChannelSpecificPedestal',
True)
76 kwargs.setdefault(
'ChannelSpecificNoise',
True)
78 kwargs.setdefault(
'PileUpFraction', 0)
79 kwargs.setdefault(
'AmpDistLowerLimit', 0)
80 kwargs.setdefault(
'SimulatePileUpWithPoiss',
False)
81 kwargs.setdefault(
'AvgMuForPileUpSimulation', 80)
83 from TileGeoModel.TileGMConfig
import TileGMCfg
86 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
89 from TileConditions.TileSampleNoiseConfig
import TileSampleNoiseCondAlgCfg
92 from RngComps.RngCompsConfig
import AthRNGSvcCfg
93 kwargs[
'RndmSvc'] = acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags) )
96 nSamples = kwargs[
'NSamples']
if not PulseChain
else 1
97 ADCmax = 4095
if PhaseII
else 1023
98 ADCmaskValue = 4800
if PhaseII
else 2047
99 from TileConditions.TileInfoLoaderConfig
import TileInfoLoaderCfg
101 NSamples=nSamples, TrigSample=((nSamples-1)//2),
102 ADCmax=ADCmax, ADCmaskValue=ADCmaskValue) )
104 TileDigitsFromPulse = CompFactory.TileDigitsFromPulse