CMS 3D CMS Logo

SiLinearChargeDivider.cc
Go to the documentation of this file.
6 
8  // Run APV in peak instead of deconvolution mode, which degrades the time resolution.
9  peakMode(conf.getParameter<bool>("APVpeakmode")),
10  // Enable interstrip Landau fluctuations within a cluster.
11  fluctuateCharge(conf.getParameter<bool>("LandauFluctuations")),
12  // Number of segments per strip into which charge is divided during
13  // simulation. If large, precision of simulation improves.
14  chargedivisionsPerStrip(conf.getParameter<int>("chargeDivisionsPerStrip")),
15  // delta cutoff in MeV, has to be same as in Geant (0.120425 MeV corresponding to 100um range for electrons)
16  deltaCut(conf.getParameter<double>("DeltaProductionCut")),
17  //Offset for digitization during the MTCC and in general for taking cosmic particle
18  //The value to be used it must be evaluated and depend on the volume defnition used
19  //for the cosimc generation (Considering only the tracker the value is 11 ns)
20  cosmicShift(conf.getUntrackedParameter<double>("CosmicDelayShift")),
21  theParticleDataTable(nullptr),
22  // Geant4 engine used to fluctuate the charge from segment to segment
23  fluctuate(new SiG4UniversalFluctuation()) {
24 }
25 
27 }
28 
30 SiLinearChargeDivider::divide(const PSimHit* hit, const LocalVector& driftdir, double moduleThickness, const StripGeomDetUnit& det, CLHEP::HepRandomEngine* engine) {
31 
32  // signal after pulse shape correction
33  float const decSignal = TimeResponse(hit, det);
34 
35  // if out of time go home!
36  if (0==decSignal) return ionization_type();
37 
38  // Get the nass if the particle, in MeV.
39  // Protect from particles with Mass = 0, assuming then the pion mass
40  assert(theParticleDataTable != nullptr);
41  ParticleData const * particle = theParticleDataTable->particle( hit->particleType() );
42  double const particleMass = particle ? particle->mass()*1000 : 139.57;
43  double const particleCharge = particle ? particle->charge() : 1.;
44 
45  if(!particle) {
46  LogDebug("SiLinearChargeDivider") << "Cannot find particle of type "<< hit->particleType()
47  << " in the PDT we assign to this particle the mass and charge of the Pion";
48  }
49 
50  int NumberOfSegmentation =
51  // if neutral: just one deposit....
52  (fabs(particleMass)<1.e-6 || particleCharge==0) ? 1 :
53  // computes the number of segments from number of segments per strip times number of strips.
54  (int)(1 + chargedivisionsPerStrip*fabs(driftXPos(hit->exitPoint(), driftdir, moduleThickness)-
55  driftXPos(hit->entryPoint(), driftdir, moduleThickness) )
56  /det.specificTopology().localPitch(hit->localPosition()) );
57 
58 
59  // Eloss in GeV
60  float eLoss = hit->energyLoss();
61 
62 
63  // Prepare output
64  ionization_type _ionization_points;
65  _ionization_points.resize(NumberOfSegmentation);
66 
67  // Fluctuate charge in track subsegments
68  LocalVector direction = hit->exitPoint() - hit->entryPoint();
69  if (NumberOfSegmentation <=1) {
70  // here I need a random... not 0.5
71  _ionization_points[0] = EnergyDepositUnit(eLoss*decSignal/eLoss,
72  hit->entryPoint()+0.5f*direction);
73  }else {
74  float eLossVector[NumberOfSegmentation];
75  if( fluctuateCharge ) {
76  fluctuateEloss(particleMass, hit->pabs(), eLoss, direction.mag(), NumberOfSegmentation, eLossVector, engine);
77  // Save the energy of each segment
78  for ( int i = 0; i != NumberOfSegmentation; i++) {
79  // take energy value from vector eLossVector,
80  _ionization_points[i] = EnergyDepositUnit(eLossVector[i]*decSignal/eLoss,
81  hit->entryPoint()+float((i+0.5)/NumberOfSegmentation)*direction);
82  }
83  } else {
84  // Save the energy of each segment
85  for ( int i = 0; i != NumberOfSegmentation; i++) {
86  // take energy value from eLoss average over n.segments.
87  _ionization_points[i] = EnergyDepositUnit(decSignal/float(NumberOfSegmentation),
88  hit->entryPoint()+float((i+0.5)/NumberOfSegmentation)*direction);
89  }
90  }
91  }
92  return _ionization_points;
93 }
94 
95 void SiLinearChargeDivider::fluctuateEloss(double particleMass, float particleMomentum,
96  float eloss, float length,
97  int NumberOfSegs,float elossVector[],
98  CLHEP::HepRandomEngine* engine) {
99 
100 
101  // Generate charge fluctuations.
102  float sum=0.;
103  double deltaCutoff;
104  double mom = particleMomentum*1000.;
105  double seglen = length/NumberOfSegs*10.;
106  double segeloss = (1000.*eloss)/NumberOfSegs;
107  for (int i=0;i<NumberOfSegs;i++) {
108  // The G4 routine needs momentum in MeV, mass in MeV, delta-cut in MeV,
109  // track segment length in mm, segment eloss in MeV
110  // Returns fluctuated eloss in MeV
111  // the cutoff is sometimes redefined inside, so fix it.
112  deltaCutoff = deltaCut;
113  sum += (elossVector[i] = fluctuate->SampleFluctuations(mom,particleMass,deltaCutoff,seglen,segeloss, engine)/1000.);
114  }
115 
116  if(sum>0.) { // If fluctuations give eloss>0.
117  // Rescale to the same total eloss
118  float ratio = eloss/sum;
119  for (int ii=0;ii<NumberOfSegs;ii++) elossVector[ii]= ratio*elossVector[ii];
120  } else { // If fluctuations gives 0 eloss
121  float averageEloss = eloss/NumberOfSegs;
122  for (int ii=0;ii<NumberOfSegs;ii++) elossVector[ii]= averageEloss;
123  }
124  return;
125 }
126 
128  // x is difference between the tof and the tof for a photon (reference)
129  // converted into a bin number
130  int x = int(((det.surface().toGlobal(hit->localPosition()).mag()/30.) + cosmicShift - hit->tof())*2)+120;
131  if(x < 0 || x > 920) return 0;
132  return hit->energyLoss()*peakValues[x];
133 }
134 
136  // x is difference between the tof and the tof for a photon (reference)
137  // converted into a bin number
138  int x = int(((det.surface().toGlobal(hit->localPosition()).mag()/30.) + cosmicShift - hit->tof())*10)+300;
139  if(x < 0 || x > 650) return 0;
140  return hit->energyLoss()*decoValues[x];
141 }
142 
143 // Automatically generated using parametrizePulse::generateCode(low=-30, high=35, step=0.1)
144 // That pulse shapes correspond to the ones described in CMS NOTE 2007/027
145 // with tau=50ns and delta=20ns
146 // It is fairly similar to the previous analytical forms, except in the tails
147 float const SiLinearChargeDivider::decoValues[651] =
148  { 0.00924234, 0.00994226, 0.0106394, 0.0115231, 0.0127115
149  , 0.0138952, 0.015074, 0.0162481, 0.0174175, 0.0185821
150  , 0.019742, 0.0208972, 0.0220476, 0.0231934, 0.0243346
151  , 0.0254711, 0.0266029, 0.0281052, 0.0298238, 0.0315354
152  , 0.03324, 0.0349377, 0.0366285, 0.0383124, 0.0399894
153  , 0.0416596, 0.0433229, 0.0449794, 0.0466291, 0.0482721
154  , 0.0499082, 0.0515377, 0.0531605, 0.0552102, 0.0574934
155  , 0.0597673, 0.0620319, 0.0642872, 0.0665332, 0.06877
156  , 0.0709976, 0.073216, 0.0754253, 0.0776255, 0.0798165
157  , 0.0819985, 0.0841715, 0.0863354, 0.0884904, 0.0906364
158  , 0.0927736, 0.0956311, 0.0984767, 0.101311, 0.104133
159  , 0.106943, 0.109742, 0.11253, 0.115305, 0.118069
160  , 0.120822, 0.123563, 0.126293, 0.129011, 0.131718
161  , 0.134414, 0.137098, 0.139771, 0.142433, 0.145342
162  , 0.148737, 0.152118, 0.155485, 0.158838, 0.162177
163  , 0.165501, 0.168812, 0.172109, 0.175392, 0.178662
164  , 0.181917, 0.185159, 0.188387, 0.191602, 0.194802
165  , 0.19799, 0.201164, 0.204324, 0.207728, 0.211617
166  , 0.215489, 0.219346, 0.223186, 0.22701, 0.230818
167  , 0.234609, 0.238385, 0.242145, 0.245888, 0.249616
168  , 0.253328, 0.257024, 0.260704, 0.264368, 0.268017
169  , 0.27165, 0.275268, 0.279366, 0.28368, 0.287975
170  , 0.292252, 0.296511, 0.300752, 0.304974, 0.309179
171  , 0.313365, 0.317534, 0.321685, 0.325817, 0.329932
172  , 0.33403, 0.338109, 0.342171, 0.346215, 0.350268
173  , 0.354953, 0.359618, 0.364262, 0.368887, 0.373492
174  , 0.378077, 0.382642, 0.387187, 0.391712, 0.396218
175  , 0.400705, 0.405172, 0.409619, 0.414047, 0.418456
176  , 0.422877, 0.427844, 0.43279, 0.437715, 0.442618
177  , 0.4475, 0.45236, 0.4572, 0.462018, 0.466815
178  , 0.471591, 0.476346, 0.48108, 0.485794, 0.490636
179  , 0.495805, 0.500951, 0.506075, 0.511177, 0.516256
180  , 0.521313, 0.526347, 0.53136, 0.53635, 0.541318
181  , 0.546369, 0.551673, 0.556954, 0.562211, 0.567445
182  , 0.572655, 0.577843, 0.583008, 0.588245, 0.593612
183  , 0.598955, 0.604274, 0.60957, 0.61494, 0.620297
184  , 0.62563, 0.630939, 0.636225, 0.641487, 0.646725
185  , 0.65194, 0.657131, 0.662299, 0.667444, 0.672566
186  , 0.677664, 0.682739, 0.687792, 0.692821, 0.697828
187  , 0.702812, 0.707773, 0.712711, 0.717627, 0.722521
188  , 0.727392, 0.732241, 0.737067, 0.741871, 0.746653
189  , 0.751413, 0.756151, 0.760867, 0.765562, 0.770234
190  , 0.774885, 0.779514, 0.784121, 0.788707, 0.793272
191  , 0.797815, 0.802336, 0.806837, 0.811316, 0.815774
192  , 0.820212, 0.824628, 0.829023, 0.833397, 0.837751
193  , 0.842084, 0.846396, 0.850687, 0.854958, 0.859209
194  , 0.863336, 0.867415, 0.871474, 0.875513, 0.879443
195  , 0.883142, 0.886823, 0.890485, 0.894129, 0.897755
196  , 0.901363, 0.904953, 0.908339, 0.911433, 0.914511
197  , 0.917573, 0.920619, 0.923649, 0.926664, 0.929663
198  , 0.932646, 0.935613, 0.938565, 0.941271, 0.943589
199  , 0.945894, 0.948186, 0.950465, 0.952732, 0.954985
200  , 0.957225, 0.959453, 0.961668, 0.963871, 0.96606
201  , 0.968237, 0.970402, 0.972099, 0.973515, 0.974922
202  , 0.97632, 0.977708, 0.979087, 0.980456, 0.981816
203  , 0.983167, 0.984508, 0.98584, 0.987163, 0.988476
204  , 0.98978, 0.991075, 0.992361, 0.993112, 0.993562
205  , 0.994007, 0.994446, 0.994879, 0.995307, 0.995729
206  , 0.996145, 0.996555, 0.99696, 0.99736, 0.997754
207  , 0.998142, 0.998524, 0.998902, 0.999273, 0.99964
208  , 1, 0.99947, 0.998939, 0.998406, 0.997871
209  , 0.997334, 0.996796, 0.996255, 0.995713, 0.995169
210  , 0.994623, 0.994076, 0.993526, 0.992975, 0.992422
211  , 0.991867, 0.991311, 0.990753, 0.990193, 0.989317
212  , 0.987837, 0.986359, 0.984883, 0.983409, 0.981937
213  , 0.980467, 0.978999, 0.977533, 0.976069, 0.974606
214  , 0.973146, 0.971688, 0.970231, 0.968777, 0.967324
215  , 0.965874, 0.964425, 0.962978, 0.961222, 0.958862
216  , 0.956508, 0.95416, 0.951817, 0.94948, 0.947149
217  , 0.944822, 0.942502, 0.940187, 0.937877, 0.935573
218  , 0.933274, 0.930981, 0.928693, 0.926411, 0.924134
219  , 0.921863, 0.919597, 0.916734, 0.913596, 0.910467
220  , 0.907348, 0.904237, 0.901134, 0.898041, 0.894956
221  , 0.89188, 0.888813, 0.885754, 0.882705, 0.879663
222  , 0.876631, 0.873607, 0.870591, 0.867585, 0.864555
223  , 0.860745, 0.856948, 0.853162, 0.849388, 0.845626
224  , 0.841876, 0.838137, 0.834409, 0.830693, 0.826989
225  , 0.823296, 0.819615, 0.815945, 0.812286, 0.808639
226  , 0.804965, 0.800616, 0.796281, 0.79196, 0.787653
227  , 0.78336, 0.779081, 0.774817, 0.770566, 0.766329
228  , 0.762106, 0.757897, 0.753701, 0.749519, 0.74517
229  , 0.740412, 0.735671, 0.730946, 0.726236, 0.721543
230  , 0.716865, 0.712203, 0.707557, 0.702927, 0.698312
231  , 0.693585, 0.688541, 0.683514, 0.678505, 0.673513
232  , 0.668538, 0.663581, 0.65864, 0.653601, 0.648394
233  , 0.643205, 0.638034, 0.632881, 0.627627, 0.622379
234  , 0.61715, 0.611939, 0.606746, 0.601572, 0.596415
235  , 0.591277, 0.586158, 0.581056, 0.575972, 0.570907
236  , 0.565859, 0.560829, 0.555817, 0.550823, 0.545846
237  , 0.540887, 0.535946, 0.531023, 0.526117, 0.521228
238  , 0.516357, 0.511503, 0.506667, 0.501848, 0.497046
239  , 0.492261, 0.487494, 0.482743, 0.47801, 0.473293
240  , 0.468594, 0.463911, 0.459245, 0.454596, 0.449964
241  , 0.445349, 0.44075, 0.436168, 0.431602, 0.427053
242  , 0.42252, 0.418003, 0.413503, 0.40902, 0.404552
243  , 0.400101, 0.395666, 0.391247, 0.386844, 0.382457
244  , 0.378118, 0.373803, 0.369503, 0.36522, 0.360979
245  , 0.356818, 0.352672, 0.348541, 0.344425, 0.340325
246  , 0.336239, 0.332169, 0.328169, 0.324268, 0.320381
247  , 0.316508, 0.31265, 0.308806, 0.304975, 0.301159
248  , 0.297357, 0.293569, 0.289795, 0.286104, 0.282541
249  , 0.27899, 0.275453, 0.271928, 0.268417, 0.264919
250  , 0.261433, 0.25796, 0.2545, 0.251053, 0.247619
251  , 0.244197, 0.240789, 0.237531, 0.234366, 0.231214
252  , 0.228072, 0.224943, 0.221825, 0.218719, 0.215624
253  , 0.212541, 0.209469, 0.206409, 0.20336, 0.200322
254  , 0.197296, 0.194281, 0.191278, 0.188445, 0.185712
255  , 0.182988, 0.180275, 0.177572, 0.174879, 0.172197
256  , 0.169524, 0.166861, 0.164208, 0.161565, 0.158932
257  , 0.156309, 0.153696, 0.151092, 0.148499, 0.145915
258  , 0.143341, 0.141045, 0.138757, 0.136478, 0.134208
259  , 0.131946, 0.129693, 0.127448, 0.125211, 0.122983
260  , 0.120764, 0.118552, 0.116349, 0.114155, 0.111969
261  , 0.109791, 0.107621, 0.105459, 0.103306, 0.101256
262  , 0.0993974, 0.0975454, 0.0957005, 0.0938625, 0.0920315
263  , 0.0902075, 0.0883903, 0.0865801, 0.0847768, 0.0829803
264  , 0.0811906, 0.0794078, 0.0776318, 0.0758625, 0.0741
265  , 0.0723443, 0.0705953, 0.0688529, 0.067212, 0.0657611
266  , 0.0643156, 0.0628756, 0.0614412, 0.0600122, 0.0585887
267  , 0.0571706, 0.055758, 0.0543508, 0.052949, 0.0515525
268  , 0.0501615, 0.0487758, 0.0473954, 0.0460204, 0.0446506
269  , 0.0432862, 0.041927, 0.0407559, 0.0396748, 0.0385978
270  , 0.037525, 0.0364564, 0.0353918, 0.0343314, 0.033275
271  , 0.0322228, 0.0311746, 0.0301305, 0.0290904, 0.0280544
272  , 0.0270223, 0.0259943, 0.0249703, 0.0239503, 0.0229442
273  , 0.0221806, 0.02142, 0.0206624, 0.0199077, 0.0191559
274  , 0.0184071, 0.0176611, 0.0169181, 0.016178, 0.0154408
275  , 0.0147064, 0.0139749, 0.0132463, 0.0125206, 0.0117976
276  , 0.0110893, 0.0105918, 0.0100963, 0.00960269, 0.00911102
277  , 0.00862127, 0.00813344, 0.00764753, 0.00716353, 0.00668143
278  , 0.00620122 };
279 
280 float const SiLinearChargeDivider::peakValues[921] =
281  { 0.000598718, 0.00179789, 0.00380417, 0.00622833, 0.00934726
282  , 0.0133483, 0.0172689, 0.0225072, 0.0282688, 0.0339136
283  , 0.040572, 0.0482572, 0.0557854, 0.063159, 0.0727605
284  , 0.082258, 0.0915594, 0.101262, 0.112735, 0.123969
285  , 0.134968, 0.146844, 0.159929, 0.172739, 0.185278
286  , 0.199281, 0.21373, 0.227871, 0.242102, 0.257926
287  , 0.273412, 0.288564, 0.305358, 0.321845, 0.338351
288  , 0.355808, 0.372906, 0.390895, 0.408861, 0.427103
289  , 0.445108, 0.462713, 0.479924, 0.496746, 0.513186
290  , 0.52925, 0.544943, 0.560272, 0.575241, 0.589857
291  , 0.604126, 0.618052, 0.631641, 0.644898, 0.657829
292  , 0.670439, 0.682733, 0.694716, 0.706393, 0.717768
293  , 0.728848, 0.739635, 0.750136, 0.760355, 0.770296
294  , 0.779964, 0.789363, 0.798498, 0.807373, 0.815993
295  , 0.824361, 0.832481, 0.840359, 0.847997, 0.8554
296  , 0.862572, 0.869516, 0.876237, 0.882738, 0.889022
297  , 0.895095, 0.900958, 0.906616, 0.912073, 0.917331
298  , 0.922394, 0.927265, 0.931949, 0.936447, 0.940763
299  , 0.944901, 0.948864, 0.952653, 0.956274, 0.959728
300  , 0.963019, 0.966149, 0.969122, 0.97194, 0.974606
301  , 0.977122, 0.979492, 0.981718, 0.983803, 0.985749
302  , 0.987559, 0.989235, 0.990781, 0.992197, 0.993487
303  , 0.994654, 0.995699, 0.996624, 0.997433, 0.998126
304  , 0.998708, 0.999178, 0.999541, 0.999797, 0.99995
305  , 1, 0.99995, 0.999803, 0.999559, 0.999221
306  , 0.998791, 0.99827, 0.997661, 0.996966, 0.996185
307  , 0.995321, 0.994376, 0.993351, 0.992248, 0.991068
308  , 0.989814, 0.988487, 0.987088, 0.985619, 0.984081
309  , 0.982477, 0.980807, 0.979073, 0.977276, 0.975419
310  , 0.973501, 0.971525, 0.969492, 0.967403, 0.96526
311  , 0.963064, 0.960816, 0.958517, 0.956169, 0.953772
312  , 0.951329, 0.94884, 0.946306, 0.943729, 0.941109
313  , 0.938448, 0.935747, 0.933006, 0.930228, 0.927412
314  , 0.924561, 0.921674, 0.918753, 0.915799, 0.912813
315  , 0.909796, 0.906748, 0.903671, 0.900566, 0.897432
316  , 0.894272, 0.891086, 0.887875, 0.884639, 0.88138
317  , 0.878099, 0.874795, 0.87147, 0.868125, 0.86476
318  , 0.861376, 0.857973, 0.854553, 0.851117, 0.847664
319  , 0.844195, 0.840712, 0.837214, 0.833703, 0.830178
320  , 0.826641, 0.823093, 0.819533, 0.815963, 0.812382
321  , 0.808792, 0.805193, 0.801586, 0.79797, 0.794347
322  , 0.790718, 0.787081, 0.783439, 0.779792, 0.776139
323  , 0.772482, 0.768821, 0.765157, 0.761489, 0.757818
324  , 0.754145, 0.75047, 0.746794, 0.743116, 0.739438
325  , 0.735759, 0.73208, 0.728402, 0.724724, 0.721048
326  , 0.717372, 0.713699, 0.710028, 0.706359, 0.702692
327  , 0.699029, 0.695369, 0.691713, 0.688061, 0.684413
328  , 0.680769, 0.67713, 0.673496, 0.669868, 0.666245
329  , 0.662627, 0.659016, 0.655411, 0.651812, 0.648221
330  , 0.644636, 0.641058, 0.637488, 0.633925, 0.63037
331  , 0.626823, 0.623284, 0.619754, 0.616232, 0.612719
332  , 0.609215, 0.605719, 0.602233, 0.598757, 0.59529
333  , 0.591833, 0.588385, 0.584948, 0.581521, 0.578104
334  , 0.574697, 0.571301, 0.567916, 0.564541, 0.561178
335  , 0.557825, 0.554484, 0.551154, 0.547835, 0.544528
336  , 0.541232, 0.537948, 0.534676, 0.531416, 0.528167
337  , 0.524931, 0.521707, 0.518495, 0.515295, 0.512107
338  , 0.508932, 0.50577, 0.50262, 0.499482, 0.496358
339  , 0.493246, 0.490146, 0.48706, 0.483986, 0.480926
340  , 0.477878, 0.474844, 0.471822, 0.468814, 0.465819
341  , 0.462837, 0.459868, 0.456913, 0.45397, 0.451041
342  , 0.448126, 0.445224, 0.442335, 0.43946, 0.436598
343  , 0.433749, 0.430914, 0.428092, 0.425284, 0.42249
344  , 0.419709, 0.416941, 0.414187, 0.411446, 0.408719
345  , 0.406006, 0.403306, 0.40062, 0.397947, 0.395287
346  , 0.392641, 0.390009, 0.38739, 0.384785, 0.382193
347  , 0.379615, 0.37705, 0.374499, 0.371961, 0.369436
348  , 0.366925, 0.364427, 0.361943, 0.359472, 0.357014
349  , 0.35457, 0.352139, 0.349721, 0.347317, 0.344926
350  , 0.342547, 0.340183, 0.337831, 0.335492, 0.333167
351  , 0.330854, 0.328555, 0.326268, 0.323995, 0.321734
352  , 0.319487, 0.317252, 0.31503, 0.312821, 0.310625
353  , 0.308441, 0.30627, 0.304112, 0.301966, 0.299833
354  , 0.297713, 0.295605, 0.293509, 0.291426, 0.289356
355  , 0.287297, 0.285252, 0.283218, 0.281196, 0.279187
356  , 0.27719, 0.275205, 0.273232, 0.271271, 0.269322
357  , 0.267385, 0.26546, 0.263546, 0.261645, 0.259755
358  , 0.257877, 0.25601, 0.254156, 0.252312, 0.250481
359  , 0.24866, 0.246852, 0.245054, 0.243268, 0.241493
360  , 0.239729, 0.237977, 0.236236, 0.234506, 0.232786
361  , 0.231078, 0.229381, 0.227695, 0.226019, 0.224355
362  , 0.222701, 0.221057, 0.219425, 0.217803, 0.216191
363  , 0.214591, 0.213, 0.21142, 0.20985, 0.208291
364  , 0.206742, 0.205203, 0.203674, 0.202155, 0.200647
365  , 0.199148, 0.19766, 0.196181, 0.194712, 0.193253
366  , 0.191804, 0.190364, 0.188934, 0.187514, 0.186103
367  , 0.184702, 0.18331, 0.181928, 0.180555, 0.179191
368  , 0.177836, 0.176491, 0.175155, 0.173828, 0.17251
369  , 0.171201, 0.169901, 0.16861, 0.167328, 0.166055
370  , 0.16479, 0.163535, 0.162287, 0.161049, 0.159819
371  , 0.158598, 0.157385, 0.15618, 0.154984, 0.153796
372  , 0.152617, 0.151446, 0.150283, 0.149128, 0.147981
373  , 0.146842, 0.145712, 0.144589, 0.143474, 0.142367
374  , 0.141268, 0.140177, 0.139093, 0.138017, 0.136949
375  , 0.135888, 0.134835, 0.133789, 0.132751, 0.131721
376  , 0.130697, 0.129681, 0.128672, 0.127671, 0.126676
377  , 0.125689, 0.124709, 0.123736, 0.12277, 0.121811
378  , 0.120859, 0.119914, 0.118975, 0.118044, 0.117119
379  , 0.116201, 0.115289, 0.114384, 0.113486, 0.112594
380  , 0.111709, 0.110831, 0.109958, 0.109092, 0.108233
381  , 0.10738, 0.106533, 0.105692, 0.104857, 0.104029
382  , 0.103207, 0.10239, 0.10158, 0.100776, 0.0999777
383  , 0.0991854, 0.0983989, 0.0976182, 0.0968433, 0.0960742
384  , 0.0953108, 0.094553, 0.093801, 0.0930545, 0.0923136
385  , 0.0915782, 0.0908483, 0.0901239, 0.0894049, 0.0886913
386  , 0.087983, 0.08728, 0.0865824, 0.0858899, 0.0852027
387  , 0.0845206, 0.0838437, 0.0831719, 0.0825052, 0.0818435
388  , 0.0811867, 0.080535, 0.0798882, 0.0792463, 0.0786092
389  , 0.077977, 0.0773496, 0.0767269, 0.076109, 0.0754958
390  , 0.0748872, 0.0742833, 0.073684, 0.0730893, 0.0724991
391  , 0.0719134, 0.0713321, 0.0707554, 0.070183, 0.0696151
392  , 0.0690514, 0.0684922, 0.0679372, 0.0673864, 0.0668399
393  , 0.0662976, 0.0657595, 0.0652255, 0.0646957, 0.0641699
394  , 0.0636482, 0.0631305, 0.0626168, 0.0621071, 0.0616013
395  , 0.0610995, 0.0606015, 0.0601074, 0.0596171, 0.0591307
396  , 0.058648, 0.058169, 0.0576938, 0.0572223, 0.0567545
397  , 0.0562903, 0.0558297, 0.0553727, 0.0549193, 0.0544694
398  , 0.0540231, 0.0535802, 0.0531408, 0.0527048, 0.0522722
399  , 0.0518431, 0.0514173, 0.0509948, 0.0505757, 0.0501598
400  , 0.0497472, 0.0493379, 0.0489318, 0.0485289, 0.0481291
401  , 0.0477325, 0.0473391, 0.0469487, 0.0465614, 0.0461772
402  , 0.045796, 0.0454178, 0.0450427, 0.0446704, 0.0443012
403  , 0.0439348, 0.0435714, 0.0432109, 0.0428532, 0.0424983
404  , 0.0421463, 0.041797, 0.0414506, 0.0411069, 0.0407659
405  , 0.0404277, 0.0400921, 0.0397593, 0.039429, 0.0391014
406  , 0.0387765, 0.0384541, 0.0381343, 0.037817, 0.0375023
407  , 0.0371902, 0.0368805, 0.0365733, 0.0362685, 0.0359662
408  , 0.0356663, 0.0353689, 0.0350738, 0.0347811, 0.0344907
409  , 0.0342027, 0.033917, 0.0336336, 0.0333525, 0.0330736
410  , 0.032797, 0.0325226, 0.0322504, 0.0319805, 0.0317127
411  , 0.031447, 0.0311836, 0.0309222, 0.030663, 0.0304058
412  , 0.0301508, 0.0298978, 0.0296468, 0.0293979, 0.029151
413  , 0.0289061, 0.0286632, 0.0284223, 0.0281833, 0.0279463
414  , 0.0277112, 0.027478, 0.0272467, 0.0270173, 0.0267897
415  , 0.026564, 0.0263402, 0.0261181, 0.0258979, 0.0256795
416  , 0.0254628, 0.025248, 0.0250349, 0.0248235, 0.0246138
417  , 0.0244059, 0.0241997, 0.0239951, 0.0237923, 0.023591
418  , 0.0233915, 0.0231936, 0.0229973, 0.0228026, 0.0226095
419  , 0.022418, 0.022228, 0.0220397, 0.0218528, 0.0216675
420  , 0.0214838, 0.0213015, 0.0211208, 0.0209415, 0.0207637
421  , 0.0205874, 0.0204125, 0.0202391, 0.0200671, 0.0198965
422  , 0.0197273, 0.0195595, 0.0193931, 0.0192281, 0.0190645
423  , 0.0189022, 0.0187412, 0.0185816, 0.0184233, 0.0182663
424  , 0.0181106, 0.0179562, 0.0178031, 0.0176512, 0.0175006
425  , 0.0173513, 0.0172032, 0.0170563, 0.0169106, 0.0167662
426  , 0.0166229, 0.0164809, 0.01634, 0.0162003, 0.0160617
427  , 0.0159244, 0.0157881, 0.015653, 0.015519, 0.0153862
428  , 0.0152544, 0.0151237, 0.0149942, 0.0148657, 0.0147383
429  , 0.0146119, 0.0144866, 0.0143624, 0.0142391, 0.014117
430  , 0.0139958, 0.0138756, 0.0137565, 0.0136384, 0.0135212
431  , 0.013405, 0.0132898, 0.0131756, 0.0130623, 0.01295
432  , 0.0128386, 0.0127281, 0.0126186, 0.01251, 0.0124023
433  , 0.0122955, 0.0121896, 0.0120846, 0.0119805, 0.0118773
434  , 0.0117749, 0.0116734, 0.0115727, 0.0114729, 0.0113739
435  , 0.0112758, 0.0111785, 0.011082, 0.0109863, 0.0108914
436  , 0.0107974, 0.0107041, 0.0106116, 0.0105199, 0.010429
437  , 0.0103388, 0.0102494, 0.0101607, 0.0100728, 0.00998569
438  , 0.00989927, 0.00981358, 0.00972862, 0.00964437, 0.00956084
439  , 0.00947802, 0.0093959, 0.00931447, 0.00923374, 0.00915369
440  , 0.00907432, 0.00899562, 0.00891759, 0.00884022, 0.00876351
441  , 0.00868745, 0.00861203, 0.00853726, 0.00846312, 0.00838961
442  , 0.00831673, 0.00824446, 0.00817281, 0.00810178, 0.00803134
443  , 0.0079615, 0.00789226, 0.00782361, 0.00775555, 0.00768806
444  , 0.00762115, 0.00755481, 0.00748903, 0.00742382, 0.00735916
445  , 0.00729506, 0.0072315, 0.00716848, 0.007106, 0.00704406
446  , 0.00698264, 0.00692175, 0.00686138, 0.00680153, 0.00674218
447  , 0.00668335, 0.00662502, 0.00656719, 0.00650985, 0.006453
448  , 0.00639664, 0.00634077, 0.00628537, 0.00623044, 0.00617599
449  , 0.006122, 0.00606848, 0.00601542, 0.00596281, 0.00591065
450  , 0.00585894, 0.00580767, 0.00575685, 0.00570646, 0.0056565
451  , 0.00560697, 0.00555787, 0.00550919, 0.00546093, 0.00541308
452  , 0.00536565, 0.00531862, 0.005272, 0.00522578, 0.00517995
453  , 0.00513452, 0.00508949, 0.00504484, 0.00500057, 0.00495669
454  , 0.00491318, 0.00487005, 0.00482729, 0.0047849, 0.00474288
455  , 0.00470122, 0.00465992, 0.00461897, 0.00457838, 0.00453814
456  , 0.00449824, 0.00445869, 0.00441948, 0.00438062, 0.00434208
457  , 0.00430388, 0.00426601, 0.00422847, 0.00419125, 0.00415436
458  , 0.00411778, 0.00408152, 0.00404558, 0.00400994, 0.00397462
459  , 0.0039396, 0.00390488, 0.00387046, 0.00383635, 0.00380253
460  , 0.003769, 0.00373576, 0.00370281, 0.00367015, 0.00363777
461  , 0.00360567, 0.00357385, 0.0035423, 0.00351103, 0.00348003
462  , 0.0034493, 0.00341884, 0.00338864, 0.00335871, 0.00332903
463  , 0.00329962, 0.00327046, 0.00324155, 0.00321289, 0.00318449
464  , 0.00315633, 0.00312841, 0.00310074, 0.00307331, 0.00304612
465  , 0.00301916 };
#define LogDebug(id)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
const ParticleDataTable * theParticleDataTable
float tof() const
deprecated name for timeOfFlight()
Definition: PSimHit.h:72
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
float PeakShape(const PSimHit *, const StripGeomDetUnit &det)
float TimeResponse(const PSimHit *hit, const StripGeomDetUnit &det)
SiLinearChargeDivider(const edm::ParameterSet &conf)
float driftXPos(const Local3DPoint &pos, const LocalVector &drift, double thickness)
void fluctuateEloss(double const particleMass, float momentum, float eloss, float length, int NumberOfSegmentation, float elossVector[], CLHEP::HepRandomEngine *)
#define nullptr
static float const decoValues[651]
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:38
T mag() const
Definition: PV3DBase.h:67
Local3DPoint localPosition() const
Definition: PSimHit.h:44
float pabs() const
fast and more accurate access to momentumAtEntry().mag()
Definition: PSimHit.h:63
HepPDT::ParticleData ParticleData
float DeconvolutionShape(const PSimHit *, const StripGeomDetUnit &det)
std::vector< EnergyDepositUnit > ionization_type
ii
Definition: cuy.py:589
std::unique_ptr< SiG4UniversalFluctuation > fluctuate
static float const peakValues[921]
virtual float localPitch(const LocalPoint &) const =0
float energyLoss() const
The energy deposit in the PSimHit, in ???.
Definition: PSimHit.h:75
int particleType() const
Definition: PSimHit.h:85
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35
SiChargeDivider::ionization_type divide(const PSimHit *, const LocalVector &, double, const StripGeomDetUnit &det, CLHEP::HepRandomEngine *) override