CMS 3D CMS Logo

mtdDigitizer_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 _barrel_MTDDigitizer = cms.PSet(
4  digitizerName = cms.string("BTLDigitizer"),
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),
10  premixStage1MaxCharge = cms.double(1e6),
11  DeviceSimulation = cms.PSet(
12  bxTime = cms.double(25), # [ns]
13  LightYield = cms.double(40000.), # [photons/MeV]
14  LightCollectionEff = cms.double(0.25),
15  LightCollectionSlopeR = cms.double(0.075), # [ns/cm]
16  LightCollectionSlopeL = cms.double(0.075), # [ns/cm]
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  SmearTimeForOOTtails = cms.bool(True),
37  Npe_to_pC = cms.double(0.016), # [pC]
38  Npe_to_V = cms.double(0.0064),# [V]
39 
40  # n bits for the ADC
41  adcNbits = cms.uint32(10),
42  # n bits for the TDC
43  tdcNbits = cms.uint32(10),
44  # ADC saturation
45  adcSaturation_MIP = cms.double(600.), # [pC]
46  # for different thickness
47  adcThreshold_MIP = cms.double(0.064), # [pC]
48  # LSB for time of arrival estimate from TDC
49  toaLSB_ns = cms.double(0.020), # [ns]
50  )
51 
52 
53 )
54 
55 _endcap_MTDDigitizer = cms.PSet(
56  digitizerName = cms.string("ETLDigitizer"),
57  inputSimHits = cms.InputTag("g4SimHits:FastTimerHitsEndcap"),
58  digiCollectionTag = cms.string("FTLEndcap"),
59  maxSimHitsAccTime = cms.uint32(100),
60  premixStage1 = cms.bool(False),
61  premixStage1MinCharge = cms.double(1e-4),
62  premixStage1MaxCharge = cms.double(1e6),
63  DeviceSimulation = cms.PSet(
64  bxTime = cms.double(25),
65  tofDelay = cms.double(1),
66  meVPerMIP = cms.double(0.085), # from HGCal
67  ),
68  ElectronicsSimulation = cms.PSet(
69  bxTime = cms.double(25),
70  IntegratedLuminosity = cms.double(1000.), # [1/fb]
71  FluenceVsRadius = cms.string("1.937*TMath::Power(x,-1.706)"),
72  LGADGainVsFluence = cms.string("TMath::Min(15.,30.-x)"),
73  TimeResolution2 = cms.string("0.0225/x"), # [ns^2]
74  # n bits for the ADC
75  adcNbits = cms.uint32(8),
76  # n bits for the TDC
77  tdcNbits = cms.uint32(11),
78  # ADC saturation
79  adcSaturation_MIP = cms.double(25),
80  # for different thickness
81  adcThreshold_MIP = cms.double(0.025),
82  # LSB for time of arrival estimate from TDC in ns
83  toaLSB_ns = cms.double(0.013),
84  )
85 )
86 
87 from Configuration.Eras.Modifier_phase2_etlV4_cff import phase2_etlV4
88 phase2_etlV4.toModify(_endcap_MTDDigitizer.DeviceSimulation, meVPerMIP = 0.015 )
89 
90 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1
91 for _m in [_barrel_MTDDigitizer, _endcap_MTDDigitizer]:
92  premix_stage1.toModify(_m, premixStage1 = True)
93 
94 # Fast Timing
95 mtdDigitizer = cms.PSet(
96  accumulatorType = cms.string("MTDDigiProducer"),
97  makeDigiSimLinks = cms.bool(False),
98  verbosity = cms.untracked.uint32(0),
99 
100  barrelDigitizer = _barrel_MTDDigitizer,
101  endcapDigitizer = _endcap_MTDDigitizer
102 )