CMS 3D CMS Logo

mtdDigitizer_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 _common_BTLparameters = cms.PSet(
4  bxTime = cms.double(25), # [ns]
5  LightYield = cms.double(40000.), # [photons/MeV]
6  LightCollectionEff = cms.double(0.25),
7  PhotonDetectionEff = cms.double(0.20),
8 )
9 
10 _barrel_MTDDigitizer = cms.PSet(
11  digitizerName = cms.string("BTLDigitizer"),
12  inputSimHits = cms.InputTag("g4SimHits:FastTimerHitsBarrel"),
13  digiCollectionTag = cms.string("FTLBarrel"),
14  maxSimHitsAccTime = cms.uint32(100),
15  premixStage1 = cms.bool(False),
16  premixStage1MinCharge = cms.double(1e-4),
17  premixStage1MaxCharge = cms.double(1e6),
18  DeviceSimulation = cms.PSet(
19  _common_BTLparameters,
20  LightCollectionSlope = cms.double(0.075), # [ns/cm]
21  LCEpositionSlope = cms.double(0.071), # [1/cm] LCE variation vs longitudinal position shift
22  ),
23  ElectronicsSimulation = cms.PSet(
24  _common_BTLparameters,
25  TestBeamMIPTimeRes = cms.double(4.293), # This is given by 0.048[ns]*sqrt(8000.), in order to
26  # rescale the time resolution of 1 MIP = 8000 p.e.
27  ScintillatorRiseTime = cms.double(1.1), # [ns]
28  ScintillatorDecayTime = cms.double(40.), # [ns]
29  ChannelTimeOffset = cms.double(0.), # [ns]
30  smearChannelTimeOffset = cms.double(0.), # [ns]
31  EnergyThreshold = cms.double(4.), # [photo-electrons]
32  TimeThreshold1 = cms.double(20.), # [photo-electrons]
33  TimeThreshold2 = cms.double(50.), # [photo-electrons]
34  ReferencePulseNpe = cms.double(100.), # [photo-electrons]
35  DarkCountRate = cms.double(10.), # [GHz]
36  SinglePhotonTimeResolution = cms.double(0.060), # [ns]
37  SigmaElectronicNoise = cms.double(1.), # [p.e.]
38  SigmaClock = cms.double(0.015), # [ns]
39  CorrelationCoefficient = cms.double(1.),
40  SmearTimeForOOTtails = cms.bool(True),
41  Npe_to_pC = cms.double(0.016), # [pC]
42  Npe_to_V = cms.double(0.0064),# [V]
43  SigmaRelTOFHIRenergy = cms.vdouble(0.139,-4.35e-05,3.315e-09,-1.20e-13,1.67e-18), # [%] coefficients of 4th degree Chebyshev polynomial parameterization
44 
45  # n bits for the ADC
46  adcNbits = cms.uint32(10),
47  # n bits for the TDC
48  tdcNbits = cms.uint32(10),
49  # ADC saturation
50  adcSaturation_MIP = cms.double(600.), # [pC]
51  # for different thickness
52  adcThreshold_MIP = cms.double(0.064), # [pC]
53  # LSB for time of arrival estimate from TDC
54  toaLSB_ns = cms.double(0.020), # [ns]
55  )
56 
57 
58 )
59 
60 _endcap_MTDDigitizer = cms.PSet(
61  digitizerName = cms.string("ETLDigitizer"),
62  inputSimHits = cms.InputTag("g4SimHits:FastTimerHitsEndcap"),
63  digiCollectionTag = cms.string("FTLEndcap"),
64  maxSimHitsAccTime = cms.uint32(100),
65  premixStage1 = cms.bool(False),
66  premixStage1MinCharge = cms.double(1e-4),
67  premixStage1MaxCharge = cms.double(1e6),
68  DeviceSimulation = cms.PSet(
69  bxTime = cms.double(25),
70  tofDelay = cms.double(1),
71  meVPerMIP = cms.double(0.085), # from HGCal
72  ),
73  ElectronicsSimulation = cms.PSet(
74  bxTime = cms.double(25),
75  IntegratedLuminosity = cms.double(1000.), # [1/fb]
76  FluenceVsRadius = cms.string("1.937*TMath::Power(x,-1.706)"),
77  LGADGainVsFluence = cms.string("TMath::Min(15.,30.-x)"),
78  TimeResolution2 = cms.string("0.0225/x"), # [ns^2]
79  # n bits for the ADC
80  adcNbits = cms.uint32(8),
81  # n bits for the TDC
82  tdcNbits = cms.uint32(11),
83  # ADC saturation
84  adcSaturation_MIP = cms.double(25),
85  # for different thickness
86  adcThreshold_MIP = cms.double(0.025),
87  # LSB for time of arrival estimate from TDC in ns
88  toaLSB_ns = cms.double(0.013),
89  )
90 )
91 
92 from Configuration.Eras.Modifier_phase2_etlV4_cff import phase2_etlV4
93 phase2_etlV4.toModify(_endcap_MTDDigitizer.DeviceSimulation, meVPerMIP = 0.015 )
94 
95 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1
96 for _m in [_barrel_MTDDigitizer, _endcap_MTDDigitizer]:
97  premix_stage1.toModify(_m, premixStage1 = True)
98 
99 # Fast Timing
100 mtdDigitizer = cms.PSet(
101  accumulatorType = cms.string("MTDDigiProducer"),
102  makeDigiSimLinks = cms.bool(False),
103  verbosity = cms.untracked.uint32(0),
104 
105  barrelDigitizer = _barrel_MTDDigitizer,
106  endcapDigitizer = _endcap_MTDDigitizer
107 )