CMS 3D CMS Logo

mtdDigitizer_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 _barrel_tile_MTDDigitizer = cms.PSet(
4  digitizerName = cms.string("BTLTileDigitizer"),
5  inputSimHits = cms.InputTag("g4SimHits:FastTimerHitsBarrel"),
6  digiCollectionTag = cms.string("FTLBarrel"),
7  maxSimHitsAccTime = cms.uint32(100),
8  premixStage1 = cms.bool(False),
9  premixStage1MinCharge = cms.double(1e-4), # These give relative precision of 1.1 %,
10  premixStage1MaxCharge = cms.double(1e6), # can the range be squeezed?
11  DeviceSimulation = cms.PSet(
12  bxTime = cms.double(25), # [ns]
13  LightYield = cms.double(40000.), # [photons/MeV]
14  LightCollectionEff = cms.double(0.25),
15  LightCollectionTime = cms.double(0.2), # [ns]
16  smearLightCollectionTime = cms.double(0.), # [ns]
17  PhotonDetectionEff = cms.double(0.20),
18  ),
19  ElectronicsSimulation = cms.PSet(
20  bxTime = cms.double(25), # [ns]
21  TestBeamMIPTimeRes = cms.double(4.293), # This is given by 0.048[ns]*sqrt(8000.), in order to
22  # rescale the time resolution of 1 MIP = 8000 p.e.
23  ScintillatorRiseTime = cms.double(1.1), # [ns]
24  ScintillatorDecayTime = cms.double(40.), # [ns]
25  ChannelTimeOffset = cms.double(0.), # [ns]
26  smearChannelTimeOffset = cms.double(0.), # [ns]
27  EnergyThreshold = cms.double(4.), # [photo-electrons]
28  TimeThreshold1 = cms.double(20.), # [photo-electrons]
29  TimeThreshold2 = cms.double(50.), # [photo-electrons]
30  ReferencePulseNpe = cms.double(100.), # [photo-electrons]
31  DarkCountRate = cms.double(10.), # [GHz]
32  SinglePhotonTimeResolution = cms.double(0.060), # [ns]
33  SigmaElectronicNoise = cms.double(1.), # [p.e.]
34  SigmaClock = cms.double(0.015), # [ns]
35  CorrelationCoefficient = cms.double(1.),
36  Npe_to_pC = cms.double(0.016), # [pC]
37  Npe_to_V = cms.double(0.0064),# [V]
38 
39  # n bits for the ADC
40  adcNbits = cms.uint32(10),
41  # n bits for the TDC
42  tdcNbits = cms.uint32(10),
43  # ADC saturation
44  adcSaturation_MIP = cms.double(600.), # [pC]
45  # for different thickness
46  adcThreshold_MIP = cms.double(0.064), # [pC]
47  # LSB for time of arrival estimate from TDC
48  toaLSB_ns = cms.double(0.020), # [ns]
49  )
50  )
51 
52 _barrel_bar_MTDDigitizer = cms.PSet(
53  digitizerName = cms.string("BTLBarDigitizer"),
54  inputSimHits = cms.InputTag("g4SimHits:FastTimerHitsBarrel"),
55  digiCollectionTag = cms.string("FTLBarrel"),
56  maxSimHitsAccTime = cms.uint32(100),
57  premixStage1 = cms.bool(False),
58  premixStage1MinCharge = cms.double(1e-4),
59  premixStage1MaxCharge = cms.double(1e6),
60  DeviceSimulation = cms.PSet(
61  bxTime = cms.double(25), # [ns]
62  LightYield = cms.double(40000.), # [photons/MeV]
63  LightCollectionEff = cms.double(0.25),
64  LightCollectionSlopeR = cms.double(0.075), # [ns/cm]
65  LightCollectionSlopeL = cms.double(0.075), # [ns/cm]
66  PhotonDetectionEff = cms.double(0.20),
67  ),
68  # The readout electronics is the same for both geometries:
69  ElectronicsSimulation = _barrel_tile_MTDDigitizer.ElectronicsSimulation
70 )
71 
72 _endcap_MTDDigitizer = cms.PSet(
73  digitizerName = cms.string("ETLDigitizer"),
74  inputSimHits = cms.InputTag("g4SimHits:FastTimerHitsEndcap"),
75  digiCollectionTag = cms.string("FTLEndcap"),
76  maxSimHitsAccTime = cms.uint32(100),
77  premixStage1 = cms.bool(False),
78  premixStage1MinCharge = cms.double(1e-4),
79  premixStage1MaxCharge = cms.double(1e6),
80  DeviceSimulation = cms.PSet(
81  bxTime = cms.double(25),
82  tofDelay = cms.double(1),
83  meVPerMIP = cms.double(0.085), # from HGCal
84  ),
85  ElectronicsSimulation = cms.PSet(
86  bxTime = cms.double(25),
87  etaResolution = cms.string("0.03+0.0025*x"), # This is just a dummy dependence on eta.
88  # n bits for the ADC
89  adcNbits = cms.uint32(8),
90  # n bits for the TDC
91  tdcNbits = cms.uint32(11),
92  # ADC saturation
93  adcSaturation_MIP = cms.double(25),
94  # for different thickness
95  adcThreshold_MIP = cms.double(0.025),
96  # LSB for time of arrival estimate from TDC in ns
97  toaLSB_ns = cms.double(0.013),
98  )
99 )
100 
101 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1
102 for _m in [_barrel_tile_MTDDigitizer, _barrel_bar_MTDDigitizer, _endcap_MTDDigitizer]:
103  premix_stage1.toModify(_m, premixStage1 = True)
104 
105 # Fast Timing
106 mtdDigitizer = cms.PSet(
107  accumulatorType = cms.string("MTDDigiProducer"),
108  makeDigiSimLinks = cms.bool(False),
109  verbosity = cms.untracked.uint32(0),
110 
111  barrelDigitizer = _barrel_tile_MTDDigitizer,
112  endcapDigitizer = _endcap_MTDDigitizer
113 )
114