Commit in lcsim/src/org/lcsim/mc/CCDSim on MAIN
SiSingleColElossTab.java+1269added 1.1
SiliconDeDx.java+120added 1.1
CCDSim.java+95-211.6 -> 1.7
FullCCDSimulation.java+8-11.6 -> 1.7
+1492-22
2 added + 2 modified, total 4 files
Included more accurate dedx simulation, with direct calculations using H.Bichsel algorithm, instead of parametrizing of Bichsel results (which is not accurate for
very thin layers). Option to simulate every single ionizing collision loss is added.

lcsim/src/org/lcsim/mc/CCDSim
SiSingleColElossTab.java added at 1.1
diff -N SiSingleColElossTab.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SiSingleColElossTab.java	18 Dec 2007 01:08:10 -0000	1.1
@@ -0,0 +1,1269 @@
+package org.lcsim.mc.CCDSim;
+
+public class SiSingleColElossTab
+{
+
+ private double[] _table =
+ {
+  0.00000E+00, 0.51618E+03,
+  0.10830E-01, 0.52196E+03,
+  0.21661E-01, 0.52780E+03,
+  0.32491E-01, 0.53371E+03,
+  0.43322E-01, 0.53968E+03,
+  0.54152E-01, 0.54573E+03,
+  0.64983E-01, 0.55181E+03,
+  0.75813E-01, 0.55796E+03,
+  0.86643E-01, 0.56418E+03,
+  0.97474E-01, 0.57047E+03,
+  0.10830E+00, 0.57683E+03,
+  0.11913E+00, 0.58322E+03,
+  0.12997E+00, 0.58968E+03,
+  0.14080E+00, 0.59622E+03,
+  0.15163E+00, 0.60283E+03,
+  0.16246E+00, 0.60963E+03,
+  0.17329E+00, 0.61660E+03,
+  0.18412E+00, 0.62364E+03,
+  0.19495E+00, 0.63077E+03,
+  0.20578E+00, 0.63787E+03,
+  0.21661E+00, 0.64480E+03,
+  0.22744E+00, 0.66130E+03,
+  0.23827E+00, 0.66906E+03,
+  0.24910E+00, 0.67679E+03,
+  0.25993E+00, 0.68463E+03,
+  0.27076E+00, 0.69253E+03,
+  0.28159E+00, 0.70049E+03,
+  0.29242E+00, 0.70854E+03,
+  0.30325E+00, 0.71673E+03,
+  0.31408E+00, 0.72500E+03,
+  0.32491E+00, 0.73335E+03,
+  0.33574E+00, 0.74179E+03,
+  0.34657E+00, 0.75032E+03,
+  0.35740E+00, 0.75894E+03,
+  0.36823E+00, 0.76764E+03,
+  0.37907E+00, 0.77597E+03,
+  0.38990E+00, 0.78431E+03,
+  0.40073E+00, 0.79274E+03,
+  0.41156E+00, 0.80137E+03,
+  0.42239E+00, 0.81024E+03,
+  0.43322E+00, 0.81920E+03,
+  0.44405E+00, 0.82827E+03,
+  0.45488E+00, 0.83740E+03,
+  0.46571E+00, 0.84663E+03,
+  0.47654E+00, 0.85595E+03,
+  0.48737E+00, 0.86500E+03,
+  0.49820E+00, 0.87404E+03,
+  0.50903E+00, 0.88318E+03,
+  0.51986E+00, 0.89156E+03,
+  0.53069E+00, 0.89958E+03,
+  0.54152E+00, 0.90777E+03,
+  0.55235E+00, 0.91403E+03,
+  0.56318E+00, 0.91928E+03,
+  0.57401E+00, 0.92497E+03,
+  0.58484E+00, 0.92015E+03,
+  0.59567E+00, 0.91148E+03,
+  0.60650E+00, 0.90457E+03,
+  0.61733E+00, 0.87608E+03,
+  0.62816E+00, 0.84302E+03,
+  0.63900E+00, 0.81294E+03,
+  0.64983E+00, 0.80417E+03,
+  0.66066E+00, 0.79236E+03,
+  0.67149E+00, 0.78477E+03,
+  0.68232E+00, 0.78798E+03,
+  0.69315E+00, 0.79068E+03,
+  0.70398E+00, 0.79454E+03,
+  0.71481E+00, 0.79863E+03,
+  0.72564E+00, 0.80228E+03,
+  0.73647E+00, 0.80492E+03,
+  0.74730E+00, 0.80740E+03,
+  0.75813E+00, 0.80899E+03,
+  0.76896E+00, 0.81030E+03,
+  0.77979E+00, 0.81046E+03,
+  0.79062E+00, 0.80908E+03,
+  0.80145E+00, 0.80726E+03,
+  0.81228E+00, 0.79837E+03,
+  0.82311E+00, 0.78992E+03,
+  0.83394E+00, 0.76577E+03,
+  0.84477E+00, 0.73819E+03,
+  0.85560E+00, 0.70318E+03,
+  0.86643E+00, 0.65850E+03,
+  0.87726E+00, 0.61636E+03,
+  0.88810E+00, 0.57431E+03,
+  0.89893E+00, 0.53087E+03,
+  0.90976E+00, 0.51009E+03,
+  0.92059E+00, 0.48631E+03,
+  0.93142E+00, 0.47703E+03,
+  0.94225E+00, 0.46659E+03,
+  0.95308E+00, 0.47396E+03,
+  0.96391E+00, 0.48294E+03,
+  0.97474E+00, 0.49891E+03,
+  0.98557E+00, 0.51681E+03,
+  0.99640E+00, 0.53574E+03,
+  0.10072E+01, 0.55652E+03,
+  0.10181E+01, 0.57851E+03,
+  0.10289E+01, 0.60168E+03,
+  0.10397E+01, 0.62541E+03,
+  0.10506E+01, 0.64685E+03,
+  0.10614E+01, 0.66691E+03,
+  0.10722E+01, 0.67537E+03,
+  0.10830E+01, 0.68040E+03,
+  0.10939E+01, 0.67192E+03,
+  0.11047E+01, 0.66360E+03,
+  0.11155E+01, 0.65621E+03,
+  0.11264E+01, 0.65619E+03,
+  0.11372E+01, 0.66030E+03,
+  0.11480E+01, 0.67011E+03,
+  0.11589E+01, 0.67991E+03,
+  0.11697E+01, 0.68948E+03,
+  0.11805E+01, 0.69679E+03,
+  0.11913E+01, 0.70291E+03,
+  0.12022E+01, 0.70757E+03,
+  0.12130E+01, 0.71712E+03,
+  0.12238E+01, 0.73040E+03,
+  0.12347E+01, 0.74411E+03,
+  0.12455E+01, 0.75891E+03,
+  0.12563E+01, 0.77474E+03,
+  0.12672E+01, 0.79125E+03,
+  0.12780E+01, 0.80889E+03,
+  0.12888E+01, 0.82759E+03,
+  0.12997E+01, 0.84724E+03,
+  0.13105E+01, 0.86841E+03,
+  0.13213E+01, 0.89088E+03,
+  0.13321E+01, 0.91495E+03,
+  0.13430E+01, 0.94442E+03,
+  0.13538E+01, 0.97610E+03,
+  0.13646E+01, 0.10079E+04,
+  0.13755E+01, 0.10378E+04,
+  0.13863E+01, 0.10691E+04,
+  0.13971E+01, 0.10795E+04,
+  0.14080E+01, 0.10828E+04,
+  0.14188E+01, 0.10884E+04,
+  0.14296E+01, 0.11049E+04,
+  0.14404E+01, 0.11212E+04,
+  0.14513E+01, 0.11431E+04,
+  0.14621E+01, 0.11671E+04,
+  0.14729E+01, 0.11934E+04,
+  0.14838E+01, 0.12236E+04,
+  0.14946E+01, 0.12550E+04,
+  0.15054E+01, 0.12867E+04,
+  0.15163E+01, 0.13198E+04,
+  0.15271E+01, 0.13516E+04,
+  0.15379E+01, 0.13838E+04,
+  0.15488E+01, 0.14229E+04,
+  0.15596E+01, 0.14693E+04,
+  0.15704E+01, 0.15180E+04,
+  0.15812E+01, 0.15684E+04,
+  0.15921E+01, 0.16193E+04,
+  0.16029E+01, 0.16636E+04,
+  0.16137E+01, 0.17131E+04,
+  0.16246E+01, 0.17809E+04,
+  0.16354E+01, 0.18506E+04,
+  0.16462E+01, 0.19048E+04,
+  0.16571E+01, 0.19652E+04,
+  0.16679E+01, 0.20477E+04,
+  0.16787E+01, 0.21349E+04,
+  0.16895E+01, 0.22205E+04,
+  0.17004E+01, 0.23120E+04,
+  0.17112E+01, 0.24084E+04,
+  0.17220E+01, 0.25135E+04,
+  0.17329E+01, 0.26285E+04,
+  0.17437E+01, 0.27591E+04,
+  0.17545E+01, 0.29060E+04,
+  0.17654E+01, 0.30544E+04,
+  0.17762E+01, 0.32140E+04,
+  0.17870E+01, 0.33797E+04,
+  0.17979E+01, 0.35588E+04,
+  0.18087E+01, 0.37493E+04,
+  0.18195E+01, 0.39526E+04,
+  0.18303E+01, 0.41734E+04,
+  0.18412E+01, 0.44064E+04,
+  0.18520E+01, 0.46604E+04,
+  0.18628E+01, 0.49342E+04,
+  0.18737E+01, 0.52287E+04,
+  0.18845E+01, 0.55508E+04,
+  0.18953E+01, 0.65359E+04,
+  0.19062E+01, 0.69289E+04,
+  0.19170E+01, 0.73495E+04,
+  0.19278E+01, 0.78136E+04,
+  0.19386E+01, 0.83175E+04,
+  0.19495E+01, 0.88617E+04,
+  0.19603E+01, 0.94659E+04,
+  0.19711E+01, 0.10130E+05,
+  0.19820E+01, 0.10854E+05,
+  0.19928E+01, 0.11658E+05,
+  0.20036E+01, 0.12560E+05,
+  0.20145E+01, 0.13556E+05,
+  0.20253E+01, 0.14660E+05,
+  0.20361E+01, 0.15922E+05,
+  0.20470E+01, 0.17361E+05,
+  0.20578E+01, 0.18981E+05,
+  0.20686E+01, 0.20795E+05,
+  0.20794E+01, 0.22831E+05,
+  0.20903E+01, 0.25111E+05,
+  0.21011E+01, 0.27648E+05,
+  0.21119E+01, 0.30468E+05,
+  0.21228E+01, 0.33595E+05,
+  0.21336E+01, 0.37098E+05,
+  0.21444E+01, 0.40944E+05,
+  0.21553E+01, 0.45115E+05,
+  0.21661E+01, 0.49567E+05,
+  0.21769E+01, 0.54217E+05,
+  0.21877E+01, 0.58928E+05,
+  0.21986E+01, 0.63484E+05,
+  0.22094E+01, 0.67588E+05,
+  0.22202E+01, 0.70950E+05,
+  0.22311E+01, 0.73298E+05,
+  0.22419E+01, 0.74429E+05,
+  0.22527E+01, 0.74265E+05,
+  0.22636E+01, 0.72857E+05,
+  0.22744E+01, 0.70377E+05,
+  0.22852E+01, 0.67073E+05,
+  0.22961E+01, 0.63226E+05,
+  0.23069E+01, 0.59096E+05,
+  0.23177E+01, 0.54902E+05,
+  0.23285E+01, 0.50806E+05,
+  0.23394E+01, 0.46920E+05,
+  0.23502E+01, 0.43312E+05,
+  0.23610E+01, 0.40023E+05,
+  0.23719E+01, 0.37084E+05,
+  0.23827E+01, 0.34544E+05,
+  0.23935E+01, 0.32823E+05,
+  0.24044E+01, 0.30030E+05,
+  0.24152E+01, 0.25361E+05,
+  0.24260E+01, 0.22617E+05,
+  0.24368E+01, 0.20212E+05,
+  0.24477E+01, 0.18703E+05,
+  0.24585E+01, 0.17262E+05,
+  0.24693E+01, 0.15565E+05,
+  0.24802E+01, 0.13905E+05,
+  0.24910E+01, 0.12742E+05,
+  0.25018E+01, 0.11738E+05,
+  0.25127E+01, 0.10924E+05,
+  0.25235E+01, 0.10216E+05,
+  0.25343E+01, 0.95872E+04,
+  0.25452E+01, 0.90175E+04,
+  0.25560E+01, 0.85080E+04,
+  0.25668E+01, 0.80470E+04,
+  0.25776E+01, 0.76313E+04,
+  0.25885E+01, 0.72505E+04,
+  0.25993E+01, 0.69067E+04,
+  0.26101E+01, 0.65869E+04,
+  0.26210E+01, 0.62951E+04,
+  0.26318E+01, 0.60169E+04,
+  0.26426E+01, 0.57649E+04,
+  0.26535E+01, 0.55219E+04,
+  0.26643E+01, 0.53338E+04,
+  0.26751E+01, 0.51530E+04,
+  0.26859E+01, 0.49892E+04,
+  0.26968E+01, 0.48365E+04,
+  0.27076E+01, 0.46953E+04,
+  0.27184E+01, 0.45644E+04,
+  0.27293E+01, 0.44387E+04,
+  0.27401E+01, 0.43281E+04,
+  0.27509E+01, 0.42223E+04,
+  0.27618E+01, 0.41232E+04,
+  0.27726E+01, 0.40305E+04,
+  0.27834E+01, 0.39413E+04,
+  0.27943E+01, 0.38577E+04,
+  0.28051E+01, 0.37771E+04,
+  0.28159E+01, 0.36992E+04,
+  0.28267E+01, 0.36308E+04,
+  0.28376E+01, 0.35632E+04,
+  0.28484E+01, 0.34964E+04,
+  0.28592E+01, 0.34351E+04,
+  0.28701E+01, 0.33745E+04,
+  0.28809E+01, 0.33149E+04,
+  0.28917E+01, 0.32590E+04,
+  0.29026E+01, 0.32037E+04,
+  0.29134E+01, 0.31498E+04,
+  0.29242E+01, 0.30994E+04,
+  0.29350E+01, 0.30495E+04,
+  0.29459E+01, 0.30013E+04,
+  0.29567E+01, 0.29549E+04,
+  0.29675E+01, 0.29091E+04,
+  0.29784E+01, 0.28650E+04,
+  0.29892E+01, 0.28216E+04,
+  0.30000E+01, 0.27792E+04,
+  0.30109E+01, 0.27389E+04,
+  0.30217E+01, 0.26990E+04,
+  0.30325E+01, 0.26598E+04,
+  0.30434E+01, 0.26213E+04,
+  0.30542E+01, 0.25831E+04,
+  0.30650E+01, 0.25454E+04,
+  0.30758E+01, 0.25080E+04,
+  0.30867E+01, 0.24726E+04,
+  0.30975E+01, 0.24381E+04,
+  0.31083E+01, 0.24038E+04,
+  0.31192E+01, 0.23700E+04,
+  0.31300E+01, 0.23365E+04,
+  0.31408E+01, 0.23039E+04,
+  0.31517E+01, 0.22715E+04,
+  0.31625E+01, 0.22397E+04,
+  0.31733E+01, 0.22081E+04,
+  0.31841E+01, 0.21767E+04,
+  0.31950E+01, 0.21455E+04,
+  0.32058E+01, 0.21152E+04,
+  0.32166E+01, 0.20853E+04,
+  0.32275E+01, 0.20560E+04,
+  0.32383E+01, 0.20271E+04,
+  0.32491E+01, 0.19986E+04,
+  0.32600E+01, 0.19705E+04,
+  0.32708E+01, 0.19426E+04,
+  0.32816E+01, 0.19152E+04,
+  0.32925E+01, 0.18879E+04,
+  0.33033E+01, 0.18607E+04,
+  0.33141E+01, 0.18341E+04,
+  0.33249E+01, 0.18077E+04,
+  0.33358E+01, 0.17817E+04,
+  0.33466E+01, 0.17559E+04,
+  0.33574E+01, 0.17306E+04,
+  0.33683E+01, 0.17056E+04,
+  0.33791E+01, 0.16810E+04,
+  0.33899E+01, 0.16568E+04,
+  0.34008E+01, 0.16330E+04,
+  0.34116E+01, 0.16095E+04,
+  0.34224E+01, 0.15863E+04,
+  0.34332E+01, 0.15636E+04,
+  0.34441E+01, 0.15409E+04,
+  0.34549E+01, 0.15183E+04,
+  0.34657E+01, 0.14959E+04,
+  0.34766E+01, 0.14737E+04,
+  0.34874E+01, 0.14520E+04,
+  0.34982E+01, 0.14307E+04,
+  0.35091E+01, 0.14097E+04,
+  0.35199E+01, 0.13890E+04,
+  0.35307E+01, 0.13685E+04,
+  0.35416E+01, 0.13484E+04,
+  0.35524E+01, 0.13284E+04,
+  0.35632E+01, 0.13086E+04,
+  0.35740E+01, 0.12892E+04,
+  0.35849E+01, 0.12700E+04,
+  0.35957E+01, 0.12510E+04,
+  0.36065E+01, 0.12324E+04,
+  0.36174E+01, 0.12140E+04,
+  0.36282E+01, 0.11959E+04,
+  0.36390E+01, 0.11780E+04,
+  0.36499E+01, 0.11603E+04,
+  0.36607E+01, 0.11429E+04,
+  0.36715E+01, 0.11257E+04,
+  0.36823E+01, 0.11089E+04,
+  0.36932E+01, 0.10923E+04,
+  0.37040E+01, 0.10759E+04,
+  0.37148E+01, 0.10597E+04,
+  0.37257E+01, 0.10437E+04,
+  0.37365E+01, 0.10280E+04,
+  0.37473E+01, 0.10125E+04,
+  0.37582E+01, 0.99721E+03,
+  0.37690E+01, 0.98222E+03,
+  0.37798E+01, 0.96733E+03,
+  0.37907E+01, 0.95270E+03,
+  0.38015E+01, 0.93826E+03,
+  0.38123E+01, 0.92401E+03,
+  0.38231E+01, 0.91001E+03,
+  0.38340E+01, 0.89613E+03,
+  0.38448E+01, 0.88237E+03,
+  0.38556E+01, 0.86894E+03,
+  0.38665E+01, 0.85583E+03,
+  0.38773E+01, 0.84289E+03,
+  0.38881E+01, 0.83029E+03,
+  0.38990E+01, 0.81888E+03,
+  0.39098E+01, 0.81078E+03,
+  0.39206E+01, 0.80448E+03,
+  0.39314E+01, 0.79878E+03,
+  0.39423E+01, 0.79349E+03,
+  0.39531E+01, 0.78906E+03,
+  0.39639E+01, 0.78544E+03,
+  0.39748E+01, 0.78887E+03,
+  0.39856E+01, 0.80267E+03,
+  0.39964E+01, 0.82442E+03,
+  0.40073E+01, 0.87197E+03,
+  0.40181E+01, 0.10540E+04,
+  0.40289E+01, 0.33326E+04,
+  0.40398E+01, 0.30376E+04,
+  0.40506E+01, 0.29914E+04,
+  0.40614E+01, 0.29285E+04,
+  0.40722E+01, 0.30083E+04,
+  0.40831E+01, 0.32129E+04,
+  0.40939E+01, 0.34135E+04,
+  0.41047E+01, 0.35998E+04,
+  0.41156E+01, 0.33848E+04,
+  0.41264E+01, 0.40485E+04,
+  0.41372E+01, 0.45547E+04,
+  0.41481E+01, 0.48151E+04,
+  0.41589E+01, 0.49347E+04,
+  0.41697E+01, 0.49993E+04,
+  0.41805E+01, 0.50159E+04,
+  0.41914E+01, 0.50117E+04,
+  0.42022E+01, 0.49912E+04,
+  0.42130E+01, 0.49633E+04,
+  0.42239E+01, 0.49371E+04,
+  0.42347E+01, 0.49128E+04,
+  0.42455E+01, 0.48904E+04,
+  0.42564E+01, 0.48683E+04,
+  0.42672E+01, 0.48470E+04,
+  0.42780E+01, 0.48321E+04,
+  0.42889E+01, 0.48192E+04,
+  0.42997E+01, 0.48073E+04,
+  0.43105E+01, 0.47957E+04,
+  0.43213E+01, 0.47813E+04,
+  0.43322E+01, 0.47617E+04,
+  0.43430E+01, 0.47370E+04,
+  0.43538E+01, 0.47125E+04,
+  0.43647E+01, 0.46883E+04,
+  0.43755E+01, 0.46639E+04,
+  0.43863E+01, 0.46485E+04,
+  0.43972E+01, 0.46728E+04,
+  0.44080E+01, 0.47014E+04,
+  0.44188E+01, 0.47756E+04,
+  0.44296E+01, 0.48325E+04,
+  0.44405E+01, 0.48309E+04,
+  0.44513E+01, 0.48270E+04,
+  0.44621E+01, 0.48120E+04,
+  0.44730E+01, 0.47807E+04,
+  0.44838E+01, 0.47289E+04,
+  0.44946E+01, 0.46724E+04,
+  0.45055E+01, 0.46153E+04,
+  0.45163E+01, 0.45551E+04,
+  0.45271E+01, 0.44930E+04,
+  0.45380E+01, 0.44289E+04,
+  0.45488E+01, 0.43619E+04,
+  0.45596E+01, 0.43006E+04,
+  0.45704E+01, 0.42383E+04,
+  0.45813E+01, 0.41749E+04,
+  0.45921E+01, 0.41161E+04,
+  0.46029E+01, 0.40547E+04,
+  0.46138E+01, 0.39952E+04,
+  0.46246E+01, 0.39366E+04,
+  0.46354E+01, 0.38762E+04,
+  0.46463E+01, 0.38202E+04,
+  0.46571E+01, 0.37620E+04,
+  0.46679E+01, 0.37025E+04,
+  0.46787E+01, 0.36408E+04,
+  0.46896E+01, 0.35781E+04,
+  0.47004E+01, 0.35194E+04,
+  0.47112E+01, 0.34582E+04,
+  0.47221E+01, 0.34009E+04,
+  0.47329E+01, 0.33426E+04,
+  0.47437E+01, 0.32860E+04,
+  0.47546E+01, 0.32301E+04,
+  0.47654E+01, 0.31808E+04,
+  0.47762E+01, 0.31459E+04,
+  0.47871E+01, 0.31098E+04,
+  0.47979E+01, 0.30728E+04,
+  0.48087E+01, 0.30344E+04,
+  0.48195E+01, 0.29963E+04,
+  0.48304E+01, 0.29568E+04,
+  0.48412E+01, 0.29195E+04,
+  0.48520E+01, 0.28810E+04,
+  0.48629E+01, 0.28441E+04,
+  0.48737E+01, 0.28060E+04,
+  0.48845E+01, 0.27698E+04,
+  0.48954E+01, 0.27328E+04,
+  0.49062E+01, 0.26974E+04,
+  0.49170E+01, 0.26609E+04,
+  0.49278E+01, 0.26239E+04,
+  0.49387E+01, 0.25865E+04,
+  0.49495E+01, 0.25504E+04,
+  0.49603E+01, 0.25146E+04,
+  0.49712E+01, 0.24792E+04,
+  0.49820E+01, 0.24439E+04,
+  0.49928E+01, 0.24085E+04,
+  0.50037E+01, 0.23745E+04,
+  0.50145E+01, 0.23402E+04,
+  0.50253E+01, 0.23070E+04,
+  0.50362E+01, 0.22737E+04,
+  0.50470E+01, 0.22409E+04,
+  0.50578E+01, 0.22090E+04,
+  0.50686E+01, 0.21770E+04,
+  0.50795E+01, 0.21455E+04,
+  0.50903E+01, 0.21143E+04,
+  0.51011E+01, 0.20832E+04,
+  0.51120E+01, 0.20531E+04,
+  0.51228E+01, 0.20181E+04,
+  0.51336E+01, 0.19765E+04,
+  0.51445E+01, 0.19365E+04,
+  0.51553E+01, 0.18967E+04,
+  0.51661E+01, 0.18570E+04,
+  0.51769E+01, 0.18182E+04,
+  0.51878E+01, 0.17798E+04,
+  0.51986E+01, 0.17421E+04,
+  0.52094E+01, 0.17059E+04,
+  0.52203E+01, 0.16702E+04,
+  0.52311E+01, 0.16352E+04,
+  0.52419E+01, 0.16011E+04,
+  0.52528E+01, 0.15680E+04,
+  0.52636E+01, 0.15354E+04,
+  0.52744E+01, 0.15035E+04,
+  0.52853E+01, 0.14724E+04,
+  0.52961E+01, 0.14419E+04,
+  0.53069E+01, 0.14120E+04,
+  0.53177E+01, 0.13826E+04,
+  0.53286E+01, 0.13539E+04,
+  0.53394E+01, 0.13260E+04,
+  0.53502E+01, 0.12988E+04,
+  0.53611E+01, 0.12719E+04,
+  0.53719E+01, 0.12453E+04,
+  0.53827E+01, 0.12194E+04,
+  0.53936E+01, 0.11940E+04,
+  0.54044E+01, 0.11693E+04,
+  0.54152E+01, 0.11452E+04,
+  0.54260E+01, 0.11217E+04,
+  0.54369E+01, 0.10986E+04,
+  0.54477E+01, 0.10761E+04,
+  0.54585E+01, 0.10540E+04,
+  0.54694E+01, 0.10324E+04,
+  0.54802E+01, 0.10112E+04,
+  0.54910E+01, 0.99053E+03,
+  0.55019E+01, 0.97030E+03,
+  0.55127E+01, 0.95053E+03,
+  0.55235E+01, 0.93112E+03,
+  0.55343E+01, 0.91196E+03,
+  0.55452E+01, 0.89322E+03,
+  0.55560E+01, 0.87492E+03,
+  0.55668E+01, 0.85705E+03,
+  0.55777E+01, 0.83958E+03,
+  0.55885E+01, 0.82253E+03,
+  0.55993E+01, 0.80589E+03,
+  0.56102E+01, 0.78962E+03,
+  0.56210E+01, 0.77365E+03,
+  0.56318E+01, 0.75803E+03,
+  0.56427E+01, 0.74278E+03,
+  0.56535E+01, 0.72786E+03,
+  0.56643E+01, 0.71320E+03,
+  0.56751E+01, 0.69879E+03,
+  0.56860E+01, 0.68468E+03,
+  0.56968E+01, 0.67087E+03,
+  0.57076E+01, 0.65743E+03,
+  0.57185E+01, 0.64431E+03,
+  0.57293E+01, 0.63148E+03,
+  0.57401E+01, 0.61892E+03,
+  0.57510E+01, 0.60656E+03,
+  0.57618E+01, 0.59452E+03,
+  0.57726E+01, 0.58276E+03,
+  0.57835E+01, 0.57126E+03,
+  0.57943E+01, 0.55999E+03,
+  0.58051E+01, 0.54900E+03,
+  0.58159E+01, 0.53834E+03,
+  0.58268E+01, 0.52779E+03,
+  0.58376E+01, 0.51760E+03,
+  0.58484E+01, 0.50754E+03,
+  0.58593E+01, 0.49769E+03,
+  0.58701E+01, 0.48817E+03,
+  0.58809E+01, 0.47879E+03,
+  0.58918E+01, 0.46955E+03,
+  0.59026E+01, 0.46057E+03,
+  0.59134E+01, 0.45174E+03,
+  0.59242E+01, 0.44304E+03,
+  0.59351E+01, 0.43456E+03,
+  0.59459E+01, 0.42633E+03,
+  0.59567E+01, 0.41823E+03,
+  0.59676E+01, 0.41027E+03,
+  0.59784E+01, 0.40249E+03,
+  0.59892E+01, 0.39492E+03,
+  0.60001E+01, 0.38750E+03,
+  0.60109E+01, 0.38021E+03,
+  0.60217E+01, 0.37309E+03,
+  0.60325E+01, 0.36617E+03,
+  0.60434E+01, 0.35939E+03,
+  0.60542E+01, 0.35274E+03,
+  0.60650E+01, 0.34625E+03,
+  0.60759E+01, 0.33988E+03,
+  0.60867E+01, 0.33364E+03,
+  0.60975E+01, 0.32757E+03,
+  0.61084E+01, 0.32161E+03,
+  0.61192E+01, 0.31577E+03,
+  0.61300E+01, 0.31004E+03,
+  0.61409E+01, 0.30442E+03,
+  0.61517E+01, 0.29890E+03,
+  0.61625E+01, 0.29348E+03,
+  0.61733E+01, 0.28821E+03,
+  0.61842E+01, 0.28308E+03,
+  0.61950E+01, 0.27805E+03,
+  0.62058E+01, 0.27312E+03,
+  0.62167E+01, 0.26829E+03,
+  0.62275E+01, 0.26355E+03,
+  0.62383E+01, 0.25891E+03,
+  0.62492E+01, 0.25437E+03,
+  0.62600E+01, 0.24993E+03,
+  0.62708E+01, 0.24559E+03,
+  0.62816E+01, 0.24132E+03,
+  0.62925E+01, 0.23714E+03,
+  0.63033E+01, 0.23303E+03,
+  0.63141E+01, 0.22900E+03,
+  0.63250E+01, 0.22509E+03,
+  0.63358E+01, 0.22126E+03,
+  0.63466E+01, 0.21750E+03,
+  0.63575E+01, 0.21381E+03,
+  0.63683E+01, 0.21019E+03,
+  0.63791E+01, 0.20663E+03,
+  0.63900E+01, 0.20316E+03,
+  0.64008E+01, 0.19977E+03,
+  0.64116E+01, 0.19644E+03,
+  0.64224E+01, 0.19317E+03,
+  0.64333E+01, 0.18996E+03,
+  0.64441E+01, 0.18680E+03,
+  0.64549E+01, 0.18374E+03,
+  0.64658E+01, 0.18074E+03,
+  0.64766E+01, 0.17778E+03,
+  0.64874E+01, 0.17488E+03,
+  0.64983E+01, 0.17203E+03,
+  0.65091E+01, 0.16925E+03,
+  0.65199E+01, 0.16653E+03,
+  0.65307E+01, 0.16385E+03,
+  0.65416E+01, 0.16122E+03,
+  0.65524E+01, 0.15863E+03,
+  0.65632E+01, 0.15611E+03,
+  0.65741E+01, 0.15364E+03,
+  0.65849E+01, 0.15121E+03,
+  0.65957E+01, 0.14882E+03,
+  0.66066E+01, 0.14647E+03,
+  0.66174E+01, 0.14418E+03,
+  0.66282E+01, 0.14194E+03,
+  0.66391E+01, 0.13973E+03,
+  0.66499E+01, 0.13756E+03,
+  0.66607E+01, 0.13542E+03,
+  0.66715E+01, 0.13334E+03,
+  0.66824E+01, 0.13130E+03,
+  0.66932E+01, 0.12929E+03,
+  0.67040E+01, 0.12731E+03,
+  0.67149E+01, 0.12538E+03,
+  0.67257E+01, 0.12349E+03,
+  0.67365E+01, 0.12163E+03,
+  0.67474E+01, 0.11980E+03,
+  0.67582E+01, 0.11800E+03,
+  0.67690E+01, 0.11623E+03,
+  0.67798E+01, 0.11449E+03,
+  0.67907E+01, 0.11277E+03,
+  0.68015E+01, 0.11110E+03,
+  0.68123E+01, 0.10947E+03,
+  0.68232E+01, 0.10787E+03,
+  0.68340E+01, 0.10628E+03,
+  0.68448E+01, 0.10473E+03,
+  0.68557E+01, 0.10319E+03,
+  0.68665E+01, 0.10169E+03,
+  0.68773E+01, 0.10020E+03,
+  0.68882E+01, 0.98758E+02,
+  0.68990E+01, 0.97336E+02,
+  0.69098E+01, 0.95944E+02,
+  0.69206E+01, 0.94575E+02,
+  0.69315E+01, 0.22465E+03,
+  0.69423E+01, 0.21996E+03,
+  0.69531E+01, 0.21542E+03,
+  0.69640E+01, 0.21099E+03,
+  0.69748E+01, 0.20667E+03,
+  0.69856E+01, 0.20245E+03,
+  0.69965E+01, 0.19832E+03,
+  0.70073E+01, 0.19429E+03,
+  0.70181E+01, 0.19034E+03,
+  0.70289E+01, 0.18649E+03,
+  0.70398E+01, 0.18273E+03,
+  0.70506E+01, 0.17906E+03,
+  0.70614E+01, 0.17547E+03,
+  0.70723E+01, 0.17196E+03,
+  0.70831E+01, 0.16853E+03,
+  0.70939E+01, 0.16518E+03,
+  0.71048E+01, 0.16191E+03,
+  0.71156E+01, 0.15871E+03,
+  0.71264E+01, 0.15558E+03,
+  0.71373E+01, 0.15252E+03,
+  0.71481E+01, 0.14952E+03,
+  0.71589E+01, 0.14660E+03,
+  0.71697E+01, 0.14375E+03,
+  0.71806E+01, 0.14096E+03,
+  0.71914E+01, 0.13823E+03,
+  0.72022E+01, 0.13558E+03,
+  0.72131E+01, 0.13298E+03,
+  0.72239E+01, 0.13043E+03,
+  0.72347E+01, 0.12793E+03,
+  0.72456E+01, 0.12550E+03,
+  0.72564E+01, 0.12310E+03,
+  0.72672E+01, 0.12078E+03,
+  0.72780E+01, 0.11848E+03,
+  0.72889E+01, 0.11627E+03,
+  0.72997E+01, 0.11408E+03,
+  0.73105E+01, 0.11195E+03,
+  0.73214E+01, 0.10986E+03,
+  0.73322E+01, 0.10782E+03,
+  0.73430E+01, 0.10583E+03,
+  0.73539E+01, 0.10387E+03,
+  0.73647E+01, 0.10196E+03,
+  0.73755E+01, 0.10009E+03,
+  0.73864E+01, 0.98262E+02,
+  0.73972E+01, 0.96485E+02,
+  0.74080E+01, 0.94733E+02,
+  0.74188E+01, 0.93018E+02,
+  0.74297E+01, 0.91347E+02,
+  0.74405E+01, 0.89700E+02,
+  0.74513E+01, 0.88091E+02,
+  0.74622E+01, 0.86525E+02,
+  0.74730E+01, 0.84987E+02,
+  0.74838E+01, 0.83481E+02,
+  0.74947E+01, 0.82012E+02,
+  0.75055E+01, 0.80568E+02,
+  0.75163E+01, 0.79150E+02,
+  0.75271E+01, 0.77769E+02,
+  0.75380E+01, 0.76412E+02,
+  0.75488E+01, 0.75086E+02,
+  0.75596E+01, 0.73789E+02,
+  0.75705E+01, 0.72523E+02,
+  0.75813E+01, 0.71281E+02,
+  0.75921E+01, 0.70060E+02,
+  0.76030E+01, 0.68864E+02,
+  0.76138E+01, 0.67695E+02,
+  0.76246E+01, 0.66552E+02,
+  0.76355E+01, 0.65432E+02,
+  0.76463E+01, 0.64333E+02,
+  0.76571E+01, 0.63255E+02,
+  0.76679E+01, 0.62202E+02,
+  0.76788E+01, 0.61168E+02,
+  0.76896E+01, 0.60155E+02,
+  0.77004E+01, 0.59163E+02,
+  0.77113E+01, 0.58191E+02,
+  0.77221E+01, 0.57237E+02,
+  0.77329E+01, 0.56303E+02,
+  0.77438E+01, 0.55386E+02,
+  0.77546E+01, 0.54487E+02,
+  0.77654E+01, 0.53611E+02,
+  0.77762E+01, 0.52751E+02,
+  0.77871E+01, 0.51907E+02,
+  0.77979E+01, 0.51079E+02,
+  0.78087E+01, 0.50267E+02,
+  0.78196E+01, 0.49470E+02,
+  0.78304E+01, 0.48687E+02,
+  0.78412E+01, 0.47921E+02,
+  0.78521E+01, 0.47168E+02,
+  0.78629E+01, 0.46429E+02,
+  0.78737E+01, 0.45704E+02,
+  0.78846E+01, 0.44994E+02,
+  0.78954E+01, 0.44299E+02,
+  0.79062E+01, 0.43613E+02,
+  0.79170E+01, 0.42943E+02,
+  0.79279E+01, 0.42286E+02,
+  0.79387E+01, 0.41641E+02,
+  0.79495E+01, 0.41007E+02,
+  0.79604E+01, 0.40384E+02,
+  0.79712E+01, 0.39773E+02,
+  0.79820E+01, 0.39173E+02,
+  0.79929E+01, 0.38584E+02,
+  0.80037E+01, 0.38005E+02,
+  0.80145E+01, 0.37435E+02,
+  0.80253E+01, 0.36876E+02,
+  0.80362E+01, 0.36326E+02,
+  0.80470E+01, 0.35790E+02,
+  0.80578E+01, 0.35265E+02,
+  0.80687E+01, 0.34749E+02,
+  0.80795E+01, 0.34240E+02,
+  0.80903E+01, 0.33743E+02,
+  0.81012E+01, 0.33254E+02,
+  0.81120E+01, 0.32773E+02,
+  0.81228E+01, 0.32299E+02,
+  0.81337E+01, 0.31835E+02,
+  0.81445E+01, 0.31378E+02,
+  0.81553E+01, 0.30929E+02,
+  0.81661E+01, 0.30491E+02,
+  0.81770E+01, 0.30060E+02,
+  0.81878E+01, 0.29636E+02,
+  0.81986E+01, 0.29220E+02,
+  0.82095E+01, 0.28810E+02,
+  0.82203E+01, 0.28407E+02,
+  0.82311E+01, 0.28010E+02,
+  0.82420E+01, 0.27620E+02,
+  0.82528E+01, 0.27236E+02,
+  0.82636E+01, 0.26860E+02,
+  0.82744E+01, 0.26491E+02,
+  0.82853E+01, 0.26127E+02,
+  0.82961E+01, 0.25770E+02,
+  0.83069E+01, 0.25418E+02,
+  0.83178E+01, 0.25072E+02,
+  0.83286E+01, 0.24731E+02,
+  0.83394E+01, 0.24396E+02,
+  0.83503E+01, 0.24069E+02,
+  0.83611E+01, 0.23746E+02,
+  0.83719E+01, 0.23428E+02,
+  0.83828E+01, 0.23115E+02,
+  0.83936E+01, 0.22807E+02,
+  0.84044E+01, 0.22505E+02,
+  0.84152E+01, 0.22207E+02,
+  0.84261E+01, 0.21913E+02,
+  0.84369E+01, 0.21625E+02,
+  0.84477E+01, 0.21341E+02,
+  0.84586E+01, 0.21062E+02,
+  0.84694E+01, 0.20786E+02,
+  0.84802E+01, 0.20515E+02,
+  0.84911E+01, 0.20248E+02,
+  0.85019E+01, 0.19986E+02,
+  0.85127E+01, 0.19727E+02,
+  0.85235E+01, 0.19473E+02,
+  0.85344E+01, 0.19223E+02,
+  0.85452E+01, 0.18976E+02,
+  0.85560E+01, 0.18733E+02,
+  0.85669E+01, 0.18494E+02,
+  0.85777E+01, 0.18258E+02,
+  0.85885E+01, 0.18026E+02,
+  0.85994E+01, 0.17797E+02,
+  0.86102E+01, 0.17572E+02,
+  0.86210E+01, 0.17350E+02,
+  0.86319E+01, 0.17132E+02,
+  0.86427E+01, 0.16916E+02,
+  0.86535E+01, 0.16704E+02,
+  0.86643E+01, 0.16495E+02,
+  0.86752E+01, 0.16288E+02,
+  0.86860E+01, 0.16085E+02,
+  0.86968E+01, 0.15885E+02,
+  0.87077E+01, 0.15688E+02,
+  0.87185E+01, 0.15494E+02,
+  0.87293E+01, 0.15302E+02,
+  0.87402E+01, 0.15113E+02,
+  0.87510E+01, 0.14927E+02,
+  0.87618E+01, 0.14744E+02,
+  0.87726E+01, 0.14563E+02,
+  0.87835E+01, 0.14385E+02,
+  0.87943E+01, 0.14209E+02,
+  0.88051E+01, 0.14036E+02,
+  0.88160E+01, 0.13865E+02,
+  0.88268E+01, 0.13696E+02,
+  0.88376E+01, 0.13530E+02,
+  0.88485E+01, 0.13366E+02,
+  0.88593E+01, 0.13204E+02,
+  0.88701E+01, 0.13045E+02,
+  0.88810E+01, 0.12887E+02,
+  0.88918E+01, 0.12732E+02,
+  0.89026E+01, 0.12579E+02,
+  0.89134E+01, 0.12428E+02,
+  0.89243E+01, 0.12280E+02,
+  0.89351E+01, 0.12133E+02,
+  0.89459E+01, 0.11988E+02,
+  0.89568E+01, 0.11845E+02,
+  0.89676E+01, 0.11704E+02,
+  0.89784E+01, 0.11565E+02,
+  0.89893E+01, 0.11428E+02,
+  0.90001E+01, 0.11292E+02,
+  0.90109E+01, 0.11158E+02,
+  0.90217E+01, 0.11027E+02,
+  0.90326E+01, 0.10896E+02,
+  0.90434E+01, 0.10768E+02,
+  0.90542E+01, 0.10641E+02,
+  0.90651E+01, 0.10516E+02,
+  0.90759E+01, 0.10392E+02,
+  0.90867E+01, 0.10271E+02,
+  0.90976E+01, 0.10150E+02,
+  0.91084E+01, 0.10032E+02,
+  0.91192E+01, 0.99143E+01,
+  0.91301E+01, 0.97986E+01,
+  0.91409E+01, 0.96843E+01,
+  0.91517E+01, 0.95717E+01,
+  0.91625E+01, 0.94603E+01,
+  0.91734E+01, 0.93504E+01,
+  0.91842E+01, 0.92419E+01,
+  0.91950E+01, 0.91348E+01,
+  0.92059E+01, 0.90290E+01,
+  0.92167E+01, 0.89245E+01,
+  0.92275E+01, 0.88214E+01,
+  0.92384E+01, 0.87196E+01,
+  0.92492E+01, 0.86190E+01,
+  0.92600E+01, 0.85198E+01,
+  0.92708E+01, 0.84216E+01,
+  0.92817E+01, 0.83249E+01,
+  0.92925E+01, 0.82293E+01,
+  0.93033E+01, 0.81348E+01,
+  0.93142E+01, 0.80416E+01,
+  0.93250E+01, 0.79495E+01,
+  0.93358E+01, 0.78584E+01,
+  0.93467E+01, 0.77767E+01,
+  0.93575E+01, 0.76799E+01,
+  0.93683E+01, 0.75922E+01,
+  0.93792E+01, 0.75057E+01,
+  0.93900E+01, 0.74201E+01,
+  0.94008E+01, 0.73356E+01,
+  0.94116E+01, 0.72522E+01,
+  0.94225E+01, 0.71697E+01,
+  0.94333E+01, 0.70883E+01,
+  0.94441E+01, 0.70078E+01,
+  0.94550E+01, 0.69283E+01,
+  0.94658E+01, 0.68498E+01,
+  0.94766E+01, 0.67723E+01,
+  0.94875E+01, 0.66956E+01,
+  0.94983E+01, 0.66199E+01,
+  0.95091E+01, 0.65451E+01,
+  0.95199E+01, 0.64712E+01,
+  0.95308E+01, 0.63981E+01,
+  0.95416E+01, 0.63260E+01,
+  0.95524E+01, 0.62547E+01,
+  0.95633E+01, 0.61843E+01,
+  0.95741E+01, 0.61147E+01,
+  0.95849E+01, 0.60458E+01,
+  0.95958E+01, 0.59779E+01,
+  0.96066E+01, 0.59107E+01,
+  0.96174E+01, 0.58443E+01,
+  0.96283E+01, 0.57788E+01,
+  0.96391E+01, 0.57140E+01,
+  0.96499E+01, 0.56499E+01,
+  0.96607E+01, 0.55866E+01,
+  0.96716E+01, 0.55240E+01,
+  0.96824E+01, 0.54623E+01,
+  0.96932E+01, 0.54012E+01,
+  0.97041E+01, 0.53408E+01,
+  0.97149E+01, 0.52811E+01,
+  0.97257E+01, 0.52221E+01,
+  0.97366E+01, 0.51281E+01,
+  0.97474E+01, 0.50716E+01,
+  0.97582E+01, 0.50157E+01,
+  0.97690E+01, 0.49604E+01,
+  0.97799E+01, 0.49058E+01,
+  0.97907E+01, 0.48518E+01,
+  0.98015E+01, 0.47984E+01,
+  0.98124E+01, 0.47455E+01,
+  0.98232E+01, 0.46933E+01,
+  0.98340E+01, 0.46417E+01,
+  0.98449E+01, 0.45907E+01,
+  0.98557E+01, 0.45402E+01,
+  0.98665E+01, 0.44902E+01,
+  0.98774E+01, 0.44409E+01,
+  0.98882E+01, 0.43921E+01,
+  0.98990E+01, 0.43439E+01,
+  0.99098E+01, 0.42961E+01,
+  0.99207E+01, 0.42490E+01,
+  0.99315E+01, 0.42023E+01,
+  0.99423E+01, 0.41562E+01,
+  0.99532E+01, 0.41106E+01,
+  0.99640E+01, 0.40655E+01,
+  0.99748E+01, 0.40209E+01,
+  0.99857E+01, 0.39768E+01,
+  0.99965E+01, 0.39332E+01,
+  0.10007E+02, 0.38901E+01,
+  0.10018E+02, 0.38475E+01,
+  0.10029E+02, 0.38053E+01,
+  0.10040E+02, 0.37636E+01,
+  0.10051E+02, 0.37224E+01,
+  0.10061E+02, 0.36816E+01,
+  0.10072E+02, 0.36413E+01,
+  0.10083E+02, 0.36014E+01,
+  0.10094E+02, 0.35620E+01,
+  0.10105E+02, 0.35230E+01,
+  0.10116E+02, 0.34845E+01,
+  0.10126E+02, 0.34463E+01,
+  0.10137E+02, 0.34087E+01,
+  0.10148E+02, 0.33714E+01,
+  0.10159E+02, 0.33345E+01,
+  0.10170E+02, 0.32981E+01,
+  0.10181E+02, 0.32620E+01,
+  0.10191E+02, 0.32264E+01,
+  0.10202E+02, 0.31911E+01,
+  0.10213E+02, 0.31562E+01,
+  0.10224E+02, 0.31217E+01,
+  0.10235E+02, 0.30876E+01,
+  0.10246E+02, 0.30539E+01,
+  0.10256E+02, 0.30206E+01,
+  0.10267E+02, 0.29876E+01,
+  0.10278E+02, 0.29550E+01,
+  0.10289E+02, 0.29227E+01,
+  0.10300E+02, 0.28908E+01,
+  0.10311E+02, 0.28593E+01,
+  0.10321E+02, 0.28281E+01,
+  0.10332E+02, 0.27972E+01,
+  0.10343E+02, 0.27667E+01,
+  0.10354E+02, 0.27365E+01,
+  0.10365E+02, 0.27067E+01,
+  0.10376E+02, 0.26772E+01,
+  0.10386E+02, 0.26480E+01,
+  0.10397E+02, 0.26191E+01,
+  0.10408E+02, 0.25906E+01,
+  0.10419E+02, 0.25623E+01,
+  0.10430E+02, 0.25344E+01,
+  0.10441E+02, 0.25068E+01,
+  0.10451E+02, 0.24795E+01,
+  0.10462E+02, 0.24525E+01,
+  0.10473E+02, 0.24258E+01,
+  0.10484E+02, 0.23993E+01,
+  0.10495E+02, 0.23732E+01,
+  0.10506E+02, 0.23474E+01,
+  0.10516E+02, 0.23218E+01,
+  0.10527E+02, 0.22965E+01,
+  0.10538E+02, 0.22715E+01,
+  0.10549E+02, 0.22468E+01,
+  0.10560E+02, 0.22223E+01,
+  0.10570E+02, 0.21982E+01,
+  0.10581E+02, 0.21742E+01,
+  0.10592E+02, 0.21506E+01,
+  0.10603E+02, 0.21272E+01,
+  0.10614E+02, 0.21041E+01,
+  0.10625E+02, 0.20812E+01,
+  0.10635E+02, 0.20585E+01,
+  0.10646E+02, 0.20361E+01,
+  0.10657E+02, 0.20140E+01,
+  0.10668E+02, 0.19921E+01,
+  0.10679E+02, 0.19704E+01,
+  0.10690E+02, 0.19490E+01,
+  0.10700E+02, 0.19278E+01,
[truncated at 1000 lines; 274 more skipped]

lcsim/src/org/lcsim/mc/CCDSim
SiliconDeDx.java added at 1.1
diff -N SiliconDeDx.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SiliconDeDx.java	18 Dec 2007 01:08:10 -0000	1.1
@@ -0,0 +1,120 @@
+package org.lcsim.mc.CCDSim;
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+//import org.lcsim.util.aida.AIDA;
+import org.lcsim.math.distribution.*;
+//import hep.aida.ITree;
+import java.util.Random;
+
+public class SiliconDeDx 
+{
+//   private static AIDA aida = AIDA.defaultInstance();
+   private static Random rnd = new Random();
+   private final int NPNTS=1248; 
+   private double sensthick = 1.0;
+   private final double collen = 0.25941; //average free path between ionising collisions in silicon (micrometers)
+   private double maxsingloss = 1.3E6;     //maximum energy loss in single collision (eV)
+   private static int vpnts = 0;
+   private double[] _xval = new double[NPNTS]; 
+   private double[] _yint = null;  
+
+
+   public SiliconDeDx() 
+   {
+    readTables();
+   }
+
+   private void readTables()
+   {
+    SiSingleColElossTab tab = new SiSingleColElossTab(); 
+    String cacheDir = System.getProperty("user.home");
+    double[] yval = new double[NPNTS];
+    for(int i=0; i<NPNTS; i++)
+    {
+     double row[]=tab.getRow(i);
+     _xval[i]=row[0];
+     yval[i]=row[1];
+    }
+    System.out.println("Last read y value was: "+yval[NPNTS-1]);
+    System.out.println("Last read x value was: "+_xval[NPNTS-1]);
+    double lastx = Math.log(maxsingloss/1.8);
+    vpnts = 0;
+    for(int i=0; i<NPNTS; i++) if(_xval[i]<lastx) vpnts=i+1;
+    System.out.println("using single collision table of "+vpnts+" length");
+    _yint = new double[vpnts];
+    _yint[0]=yval[0];
+    for(int i=1; i<vpnts; i++)
+    {
+     _yint[i]=_yint[i-1]+yval[i];
+    }
+    double norm = _yint[vpnts-1];
+    for(int i=0; i<vpnts; i++) _yint[i]/=norm;
+   }
+
+   /**
+   *
+   * setting sensor thickness (in microns)
+   *
+   */
+   public void setSensorThickness(double th)   
+   {
+    sensthick = th;
+   }
+
+   /**
+   *
+   * get next simulated value of eloss in the sensor 
+   *
+   */
+
+    public double getNextEloss()
+    {
+     double path = 0.;
+     double eloss = 0.;
+     while(path < sensthick)
+     {
+      path+= getPathToNextCollision();
+      eloss+= getNextCollisionEloss();
+     }
+     return eloss;  
+    }
+
+    public double getPathToNextCollision()
+    {
+      double len = 0.;
+      double probe = rnd.nextDouble();
+      len = -collen*Math.log(1.-probe);
+      return len;
+    }
+
+    public double getNextCollisionEloss()
+    {
+      double elos = 0.;
+      double probe = rnd.nextDouble();
+      boolean up = true;
+      int step = vpnts/2;
+      int jl = vpnts/2;
+      double xl = _xval[jl];
+      double xh = _xval[jl+1];
+      int nit = 0;
+      while(step > 1)
+      {
+       nit++;
+       if(jl > vpnts-2) jl=vpnts-2;
+       xl = _xval[jl];
+       xh = _xval[jl+1];
+       up = _yint[jl]<probe;
+       if(up && (_yint[jl+1]>probe)) break; 
+       step/=2;
+       if(up) jl+=step;
+       else jl-=step; 
+      }
+      double ell = xl+(xh-xl)*rnd.nextDouble();
+      elos = 1.8 * Math.exp(ell);
+      return elos;
+    }  
+
+}
+

lcsim/src/org/lcsim/mc/CCDSim
CCDSim.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- CCDSim.java	3 Mar 2007 02:45:58 -0000	1.6
+++ CCDSim.java	18 Dec 2007 01:08:10 -0000	1.7
@@ -18,16 +18,18 @@
  *                 November 2006 - Nick Sinev - added diffusion in depleted region,
  *                                 Lorentz Angle, output TrackerHit, not SimTrackerHit
  * @author  sinev  U of Oregon, SLAC. x2970 <BR>
- * @version $Id: CCDSim.java,v 1.6 2007/03/03 02:45:58 sinev Exp $
+ * @version $Id: CCDSim.java,v 1.7 2007/12/18 01:08:10 sinev Exp $
 *    
 */
 public class CCDSim
 {
    private boolean debug = false;
    private boolean doHist = true;
+   private boolean simulEveryColl = false;
    private AIDA aida = AIDA.defaultInstance();
    private CCDSpec ccdspec = null;
    private LorentzAngle _LA = new LorentzAngle();
+   private SiliconDeDx dedx = new SiliconDeDx();
 /*.....................................
 |    Parameters characterizing detector material and it's
 |    state.
@@ -118,9 +120,9 @@
     
     
     private float[] _rangetaben = {0.01f,0.0125f,0.015f,0.0175f,0.02f,0.025f,0.03f,0.035f,0.04f,0.045f,0.05f,0.055f,
-                                    0.06f,0.07f,0.08f,0.09f,0.1f,0.125f,0.15f,0.175f};
+                                    0.06f,0.07f,0.08f,0.09f,0.1f,0.125f,0.15f,0.175f,0.2f,0.25f,0.3f,0.35f,0.4f};
     private float[] _rangetabrn = {1.48f,2.18f,2.98f,3.89f,4.9f,7.21f,9.91f,12.94f,16.32f,20.f,24.f,28.28f,32.84f,
-                                    42.76f,53.69f,65.5f,78.2f,113.4f,152.8f,196.0f};
+                                    42.76f,53.69f,65.5f,78.2f,113.4f,152.8f,196.0f,242.3f,343.0f,452.4f,567.8f,689.3f};
 
     private Random _ran = new Random();
     private CCDElectronicsSpec cespec;
@@ -184,6 +186,21 @@
         initialize();        
     }
 
+    public void simulateEveryCollision(boolean dosim)
+    {
+     simulEveryColl = dosim;
+    }
+
+    public double getRange(double e)
+    {
+     // energy in MeV, range in microns!
+     double r = 0.;
+     int i=0;
+     while((e<_rangetaben[i]) && (i<24)) i++;
+     r= (double) _rangetabrn[i];
+     return r;
+    }
+
     public void setBField(double B)
     {
      _Bfield = B;
@@ -208,10 +225,14 @@
          EPIDEP = (float) ccdspec.getEpiDepth();
          PXSIZX = (float) ccdspec.getPixelSizeX();
          PXSIZY = (float) ccdspec.getPixelSizeY();
+         if(PXSIZX>PXSIZY) SIGMIN=PXSIZX/40.0f;
+         else SIGMIN=PXSIZY/40.0f;  
         }
 
         LOSSPERPAIR = (float) cespec.EVPERPAIR;   
         float _sth = EPIDEP/NDEPST;
+        double sampstep = (double) _sth; 
+        dedx.setSensorThickness(sampstep);  
         if(_sth < 13.) 
          MPLOSS = _sth * (float)  (119.57 + 28.85 * Math.log(_sth));
         if((_sth < 110.f)&&(_sth >= 13.f)) 
@@ -291,9 +312,9 @@
                             anorm+=_table[isig][ipnx][ipny][i][j];
                         }
                     }
-                    if(Math.abs(anorm) < 0.00001)
+                    if(Math.abs(anorm) < 0.0000001)
                     {
-                        System.out.println("Normalization error !!!\n");
+                        System.out.println("Normalization error  for sigma ind = "+isig+" anorm = "+anorm+"\n");
                     }
                     for(i=0; i<NPXMAXXG; i++)
                     {
@@ -707,7 +728,7 @@
         if(napad > 0) { ccd.incPartCount(); return 1;}
         if(napad == 0) 
         {
-         System.out.println("No signal was generated by blob started in CCD lr "+ccd.getLayerNumber()+" col "+coln+" row "+rown);
+         if(debug) System.out.println("No signal was generated by blob started in CCD lr "+ccd.getLayerNumber()+" col "+coln+" row "+rown);
         } 
       return -1;
      }  
@@ -854,23 +875,75 @@
         dl = (float)((EPIDEP)/kl)/NDEPST;
         lfact = (float) (1./kl);  
         double _laxd = 0.;
-        for(k=0; k<NDEPST; k++)
+        double path=0.;
+        depth = 0.f;
+//        for(k=0; k<NDEPST; k++)
+//        {
+//         depth = (float) (k * dl * kl);
+        while(depth < EPIDEP) 
         {
-         eloss =  geteloss();
-         depth = (float) (k * dl * kl);
-         if(depth<=DEPDEP)
-         {  
+         if(simulEveryColl)
+         {
+          path+= dedx.getPathToNextCollision();  
+          depth = (float) (kl*path);
+          eloss = (float) (dedx.getNextCollisionEloss()/LOSSPERPAIR);  // eloss is expressed in number of e-h pairs generated
+         }
+         else
+         {
+          path+= dl;
+          depth= (float) (kl * path);   
+          eloss =  (float) (dedx.getNextEloss()/LOSSPERPAIR);
+         }
+         double ddx=0.;
+         double ddy=0.;
+         double ddz=0.;
+         boolean delta = false;
+         if(eloss*LOSSPERPAIR > 10000.)
+         {
+          delta=true;
+          double elinM = LOSSPERPAIR * eloss*0.000001; // elinM = e loss in MeV
+          float elosstp = 0.1f * eloss; 
+          double range = 0.1 * getRange(elinM);
+          double deaz = _ran.nextDouble()*Math.PI;
+          double dephi = _ran.nextDouble()*Math.PI*2.;
+          ddz = range*Math.sin(deaz);
+          ddx = range*Math.cos(deaz)*Math.sin(dephi);
+          ddy = range*Math.cos(deaz)*Math.cos(dephi);
+          for(i=0; i<10; i++)
+          {
+           float depdepth = depth + (float) (i * kl * ddz);
+           if(depdepth<=DEPDEP)
+           {  
             _laxd = depth * tlza;  
-            xc = (float) (xlc + k * dl * il + _laxd);
-            yc = (float) (ylc + k * dl * jl);
-            addSegment(xc,yc,depth,eloss);
-         }    
-         if(depth > DEPDEP)
+            xc = (float) (xlc + path * il + _laxd + i*ddx);
+            yc = (float) (ylc + path * jl + i*ddy);
+            addSegment(xc,yc,depdepth,elosstp);
+           }    
+           if(depdepth > DEPDEP)
+           {
+               _laxd = DEPDEP*tlza;
+               xc = (float) (xlc + path * il + _laxd + i*ddx);
+               yc = (float) (ylc + path * jl + i*ddy);
+            addSegment(xc,yc,depdepth,elosstp);
+           }
+          }
+         }
+         if(!delta)
          {
+          if(depth<=DEPDEP)
+          {  
+            _laxd = depth * tlza;  
+            xc = (float) (xlc + path * il + _laxd);
+            yc = (float) (ylc + path * jl);
+            addSegment(xc,yc,depth,eloss);
+          }    
+          if(depth > DEPDEP)
+          {
                _laxd = DEPDEP*tlza;
-               xc = (float) (xlc + k * dl * il + _laxd);
-               yc = (float) (ylc + k * dl * jl);
+               xc = (float) (xlc + path * il + _laxd);
+               yc = (float) (ylc + path * jl);
             addSegment(xc,yc,depth,eloss);
+          }
          }
         }
         int napad = 0;
@@ -986,9 +1059,10 @@
     
     private float geteloss()
     {
-        double rn = ranlan.nextLandau();
-        if(rn < 0.) rn=0.;
-        return (float) rn;
+//        double rn = ranlan.nextLandau();
+//        if(rn < 0.) rn=0.;
+//        return (float) rn;
+        return (float) (dedx.getNextEloss()/LOSSPERPAIR);
     }
     
     private void getpix(float[][] pix,float xl, float yl, float sigma)

lcsim/src/org/lcsim/mc/CCDSim
FullCCDSimulation.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- FullCCDSimulation.java	3 Mar 2007 02:44:45 -0000	1.6
+++ FullCCDSimulation.java	18 Dec 2007 01:08:10 -0000	1.7
@@ -31,7 +31,7 @@
  * objects, which emplement SimTrackerHit interface, so can be used instead
  * of original Simulated Tracker Hits generated by Geant4.  
  * @author sinev U of Oregon; SLAC x2970; [log in to unmask]
- * @version $Id: FullCCDSimulation.java,v 1.6 2007/03/03 02:44:45 sinev Exp $
+ * @version $Id: FullCCDSimulation.java,v 1.7 2007/12/18 01:08:10 sinev Exp $
  */
 public class FullCCDSimulation extends Driver
 {
@@ -55,6 +55,7 @@
         private double ecAspn = 0.1;
         private double ecTspn = 0.05;
         private double Bfield = 5.;
+        private boolean simEveryColl = false;
  
 /*.................................................................................
 |  here are resolution tables parametrized as function of tan of angle btw track and Z
@@ -93,6 +94,11 @@
          _tinitd = false;
         }
 
+        public void simulateEveryCollision(boolean dosim)
+        {
+         simEveryColl = dosim;
+        }
+
         public void useGeneratedResolution( boolean douse)
         {
          _useGenTab = douse;
@@ -113,6 +119,7 @@
 	   nbarrels = bccd.getNVxBrls();
            ccdsim = new CCDSim(sp,esp);
            ccdsim.setBField(Bfield);
+           ccdsim.simulateEveryCollision(simEveryColl); 
            System.out.println("Full CCD sim. has build "+ccds.size()+" CCDs for detector "+d.getName());
            cfn.setPixelThreshold(esp.getSinglePixThr());
            cfn.setClusterThreshold(esp.getClustThr());
CVSspam 0.2.8