CMS 3D CMS Logo

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 
8  """
9  Function that modifies the pixel digitiser for the Phase 1 pixel detector.
10 
11  First argument is the pixelDigitizer object.
12  """
13  #use default switches, new analog respnse, d.k. 2/16
14  #digitizer.MissCalibrate = False
15  #digitizer.LorentzAngle_DB = False
16  #digitizer.killModules = False
17  #digitizer.useDB = False
18  #digitizer.DeadModules_DB = False
19  digitizer.NumPixelBarrel = cms.int32(4)
20  digitizer.NumPixelEndcap = cms.int32(3)
21  digitizer.ThresholdInElectrons_FPix = cms.double(2000.0)
22  digitizer.ThresholdInElectrons_BPix = cms.double(2000.0)
23  digitizer.ThresholdInElectrons_BPix_L1 = cms.double(2000.0)
24  digitizer.FPix_SignalResponse_p0 = cms.double(0.00171)
25  digitizer.FPix_SignalResponse_p1 = cms.double(0.711)
26  digitizer.FPix_SignalResponse_p2 = cms.double(203.)
27  digitizer.FPix_SignalResponse_p3 = cms.double(148.)
28  digitizer.BPix_SignalResponse_p0 = cms.double(0.00171)
29  digitizer.BPix_SignalResponse_p1 = cms.double(0.711)
30  digitizer.BPix_SignalResponse_p2 = cms.double(203.)
31  digitizer.BPix_SignalResponse_p3 = cms.double(148.)
32  # gains and offsets are ints in the Clusterizer, so round to the same value
33  digitizer.ElectronsPerVcal = cms.double(47) # L2-4: 47 +- 4.7
34  digitizer.ElectronsPerVcal_L1 = cms.double(50) # L1: 49.6 +- 2.6
35  digitizer.ElectronsPerVcal_Offset = cms.double(-60) # L2-4: -60 +- 130
36  digitizer.ElectronsPerVcal_L1_Offset = cms.double(-670) # L1: -670 +- 220
37 
38 
39 SiPixelSimBlock = cms.PSet(
40  DoPixelAging = cms.bool(False),
41  ReadoutNoiseInElec = cms.double(350.0),
42  deltaProductionCut = cms.double(0.03),
43  RoutList = cms.vstring(
44  'TrackerHitsPixelBarrelLowTof',
45  'TrackerHitsPixelBarrelHighTof',
46  'TrackerHitsPixelEndcapLowTof',
47  'TrackerHitsPixelEndcapHighTof'),
48  OffsetSmearing = cms.double(0.0),
49  ThresholdInElectrons_FPix = cms.double(3000.0),
50  ThresholdInElectrons_BPix = cms.double(3500.0),
51  ThresholdInElectrons_BPix_L1 = cms.double(3500.0),
52  AddThresholdSmearing = cms.bool(True),
53  ThresholdSmearing_FPix = cms.double(210.0),
54  ThresholdSmearing_BPix = cms.double(245.0),
55  ThresholdSmearing_BPix_L1 = cms.double(245.0),
56  NoiseInElectrons = cms.double(175.0),
57  MissCalibrate = cms.bool(True),
58  FPix_SignalResponse_p0 = cms.double(0.0043),
59  FPix_SignalResponse_p1 = cms.double(1.31),
60  FPix_SignalResponse_p2 = cms.double(93.6),
61  FPix_SignalResponse_p3 = cms.double(134.6),
62  BPix_SignalResponse_p0 = cms.double(0.0035),
63  BPix_SignalResponse_p1 = cms.double(1.23),
64  BPix_SignalResponse_p2 = cms.double(97.4),
65  BPix_SignalResponse_p3 = cms.double(126.5),
66  ElectronsPerVcal = cms.double(65.5),
67  ElectronsPerVcal_L1 = cms.double(65.5),
68  ElectronsPerVcal_Offset = cms.double(-414.0),
69  ElectronsPerVcal_L1_Offset = cms.double(-414.0),
70  ElectronPerAdc = cms.double(135.0),
71  TofUpperCut = cms.double(12.5),
72  AdcFullScale = cms.int32(255),
73  AdcFullScaleStack = cms.int32(255),
74  FirstStackLayer = cms.int32(5),
75  TofLowerCut = cms.double(-12.5),
76  TanLorentzAnglePerTesla_FPix = cms.double(0.106),
77  TanLorentzAnglePerTesla_BPix = cms.double(0.106),
78  AddNoisyPixels = cms.bool(True),
79  Alpha2Order = cms.bool(True),
80  AddPixelInefficiency = cms.bool(True),
81  AddNoise = cms.bool(True),
82  ChargeVCALSmearing = cms.bool(True),
83  GainSmearing = cms.double(0.0),
84  PixGeometryType = cms.string('idealForDigi'),
85  useDB = cms.bool(False),
86  LorentzAngle_DB = cms.bool(True),
87  DeadModules_DB = cms.bool(True),
88  killModules = cms.bool(True),
89  NumPixelBarrel = cms.int32(3),
90  NumPixelEndcap = cms.int32(2),
91 ### DeadModules = cms.VPSet()
92 )
93 
94 #
95 # Apply the changes for the different Run 2 running scenarios
96 #
97 from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
98 phase1Pixel.toModify( SiPixelSimBlock, func=_modifyPixelDigitizerForPhase1Pixel )
99 
100 # Threshold in electrons are the Official CRAFT09 numbers:
101 # FPix(smearing)/BPix(smearing) = 2480(160)/2730(200)
102 
103 #DEAD MODULES LIST: NEW LIST AFTER 2009 PIXEL REPAIRS
104 # https://twiki.cern.ch/twiki/bin/view/CMS/SiPixelQualityHistory
105 ######Barrel
106 #Bad Module: 302055940 errorType 2 BadRocs=ff00
107 #Bad Module: 302059800 errorType 0 BadRocs=ffff
108 #BmI_SEC3_LYR2_LDR5F_MOD3 -- 302121992, "TBM-A"
109 #####Forward
110 #Bad Module: 352453892 errorType 0 BadRocs=ffff
111 #BmO_DISK1_BLD9_PNL2 -- 344014340, 344014344, 344014348
112 #Barrel
113 #302187268, "none" (ROC 6)
114 
def _modifyPixelDigitizerForPhase1Pixel(digitizer)