Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN | |||
HPSMakeSVTCellID.java | +63 | added 1.1 |
Class for making SVT CellID from values (fpga,hybrid,channel) in the SVT raw data
diff -N HPSMakeSVTCellID.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ HPSMakeSVTCellID.java 28 Mar 2012 16:02:48 -0000 1.1 @@ -0,0 +1,63 @@
+/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.lcsim.hps.recon.tracking; + +import org.lcsim.HPSDetectorTag; +import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps; +import org.lcsim.geometry.Detector; +import org.lcsim.hps.util.Pair; +import org.lcsim.detector.tracker.silicon.SiSensor; +import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper; +import org.lcsim.detector.identifier.IIdentifier; + +/** + * + * @author neal + */ +public class HPSMakeSVTCellID { + + public long HPSMakeSVTCellID(int hybrid, int fpgaAddress, int apv, int channel) { +// Information from Jeremy about how the CellID is coded +// Here's the ID scheme for the SVT in that detector... +// <readout name="TrackerHits"> +// <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:12</id> +// </readout> +// interpretation: +// 0-5 System, 6-8 barrel, 9-12 layer, 13-24 module, 25 sensor +// 32-33 signed side, 34-45 strip + +// Detector detector; +// IDetectorElement detectorElement = detector.getDetectorElement().findDetectorElement("Tracker"); + Pair daqPair = new Pair(hybrid, fpgaAddress); + SiSensor sensor = HPSSVTDAQMaps.daqPairToSensor.get(daqPair); + IIdentifier sensorIdent = sensor.getIdentifier(); + SiTrackerIdentifierHelper sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper(); + + int layer = 0; + int module = sensorHelper.getModuleValue(sensorIdent); + if (module == 0) { //Layers 1-10 (Top SVT Volume) + layer = sensorHelper.getLayerValue(sensorIdent); + } //Layers 11-20 (Bottom SVT Volume) + else { + layer = sensorHelper.getLayerValue(sensorIdent) + 10; + } + + int sensornum = sensorHelper.getSensorValue(sensorIdent); + + int system = 0; + + int barrel = 0; + + int side = sensor.getSensorID(); // according to Omar + + int strip = channel; + + long CellID_ = system + (barrel << 6) + (layer << 9) + (module << 13) + (sensornum << 25) + + (side << 32) + (strip << 34); + + return (CellID_); + } +} +
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1