CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiPixelSimParameters_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # This object is used to make configuration changes for different running
4 # scenarios, in this case for Run 2. See the code at the end of the
5 # SiPixelSimBlock definition.
6 from Configuration.StandardSequences.Eras import eras
7 
9  """
10  Function that modifies the pixel digitiser for Run 2 with 25ns bunchspacing.
11  First argument is the pixelDigitizer object.
12  """
13  # DynamicInefficency - 13TeV - 25ns case
14  digitizer.theInstLumiScaleFactor = cms.double(364)
15  digitizer.theLadderEfficiency_BPix1 = cms.vdouble( [1]*20 ) # this syntax makes an array with 20 copies of "1"
16  digitizer.theLadderEfficiency_BPix2 = cms.vdouble( [1]*32 )
17  digitizer.theLadderEfficiency_BPix3 = cms.vdouble( [1]*44 )
18  digitizer.theModuleEfficiency_BPix1 = cms.vdouble( 1, 1, 1, 1, )
19  digitizer.theModuleEfficiency_BPix2 = cms.vdouble( 1, 1, 1, 1, )
20  digitizer.theModuleEfficiency_BPix3 = cms.vdouble( 1, 1, 1, 1 )
21  digitizer.thePUEfficiency_BPix1 = cms.vdouble( 1.00023, -3.18350e-06, 5.08503e-10, -6.79785e-14 )
22  digitizer.thePUEfficiency_BPix2 = cms.vdouble( 9.99974e-01, -8.91313e-07, 5.29196e-12, -2.28725e-15 )
23  digitizer.thePUEfficiency_BPix3 = cms.vdouble( 1.00005, -6.59249e-07, 2.75277e-11, -1.62683e-15 )
24 
26  """
27  Function that modifies the pixel digitiser for Run 2 with 50ns bunchspacing.
28 
29  First argument is the pixelDigitizer object.
30  """
31  # DynamicInefficency - 13TeV - 50ns case
32  digitizer.theInstLumiScaleFactor = cms.double(246.4)
33  digitizer.theLadderEfficiency_BPix1 = cms.vdouble( [0.979259,0.976677]*10 ) # This syntax makes a 20 element array of alternating numbers
34  digitizer.theLadderEfficiency_BPix2 = cms.vdouble( [0.994321,0.993944]*16 )
35  digitizer.theLadderEfficiency_BPix3 = cms.vdouble( [0.996787,0.996945]*22 )
36 
38  """
39  Function that modifies the pixel digitiser for the Phase 1 pixel detector.
40 
41  First argument is the pixelDigitizer object.
42  """
43  digitizer.MissCalibrate = False
44  digitizer.LorentzAngle_DB = False
45  digitizer.killModules = False
46  digitizer.useDB = False
47  digitizer.DeadModules_DB = False
48  digitizer.NumPixelBarrel = cms.int32(4)
49  digitizer.NumPixelEndcap = cms.int32(3)
50  digitizer.ThresholdInElectrons_FPix = cms.double(2000.0)
51  digitizer.ThresholdInElectrons_BPix = cms.double(2000.0)
52  digitizer.ThresholdInElectrons_BPix_L1 = cms.double(2000.0)
53  digitizer.thePixelColEfficiency_BPix1 = cms.double(0.999)
54  digitizer.thePixelColEfficiency_BPix2 = cms.double(0.999)
55  digitizer.thePixelColEfficiency_BPix3 = cms.double(0.999)
56  digitizer.thePixelColEfficiency_BPix4 = cms.double(0.999)
57  digitizer.thePixelEfficiency_BPix1 = cms.double(0.999)
58  digitizer.thePixelEfficiency_BPix2 = cms.double(0.999)
59  digitizer.thePixelEfficiency_BPix3 = cms.double(0.999)
60  digitizer.thePixelEfficiency_BPix4 = cms.double(0.999)
61  digitizer.thePixelChipEfficiency_BPix1 = cms.double(0.999)
62  digitizer.thePixelChipEfficiency_BPix2 = cms.double(0.999)
63  digitizer.thePixelChipEfficiency_BPix3 = cms.double(0.999)
64  digitizer.thePixelChipEfficiency_BPix4 = cms.double(0.999)
65  digitizer.thePixelColEfficiency_FPix1 = cms.double(0.999)
66  digitizer.thePixelColEfficiency_FPix2 = cms.double(0.999)
67  digitizer.thePixelColEfficiency_FPix3 = cms.double(0.999)
68  digitizer.thePixelEfficiency_FPix1 = cms.double(0.999)
69  digitizer.thePixelEfficiency_FPix2 = cms.double(0.999)
70  digitizer.thePixelEfficiency_FPix3 = cms.double(0.999)
71  digitizer.thePixelChipEfficiency_FPix1 = cms.double(0.999)
72  digitizer.thePixelChipEfficiency_FPix2 = cms.double(0.999)
73  digitizer.thePixelChipEfficiency_FPix3 = cms.double(0.999)
74  # something broken in the configs above - turn off for now
75  digitizer.AddPixelInefficiency = cms.bool(False)
76 
78  """
79  Function that checks if there is pileup being used then modifies the
80  pixel digitiser for the Phase 1 pixel detector accordingly.
81 
82  First argument is the "process" object. This function can only be applied
83  with a <era>.makeProcessModifier() command, since it can only be applied
84  at the end because the number of pileup interactions is not known yet.
85  """
86  if hasattr(processObject,'mix'):
87  n=0
88  if hasattr(processObject.mix,'input'):
89  n=processObject.mix.input.nbPileupEvents.averageNumber.value()
90  if n>0:
91  processObject.mix.digitizers.pixel.thePixelColEfficiency_BPix1 = cms.double(1.0-(0.0238*n/50.0))
92  processObject.mix.digitizers.pixel.thePixelColEfficiency_BPix2 = cms.double(1.0-(0.0046*n/50.0))
93  processObject.mix.digitizers.pixel.thePixelColEfficiency_BPix3 = cms.double(1.0-(0.0018*n/50.0))
94  processObject.mix.digitizers.pixel.thePixelColEfficiency_BPix4 = cms.double(1.0-(0.0008*n/50.0))
95  processObject.mix.digitizers.pixel.thePixelColEfficiency_FPix1 = cms.double(1.0-(0.0018*n/50.0))
96  processObject.mix.digitizers.pixel.thePixelColEfficiency_FPix2 = cms.double(1.0-(0.0018*n/50.0))
97  processObject.mix.digitizers.pixel.thePixelColEfficiency_FPix3 = cms.double(1.0-(0.0018*n/50.0))
98 
99 
100 SiPixelSimBlock = cms.PSet(
101  DoPixelAging = cms.bool(False),
102  ReadoutNoiseInElec = cms.double(350.0),
103  deltaProductionCut = cms.double(0.03),
104  RoutList = cms.vstring(
105  'TrackerHitsPixelBarrelLowTof',
106  'TrackerHitsPixelBarrelHighTof',
107  'TrackerHitsPixelEndcapLowTof',
108  'TrackerHitsPixelEndcapHighTof'),
109  OffsetSmearing = cms.double(0.0),
110  ThresholdInElectrons_FPix = cms.double(3000.0),
111  ThresholdInElectrons_BPix = cms.double(3500.0),
112  ThresholdInElectrons_BPix_L1 = cms.double(3500.0),
113  AddThresholdSmearing = cms.bool(True),
114  ThresholdSmearing_FPix = cms.double(210.0),
115  ThresholdSmearing_BPix = cms.double(245.0),
116  ThresholdSmearing_BPix_L1 = cms.double(245.0),
117  NoiseInElectrons = cms.double(175.0),
118  MissCalibrate = cms.bool(True),
119  FPix_SignalResponse_p0 = cms.double(0.0043),
120  FPix_SignalResponse_p1 = cms.double(1.31),
121  FPix_SignalResponse_p2 = cms.double(93.6),
122  FPix_SignalResponse_p3 = cms.double(134.6),
123  BPix_SignalResponse_p0 = cms.double(0.0035),
124  BPix_SignalResponse_p1 = cms.double(1.23),
125  BPix_SignalResponse_p2 = cms.double(97.4),
126  BPix_SignalResponse_p3 = cms.double(126.5),
127  ElectronsPerVcal = cms.double(65.5),
128  ElectronsPerVcal_Offset = cms.double(-414.0),
129  ElectronPerAdc = cms.double(135.0),
130  TofUpperCut = cms.double(12.5),
131  AdcFullScale = cms.int32(255),
132  AdcFullScaleStack = cms.int32(255),
133  FirstStackLayer = cms.int32(5),
134  TofLowerCut = cms.double(-12.5),
135  TanLorentzAnglePerTesla_FPix = cms.double(0.106),
136  TanLorentzAnglePerTesla_BPix = cms.double(0.106),
137  AddNoisyPixels = cms.bool(True),
138  Alpha2Order = cms.bool(True),
139  AddPixelInefficiency = cms.bool(True),
140  AddNoise = cms.bool(True),
141  ChargeVCALSmearing = cms.bool(True),
142  GainSmearing = cms.double(0.0),
143  PixGeometryType = cms.string('idealForDigi'),
144  useDB = cms.bool(False),
145  LorentzAngle_DB = cms.bool(True),
146  DeadModules_DB = cms.bool(True),
147  killModules = cms.bool(True),
148  NumPixelBarrel = cms.int32(3),
149  NumPixelEndcap = cms.int32(2),
150 DeadModules = cms.VPSet(
151  cms.PSet(Dead_detID = cms.int32(302055940), Module = cms.string("tbmB"))
152 ,cms.PSet(Dead_detID = cms.int32(302059800), Module = cms.string("whole"))
153 ,cms.PSet(Dead_detID = cms.int32(302121992), Module = cms.string("whole"))
154 ,cms.PSet(Dead_detID = cms.int32(302123296), Module = cms.string("whole"))
155 ,cms.PSet(Dead_detID = cms.int32(302125060), Module = cms.string("tbmA"))
156 ,cms.PSet(Dead_detID = cms.int32(302125076), Module = cms.string("tbmA"))
157 ,cms.PSet(Dead_detID = cms.int32(302126364), Module = cms.string("tbmB"))
158 ,cms.PSet(Dead_detID = cms.int32(302126596), Module = cms.string("whole"))
159 ,cms.PSet(Dead_detID = cms.int32(302127136), Module = cms.string("whole"))
160 ,cms.PSet(Dead_detID = cms.int32(302188552), Module = cms.string("whole"))
161 ,cms.PSet(Dead_detID = cms.int32(302188824), Module = cms.string("whole"))
162 ,cms.PSet(Dead_detID = cms.int32(302194200), Module = cms.string("whole"))
163 ,cms.PSet(Dead_detID = cms.int32(302195232), Module = cms.string("whole"))
164 ,cms.PSet(Dead_detID = cms.int32(302197252), Module = cms.string("whole"))
165 ,cms.PSet(Dead_detID = cms.int32(302197784), Module = cms.string("whole"))
166 ##forward
167 ,cms.PSet(Dead_detID = cms.int32(352453892), Module = cms.string("whole"))
168 ,cms.PSet(Dead_detID = cms.int32(352453896), Module = cms.string("whole"))
169 ,cms.PSet(Dead_detID = cms.int32(352453900), Module = cms.string("whole"))
170 ,cms.PSet(Dead_detID = cms.int32(352453904), Module = cms.string("whole"))
171 ,cms.PSet(Dead_detID = cms.int32(352454916), Module = cms.string("whole"))
172 ,cms.PSet(Dead_detID = cms.int32(352454920), Module = cms.string("whole"))
173 ,cms.PSet(Dead_detID = cms.int32(352454924), Module = cms.string("whole"))
174 ,cms.PSet(Dead_detID = cms.int32(352454928), Module = cms.string("whole"))
175 ,cms.PSet(Dead_detID = cms.int32(352455940), Module = cms.string("whole"))
176 ,cms.PSet(Dead_detID = cms.int32(352455944), Module = cms.string("whole"))
177 ,cms.PSet(Dead_detID = cms.int32(352455948), Module = cms.string("whole"))
178 ,cms.PSet(Dead_detID = cms.int32(352455952), Module = cms.string("whole"))
179 ,cms.PSet(Dead_detID = cms.int32(352454148), Module = cms.string("whole"))
180 ,cms.PSet(Dead_detID = cms.int32(352454152), Module = cms.string("whole"))
181 ,cms.PSet(Dead_detID = cms.int32(352454156), Module = cms.string("whole"))
182 ,cms.PSet(Dead_detID = cms.int32(352455172), Module = cms.string("whole"))
183 ,cms.PSet(Dead_detID = cms.int32(352455176), Module = cms.string("whole"))
184 ,cms.PSet(Dead_detID = cms.int32(352455180), Module = cms.string("whole"))
185 ,cms.PSet(Dead_detID = cms.int32(352456196), Module = cms.string("whole"))
186 ,cms.PSet(Dead_detID = cms.int32(352456200), Module = cms.string("whole"))
187 ,cms.PSet(Dead_detID = cms.int32(352456204), Module = cms.string("whole"))
188 ,cms.PSet(Dead_detID = cms.int32(343999748), Module = cms.string("whole"))
189 ,cms.PSet(Dead_detID = cms.int32(343999752), Module = cms.string("whole"))
190 ,cms.PSet(Dead_detID = cms.int32(343999756), Module = cms.string("whole"))
191 ,cms.PSet(Dead_detID = cms.int32(343999760), Module = cms.string("whole"))
192 ,cms.PSet(Dead_detID = cms.int32(344014340), Module = cms.string("whole"))
193 ,cms.PSet(Dead_detID = cms.int32(344014344), Module = cms.string("whole"))
194 ,cms.PSet(Dead_detID = cms.int32(344014348), Module = cms.string("whole"))
195 ,cms.PSet(Dead_detID = cms.int32(344019460), Module = cms.string("whole"))
196 ,cms.PSet(Dead_detID = cms.int32(344019464), Module = cms.string("whole"))
197 ,cms.PSet(Dead_detID = cms.int32(344019468), Module = cms.string("whole"))
198 ,cms.PSet(Dead_detID = cms.int32(344077572), Module = cms.string("whole"))
199 ,cms.PSet(Dead_detID = cms.int32(344077576), Module = cms.string("whole"))
200 ,cms.PSet(Dead_detID = cms.int32(344077580), Module = cms.string("whole"))
201 ,cms.PSet(Dead_detID = cms.int32(344077584), Module = cms.string("whole"))
202 ,cms.PSet(Dead_detID = cms.int32(344078596), Module = cms.string("whole"))
203 ,cms.PSet(Dead_detID = cms.int32(344078600), Module = cms.string("whole"))
204 ,cms.PSet(Dead_detID = cms.int32(344078604), Module = cms.string("whole"))
205 ,cms.PSet(Dead_detID = cms.int32(344078608), Module = cms.string("whole"))
206 ,cms.PSet(Dead_detID = cms.int32(344079620), Module = cms.string("whole"))
207 ,cms.PSet(Dead_detID = cms.int32(344079624), Module = cms.string("whole"))
208 ,cms.PSet(Dead_detID = cms.int32(344079628), Module = cms.string("whole"))
209 ,cms.PSet(Dead_detID = cms.int32(344079632), Module = cms.string("whole"))
210 ,cms.PSet(Dead_detID = cms.int32(344078852), Module = cms.string("whole"))
211 ,cms.PSet(Dead_detID = cms.int32(344078856), Module = cms.string("whole"))
212 ,cms.PSet(Dead_detID = cms.int32(344078860), Module = cms.string("whole"))
213 #,cms.PSet(Dead_detID = cms.int32(302187268), Module = cms.string("none"))
214 #,cms.PSet(Dead_detID = cms.int32(302195472), Module = cms.string("none"))
215 #,cms.PSet(Dead_detID = cms.int32(302128136), Module = cms.string("none"))
216 )
217 
218 ### DeadModules = cms.VPSet()
219 )
220 
221 #
222 # Apply the changes for the different Run 2 running scenarios
223 #
224 eras.run2_25ns_specific.toModify( SiPixelSimBlock, func=_modifyPixelDigitizerForRun2Bunchspacing25 )
225 eras.run2_50ns_specific.toModify( SiPixelSimBlock, func=_modifyPixelDigitizerForRun2Bunchspacing50 )
226 eras.phase1Pixel.toModify( SiPixelSimBlock, func=_modifyPixelDigitizerForPhase1Pixel )
227 # Note that this object must have a unique name, so I'll call it "modify<python filename>ForPhase1WithPileup_"
228 modifySimGeneralMixingModuleSiPixelSimParametersForPhase1WithPileup_ = eras.phase1Pixel.makeProcessModifier( _modifyPixelDigitizerForPhase1PixelWithPileup )
229 
230 # Threshold in electrons are the Official CRAFT09 numbers:
231 # FPix(smearing)/BPix(smearing) = 2480(160)/2730(200)
232 
233 #DEAD MODULES LIST: NEW LIST AFTER 2009 PIXEL REPAIRS
234 # https://twiki.cern.ch/twiki/bin/view/CMS/SiPixelQualityHistory
235 
236 ######Barrel
237 #Bad Module: 302055940 errorType 2 BadRocs=ff00
238 #Bad Module: 302059800 errorType 0 BadRocs=ffff
239 #Bad Module: 302121992 errorType 0 BadRocs=ffff
240 #BmI_SEC3_LYR2_LDR5F_MOD3 -- 302121992, "TBM-A"
241 #Bad Module: 302123296 errorType 0 BadRocs=ffff
242 #BpO_SEC1_LYR2_LDR1H_MOD4 -- 302123296, "whole"
243 #Bad Module: 302125060 errorType 1 BadRocs=ff
244 #Bad Module: 302125076 errorType 1 BadRocs=ff
245 #BpO_SEC4_LYR2_LDR8F_MOD1 -- 302125076, "TBM-A"
246 #Bad Module: 302126364 errorType 2 BadRocs=ff00
247 #BpO_SEC7_LYR2_LDR13F_MOD3 -- 302126364, "TBM-B"
248 #Bad Module: 302126596 errorType 0 BadRocs=ffff
249 #BmO_SEC7_LYR2_LDR14F_MOD4 -- 302126596, "whole"
250 #Bad Module: 302127136 errorType 0 BadRocs=ffff
251 #BpO_SEC8_LYR2_LDR16H_MOD4 -- 302127136, "whole"
252 #Bad Module: 302188552 errorType 0 BadRocs=ffff
253 #BmI_SEC2_LYR3_LDR4F_MOD3 -- 302188552, "whole"
254 #Bad Module: 302188824 errorType 0 BadRocs=ffff
255 #Bad Module: 302194200 errorType 0 BadRocs=ffff
256 #Bad Module: 302195232 errorType 0 BadRocs=ffff
257 #BpI_SEC8_LYR3_LDR22H_MOD4 -- 302195232, "whole"
258 #Bad Module: 302197252 errorType 0 BadRocs=ffff
259 #Bad Module: 302197784 errorType 0 BadRocs=ffff
260 #BpI_SEC5_LYR3_LDR12F_MOD2 -- 302197784, "whole"
261 
262 #####Forward
263 #Bad Module: 352453892 errorType 0 BadRocs=ffff
264 #Bad Module: 352453896 errorType 0 BadRocs=ffff
265 #Bad Module: 352453900 errorType 0 BadRocs=ffff
266 #Bad Module: 352453904 errorType 0 BadRocs=ffff
267 #Bad Module: 352454916 errorType 0 BadRocs=ffff
268 #Bad Module: 352454920 errorType 0 BadRocs=ffff
269 #Bad Module: 352454924 errorType 0 BadRocs=ffff
270 #Bad Module: 352454928 errorType 0 BadRocs=ffff
271 #Bad Module: 352455940 errorType 0 BadRocs=ffff
272 #Bad Module: 352455944 errorType 0 BadRocs=ffff
273 #Bad Module: 352455948 errorType 0 BadRocs=ffff
274 #Bad Module: 352455952 errorType 0 BadRocs=ffff
275 #Bad Module: 352454148 errorType 0 BadRocs=ffff
276 #Bad Module: 352454152 errorType 0 BadRocs=ffff
277 #Bad Module: 352454156 errorType 0 BadRocs=ffff
278 #Bad Module: 352455172 errorType 0 BadRocs=ffff
279 #Bad Module: 352455176 errorType 0 BadRocs=ffff
280 #Bad Module: 352455180 errorType 0 BadRocs=ffff
281 #Bad Module: 352456196 errorType 0 BadRocs=ffff
282 #Bad Module: 352456200 errorType 0 BadRocs=ffff
283 #Bad Module: 352456204 errorType 0 BadRocs=ffff
284 #Bad Module: 343999748 errorType 0 BadRocs=ffff
285 #Bad Module: 343999752 errorType 0 BadRocs=ffff
286 #Bad Module: 343999756 errorType 0 BadRocs=ffff
287 #Bad Module: 343999760 errorType 0 BadRocs=ffff
288 #Bad Module: 344014340 errorType 0 BadRocs=ffff
289 #Bad Module: 344014344 errorType 0 BadRocs=ffff
290 #Bad Module: 344014348 errorType 0 BadRocs=ffff
291 #BmO_DISK1_BLD9_PNL2 -- 344014340, 344014344, 344014348
292 #Bad Module: 344019460 errorType 0 BadRocs=ffff
293 #Bad Module: 344019464 errorType 0 BadRocs=ffff
294 #Bad Module: 344019468 errorType 0 BadRocs=ffff
295 #BmI_DISK1_BLD11_PNL2 -- 344019460, 344019464, 344019468
296 #Bad Module: 344077572 errorType 0 BadRocs=ffff
297 #Bad Module: 344077576 errorType 0 BadRocs=ffff
298 #Bad Module: 344077580 errorType 0 BadRocs=ffff
299 #Bad Module: 344077584 errorType 0 BadRocs=ffff
300 #Bad Module: 344078596 errorType 0 BadRocs=ffff
301 #Bad Module: 344078600 errorType 0 BadRocs=ffff
302 #Bad Module: 344078604 errorType 0 BadRocs=ffff
303 #Bad Module: 344078608 errorType 0 BadRocs=ffff
304 #Bad Module: 344079620 errorType 0 BadRocs=ffff
305 #Bad Module: 344079624 errorType 0 BadRocs=ffff
306 #Bad Module: 344079628 errorType 0 BadRocs=ffff
307 #Bad Module: 344079632 errorType 0 BadRocs=ffff
308 #Bad Module: 344078852 errorType 0 BadRocs=ffff
309 #Bad Module: 344078856 errorType 0 BadRocs=ffff
310 #Bad Module: 344078860 errorType 0 BadRocs=ffff
311 
312 #Barrel
313 #302187268, "none" (ROC 6)
314 #302195472, "none" (ROC 0)
315 #302128136, "none" (ROC 3)
316