|
|||||||||||
| Professional | Personal | Protected | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| CV and Docs | Magnetic Shielding | HPD Electronics | Optical Alignment | Testbeam Work | Theory and Background | ||||||
| Software |
Here is a brief list of the rather messy but operational c++ I've written for various wafer analysis tasks as of Thursday 26th August I may update these at some point.
all the code above is in a zip file here now follows some random musings on how it works in no particualr orderThe heart of the code is the pixels threshold finder (pinched wholesale from wafer_combo my aweful c program) although in this version its been refined a bit as the number of triggers and the number of scans are automatically detected. At some popint i may put apropper fitting function in there but as it has to be done 8000 times for each chip it might slow things down a bit. The pixels noise level is calculated by taking the s-curve inverting the half above the threshold calculated earlier to give a rough gaussian and doing apopulation based standard deviation calculation on teh remaining points. This was also taken straight from my previous program. At the chip level the averages and spreads of these two values are calculated good and bad pixels are selectd on 3 criteria that are adjustable fomr the wafer level down. basically ranges are set on 3 key values for each pixel. the threshold, the width and probaly more importnatly the average value for the whole scan. This final value lets you determine whether the pixel is always on (noisy) as it would have an unusually high average value or dead giving it a low average. The two bounds are called the hotlevel and the deadlevel and at the moment i have set them at 0.7 and 0.55 this however was calibrated on only ONE wafer and can almost certinaly be improved upon the castor_class is a real mess, it has littel logical structure andjust performs a seriesof random but useful disk operations to castor and local disks by bashing linux commands to the system. Unfortunaly this means that you must be running in linux fo ti to work. This also holds true for where i have done other file system operation in fiel names - it may not run under windwos without some alteration that im afraid i cant advise on at the moment. this code is almost entirly devoid of pointers because i dont feel i fully understand them or their operation well enough not to horibly break things - the only exception its the array of pixels in teh chip class but i had help on that one. This means that if there is dire need it could poisbly be javified reaonbaly easily - or at least without a complete rewrite |
||||||||||