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(3000.0)
24  digitizer.ThresholdInElectrons_BPix_L2 = cms.double(2600.0)
25  digitizer.FPix_SignalResponse_p0 = cms.double(0.00171)
26  digitizer.FPix_SignalResponse_p1 = cms.double(0.711)
27  digitizer.FPix_SignalResponse_p2 = cms.double(203.)
28  digitizer.FPix_SignalResponse_p3 = cms.double(148.)
29  digitizer.BPix_SignalResponse_p0 = cms.double(0.00171)
30  digitizer.BPix_SignalResponse_p1 = cms.double(0.711)
31  digitizer.BPix_SignalResponse_p2 = cms.double(203.)
32  digitizer.BPix_SignalResponse_p3 = cms.double(148.)
33  # gains and offsets are ints in the Clusterizer, so round to the same value
34  digitizer.ElectronsPerVcal = cms.double(47) # L2-4: 47 +- 4.7
35  digitizer.ElectronsPerVcal_L1 = cms.double(50) # L1: 49.6 +- 2.6
36  digitizer.ElectronsPerVcal_Offset = cms.double(-60) # L2-4: -60 +- 130
37  digitizer.ElectronsPerVcal_L1_Offset = cms.double(-670) # L1: -670 +- 220
38  digitizer.UseReweighting = cms.bool(True)
39  digitizer.KillBadFEDChannels = cms.bool(True)
40 
42 
43  digitizer.ThresholdInElectrons_FPix = cms.double(1600.0)
44  digitizer.ThresholdInElectrons_BPix = cms.double(1600.0)
45  digitizer.ThresholdInElectrons_BPix_L1 = cms.double(2000.0)
46  digitizer.ThresholdInElectrons_BPix_L2 = cms.double(1600.0)
47 
48 SiPixelSimBlock = cms.PSet(
49  SiPixelQualityLabel = cms.string(''),
50  KillBadFEDChannels = cms.bool(False),
51  UseReweighting = cms.bool(False),
52  applyLateReweighting = cms.bool(False),
53  store_SimHitEntryExitPoints = cms.bool(False),
54  PrintClusters = cms.bool(False),
55  PrintTemplates = cms.bool(False),
56  DoPixelAging = cms.bool(False),
57  ReadoutNoiseInElec = cms.double(350.0),
58  deltaProductionCut = cms.double(0.03),
59  RoutList = cms.vstring(
60  'TrackerHitsPixelBarrelLowTof',
61  'TrackerHitsPixelBarrelHighTof',
62  'TrackerHitsPixelEndcapLowTof',
63  'TrackerHitsPixelEndcapHighTof'),
64  OffsetSmearing = cms.double(0.0),
65  ThresholdInElectrons_FPix = cms.double(3000.0),
66  ThresholdInElectrons_BPix = cms.double(3500.0),
67  ThresholdInElectrons_BPix_L1 = cms.double(3500.0),
68  ThresholdInElectrons_BPix_L2 = cms.double(3500.0),
69  AddThresholdSmearing = cms.bool(True),
70  ThresholdSmearing_FPix = cms.double(210.0),
71  ThresholdSmearing_BPix = cms.double(245.0),
72  ThresholdSmearing_BPix_L1 = cms.double(245.0),
73  ThresholdSmearing_BPix_L2 = cms.double(245.0),
74  NoiseInElectrons = cms.double(175.0),
75  MissCalibrate = cms.bool(True),
76  MissCalInLateCR = cms.bool(True),
77  FPix_SignalResponse_p0 = cms.double(0.0043),
78  FPix_SignalResponse_p1 = cms.double(1.31),
79  FPix_SignalResponse_p2 = cms.double(93.6),
80  FPix_SignalResponse_p3 = cms.double(134.6),
81  BPix_SignalResponse_p0 = cms.double(0.0035),
82  BPix_SignalResponse_p1 = cms.double(1.23),
83  BPix_SignalResponse_p2 = cms.double(97.4),
84  BPix_SignalResponse_p3 = cms.double(126.5),
85  ElectronsPerVcal = cms.double(65.5),
86  ElectronsPerVcal_L1 = cms.double(65.5),
87  ElectronsPerVcal_Offset = cms.double(-414.0),
88  ElectronsPerVcal_L1_Offset = cms.double(-414.0),
89  ElectronPerAdc = cms.double(135.0),
90  TofUpperCut = cms.double(12.5),
91  AdcFullScale = cms.int32(255),
92  AdcFullScLateCR = cms.int32(255),
93  TofLowerCut = cms.double(-12.5),
94  TanLorentzAnglePerTesla_FPix = cms.double(0.106),
95  TanLorentzAnglePerTesla_BPix = cms.double(0.106),
96  AddNoisyPixels = cms.bool(True),
97  Alpha2Order = cms.bool(True),
98  AddPixelInefficiency = cms.bool(True),
99  AddNoise = cms.bool(True),
100  ChargeVCALSmearing = cms.bool(True),
101  GainSmearing = cms.double(0.0),
102  PixGeometryType = cms.string('idealForDigi'),
103  useDB = cms.bool(False),
104  LorentzAngle_DB = cms.bool(True),
105  DeadModules_DB = cms.bool(True),
106  killModules = cms.bool(True),
107  NumPixelBarrel = cms.int32(3),
108  NumPixelEndcap = cms.int32(2),
109 
110 )
111 
112 # activate charge reweighing for 2016 pixel detector (UL 2016)
113 from Configuration.Eras.Modifier_pixel_2016_cff import pixel_2016
114 pixel_2016.toModify(SiPixelSimBlock,UseReweighting=True)
115 
116 #
117 # Apply the changes for the different Run 2 running scenarios
118 #
119 from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
120 phase1Pixel.toModify( SiPixelSimBlock, func=_modifyPixelDigitizerForPhase1Pixel )
121 
122 # use Label 'forDigitizer' for years >= 2018
123 from CalibTracker.SiPixelESProducers.SiPixelQualityESProducer_cfi import siPixelQualityESProducer
124 from Configuration.Eras.Modifier_run2_SiPixel_2018_cff import run2_SiPixel_2018
125 run2_SiPixel_2018.toModify(siPixelQualityESProducer,siPixelQualityLabel = 'forDigitizer',)
126 run2_SiPixel_2018.toModify(SiPixelSimBlock, SiPixelQualityLabel = 'forDigitizer',)
127 
128 # change the digitizer threshold for Run3
129 # - new layer1 installed: expected improvement in timing alignment of L1 and L2
130 # - update the rest of the detector to 1600e
131 
132 from Configuration.Eras.Modifier_run3_common_cff import run3_common
133 run3_common.toModify(SiPixelSimBlock, func=_modifyPixelDigitizerForRun3)
134 
135 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1
136 premix_stage1.toModify(SiPixelSimBlock,
137  AddNoise = True,
138  AddNoisyPixels = False,
139  AddPixelInefficiency = False, #done in second step
140  KillBadFEDChannels = False, #done in second step
141 )
142 
143 # Threshold in electrons are the Official CRAFT09 numbers:
144 # FPix(smearing)/BPix(smearing) = 2480(160)/2730(200)
145 
146 #DEAD MODULES LIST: NEW LIST AFTER 2009 PIXEL REPAIRS
147 # https://twiki.cern.ch/twiki/bin/view/CMS/SiPixelQualityHistory
148 
157 
def _modifyPixelDigitizerForPhase1Pixel(digitizer)