1
2
3
4
5
6
7
8
9
10 package org.lcsim.recon.tracking.digitization.sisim;
11
12 import hep.physics.matrix.SymmetricMatrix;
13 import hep.physics.vec.Hep3Vector;
14 import java.util.List;
15 import org.lcsim.detector.ITransform3D;
16 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
17 import org.lcsim.detector.tracker.silicon.SiSensor;
18 import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
19 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
20 import org.lcsim.event.RawTrackerHit;
21 import org.lcsim.event.TrackerHit;
22
23
24
25
26
27 public class SiTrackerHit extends TransformableTrackerHit
28 {
29
30
31 private SiSensorElectrodes _electrodes;
32
33
34 public SiTrackerHit(Hep3Vector position_vector, SymmetricMatrix covariance_matrix, double energy, double time, List<RawTrackerHit> raw_hits, TrackerHitType decoded_type)
35 {
36 super(position_vector, covariance_matrix, energy, time, raw_hits, decoded_type);
37 }
38
39 public SiTrackerHit(TrackerHit hit)
40 {
41 super(hit);
42 }
43
44 public SiTrackerHit(TrackerHit hit, TrackerHitType.CoordinateSystem coordinate_system)
45 {
46 super(hit,coordinate_system);
47 }
48
49 public SiTrackerHit getTransformedHit(TrackerHitType.CoordinateSystem coordinate_system)
50 {
51 return new SiTrackerHit(super.getTransformedHit(coordinate_system));
52 }
53
54 public SiTrackerHit getTransformedHit(ITransform3D global_to_local)
55 {
56 return new SiTrackerHit(super.getTransformedHit(global_to_local));
57 }
58
59
60 public SiSensor getSensor()
61 {
62 return (SiSensor)super.getSensor();
63 }
64
65 public SiSensorElectrodes getReadoutElectrodes()
66 {
67 if (_electrodes == null)
68 {
69 RawTrackerHit raw_hit = this.getRawHits().get(0);
70 SiTrackerIdentifierHelper id_helper = getIdentifierHelper();
71 _electrodes = getSensor().getReadoutElectrodes(ChargeCarrier.getCarrier(id_helper.getSideValue(raw_hit.getIdentifier())));
72 }
73 return _electrodes;
74 }
75
76 public SiTrackerIdentifierHelper getIdentifierHelper()
77 {
78 return (SiTrackerIdentifierHelper)super.getIdentifierHelper();
79 }
80
81 }