1
2
3
4
5
6
7
8
9
10 package org.lcsim.detector.tracker.silicon;
11
12 import org.lcsim.detector.IDetectorElement;
13 import org.lcsim.detector.ITransform3D;
14 import hep.physics.vec.Hep3Vector;
15 import java.util.SortedMap;
16 import java.util.Set;
17 import org.lcsim.detector.solids.Polygon3D;
18
19
20
21
22
23 public interface SiSensorElectrodes
24 {
25
26 public int getNAxes();
27
28
29 public IDetectorElement getDetectorElement();
30
31
32 public ITransform3D getParentToLocal();
33
34
35 public ITransform3D getLocalToGlobal();
36
37
38 public ITransform3D getGlobalToLocal();
39
40
41 public Polygon3D getGeometry();
42
43
44 public Hep3Vector getMeasuredCoordinate(int axis);
45
46
47 public Hep3Vector getUnmeasuredCoordinate(int axis);
48
49
50 public int getNeighborCell(int cell, int ncells_0, int ncells_1);
51
52
53 public Set<Integer> getNearestNeighborCells(int cell);
54
55
56 public boolean isValidCell(int cell);
57
58
59 public int getNCells();
60
61
62 public int getNCells(int axis);
63
64
65 public double getPitch(int axis);
66
67
68 public Hep3Vector getCellPosition(int cell_id);
69
70
71 public int getCellID(Hep3Vector position);
72
73
74 public int getColumnNumber(Hep3Vector position);
75
76
77 public int getRowNumber(Hep3Vector position);
78
79
80 public int getCellID(int row_number, int column_number);
81
82
83 public int getColumnNumber(int cell_id);
84
85
86 public int getRowNumber(int cell_id);
87
88
89 public Hep3Vector getPositionInCell(Hep3Vector position);
90
91
92 public ChargeCarrier getChargeCarrier();
93
94
95 public double getCapacitance(int cell_id);
96
97
98 public double getCapacitance();
99
100
101 public SortedMap<Integer,Integer> computeElectrodeData(ChargeDistribution distribution);
102
103 }