CMS 3D CMS Logo

phase2TrackerDigitizer_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 phase2TrackerDigitizer = cms.PSet(
4 # For the Digitizer
5  accumulatorType = cms.string("Phase2TrackerDigitizer"),
6  hitsProducer = cms.string('g4SimHits'),
7  ROUList = cms.vstring(
8  'TrackerHitsPixelBarrelLowTof',
9  'TrackerHitsPixelBarrelHighTof',
10  'TrackerHitsPixelEndcapLowTof',
11  'TrackerHitsPixelEndcapHighTof'),
12  GeometryType = cms.string('idealForDigi'),
13  isOTreadoutAnalog = cms.bool(False),#set this to true if you want analog readout for OT
14 # Common for Algos
15  AlgorithmCommon = cms.PSet(
16  DeltaProductionCut = cms.double(0.03)
17  ),
18 # Specific parameters
19 #Pixel Digitizer Algorithm
20  PixelDigitizerAlgorithm = cms.PSet(
21  makeDigiSimLinks = cms.untracked.bool(True),
22  ElectronPerAdc = cms.double(600.0),
23  ReadoutNoiseInElec = cms.double(0.0),
24  ThresholdInElectrons_Barrel = cms.double(1200.0),
25  ThresholdInElectrons_Endcap = cms.double(1200.0),
26  AddThresholdSmearing = cms.bool(False),
27  ThresholdSmearing_Barrel = cms.double(0.0),
28  ThresholdSmearing_Endcap = cms.double(0.0),
29  HIPThresholdInElectrons_Barrel = cms.double(1.0e10), # very high value to avoid Over threshold bit
30  HIPThresholdInElectrons_Endcap = cms.double(1.0e10), # very high value to avoid Over threshold bit
31  NoiseInElectrons = cms.double(0.0),
32  DigitalReadout = cms.bool(False), # Flag to decide analog or digital readout
33  AdcFullScale = cms.int32(16),
34  TofUpperCut = cms.double(12.5),
35  TofLowerCut = cms.double(-12.5),
36  AddNoisyPixels = cms.bool(False),
37  Alpha2Order = cms.bool(True), #D.B.: second order effect, does not switch off magnetic field as described
38  AddNoise = cms.bool(False),
39  AddXTalk = cms.bool(True), #D.B.
40  InterstripCoupling = cms.double(0.05), #D.B.
41  SigmaZero = cms.double(0.00037), #D.B.: 3.7um spread for 300um-thick sensor, renormalized in digitizerAlgo
42  SigmaCoeff = cms.double(1.80), #D.B.: to be confirmed with simulations in CMSSW_6.X
43  ClusterWidth = cms.double(3), #D.B.: this is used as number of sigmas for charge collection (3=+-3sigmas)
44  LorentzAngle_DB = cms.bool(False),
45  TanLorentzAnglePerTesla_Endcap = cms.double(0.106),
46  TanLorentzAnglePerTesla_Barrel = cms.double(0.106),
47  KillModules = cms.bool(False),
48  DeadModules_DB = cms.bool(False),
49  DeadModules = cms.VPSet(),
50  AddInefficiency = cms.bool(False),
51  Inefficiency_DB = cms.bool(False),
52  EfficiencyFactors_Barrel = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999 ),
53  EfficiencyFactors_Endcap = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999,
54  0.999, 0.999 ),#Efficiencies kept as Side2Disk1,Side1Disk1 and so on
55  CellsToKill = cms.VPSet()
56  ),
57 #Pixel in PS Module
58  PSPDigitizerAlgorithm = cms.PSet(
59  makeDigiSimLinks = cms.untracked.bool(True),
60  ElectronPerAdc = cms.double(135.0),
61  ReadoutNoiseInElec = cms.double(200.0),#D.B.:Fill readout noise, including all readout chain, relevant for smearing
62  ThresholdInElectrons_Barrel = cms.double(6300.), #(0.4 MIP = 0.4 * 16000 e)
63  ThresholdInElectrons_Endcap = cms.double(6300.), #(0.4 MIP = 0.4 * 16000 e)
64  AddThresholdSmearing = cms.bool(True),
65  ThresholdSmearing_Barrel = cms.double(630.0),
66  ThresholdSmearing_Endcap = cms.double(630.0),
67  HIPThresholdInElectrons_Barrel = cms.double(1.0e10), # very high value to avoid Over threshold bit
68  HIPThresholdInElectrons_Endcap = cms.double(1.0e10), # very high value to avoid Over threshold bit
69  NoiseInElectrons = cms.double(200), # 30% of the readout noise (should be changed in future)
70  DigitalReadout = cms.bool(True), # Flag to decide analog or digital readout
71  AdcFullScale = cms.int32(255),
72  TofUpperCut = cms.double(12.5),
73  TofLowerCut = cms.double(-12.5),
74  AddNoisyPixels = cms.bool(True),
75  Alpha2Order = cms.bool(True), #D.B.: second order effect, does not switch off magnetic field as described
76  AddNoise = cms.bool(True),
77  AddXTalk = cms.bool(True), #D.B.
78  InterstripCoupling = cms.double(0.05), #D.B.
79  SigmaZero = cms.double(0.00037), #D.B.: 3.7um spread for 300um-thick sensor, renormalized in digitizerAlgo
80  SigmaCoeff = cms.double(1.80), #D.B.: to be confirmed with simulations in CMSSW_6.X
81  ClusterWidth = cms.double(3), #D.B.: this is used as number of sigmas for charge collection (3=+-3sigmas)
82  LorentzAngle_DB = cms.bool(False),
83  TanLorentzAnglePerTesla_Endcap = cms.double(0.07),
84  TanLorentzAnglePerTesla_Barrel = cms.double(0.07),
85  KillModules = cms.bool(False),
86  DeadModules_DB = cms.bool(False),
87  DeadModules = cms.VPSet(),
88  AddInefficiency = cms.bool(False),
89  Inefficiency_DB = cms.bool(False),
90  EfficiencyFactors_Barrel = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999 ),
91  EfficiencyFactors_Endcap = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999,
92  0.999, 0.999 ),#Efficiencies kept as Side2Disk1,Side1Disk1 and so on
93  CellsToKill = cms.VPSet()
94  ),
95 #Strip in PS module
96  PSSDigitizerAlgorithm = cms.PSet(
97  makeDigiSimLinks = cms.untracked.bool(True),
98  ElectronPerAdc = cms.double(135.0),
99 #D.B.:the noise should be a function of strip capacitance, roughly: ReadoutNoiseInElec=500+(64*Cdet[pF]) ~= 500+(64*1.5[cm])
100  ReadoutNoiseInElec = cms.double(700.0),#D.B.:Fill readout noise, including all readout chain, relevant for smearing
101  ThresholdInElectrons_Barrel = cms.double(6300.), #(0.4 MIP = 0.4 * 16000 e)
102  ThresholdInElectrons_Endcap = cms.double(6300.), #(0.4 MIP = 0.4 * 16000 e)
103  AddThresholdSmearing = cms.bool(True),
104  ThresholdSmearing_Barrel = cms.double(630.0),
105  ThresholdSmearing_Endcap = cms.double(630.0),
106  HIPThresholdInElectrons_Barrel = cms.double(21000.), # 1.4 MIP considered as HIP
107  HIPThresholdInElectrons_Endcap = cms.double(21000.), # 1.4 MIP considered as HIP
108  NoiseInElectrons = cms.double(700), # 30% of the readout noise (should be changed in future)
109  DigitalReadout = cms.bool(True), # Flag to decide analog or digital readout
110  AdcFullScale = cms.int32(255),
111  TofUpperCut = cms.double(12.5),
112  TofLowerCut = cms.double(-12.5),
113  AddNoisyPixels = cms.bool(True),
114  Alpha2Order = cms.bool(True), #D.B.: second order effect, does not switch off magnetic field as described
115  AddNoise = cms.bool(True),
116  AddXTalk = cms.bool(True), #D.B.
117  InterstripCoupling = cms.double(0.05), #D.B.
118  SigmaZero = cms.double(0.00037), #D.B.: 3.7um spread for 300um-thick sensor, renormalized in digitizerAlgo
119  SigmaCoeff = cms.double(1.80), #D.B.: to be confirmed with simulations in CMSSW_6.X
120  ClusterWidth = cms.double(3), #D.B.: this is used as number of sigmas for charge collection (3=+-3sigmas)
121  LorentzAngle_DB = cms.bool(False),
122  TanLorentzAnglePerTesla_Endcap = cms.double(0.07),
123  TanLorentzAnglePerTesla_Barrel = cms.double(0.07),
124  KillModules = cms.bool(False),
125  DeadModules_DB = cms.bool(False),
126  DeadModules = cms.VPSet(),
127  AddInefficiency = cms.bool(False),
128  Inefficiency_DB = cms.bool(False),
129  EfficiencyFactors_Barrel = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999 ),
130  EfficiencyFactors_Endcap = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999,
131  0.999, 0.999 ),#Efficiencies kept as Side2Disk1,Side1Disk1 and so on
132  CellsToKill = cms.VPSet()
133  ),
134 #Two Strip Module
135  SSDigitizerAlgorithm = cms.PSet(
136  makeDigiSimLinks = cms.untracked.bool(True),
137  ElectronPerAdc = cms.double(135.0),
138 #D.B.:the noise should be a function of strip capacitance, roughly: ReadoutNoiseInElec=500+(64*Cdet[pF]) ~= 500+(64*1.5[cm])
139  ReadoutNoiseInElec = cms.double(1000.0),#D.B.:Fill readout noise, including all readout chain, relevant for smearing
140  ThresholdInElectrons_Barrel = cms.double(5800.), #D.B.: this should correspond to a threshold of 530mV
141  ThresholdInElectrons_Endcap = cms.double(5800.),
142  AddThresholdSmearing = cms.bool(True),
143  ThresholdSmearing_Barrel = cms.double(580.0),#D.B.: changed (~5mV peakToPeak --> 1.76mV rms) (was 210.0)
144  ThresholdSmearing_Endcap = cms.double(580.0),#D.B.: changed (~5mV peakToPeak --> 1.76mV rms) (was 245.0)
145  HIPThresholdInElectrons_Barrel = cms.double(1.0e10), # very high value to avoid Over threshold bit
146  HIPThresholdInElectrons_Endcap = cms.double(1.0e10), # very high value to avoid Over threshold bit
147  NoiseInElectrons = cms.double(1000), # 30% of the readout noise (should be changed in future)
148  DigitalReadout = cms.bool(True), # Flag to decide analog or digital readout
149  AdcFullScale = cms.int32(255),
150  TofUpperCut = cms.double(12.5),
151  TofLowerCut = cms.double(-12.5),
152  AddNoisyPixels = cms.bool(True),
153  Alpha2Order = cms.bool(True), #D.B.: second order effect, does not switch off magnetic field as described
154  AddNoise = cms.bool(True),
155  AddXTalk = cms.bool(True), #D.B.
156  InterstripCoupling = cms.double(0.05), #D.B.
157  SigmaZero = cms.double(0.00037), #D.B.: 3.7um spread for 300um-thick sensor, renormalized in digitizerAlgo
158  SigmaCoeff = cms.double(1.80), #D.B.: to be confirmed with simulations in CMSSW_6.X
159  ClusterWidth = cms.double(3), #D.B.: this is used as number of sigmas for charge collection (3=+-3sigmas)
160  LorentzAngle_DB = cms.bool(False),
161  TanLorentzAnglePerTesla_Endcap = cms.double(0.07),
162  TanLorentzAnglePerTesla_Barrel = cms.double(0.07),
163  KillModules = cms.bool(False),
164  DeadModules_DB = cms.bool(False),
165  DeadModules = cms.VPSet(),
166  AddInefficiency = cms.bool(False),
167  Inefficiency_DB = cms.bool(False),
168  EfficiencyFactors_Barrel = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999 ),
169  EfficiencyFactors_Endcap = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999,
170  0.999, 0.999 ),#Efficiencies kept as Side2Disk1,Side1Disk1 and so on
171  CellsToKill = cms.VPSet()
172  )
173 )