Author: [log in to unmask]
Date: Mon Mar 14 16:06:17 2016
New Revision: 4295
Log:
Commiting some minor changes for geometry files
Added:
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/StatFunUtils.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/CrystalTaitBryanAngleCalculator.java
java/branches/HPSJAVA-409/detector-model/src/test/resources/org/lcsim/geometry/subdetector/HPSEcal4Test.xml
Removed:
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/Cheating.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/CrystalEulerAngleCalculator.java
Modified:
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/DataLoader.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Crystal.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Geant4Position.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/ECalRotationCalculator.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/Transformations.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/geoutils/Vector.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSEcal4Converter.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4.java
java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/subdetector/HPSEcal4.java
java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/detector/converter/compact/HPSEcal4ConverterTest.java
java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4LCDDTest.java
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/DataLoader.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/DataLoader.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/DataLoader.java Mon Mar 14 16:06:17 2016
@@ -16,25 +16,13 @@
import java.util.ArrayList;
-
/**
* Class to read the data from a file
* @author SA
*/
+
public class DataLoader {
-
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-
-
-
-
-
private final ArrayList<String[]> dataset = new ArrayList<>();
private static final ArrayList<String> HEADER = new ArrayList<>();
Added: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/StatFunUtils.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/StatFunUtils.java (added)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/base/StatFunUtils.java Mon Mar 14 16:06:17 2016
@@ -0,0 +1,35 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+
+package org.hps.detector.ecal.geo2015.base;
+
+/**
+ * Some static functions, well, just one
+ * @author SA
+ */
+public class StatFunUtils {
+
+ /*****
+ * Function to doubles to rounds up the value
+ * to 'places' digits after the ","
+ * ******/
+ public static double round(double value, int places) {
+ if (places < 0 || places>16) {
+ throw new IllegalArgumentException();
+ }
+ long factor = (long) Math.pow(10, places);
+ //System.out.println(factor+" val = "+value);
+ value = value * factor;
+ // System.out.println("again "+value);
+ long tmp = Math.round(value);
+ //System.out.println("tmp = "+tmp);
+ // System.out.println((double) tmp / factor);
+ return (double) tmp / factor;
+ }
+
+
+}
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Crystal.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Crystal.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Crystal.java Mon Mar 14 16:06:17 2016
@@ -34,6 +34,6 @@
}
public void setG4Position(Geant4Position ipos){
this.pos = ipos;
- }
+ }
}
Added: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/CrystalTaitBryanAngleCalculator.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/CrystalTaitBryanAngleCalculator.java (added)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/CrystalTaitBryanAngleCalculator.java Mon Mar 14 16:06:17 2016
@@ -0,0 +1,75 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.hps.detector.ecal.geo2015.crystal;
+
+import org.hps.detector.ecal.geo2015.geoutils.Vector;
+
+/**
+ * Calculates Euler(actually tait-bryan) angles for a rotation, that transfers the crystal from it's
+ * initial state-parallel to Z axis To final state-defined by 2 points in front
+ * and back faces.
+ *
+ * @author SA
+ */
+public class CrystalTaitBryanAngleCalculator {
+
+ private double phi=0;
+ private double theta=0;
+ private final double psi = 0;
+
+ private static final Vector ini = new Vector(0, 0, 1);
+
+ private Vector fin;
+
+ private double cosTheta = 0;
+ private double sinTheta = 0;
+ private double cosPhi = 0;
+ private double sinPhi = 0;
+
+ public CrystalTaitBryanAngleCalculator(Vector vec_fin) {
+
+ fin = vec_fin;
+ if (vec_fin.isUnitary() == false) {
+ fin = vec_fin.getUnitVector();
+ }
+
+ this.phi = this.CalcPhi();
+ this.theta = this.CalcTheta();
+ }
+
+
+ private double CalcPhi(){
+
+ sinPhi = -fin.y ;
+ cosPhi = Math.sqrt(1-this.sinPhi*this.sinPhi);
+
+ return Math.asin(this.sinPhi);
+ }
+
+ private double CalcTheta(){
+
+ if(this.cosPhi==0)
+ this.sinTheta=Double.NaN;
+ else
+ this.sinTheta = fin.x/this.cosPhi;
+
+ return Math.asin(this.sinTheta);
+ }
+
+
+ public double getTheta() {
+ return this.theta;
+ }
+
+ public double getPhi() {
+ return this.phi;
+ }
+
+ public double getPsi() {
+ return this.psi;
+ }
+
+}
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Geant4Position.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Geant4Position.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/crystal/Geant4Position.java Mon Mar 14 16:06:17 2016
@@ -1,80 +1,75 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.hps.detector.ecal.geo2015.crystal;
-
-import org.hps.detector.ecal.geo2015.geoutils.Vector;
-
-/**
- * Calculates G4 position for a crystal, by it's front and back face coordinates
- * calculates the position for the center of the crystal
- * calculates the rotation of the crystal in convention of Tait-Bryan angles, {phi, theta, psi}
- * ***** dear user google it if confused :P
- *
- * @author SA
- */
-public class Geant4Position {
-
- private Vector centerPoint;
- private Vector crysvec;
- private double[] taitbriangles; //{ phi,theta,psi=0};
- private double[] center_arr;
-
- public Geant4Position(Vector point1, Vector point2) {
-
- if(point1==null || point2==null)
- System.err.println("The arguments can't be 0.");
-
- centerPoint = point2.Add(point1).Multiply(0.5);
- center_arr = new double[3];
- center_arr[0] = centerPoint.x;
- center_arr[1] = centerPoint.y;
- center_arr[2] = centerPoint.z;
- crysvec = (point2.Substract(centerPoint)).getUnitVector();
- System.out.println("*************** center unit vector **********");
- crysvec.Print();
- System.out.println("*********************************************");
-
- taitbriangles = new double[3];
- this.TaitBryanAnglesforCrys();
-
- }
-
- public Vector getCenter() {
- return this.centerPoint;
- }
-
- public double[] getCenterArr() {
- double [] center_arr = {centerPoint.x,centerPoint.y,centerPoint.z};
- return center_arr;
- }
- public double[] getTaitBryanAngles() {
- return this.taitbriangles;
- }
-
- private void TaitBryanAnglesforCrys() {
- CrystalEulerAngleCalculator crysEuler = new CrystalEulerAngleCalculator(crysvec);
- /*
- * please vec should go from the center, even though it's not changing much
- */
-
- if (crysEuler.getPhi() == Double.NaN) {
- System.out.print("chert: Phi is undefined\n");
- this.taitbriangles[0] = -111111;
- }
- else {
- this.taitbriangles[0] = crysEuler.getPhi();
- }
- this.taitbriangles[1] = crysEuler.getTheta();
- this.taitbriangles[2] = crysEuler.getPsi();
- }
-
- public void Print() {
- System.out.println("Crys Center coordinates:\t");
- this.centerPoint.Print();
- System.out.println("euler phi = " + Math.toDegrees(this.taitbriangles[0]) + "\t theta = " + Math.toDegrees(this.taitbriangles[1]) + "\t psi = " + Math.toDegrees(this.taitbriangles[2]) + "\n");
- }
-
-}
+package org.hps.detector.ecal.geo2015.crystal;
+
+import org.hps.detector.ecal.geo2015.geoutils.Vector;
+
+/**
+ * Calculates G4 position for a crystal, by it's front and back face coordinates
+ * calculates the position for the center of the crystal
+ * calculates the rotation of the crystal in convention of Tait-Bryan angles, {phi, theta, psi}
+ * ***** dear reader google it if confused :P
+ *
+ * @author SA
+ */
+public class Geant4Position {
+
+ private Vector centerPoint;
+ private Vector crysvec;
+ private double[] taitbriangles; //{ phi,theta,psi=0};
+ private double[] center_arr;
+
+ public Geant4Position(Vector point1, Vector point2) {
+
+ if(point1==null || point2==null)
+ System.err.println("The arguments can't be 0.");
+
+ centerPoint = point2.Add(point1).Multiply(0.5);
+ center_arr = new double[3];
+ center_arr[0] = centerPoint.x;
+ center_arr[1] = centerPoint.y;
+ center_arr[2] = centerPoint.z;
+ crysvec = (point2.Substract(centerPoint)).getUnitVector();
+ System.out.println("*************** center unit vector **********");
+ crysvec.Print();
+ System.out.println("*********************************************");
+
+ taitbriangles = new double[3];
+ this.TaitBryanAnglesforCrys();
+
+ }
+
+ public Vector getCenter() {
+ return this.centerPoint;
+ }
+
+ public double[] getCenterArr() {
+ double [] center_arr = {centerPoint.x,centerPoint.y,centerPoint.z};
+ return center_arr;
+ }
+ public double[] getTaitBryanAngles() {
+ return this.taitbriangles;
+ }
+
+ private void TaitBryanAnglesforCrys() {
+ CrystalTaitBryanAngleCalculator crysTBang = new CrystalTaitBryanAngleCalculator(crysvec);
+ /*
+ * please vec should go from the center, even though it's not changing much
+ */
+
+ if (crysTBang.getPhi() == Double.NaN) {
+ System.out.print("chert: Phi is undefined\n");
+ this.taitbriangles[0] = -111111;
+ }
+ else {
+ this.taitbriangles[0] = -crysTBang.getPhi();
+ }
+ this.taitbriangles[1] = -crysTBang.getTheta();
+ this.taitbriangles[2] = -crysTBang.getPsi();
+ }
+
+ public void Print() {
+ System.out.println("Crys Center coordinates:\t");
+ this.centerPoint.Print();
+ System.out.println("Tait Brian angles phi = " + Math.toDegrees(this.taitbriangles[0]) + "\t theta = " + Math.toDegrees(this.taitbriangles[1]) + "\t psi = " + Math.toDegrees(this.taitbriangles[2]) + "\n");
+ }
+
+}
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt Mon Mar 14 16:06:17 2016
@@ -1,445 +1,445 @@
-#This list is in the same coordinate system as the nominal geometry implemented in the code with the origin at the target.
-#crystals centers front face true position(mm)/Crystals centers rare face true position(mm)
-#N layer column X Y Z X Y Z
-1 5 23 353.43 82.17 1384.51 414.16 93.50 1532.10
-2 5 22 338.92 82.16 1384.39 397.08 93.55 1533.01
-3 5 21 324.51 82.15 1384.28 380.08 93.61 1533.88
-4 5 20 310.20 82.14 1384.17 363.17 93.66 1534.71
-5 5 19 295.98 82.13 1384.06 346.32 93.71 1535.50
-6 5 18 281.84 82.12 1383.95 329.54 93.75 1536.23
-7 5 17 267.78 82.11 1383.84 312.83 93.80 1536.92
-8 5 16 253.79 82.10 1383.73 296.18 93.84 1537.57
-9 5 15 239.87 82.09 1383.62 279.58 93.87 1538.17
-10 5 14 226.01 82.08 1383.51 263.03 93.90 1538.72
-11 5 13 212.21 82.07 1383.40 246.53 93.93 1539.22
-12 5 12 198.46 82.06 1383.28 230.07 93.96 1539.68
-13 5 11 184.77 82.05 1383.17 213.66 93.98 1540.09
-14 5 10 171.12 82.04 1383.05 197.28 94.00 1540.45
-15 5 9 157.51 82.03 1382.94 180.93 94.02 1540.76
-16 5 8 143.94 82.03 1382.83 164.62 94.04 1541.03
-17 5 7 130.39 82.02 1382.71 148.33 94.05 1541.25
-18 5 6 116.88 82.01 1382.60 132.06 94.06 1541.42
-19 5 5 103.39 82.00 1382.48 115.81 94.06 1541.54
-20 5 4 89.93 81.99 1382.36 99.58 94.06 1541.62
-21 5 3 76.48 81.98 1382.25 83.36 94.06 1541.64
-22 5 2 63.04 81.97 1382.13 67.16 94.06 1541.62
-23 5 1 49.60 81.95 1381.90 50.95 94.04 1541.43
-24 5 -1 36.17 81.96 1382.02 34.82 94.05 1541.56
-25 5 -2 22.73 81.97 1382.13 18.62 94.06 1541.62
-26 5 -3 9.29 81.98 1382.25 2.42 94.06 1541.64
-27 5 -4 -4.17 81.99 1382.36 -13.79 94.07 1541.62
-28 5 -5 -17.64 82.00 1382.48 -30.01 94.07 1541.54
-29 5 -6 -31.13 82.01 1382.59 -46.25 94.07 1541.42
-30 5 -7 -44.65 82.02 1382.71 -62.51 94.06 1541.25
-31 5 -8 -58.19 82.03 1382.82 -78.79 94.04 1541.03
-32 5 -9 -71.77 82.04 1382.94 -95.10 94.03 1540.77
-33 5 -10 -85.38 82.05 1383.05 -111.44 94.01 1540.46
-34 5 -11 -99.03 82.06 1383.16 -127.81 94.00 1540.10
-35 5 -12 -112.73 82.07 1383.28 -144.22 93.97 1539.70
-36 5 -13 -126.48 82.08 1383.39 -160.67 93.95 1539.24
-37 5 -14 -140.28 82.09 1383.50 -177.16 93.92 1538.74
-38 5 -15 -154.14 82.10 1383.61 -193.69 93.89 1538.20
-39 5 -16 -168.06 82.11 1383.72 -210.28 93.85 1537.61
-40 5 -17 -182.05 82.12 1383.84 -226.93 93.81 1536.97
-41 5 -18 -196.11 82.13 1383.95 -243.63 93.77 1536.28
-42 5 -19 -210.25 82.14 1384.06 -260.40 93.72 1535.55
-43 5 -20 -224.48 82.15 1384.16 -277.23 93.67 1534.78
-44 5 -21 -238.79 82.15 1384.27 -294.14 93.62 1533.96
-45 5 -22 -253.15 82.14 1384.35 -311.08 93.54 1533.06
-46 5 -23 -267.67 82.17 1384.49 -328.16 93.50 1532.18
-47 4 23 353.42 68.28 1384.40 414.16 77.12 1532.16
-48 4 22 338.92 68.28 1384.28 397.08 77.16 1533.07
-49 4 21 324.51 68.27 1384.17 380.08 77.20 1533.95
-50 4 20 310.20 68.26 1384.06 363.16 77.24 1534.78
-51 4 19 295.98 68.25 1383.95 346.32 77.28 1535.56
-52 4 18 281.84 68.25 1383.84 329.54 77.31 1536.30
-53 4 17 267.77 68.24 1383.73 312.83 77.34 1536.99
-54 4 16 253.78 68.23 1383.62 296.17 77.37 1537.63
-55 4 15 239.86 68.22 1383.51 279.57 77.39 1538.23
-56 4 14 226.01 68.22 1383.40 263.03 77.42 1538.78
-57 4 13 212.21 68.21 1383.28 246.53 77.44 1539.29
-58 4 12 198.46 68.20 1383.17 230.07 77.46 1539.74
-59 4 11 184.77 68.19 1383.06 213.66 77.47 1540.15
-60 4 10 171.12 68.18 1382.94 197.28 77.49 1540.51
-61 4 9 157.51 68.18 1382.83 180.93 77.50 1540.83
-62 4 8 143.94 68.17 1382.71 164.62 77.51 1541.10
-63 4 7 130.39 68.17 1382.60 148.33 77.52 1541.31
-64 4 6 116.88 68.16 1382.48 132.06 77.53 1541.48
-65 4 5 103.39 68.15 1382.37 115.81 77.53 1541.61
-66 4 4 89.92 68.14 1382.25 99.58 77.53 1541.68
-67 4 3 76.47 68.13 1382.14 83.36 77.53 1541.71
-68 4 2 63.03 68.13 1382.02 67.15 77.52 1541.69
-69 4 1 49.60 68.11 1381.78 50.95 77.51 1541.50
-70 4 -1 36.17 68.12 1381.91 34.82 77.51 1541.63
-71 4 -2 22.73 68.13 1382.02 18.62 77.52 1541.69
-72 4 -3 9.29 68.13 1382.13 2.42 77.53 1541.71
-73 4 -4 -4.17 68.14 1382.25 -13.79 77.53 1541.68
-74 4 -5 -17.64 68.15 1382.36 -30.01 77.53 1541.61
-75 4 -6 -31.13 68.16 1382.48 -46.25 77.54 1541.49
-76 4 -7 -44.65 68.17 1382.59 -62.51 77.53 1541.32
-77 4 -8 -58.19 68.18 1382.71 -78.80 77.52 1541.10
-78 4 -9 -71.77 68.19 1382.82 -95.10 77.51 1540.84
-79 4 -10 -85.38 68.19 1382.94 -111.44 77.50 1540.53
-80 4 -11 -99.03 68.20 1383.05 -127.81 77.49 1540.17
-81 4 -12 -112.73 68.21 1383.16 -144.22 77.47 1539.76
-82 4 -13 -126.48 68.22 1383.28 -160.67 77.45 1539.31
-83 4 -14 -140.28 68.23 1383.39 -177.16 77.43 1538.81
-84 4 -15 -154.14 68.24 1383.50 -193.70 77.41 1538.26
-85 4 -16 -168.06 68.24 1383.61 -210.29 77.38 1537.67
-86 4 -17 -182.05 68.25 1383.72 -226.93 77.36 1537.03
-87 4 -18 -196.12 68.26 1383.83 -243.63 77.33 1536.35
-88 4 -19 -210.26 68.26 1383.94 -260.40 77.29 1535.62
-89 4 -20 -224.48 68.27 1384.05 -277.23 77.25 1534.84
-90 4 -21 -238.79 68.27 1384.16 -294.14 77.21 1534.02
-91 4 -22 -253.16 68.26 1384.24 -311.09 77.15 1533.12
-92 4 -23 -267.67 68.28 1384.38 -328.16 77.13 1532.24
-93 3 23 353.42 54.42 1384.28 414.15 60.76 1532.17
-94 3 22 338.92 54.41 1384.17 397.07 60.79 1533.09
-95 3 21 324.51 54.41 1384.06 380.08 60.81 1533.96
-96 3 20 310.20 54.40 1383.95 363.16 60.84 1534.79
-97 3 19 295.98 54.39 1383.84 346.32 60.86 1535.58
-98 3 18 281.84 54.39 1383.73 329.54 60.88 1536.32
-99 3 17 267.77 54.38 1383.62 312.83 60.90 1537.01
-100 3 16 253.78 54.38 1383.51 296.17 60.91 1537.65
-101 3 15 239.86 54.37 1383.40 279.57 60.93 1538.25
-102 3 14 226.00 54.37 1383.28 263.03 60.94 1538.80
-103 3 13 212.21 54.36 1383.17 246.53 60.96 1539.31
-104 3 12 198.46 54.35 1383.06 230.07 60.97 1539.76
-105 3 11 184.76 54.35 1382.94 213.66 60.98 1540.17
-106 3 10 171.11 54.34 1382.83 197.28 60.98 1540.54
-107 3 9 157.51 54.34 1382.71 180.93 61.00 1540.85
-108 3 8 143.93 54.33 1382.60 164.62 61.00 1541.12
-109 3 7 130.39 54.33 1382.48 148.33 61.01 1541.34
-110 3 6 116.88 54.32 1382.37 132.06 61.01 1541.51
-111 3 5 103.39 54.32 1382.25 115.81 61.01 1541.63
-112 3 4 89.92 54.31 1382.14 99.58 61.01 1541.71
-113 3 3 76.47 54.30 1382.02 83.36 61.00 1541.73
-114 3 2 63.03 54.30 1381.91 67.15 61.00 1541.71
-115 3 1 49.60 54.29 1381.67 50.95 60.99 1541.52
-116 3 -1 36.17 54.29 1381.79 34.81 60.99 1541.65
-117 3 -2 22.73 54.30 1381.91 18.62 61.00 1541.71
-118 3 -3 9.29 54.31 1382.02 2.42 61.00 1541.73
-119 3 -4 -4.17 54.31 1382.14 -13.79 61.01 1541.71
-120 3 -5 -17.64 54.32 1382.25 -30.01 61.01 1541.63
-121 3 -6 -31.13 54.33 1382.37 -46.25 61.02 1541.51
-122 3 -7 -44.65 54.33 1382.48 -62.51 61.01 1541.34
-123 3 -8 -58.19 54.34 1382.60 -78.80 61.01 1541.12
-124 3 -9 -71.77 54.35 1382.71 -95.11 61.00 1540.86
-125 3 -10 -85.38 54.35 1382.82 -111.44 61.00 1540.55
-126 3 -11 -99.04 54.36 1382.94 -127.81 60.99 1540.19
-127 3 -12 -112.73 54.36 1383.05 -144.22 60.98 1539.78
-128 3 -13 -126.48 54.37 1383.16 -160.67 60.97 1539.33
-129 3 -14 -140.28 54.38 1383.28 -177.16 60.96 1538.83
-130 3 -15 -154.14 54.38 1383.39 -193.70 60.95 1538.28
-131 3 -16 -168.07 54.39 1383.50 -210.29 60.93 1537.69
-132 3 -17 -182.06 54.39 1383.61 -226.93 60.91 1537.05
-133 3 -18 -196.12 54.40 1383.72 -243.63 60.89 1536.37
-134 3 -19 -210.26 54.40 1383.83 -260.40 60.87 1535.63
-135 3 -20 -224.48 54.41 1383.94 -277.23 60.85 1534.86
-136 3 -21 -238.79 54.41 1384.05 -294.14 60.82 1534.03
-137 3 -22 -253.16 54.39 1384.12 -311.09 60.77 1533.13
-138 3 -23 -267.67 54.42 1384.27 -328.16 60.76 1532.25
-139 2 23 353.42 40.56 1384.17 414.15 44.41 1532.15
-140 2 22 338.92 40.56 1384.06 397.07 44.42 1533.06
-141 2 21 324.51 40.55 1383.95 380.08 44.43 1533.94
-142 2 20 310.20 40.55 1383.84 363.16 44.44 1534.77
-143 2 19 295.98 40.55 1383.73 346.32 44.45 1535.55
-144 2 18 281.83 40.54 1383.62 329.54 44.46 1536.29
-145 2 17 267.77 40.54 1383.51 312.83 44.46 1536.98
-146 2 16 253.78 40.54 1383.40 296.17 44.47 1537.63
-147 2 15 239.86 40.53 1383.28 279.57 44.48 1538.23
-148 2 14 226.00 40.53 1383.17 263.03 44.48 1538.78
-149 2 13 212.20 40.52 1383.06 246.53 44.48 1539.28
-150 2 12 198.46 40.52 1382.94 230.07 44.49 1539.74
-151 2 11 184.76 40.52 1382.83 213.66 44.49 1540.15
-152 2 10 171.11 40.51 1382.72 197.28 44.49 1540.51
-153 2 9 157.51 40.51 1382.60 180.93 44.50 1540.83
-154 2 8 143.93 40.51 1382.49 164.61 44.50 1541.09
-155 2 7 130.39 40.50 1382.37 148.33 44.50 1541.31
-156 2 6 116.88 40.50 1382.26 132.06 44.50 1541.48
-157 2 5 103.39 40.50 1382.14 115.81 44.50 1541.61
-158 2 4 89.92 40.49 1382.02 99.58 44.49 1541.68
-159 2 3 76.47 40.49 1381.91 83.36 44.49 1541.71
-160 2 2 63.03 40.48 1381.79 67.15 44.48 1541.69
-161 2 1 49.60 40.48 1381.56 50.95 44.48 1541.50
-162 2 -1 36.17 40.48 1381.68 34.81 44.48 1541.62
-163 2 -2 22.73 40.48 1381.79 18.62 44.49 1541.69
-164 2 -3 9.29 40.49 1381.91 2.42 44.49 1541.71
-165 2 -4 -4.17 40.49 1382.02 -13.79 44.50 1541.68
-166 2 -5 -17.64 40.50 1382.14 -30.02 44.50 1541.61
-167 2 -6 -31.13 40.50 1382.25 -46.26 44.51 1541.49
-168 2 -7 -44.65 40.51 1382.37 -62.51 44.51 1541.32
-169 2 -8 -58.19 40.51 1382.48 -78.80 44.50 1541.10
-170 2 -9 -71.77 40.52 1382.60 -95.11 44.51 1540.84
-171 2 -10 -85.38 40.52 1382.71 -111.44 44.50 1540.52
-172 2 -11 -99.04 40.53 1382.83 -127.81 44.50 1540.17
-173 2 -12 -112.73 40.53 1382.94 -144.22 44.50 1539.76
-174 2 -13 -126.48 40.53 1383.05 -160.67 44.50 1539.31
-175 2 -14 -140.28 40.54 1383.16 -177.16 44.50 1538.81
-176 2 -15 -154.14 40.54 1383.28 -193.70 44.49 1538.26
-177 2 -16 -168.07 40.55 1383.39 -210.29 44.49 1537.67
-178 2 -17 -182.06 40.55 1383.50 -226.93 44.48 1537.03
-179 2 -18 -196.12 40.55 1383.61 -243.63 44.47 1536.34
-180 2 -19 -210.26 40.56 1383.72 -260.40 44.46 1535.61
-181 2 -20 -224.48 40.56 1383.83 -277.23 44.45 1534.83
-182 2 -21 -238.79 40.56 1383.94 -294.14 44.44 1534.01
-183 2 -22 -253.16 40.54 1384.01 -311.09 44.41 1533.11
-184 2 -23 -267.67 54.42 1384.27 -328.17 44.41 1532.23
-185 1 23 353.42 26.71 1384.06 414.15 28.06 1532.08
-186 1 22 338.92 26.71 1383.94 397.07 28.06 1532.99
-187 1 21 324.51 26.71 1383.84 380.08 28.06 1533.87
-188 1 20 310.20 26.71 1383.73 363.16 28.05 1534.70
-189 1 19 295.98 26.71 1383.62 346.32 28.05 1535.48
-190 1 18 281.83 26.70 1383.51 329.54 28.04 1536.22
-191 1 17 267.77 26.70 1383.39 312.83 28.04 1536.91
-192 1 16 253.78 26.70 1383.28 296.17 28.03 1537.56
-193 1 15 239.86 26.70 1383.17 279.57 28.03 1538.16
-194 1 14 226.00 26.70 1383.06 263.03 28.02 1538.71
-195 1 13 212.20 26.69 1382.95 246.53 28.02 1539.22
-196 1 12 198.46 26.69 1382.83 230.07 28.02 1539.67
-197 1 11 184.76 26.69 1382.72 213.66 28.01 1540.08
-198 1 10 171.11 26.69 1382.60 197.28 28.01 1540.44
-199 1 9 157.51 26.69 1382.49 180.93 28.01 1540.76
-200 1 8 143.93 26.69 1382.37 164.61 28.00 1541.03
-201 1 7 130.39 26.69 1382.26 148.32 28.00 1541.24
-202 1 6 116.88 26.68 1382.14 132.06 28.00 1541.42
-203 1 5 103.39 26.68 1382.03 115.81 27.99 1541.54
-204 1 4 89.92 26.68 1381.91 99.58 27.99 1541.61
-205 1 3 76.47 26.68 1381.79 83.36 27.98 1541.64
-206 1 2 63.03 26.68 1381.68 67.15 27.98 1541.62
-207 1 1 49.60 26.67 1381.44 50.95 27.97 1541.43
-208 1 -1 36.17 26.67 1381.57 34.81 27.97 1541.55
-209 1 -11 -99.06 26.70 1382.74 -127.86 28.02 1540.12
-210 1 -12 -112.76 26.70 1382.85 -144.27 28.03 1539.71
-211 1 -13 -126.51 26.71 1382.96 -160.72 28.03 1539.25
-212 1 -14 -140.31 26.71 1383.07 -177.21 28.04 1538.75
-213 1 -15 -154.17 26.71 1383.18 -193.74 28.04 1538.20
-214 1 -16 -168.09 26.71 1383.29 -210.33 28.05 1537.61
-215 1 -17 -182.08 26.71 1383.40 -226.98 28.05 1536.97
-216 1 -18 -196.14 26.72 1383.51 -243.68 28.06 1536.28
-217 1 -19 -210.28 26.72 1383.62 -260.45 28.06 1535.54
-218 1 -20 -224.50 26.72 1383.72 -277.28 28.06 1534.76
-219 1 -21 -238.81 26.72 1383.83 -294.19 28.06 1533.94
-220 1 -22 -253.17 26.70 1383.87 -311.12 28.05 1533.00
-221 1 -23 -267.70 26.71 1384.04 -328.21 28.06 1532.15
-222 -1 23 353.42 -26.76 1384.07 414.15 -27.90 1532.09
-223 -1 22 338.91 -26.76 1383.95 397.07 -27.92 1533.00
-224 -1 21 324.51 -26.76 1383.84 380.08 -27.94 1533.88
-225 -1 20 310.20 -26.76 1383.73 363.16 -27.96 1534.71
-226 -1 19 295.97 -26.76 1383.62 346.31 -27.98 1535.49
-227 -1 18 281.83 -26.76 1383.51 329.54 -28.00 1536.23
-228 -1 17 267.77 -26.76 1383.40 312.82 -28.01 1536.92
-229 -1 16 253.78 -26.76 1383.29 296.17 -28.03 1537.57
-230 -1 15 239.86 -26.76 1383.18 279.57 -28.04 1538.17
-231 -1 14 226.00 -26.76 1383.07 263.02 -28.06 1538.72
-232 -1 13 212.20 -26.76 1382.95 246.52 -28.07 1539.22
-233 -1 12 198.46 -26.76 1382.84 230.07 -28.08 1539.68
-234 -1 11 184.76 -26.76 1382.73 213.65 -28.09 1540.09
-235 -1 10 171.11 -26.76 1382.61 197.27 -28.10 1540.45
-236 -1 9 157.50 -26.76 1382.50 180.93 -28.11 1540.77
-237 -1 8 143.93 -26.76 1382.38 164.61 -28.12 1541.03
-238 -1 7 130.39 -26.75 1382.27 148.32 -28.12 1541.25
-239 -1 6 116.87 -26.75 1382.15 132.06 -28.12 1541.42
-240 -1 5 103.39 -26.75 1382.03 115.80 -28.14 1541.55
-241 -1 4 89.92 -26.75 1381.92 99.57 -28.14 1541.62
-242 -1 3 76.47 -26.75 1381.80 83.36 -28.15 1541.65
-243 -1 2 63.03 -26.75 1381.69 67.15 -28.15 1541.63
-244 -1 1 49.60 -26.75 1381.45 50.95 -28.15 1541.44
-245 -1 -1 36.16 -26.75 1381.57 34.81 -28.15 1541.56
-246 -1 -11 -99.06 -26.75 1382.74 -127.86 -28.08 1540.12
-247 -1 -12 -112.76 -26.75 1382.85 -144.27 -28.07 1539.71
-248 -1 -13 -126.51 -26.75 1382.96 -160.72 -28.06 1539.26
-249 -1 -14 -140.31 -26.75 1383.07 -177.21 -28.04 1538.75
-250 -1 -15 -154.17 -26.74 1383.18 -193.75 -28.03 1538.21
-251 -1 -16 -168.09 -26.74 1383.29 -210.34 -28.01 1537.61
-252 -1 -17 -182.08 -26.74 1383.40 -226.98 -28.00 1536.97
-253 -1 -18 -196.15 -26.75 1383.51 -243.68 -27.98 1536.28
-254 -1 -19 -210.29 -26.75 1383.62 -260.45 -27.97 1535.55
-255 -1 -20 -224.51 -26.75 1383.73 -277.28 -27.95 1534.77
-256 -1 -21 -238.82 -26.75 1383.83 -294.19 -27.94 1533.94
-257 -1 -22 -253.17 -26.77 1383.87 -311.13 -27.94 1533.01
-258 -1 -23 -267.70 -26.76 1384.04 -328.21 -27.90 1532.15
-259 -2 23 353.42 -40.60 1384.18 414.15 -44.25 1532.16
-260 -2 22 338.91 -40.60 1384.06 397.07 -44.28 1533.07
-261 -2 21 324.51 -40.60 1383.95 380.08 -44.32 1533.95
-262 -2 20 310.20 -40.60 1383.84 363.16 -44.35 1534.78
-263 -2 19 295.97 -40.60 1383.73 346.31 -44.38 1535.56
-264 -2 18 281.83 -40.59 1383.62 329.54 -44.41 1536.30
-265 -2 17 267.77 -40.59 1383.51 312.82 -44.44 1536.99
-266 -2 16 253.78 -40.59 1383.40 296.17 -44.46 1537.64
-267 -2 15 239.86 -40.59 1383.29 279.57 -44.49 1538.23
-268 -2 14 226.00 -40.59 1383.18 263.02 -44.51 1538.79
-269 -2 13 212.20 -40.59 1383.06 246.52 -44.53 1539.29
-270 -2 12 198.46 -40.58 1382.95 230.07 -44.55 1539.75
-271 -2 11 184.76 -40.58 1382.84 213.65 -44.57 1540.16
-272 -2 10 171.11 -40.58 1382.72 197.27 -44.59 1540.52
-273 -2 9 157.50 -40.58 1382.61 180.93 -44.60 1540.83
-274 -2 8 143.93 -40.57 1382.49 164.61 -44.61 1541.10
-275 -2 7 130.39 -40.57 1382.38 148.32 -44.62 1541.32
-276 -2 6 116.87 -40.57 1382.26 132.06 -44.63 1541.49
-277 -2 5 103.39 -40.57 1382.15 115.80 -44.64 1541.61
-278 -2 4 89.92 -40.56 1382.03 99.57 -44.65 1541.69
-279 -2 3 76.47 -40.56 1381.91 83.36 -44.65 1541.71
-280 -2 2 63.03 -40.56 1381.80 67.15 -44.66 1541.69
-281 -2 1 49.60 -40.56 1381.56 50.95 -44.65 1541.50
-282 -2 -1 36.16 -40.56 1381.68 34.81 -44.66 1541.63
-283 -2 -2 22.73 -40.56 1381.80 18.62 -44.66 1541.69
-284 -2 -3 9.28 -40.56 1381.91 2.42 -44.65 1541.71
-285 -2 -4 -4.17 -40.56 1382.03 -13.79 -44.64 1541.69
-286 -2 -5 -17.65 -40.56 1382.14 -30.02 -44.64 1541.61
-287 -2 -6 -31.14 -40.57 1382.26 -46.26 -44.62 1541.49
-288 -2 -7 -44.65 -40.57 1382.37 -62.52 -44.62 1541.32
-289 -2 -8 -58.20 -40.57 1382.49 -78.80 -44.61 1541.11
-290 -2 -9 -71.77 -40.57 1382.60 -95.11 -44.59 1540.84
-291 -2 -10 -85.39 -40.57 1382.72 -111.45 -44.58 1540.53
-292 -2 -11 -99.04 -40.57 1382.83 -127.82 -44.56 1540.17
-293 -2 -12 -112.74 -40.57 1382.95 -144.22 -44.54 1539.77
-294 -2 -13 -126.49 -40.57 1383.06 -160.67 -44.52 1539.31
-295 -2 -14 -140.29 -40.58 1383.17 -177.16 -44.50 1538.81
-296 -2 -15 -154.15 -40.58 1383.28 -193.70 -44.48 1538.27
-297 -2 -16 -168.07 -40.58 1383.40 -210.29 -44.45 1537.68
-298 -2 -17 -182.06 -40.58 1383.51 -226.93 -44.43 1537.04
-299 -2 -18 -196.12 -40.58 1383.62 -243.64 -44.40 1536.35
-300 -2 -19 -210.26 -40.59 1383.73 -260.40 -44.37 1535.62
-301 -2 -20 -224.48 -40.59 1383.84 -277.24 -44.34 1534.84
-302 -2 -21 -238.79 -40.59 1383.94 -294.14 -44.31 1534.02
-303 -2 -22 -253.16 -40.62 1384.02 -311.09 -44.30 1533.12
-304 -2 -23 -267.70 -26.76 1384.04 -328.17 -44.25 1532.24
-305 -3 23 353.42 -54.46 1384.29 414.15 -60.60 1532.19
-306 -3 22 338.91 -54.45 1384.17 397.07 -60.65 1533.10
-307 -3 21 324.51 -54.45 1384.07 380.08 -60.70 1533.98
-308 -3 20 310.20 -54.45 1383.96 363.16 -60.75 1534.80
-309 -3 19 295.97 -54.44 1383.85 346.31 -60.79 1535.59
-310 -3 18 281.83 -54.44 1383.74 329.54 -60.83 1536.33
-311 -3 17 267.77 -54.44 1383.63 312.82 -60.87 1537.02
-312 -3 16 253.78 -54.43 1383.51 296.17 -60.91 1537.66
-313 -3 15 239.86 -54.43 1383.40 279.57 -60.94 1538.26
-314 -3 14 226.00 -54.43 1383.29 263.02 -60.98 1538.81
-315 -3 13 212.20 -54.42 1383.18 246.52 -61.01 1539.31
-316 -3 12 198.46 -54.42 1383.06 230.07 -61.03 1539.77
-317 -3 11 184.76 -54.41 1382.95 213.65 -61.06 1540.18
-318 -3 10 171.11 -54.41 1382.83 197.27 -61.08 1540.54
-319 -3 9 157.50 -54.41 1382.72 180.93 -61.10 1540.85
-320 -3 8 143.93 -54.40 1382.60 164.61 -61.12 1541.12
-321 -3 7 130.39 -54.40 1382.49 148.32 -61.13 1541.34
-322 -3 6 116.87 -54.39 1382.37 132.06 -61.14 1541.51
-323 -3 5 103.39 -54.39 1382.26 115.80 -61.15 1541.63
-324 -3 4 89.92 -54.38 1382.14 99.57 -61.16 1541.71
-325 -3 3 76.47 -54.38 1382.03 83.36 -61.16 1541.73
-326 -3 2 63.03 -54.38 1381.91 67.15 -61.17 1541.71
-327 -3 1 49.60 -54.37 1381.67 50.95 -61.16 1541.52
-328 -3 -1 36.16 -54.37 1381.80 34.81 -61.17 1541.65
-329 -3 -2 22.73 -54.38 1381.91 18.62 -61.17 1541.71
-330 -3 -3 9.28 -54.38 1382.02 2.42 -61.16 1541.73
-331 -3 -4 -4.17 -54.38 1382.14 -13.79 -61.16 1541.71
-332 -3 -5 -17.65 -54.39 1382.26 -30.02 -61.15 1541.63
-333 -3 -6 -31.14 -54.39 1382.37 -46.26 -61.13 1541.51
-334 -3 -7 -44.65 -54.39 1382.49 -62.52 -61.12 1541.34
-335 -3 -8 -58.20 -54.40 1382.60 -78.80 -61.11 1541.13
-336 -3 -9 -71.77 -54.40 1382.72 -95.11 -61.09 1540.86
-337 -3 -10 -85.39 -54.40 1382.83 -111.45 -61.07 1540.55
-338 -3 -11 -99.04 -54.40 1382.94 -127.82 -61.05 1540.19
-339 -3 -12 -112.74 -54.41 1383.06 -144.22 -61.02 1539.79
-340 -3 -13 -126.49 -54.41 1383.17 -160.67 -60.99 1539.34
-341 -3 -14 -140.29 -54.41 1383.28 -177.16 -60.96 1538.84
-342 -3 -15 -154.15 -54.42 1383.40 -193.70 -60.93 1538.29
-343 -3 -16 -168.07 -54.42 1383.51 -210.29 -60.90 1537.70
-344 -3 -17 -182.06 -54.42 1383.62 -226.93 -60.86 1537.06
-345 -3 -18 -196.12 -54.43 1383.73 -243.64 -60.82 1536.38
-346 -3 -19 -210.26 -54.43 1383.84 -260.40 -60.78 1535.65
-347 -3 -20 -224.48 -54.44 1383.95 -277.24 -60.74 1534.87
-348 -3 -21 -238.79 -54.44 1384.06 -294.14 -60.70 1534.05
-349 -3 -22 -253.16 -54.47 1384.13 -311.09 -60.67 1533.14
-350 -3 -23 -267.68 -54.46 1384.27 -328.17 -60.60 1532.27
-351 -4 23 353.42 -68.33 1384.40 414.15 -76.96 1532.17
-352 -4 22 338.91 -68.32 1384.28 397.07 -77.03 1533.09
-353 -4 21 324.51 -68.31 1384.18 380.08 -77.09 1533.96
-354 -4 20 310.20 -68.31 1384.07 363.16 -77.15 1534.79
-355 -4 19 295.97 -68.30 1383.96 346.31 -77.21 1535.57
-356 -4 18 281.83 -68.30 1383.85 329.54 -77.26 1536.31
-357 -4 17 267.77 -68.29 1383.74 312.82 -77.31 1537.00
-358 -4 16 253.78 -68.29 1383.62 296.17 -77.36 1537.64
-359 -4 15 239.86 -68.28 1383.51 279.57 -77.41 1538.24
-360 -4 14 226.00 -68.28 1383.40 263.02 -77.45 1538.79
-361 -4 13 212.20 -68.27 1383.29 246.52 -77.49 1539.29
-362 -4 12 198.46 -68.26 1383.17 230.07 -77.52 1539.75
-363 -4 11 184.76 -68.26 1383.06 213.65 -77.56 1540.15
-364 -4 10 171.11 -68.25 1382.95 197.27 -77.58 1540.52
-365 -4 9 157.50 -68.25 1382.83 180.93 -77.61 1540.83
-366 -4 8 143.93 -68.24 1382.72 164.61 -77.63 1541.10
-367 -4 7 130.39 -68.23 1382.60 148.32 -77.64 1541.31
-368 -4 6 116.87 -68.23 1382.49 132.06 -77.65 1541.48
-369 -4 5 103.39 -68.22 1382.37 115.80 -77.67 1541.61
-370 -4 4 89.92 -68.21 1382.25 99.57 -77.68 1541.68
-371 -4 3 76.47 -68.21 1382.14 83.36 -77.69 1541.71
-372 -4 2 63.03 -68.20 1382.02 67.15 -77.69 1541.69
-373 -4 1 49.60 -68.19 1381.79 50.95 -77.68 1541.50
-374 -4 -1 36.16 -68.20 1381.91 34.81 -77.69 1541.62
-375 -4 -2 22.73 -68.20 1382.02 18.62 -77.69 1541.69
-376 -4 -3 9.28 -68.21 1382.14 2.42 -77.69 1541.71
-377 -4 -4 -4.17 -68.21 1382.25 -13.79 -77.68 1541.68
-378 -4 -5 -17.65 -68.22 1382.37 -30.02 -77.67 1541.61
-379 -4 -6 -31.14 -68.22 1382.48 -46.26 -77.65 1541.49
-380 -4 -7 -44.65 -68.23 1382.60 -62.52 -77.64 1541.32
-381 -4 -8 -58.20 -68.23 1382.71 -78.80 -77.62 1541.10
-382 -4 -9 -71.77 -68.24 1382.83 -95.11 -77.60 1540.84
-383 -4 -10 -85.39 -68.24 1382.94 -111.45 -77.57 1540.53
-384 -4 -11 -99.04 -68.25 1383.06 -127.82 -77.54 1540.17
-385 -4 -12 -112.74 -68.25 1383.17 -144.22 -77.51 1539.77
-386 -4 -13 -126.49 -68.26 1383.28 -160.67 -77.48 1539.32
-387 -4 -14 -140.29 -68.26 1383.39 -177.16 -77.44 1538.82
-388 -4 -15 -154.15 -68.27 1383.51 -193.70 -77.40 1538.27
-389 -4 -16 -168.07 -68.27 1383.62 -210.29 -77.35 1537.68
-390 -4 -17 -182.06 -68.28 1383.73 -226.93 -77.30 1537.04
-391 -4 -18 -196.12 -68.29 1383.84 -243.64 -77.25 1536.36
-392 -4 -19 -210.26 -68.29 1383.95 -260.40 -77.20 1535.63
-393 -4 -20 -224.48 -68.30 1384.06 -277.24 -77.15 1534.85
-394 -4 -21 -238.79 -68.31 1384.17 -294.14 -77.09 1534.03
-395 -4 -22 -253.16 -68.33 1384.24 -311.09 -77.05 1533.13
-396 -4 -23 -267.68 -68.32 1384.38 -328.17 -76.97 1532.25
-397 -5 23 353.42 -82.21 1384.51 414.15 -93.34 1532.12
-398 -5 22 338.91 -82.20 1384.39 397.07 -93.42 1533.03
-399 -5 21 324.51 -82.19 1384.29 380.08 -93.50 1533.90
-400 -5 20 310.20 -82.19 1384.18 363.16 -93.57 1534.73
-401 -5 19 295.97 -82.18 1384.07 346.31 -93.64 1535.51
-402 -5 18 281.83 -82.17 1383.96 329.54 -93.71 1536.24
-403 -5 17 267.77 -82.16 1383.85 312.82 -93.77 1536.93
-404 -5 16 253.78 -82.16 1383.74 296.17 -93.83 1537.58
-405 -5 15 239.86 -82.15 1383.62 279.57 -93.88 1538.17
-406 -5 14 226.00 -82.14 1383.51 263.02 -93.94 1538.72
-407 -5 13 212.20 -82.13 1383.40 246.52 -93.98 1539.22
-408 -5 12 198.46 -82.13 1383.28 230.07 -94.03 1539.68
-409 -5 11 184.76 -82.12 1383.17 213.65 -94.06 1540.09
-410 -5 10 171.11 -82.11 1383.06 197.27 -94.10 1540.45
-411 -5 9 157.50 -82.10 1382.94 180.93 -94.13 1540.76
-412 -5 8 143.93 -82.09 1382.83 164.61 -94.15 1541.03
-413 -5 7 130.39 -82.08 1382.71 148.32 -94.17 1541.24
-414 -5 6 116.87 -82.08 1382.60 132.06 -94.19 1541.41
-415 -5 5 103.39 -82.07 1382.48 115.80 -94.21 1541.54
-416 -5 4 89.92 -82.06 1382.37 99.57 -94.22 1541.61
-417 -5 3 76.47 -82.05 1382.25 83.36 -94.22 1541.64
-418 -5 2 63.03 -82.05 1382.13 67.15 -94.23 1541.62
-419 -5 1 49.60 -82.03 1381.90 50.95 -94.21 1541.43
-420 -5 -1 36.16 -82.04 1382.02 34.81 -94.22 1541.55
-421 -5 -2 22.73 -82.05 1382.13 18.62 -94.23 1541.62
-422 -5 -3 9.28 -82.05 1382.25 2.42 -94.22 1541.64
-423 -5 -4 -4.17 -82.06 1382.36 -13.79 -94.21 1541.61
-424 -5 -5 -17.65 -82.07 1382.48 -30.02 -94.20 1541.54
-425 -5 -6 -31.14 -82.07 1382.60 -46.26 -94.18 1541.42
-426 -5 -7 -44.65 -82.08 1382.71 -62.52 -94.17 1541.25
-427 -5 -8 -58.20 -82.09 1382.82 -78.80 -94.15 1541.03
-428 -5 -9 -71.77 -82.09 1382.94 -95.11 -94.12 1540.77
-429 -5 -10 -85.39 -82.10 1383.05 -111.45 -94.09 1540.46
-430 -5 -11 -99.04 -82.11 1383.17 -127.82 -94.05 1540.10
-431 -5 -12 -112.74 -82.12 1383.28 -144.22 -94.01 1539.70
-432 -5 -13 -126.49 -82.12 1383.39 -160.67 -93.97 1539.25
-433 -5 -14 -140.29 -82.13 1383.51 -177.16 -93.92 1538.75
-434 -5 -15 -154.15 -82.14 1383.62 -193.70 -93.87 1538.21
-435 -5 -16 -168.07 -82.14 1383.73 -210.29 -93.82 1537.62
-436 -5 -17 -182.06 -82.15 1383.84 -226.93 -93.76 1536.98
-437 -5 -18 -196.12 -82.16 1383.95 -243.64 -93.70 1536.30
-438 -5 -19 -210.26 -82.17 1384.06 -260.40 -93.63 1535.57
-439 -5 -20 -224.48 -82.18 1384.17 -277.24 -93.57 1534.79
-440 -5 -21 -238.79 -82.19 1384.28 -294.14 -93.50 1533.97
-441 -5 -22 -253.16 -82.21 1384.35 -311.09 -93.44 1533.07
-442 -5 -23 -267.68 -82.21 1384.49 -328.17 -93.34 1532.20
+#This list is in the same coordinate system as the nominal geometry implemented in the code with the origin at the target.
+#crystals centers front face true position(mm)/Crystals centers rare face true position(mm)
+#N layer column X Y Z X Y Z
+1 5 23 353.43 82.17 1384.51 414.16 93.50 1532.10
+2 5 22 338.92 82.16 1384.39 397.08 93.55 1533.01
+3 5 21 324.51 82.15 1384.28 380.08 93.61 1533.88
+4 5 20 310.20 82.14 1384.17 363.17 93.66 1534.71
+5 5 19 295.98 82.13 1384.06 346.32 93.71 1535.50
+6 5 18 281.84 82.12 1383.95 329.54 93.75 1536.23
+7 5 17 267.78 82.11 1383.84 312.83 93.80 1536.92
+8 5 16 253.79 82.10 1383.73 296.18 93.84 1537.57
+9 5 15 239.87 82.09 1383.62 279.58 93.87 1538.17
+10 5 14 226.01 82.08 1383.51 263.03 93.90 1538.72
+11 5 13 212.21 82.07 1383.40 246.53 93.93 1539.22
+12 5 12 198.46 82.06 1383.28 230.07 93.96 1539.68
+13 5 11 184.77 82.05 1383.17 213.66 93.98 1540.09
+14 5 10 171.12 82.04 1383.05 197.28 94.00 1540.45
+15 5 9 157.51 82.03 1382.94 180.93 94.02 1540.76
+16 5 8 143.94 82.03 1382.83 164.62 94.04 1541.03
+17 5 7 130.39 82.02 1382.71 148.33 94.05 1541.25
+18 5 6 116.88 82.01 1382.60 132.06 94.06 1541.42
+19 5 5 103.39 82.00 1382.48 115.81 94.06 1541.54
+20 5 4 89.93 81.99 1382.36 99.58 94.06 1541.62
+21 5 3 76.48 81.98 1382.25 83.36 94.06 1541.64
+22 5 2 63.04 81.97 1382.13 67.16 94.06 1541.62
+23 5 1 49.60 81.95 1381.90 50.95 94.04 1541.43
+24 5 -1 36.17 81.96 1382.02 34.82 94.05 1541.56
+25 5 -2 22.73 81.97 1382.13 18.62 94.06 1541.62
+26 5 -3 9.29 81.98 1382.25 2.42 94.06 1541.64
+27 5 -4 -4.17 81.99 1382.36 -13.79 94.07 1541.62
+28 5 -5 -17.64 82.00 1382.48 -30.01 94.07 1541.54
+29 5 -6 -31.13 82.01 1382.59 -46.25 94.07 1541.42
+30 5 -7 -44.65 82.02 1382.71 -62.51 94.06 1541.25
+31 5 -8 -58.19 82.03 1382.82 -78.79 94.04 1541.03
+32 5 -9 -71.77 82.04 1382.94 -95.10 94.03 1540.77
+33 5 -10 -85.38 82.05 1383.05 -111.44 94.01 1540.46
+34 5 -11 -99.03 82.06 1383.16 -127.81 94.00 1540.10
+35 5 -12 -112.73 82.07 1383.28 -144.22 93.97 1539.70
+36 5 -13 -126.48 82.08 1383.39 -160.67 93.95 1539.24
+37 5 -14 -140.28 82.09 1383.50 -177.16 93.92 1538.74
+38 5 -15 -154.14 82.10 1383.61 -193.69 93.89 1538.20
+39 5 -16 -168.06 82.11 1383.72 -210.28 93.85 1537.61
+40 5 -17 -182.05 82.12 1383.84 -226.93 93.81 1536.97
+41 5 -18 -196.11 82.13 1383.95 -243.63 93.77 1536.28
+42 5 -19 -210.25 82.14 1384.06 -260.40 93.72 1535.55
+43 5 -20 -224.48 82.15 1384.16 -277.23 93.67 1534.78
+44 5 -21 -238.79 82.15 1384.27 -294.14 93.62 1533.96
+45 5 -22 -253.15 82.14 1384.35 -311.08 93.54 1533.06
+46 5 -23 -267.67 82.17 1384.49 -328.16 93.50 1532.18
+47 4 23 353.42 68.28 1384.40 414.16 77.12 1532.16
+48 4 22 338.92 68.28 1384.28 397.08 77.16 1533.07
+49 4 21 324.51 68.27 1384.17 380.08 77.20 1533.95
+50 4 20 310.20 68.26 1384.06 363.16 77.24 1534.78
+51 4 19 295.98 68.25 1383.95 346.32 77.28 1535.56
+52 4 18 281.84 68.25 1383.84 329.54 77.31 1536.30
+53 4 17 267.77 68.24 1383.73 312.83 77.34 1536.99
+54 4 16 253.78 68.23 1383.62 296.17 77.37 1537.63
+55 4 15 239.86 68.22 1383.51 279.57 77.39 1538.23
+56 4 14 226.01 68.22 1383.40 263.03 77.42 1538.78
+57 4 13 212.21 68.21 1383.28 246.53 77.44 1539.29
+58 4 12 198.46 68.20 1383.17 230.07 77.46 1539.74
+59 4 11 184.77 68.19 1383.06 213.66 77.47 1540.15
+60 4 10 171.12 68.18 1382.94 197.28 77.49 1540.51
+61 4 9 157.51 68.18 1382.83 180.93 77.50 1540.83
+62 4 8 143.94 68.17 1382.71 164.62 77.51 1541.10
+63 4 7 130.39 68.17 1382.60 148.33 77.52 1541.31
+64 4 6 116.88 68.16 1382.48 132.06 77.53 1541.48
+65 4 5 103.39 68.15 1382.37 115.81 77.53 1541.61
+66 4 4 89.92 68.14 1382.25 99.58 77.53 1541.68
+67 4 3 76.47 68.13 1382.14 83.36 77.53 1541.71
+68 4 2 63.03 68.13 1382.02 67.15 77.52 1541.69
+69 4 1 49.60 68.11 1381.78 50.95 77.51 1541.50
+70 4 -1 36.17 68.12 1381.91 34.82 77.51 1541.63
+71 4 -2 22.73 68.13 1382.02 18.62 77.52 1541.69
+72 4 -3 9.29 68.13 1382.13 2.42 77.53 1541.71
+73 4 -4 -4.17 68.14 1382.25 -13.79 77.53 1541.68
+74 4 -5 -17.64 68.15 1382.36 -30.01 77.53 1541.61
+75 4 -6 -31.13 68.16 1382.48 -46.25 77.54 1541.49
+76 4 -7 -44.65 68.17 1382.59 -62.51 77.53 1541.32
+77 4 -8 -58.19 68.18 1382.71 -78.80 77.52 1541.10
+78 4 -9 -71.77 68.19 1382.82 -95.10 77.51 1540.84
+79 4 -10 -85.38 68.19 1382.94 -111.44 77.50 1540.53
+80 4 -11 -99.03 68.20 1383.05 -127.81 77.49 1540.17
+81 4 -12 -112.73 68.21 1383.16 -144.22 77.47 1539.76
+82 4 -13 -126.48 68.22 1383.28 -160.67 77.45 1539.31
+83 4 -14 -140.28 68.23 1383.39 -177.16 77.43 1538.81
+84 4 -15 -154.14 68.24 1383.50 -193.70 77.41 1538.26
+85 4 -16 -168.06 68.24 1383.61 -210.29 77.38 1537.67
+86 4 -17 -182.05 68.25 1383.72 -226.93 77.36 1537.03
+87 4 -18 -196.12 68.26 1383.83 -243.63 77.33 1536.35
+88 4 -19 -210.26 68.26 1383.94 -260.40 77.29 1535.62
+89 4 -20 -224.48 68.27 1384.05 -277.23 77.25 1534.84
+90 4 -21 -238.79 68.27 1384.16 -294.14 77.21 1534.02
+91 4 -22 -253.16 68.26 1384.24 -311.09 77.15 1533.12
+92 4 -23 -267.67 68.28 1384.38 -328.16 77.13 1532.24
+93 3 23 353.42 54.42 1384.28 414.15 60.76 1532.17
+94 3 22 338.92 54.41 1384.17 397.07 60.79 1533.09
+95 3 21 324.51 54.41 1384.06 380.08 60.81 1533.96
+96 3 20 310.20 54.40 1383.95 363.16 60.84 1534.79
+97 3 19 295.98 54.39 1383.84 346.32 60.86 1535.58
+98 3 18 281.84 54.39 1383.73 329.54 60.88 1536.32
+99 3 17 267.77 54.38 1383.62 312.83 60.90 1537.01
+100 3 16 253.78 54.38 1383.51 296.17 60.91 1537.65
+101 3 15 239.86 54.37 1383.40 279.57 60.93 1538.25
+102 3 14 226.00 54.37 1383.28 263.03 60.94 1538.80
+103 3 13 212.21 54.36 1383.17 246.53 60.96 1539.31
+104 3 12 198.46 54.35 1383.06 230.07 60.97 1539.76
+105 3 11 184.76 54.35 1382.94 213.66 60.98 1540.17
+106 3 10 171.11 54.34 1382.83 197.28 60.98 1540.54
+107 3 9 157.51 54.34 1382.71 180.93 61.00 1540.85
+108 3 8 143.93 54.33 1382.60 164.62 61.00 1541.12
+109 3 7 130.39 54.33 1382.48 148.33 61.01 1541.34
+110 3 6 116.88 54.32 1382.37 132.06 61.01 1541.51
+111 3 5 103.39 54.32 1382.25 115.81 61.01 1541.63
+112 3 4 89.92 54.31 1382.14 99.58 61.01 1541.71
+113 3 3 76.47 54.30 1382.02 83.36 61.00 1541.73
+114 3 2 63.03 54.30 1381.91 67.15 61.00 1541.71
+115 3 1 49.60 54.29 1381.67 50.95 60.99 1541.52
+116 3 -1 36.17 54.29 1381.79 34.81 60.99 1541.65
+117 3 -2 22.73 54.30 1381.91 18.62 61.00 1541.71
+118 3 -3 9.29 54.31 1382.02 2.42 61.00 1541.73
+119 3 -4 -4.17 54.31 1382.14 -13.79 61.01 1541.71
+120 3 -5 -17.64 54.32 1382.25 -30.01 61.01 1541.63
+121 3 -6 -31.13 54.33 1382.37 -46.25 61.02 1541.51
+122 3 -7 -44.65 54.33 1382.48 -62.51 61.01 1541.34
+123 3 -8 -58.19 54.34 1382.60 -78.80 61.01 1541.12
+124 3 -9 -71.77 54.35 1382.71 -95.11 61.00 1540.86
+125 3 -10 -85.38 54.35 1382.82 -111.44 61.00 1540.55
+126 3 -11 -99.04 54.36 1382.94 -127.81 60.99 1540.19
+127 3 -12 -112.73 54.36 1383.05 -144.22 60.98 1539.78
+128 3 -13 -126.48 54.37 1383.16 -160.67 60.97 1539.33
+129 3 -14 -140.28 54.38 1383.28 -177.16 60.96 1538.83
+130 3 -15 -154.14 54.38 1383.39 -193.70 60.95 1538.28
+131 3 -16 -168.07 54.39 1383.50 -210.29 60.93 1537.69
+132 3 -17 -182.06 54.39 1383.61 -226.93 60.91 1537.05
+133 3 -18 -196.12 54.40 1383.72 -243.63 60.89 1536.37
+134 3 -19 -210.26 54.40 1383.83 -260.40 60.87 1535.63
+135 3 -20 -224.48 54.41 1383.94 -277.23 60.85 1534.86
+136 3 -21 -238.79 54.41 1384.05 -294.14 60.82 1534.03
+137 3 -22 -253.16 54.39 1384.12 -311.09 60.77 1533.13
+138 3 -23 -267.67 54.42 1384.27 -328.16 60.76 1532.25
+139 2 23 353.42 40.56 1384.17 414.15 44.41 1532.15
+140 2 22 338.92 40.56 1384.06 397.07 44.42 1533.06
+141 2 21 324.51 40.55 1383.95 380.08 44.43 1533.94
+142 2 20 310.20 40.55 1383.84 363.16 44.44 1534.77
+143 2 19 295.98 40.55 1383.73 346.32 44.45 1535.55
+144 2 18 281.83 40.54 1383.62 329.54 44.46 1536.29
+145 2 17 267.77 40.54 1383.51 312.83 44.46 1536.98
+146 2 16 253.78 40.54 1383.40 296.17 44.47 1537.63
+147 2 15 239.86 40.53 1383.28 279.57 44.48 1538.23
+148 2 14 226.00 40.53 1383.17 263.03 44.48 1538.78
+149 2 13 212.20 40.52 1383.06 246.53 44.48 1539.28
+150 2 12 198.46 40.52 1382.94 230.07 44.49 1539.74
+151 2 11 184.76 40.52 1382.83 213.66 44.49 1540.15
+152 2 10 171.11 40.51 1382.72 197.28 44.49 1540.51
+153 2 9 157.51 40.51 1382.60 180.93 44.50 1540.83
+154 2 8 143.93 40.51 1382.49 164.61 44.50 1541.09
+155 2 7 130.39 40.50 1382.37 148.33 44.50 1541.31
+156 2 6 116.88 40.50 1382.26 132.06 44.50 1541.48
+157 2 5 103.39 40.50 1382.14 115.81 44.50 1541.61
+158 2 4 89.92 40.49 1382.02 99.58 44.49 1541.68
+159 2 3 76.47 40.49 1381.91 83.36 44.49 1541.71
+160 2 2 63.03 40.48 1381.79 67.15 44.48 1541.69
+161 2 1 49.60 40.48 1381.56 50.95 44.48 1541.50
+162 2 -1 36.17 40.48 1381.68 34.81 44.48 1541.62
+163 2 -2 22.73 40.48 1381.79 18.62 44.49 1541.69
+164 2 -3 9.29 40.49 1381.91 2.42 44.49 1541.71
+165 2 -4 -4.17 40.49 1382.02 -13.79 44.50 1541.68
+166 2 -5 -17.64 40.50 1382.14 -30.02 44.50 1541.61
+167 2 -6 -31.13 40.50 1382.25 -46.26 44.51 1541.49
+168 2 -7 -44.65 40.51 1382.37 -62.51 44.51 1541.32
+169 2 -8 -58.19 40.51 1382.48 -78.80 44.50 1541.10
+170 2 -9 -71.77 40.52 1382.60 -95.11 44.51 1540.84
+171 2 -10 -85.38 40.52 1382.71 -111.44 44.50 1540.52
+172 2 -11 -99.04 40.53 1382.83 -127.81 44.50 1540.17
+173 2 -12 -112.73 40.53 1382.94 -144.22 44.50 1539.76
+174 2 -13 -126.48 40.53 1383.05 -160.67 44.50 1539.31
+175 2 -14 -140.28 40.54 1383.16 -177.16 44.50 1538.81
+176 2 -15 -154.14 40.54 1383.28 -193.70 44.49 1538.26
+177 2 -16 -168.07 40.55 1383.39 -210.29 44.49 1537.67
+178 2 -17 -182.06 40.55 1383.50 -226.93 44.48 1537.03
+179 2 -18 -196.12 40.55 1383.61 -243.63 44.47 1536.34
+180 2 -19 -210.26 40.56 1383.72 -260.40 44.46 1535.61
+181 2 -20 -224.48 40.56 1383.83 -277.23 44.45 1534.83
+182 2 -21 -238.79 40.56 1383.94 -294.14 44.44 1534.01
+183 2 -22 -253.16 40.54 1384.01 -311.09 44.41 1533.11
+184 2 -23 -267.67 40.56 1384.27 -328.17 44.41 1532.23
+185 1 23 353.42 26.71 1384.06 414.15 28.06 1532.08
+186 1 22 338.92 26.71 1383.94 397.07 28.06 1532.99
+187 1 21 324.51 26.71 1383.84 380.08 28.06 1533.87
+188 1 20 310.20 26.71 1383.73 363.16 28.05 1534.70
+189 1 19 295.98 26.71 1383.62 346.32 28.05 1535.48
+190 1 18 281.83 26.70 1383.51 329.54 28.04 1536.22
+191 1 17 267.77 26.70 1383.39 312.83 28.04 1536.91
+192 1 16 253.78 26.70 1383.28 296.17 28.03 1537.56
+193 1 15 239.86 26.70 1383.17 279.57 28.03 1538.16
+194 1 14 226.00 26.70 1383.06 263.03 28.02 1538.71
+195 1 13 212.20 26.69 1382.95 246.53 28.02 1539.22
+196 1 12 198.46 26.69 1382.83 230.07 28.02 1539.67
+197 1 11 184.76 26.69 1382.72 213.66 28.01 1540.08
+198 1 10 171.11 26.69 1382.60 197.28 28.01 1540.44
+199 1 9 157.51 26.69 1382.49 180.93 28.01 1540.76
+200 1 8 143.93 26.69 1382.37 164.61 28.00 1541.03
+201 1 7 130.39 26.69 1382.26 148.32 28.00 1541.24
+202 1 6 116.88 26.68 1382.14 132.06 28.00 1541.42
+203 1 5 103.39 26.68 1382.03 115.81 27.99 1541.54
+204 1 4 89.92 26.68 1381.91 99.58 27.99 1541.61
+205 1 3 76.47 26.68 1381.79 83.36 27.98 1541.64
+206 1 2 63.03 26.68 1381.68 67.15 27.98 1541.62
+207 1 1 49.60 26.67 1381.44 50.95 27.97 1541.43
+208 1 -1 36.17 26.67 1381.57 34.81 27.97 1541.55
+209 1 -11 -99.06 26.70 1382.74 -127.86 28.02 1540.12
+210 1 -12 -112.76 26.70 1382.85 -144.27 28.03 1539.71
+211 1 -13 -126.51 26.71 1382.96 -160.72 28.03 1539.25
+212 1 -14 -140.31 26.71 1383.07 -177.21 28.04 1538.75
+213 1 -15 -154.17 26.71 1383.18 -193.74 28.04 1538.20
+214 1 -16 -168.09 26.71 1383.29 -210.33 28.05 1537.61
+215 1 -17 -182.08 26.71 1383.40 -226.98 28.05 1536.97
+216 1 -18 -196.14 26.72 1383.51 -243.68 28.06 1536.28
+217 1 -19 -210.28 26.72 1383.62 -260.45 28.06 1535.54
+218 1 -20 -224.50 26.72 1383.72 -277.28 28.06 1534.76
+219 1 -21 -238.81 26.72 1383.83 -294.19 28.06 1533.94
+220 1 -22 -253.17 26.70 1383.87 -311.12 28.05 1533.00
+221 1 -23 -267.70 26.71 1384.04 -328.21 28.06 1532.15
+222 -1 23 353.42 -26.76 1384.07 414.15 -27.90 1532.09
+223 -1 22 338.91 -26.76 1383.95 397.07 -27.92 1533.00
+224 -1 21 324.51 -26.76 1383.84 380.08 -27.94 1533.88
+225 -1 20 310.20 -26.76 1383.73 363.16 -27.96 1534.71
+226 -1 19 295.97 -26.76 1383.62 346.31 -27.98 1535.49
+227 -1 18 281.83 -26.76 1383.51 329.54 -28.00 1536.23
+228 -1 17 267.77 -26.76 1383.40 312.82 -28.01 1536.92
+229 -1 16 253.78 -26.76 1383.29 296.17 -28.03 1537.57
+230 -1 15 239.86 -26.76 1383.18 279.57 -28.04 1538.17
+231 -1 14 226.00 -26.76 1383.07 263.02 -28.06 1538.72
+232 -1 13 212.20 -26.76 1382.95 246.52 -28.07 1539.22
+233 -1 12 198.46 -26.76 1382.84 230.07 -28.08 1539.68
+234 -1 11 184.76 -26.76 1382.73 213.65 -28.09 1540.09
+235 -1 10 171.11 -26.76 1382.61 197.27 -28.10 1540.45
+236 -1 9 157.50 -26.76 1382.50 180.93 -28.11 1540.77
+237 -1 8 143.93 -26.76 1382.38 164.61 -28.12 1541.03
+238 -1 7 130.39 -26.75 1382.27 148.32 -28.12 1541.25
+239 -1 6 116.87 -26.75 1382.15 132.06 -28.12 1541.42
+240 -1 5 103.39 -26.75 1382.03 115.80 -28.14 1541.55
+241 -1 4 89.92 -26.75 1381.92 99.57 -28.14 1541.62
+242 -1 3 76.47 -26.75 1381.80 83.36 -28.15 1541.65
+243 -1 2 63.03 -26.75 1381.69 67.15 -28.15 1541.63
+244 -1 1 49.60 -26.75 1381.45 50.95 -28.15 1541.44
+245 -1 -1 36.16 -26.75 1381.57 34.81 -28.15 1541.56
+246 -1 -11 -99.06 -26.75 1382.74 -127.86 -28.08 1540.12
+247 -1 -12 -112.76 -26.75 1382.85 -144.27 -28.07 1539.71
+248 -1 -13 -126.51 -26.75 1382.96 -160.72 -28.06 1539.26
+249 -1 -14 -140.31 -26.75 1383.07 -177.21 -28.04 1538.75
+250 -1 -15 -154.17 -26.74 1383.18 -193.75 -28.03 1538.21
+251 -1 -16 -168.09 -26.74 1383.29 -210.34 -28.01 1537.61
+252 -1 -17 -182.08 -26.74 1383.40 -226.98 -28.00 1536.97
+253 -1 -18 -196.15 -26.75 1383.51 -243.68 -27.98 1536.28
+254 -1 -19 -210.29 -26.75 1383.62 -260.45 -27.97 1535.55
+255 -1 -20 -224.51 -26.75 1383.73 -277.28 -27.95 1534.77
+256 -1 -21 -238.82 -26.75 1383.83 -294.19 -27.94 1533.94
+257 -1 -22 -253.17 -26.77 1383.87 -311.13 -27.94 1533.01
+258 -1 -23 -267.70 -26.76 1384.04 -328.21 -27.90 1532.15
+259 -2 23 353.42 -40.60 1384.18 414.15 -44.25 1532.16
+260 -2 22 338.91 -40.60 1384.06 397.07 -44.28 1533.07
+261 -2 21 324.51 -40.60 1383.95 380.08 -44.32 1533.95
+262 -2 20 310.20 -40.60 1383.84 363.16 -44.35 1534.78
+263 -2 19 295.97 -40.60 1383.73 346.31 -44.38 1535.56
+264 -2 18 281.83 -40.59 1383.62 329.54 -44.41 1536.30
+265 -2 17 267.77 -40.59 1383.51 312.82 -44.44 1536.99
+266 -2 16 253.78 -40.59 1383.40 296.17 -44.46 1537.64
+267 -2 15 239.86 -40.59 1383.29 279.57 -44.49 1538.23
+268 -2 14 226.00 -40.59 1383.18 263.02 -44.51 1538.79
+269 -2 13 212.20 -40.59 1383.06 246.52 -44.53 1539.29
+270 -2 12 198.46 -40.58 1382.95 230.07 -44.55 1539.75
+271 -2 11 184.76 -40.58 1382.84 213.65 -44.57 1540.16
+272 -2 10 171.11 -40.58 1382.72 197.27 -44.59 1540.52
+273 -2 9 157.50 -40.58 1382.61 180.93 -44.60 1540.83
+274 -2 8 143.93 -40.57 1382.49 164.61 -44.61 1541.10
+275 -2 7 130.39 -40.57 1382.38 148.32 -44.62 1541.32
+276 -2 6 116.87 -40.57 1382.26 132.06 -44.63 1541.49
+277 -2 5 103.39 -40.57 1382.15 115.80 -44.64 1541.61
+278 -2 4 89.92 -40.56 1382.03 99.57 -44.65 1541.69
+279 -2 3 76.47 -40.56 1381.91 83.36 -44.65 1541.71
+280 -2 2 63.03 -40.56 1381.80 67.15 -44.66 1541.69
+281 -2 1 49.60 -40.56 1381.56 50.95 -44.65 1541.50
+282 -2 -1 36.16 -40.56 1381.68 34.81 -44.66 1541.63
+283 -2 -2 22.73 -40.56 1381.80 18.62 -44.66 1541.69
+284 -2 -3 9.28 -40.56 1381.91 2.42 -44.65 1541.71
+285 -2 -4 -4.17 -40.56 1382.03 -13.79 -44.64 1541.69
+286 -2 -5 -17.65 -40.56 1382.14 -30.02 -44.64 1541.61
+287 -2 -6 -31.14 -40.57 1382.26 -46.26 -44.62 1541.49
+288 -2 -7 -44.65 -40.57 1382.37 -62.52 -44.62 1541.32
+289 -2 -8 -58.20 -40.57 1382.49 -78.80 -44.61 1541.11
+290 -2 -9 -71.77 -40.57 1382.60 -95.11 -44.59 1540.84
+291 -2 -10 -85.39 -40.57 1382.72 -111.45 -44.58 1540.53
+292 -2 -11 -99.04 -40.57 1382.83 -127.82 -44.56 1540.17
+293 -2 -12 -112.74 -40.57 1382.95 -144.22 -44.54 1539.77
+294 -2 -13 -126.49 -40.57 1383.06 -160.67 -44.52 1539.31
+295 -2 -14 -140.29 -40.58 1383.17 -177.16 -44.50 1538.81
+296 -2 -15 -154.15 -40.58 1383.28 -193.70 -44.48 1538.27
+297 -2 -16 -168.07 -40.58 1383.40 -210.29 -44.45 1537.68
+298 -2 -17 -182.06 -40.58 1383.51 -226.93 -44.43 1537.04
+299 -2 -18 -196.12 -40.58 1383.62 -243.64 -44.40 1536.35
+300 -2 -19 -210.26 -40.59 1383.73 -260.40 -44.37 1535.62
+301 -2 -20 -224.48 -40.59 1383.84 -277.24 -44.34 1534.84
+302 -2 -21 -238.79 -40.59 1383.94 -294.14 -44.31 1534.02
+303 -2 -22 -253.16 -40.62 1384.02 -311.09 -44.30 1533.12
+304 -2 -23 -267.70 -40.60 1384.04 -328.17 -44.25 1532.24
+305 -3 23 353.42 -54.46 1384.29 414.15 -60.60 1532.19
+306 -3 22 338.91 -54.45 1384.17 397.07 -60.65 1533.10
+307 -3 21 324.51 -54.45 1384.07 380.08 -60.70 1533.98
+308 -3 20 310.20 -54.45 1383.96 363.16 -60.75 1534.80
+309 -3 19 295.97 -54.44 1383.85 346.31 -60.79 1535.59
+310 -3 18 281.83 -54.44 1383.74 329.54 -60.83 1536.33
+311 -3 17 267.77 -54.44 1383.63 312.82 -60.87 1537.02
+312 -3 16 253.78 -54.43 1383.51 296.17 -60.91 1537.66
+313 -3 15 239.86 -54.43 1383.40 279.57 -60.94 1538.26
+314 -3 14 226.00 -54.43 1383.29 263.02 -60.98 1538.81
+315 -3 13 212.20 -54.42 1383.18 246.52 -61.01 1539.31
+316 -3 12 198.46 -54.42 1383.06 230.07 -61.03 1539.77
+317 -3 11 184.76 -54.41 1382.95 213.65 -61.06 1540.18
+318 -3 10 171.11 -54.41 1382.83 197.27 -61.08 1540.54
+319 -3 9 157.50 -54.41 1382.72 180.93 -61.10 1540.85
+320 -3 8 143.93 -54.40 1382.60 164.61 -61.12 1541.12
+321 -3 7 130.39 -54.40 1382.49 148.32 -61.13 1541.34
+322 -3 6 116.87 -54.39 1382.37 132.06 -61.14 1541.51
+323 -3 5 103.39 -54.39 1382.26 115.80 -61.15 1541.63
+324 -3 4 89.92 -54.38 1382.14 99.57 -61.16 1541.71
+325 -3 3 76.47 -54.38 1382.03 83.36 -61.16 1541.73
+326 -3 2 63.03 -54.38 1381.91 67.15 -61.17 1541.71
+327 -3 1 49.60 -54.37 1381.67 50.95 -61.16 1541.52
+328 -3 -1 36.16 -54.37 1381.80 34.81 -61.17 1541.65
+329 -3 -2 22.73 -54.38 1381.91 18.62 -61.17 1541.71
+330 -3 -3 9.28 -54.38 1382.02 2.42 -61.16 1541.73
+331 -3 -4 -4.17 -54.38 1382.14 -13.79 -61.16 1541.71
+332 -3 -5 -17.65 -54.39 1382.26 -30.02 -61.15 1541.63
+333 -3 -6 -31.14 -54.39 1382.37 -46.26 -61.13 1541.51
+334 -3 -7 -44.65 -54.39 1382.49 -62.52 -61.12 1541.34
+335 -3 -8 -58.20 -54.40 1382.60 -78.80 -61.11 1541.13
+336 -3 -9 -71.77 -54.40 1382.72 -95.11 -61.09 1540.86
+337 -3 -10 -85.39 -54.40 1382.83 -111.45 -61.07 1540.55
+338 -3 -11 -99.04 -54.40 1382.94 -127.82 -61.05 1540.19
+339 -3 -12 -112.74 -54.41 1383.06 -144.22 -61.02 1539.79
+340 -3 -13 -126.49 -54.41 1383.17 -160.67 -60.99 1539.34
+341 -3 -14 -140.29 -54.41 1383.28 -177.16 -60.96 1538.84
+342 -3 -15 -154.15 -54.42 1383.40 -193.70 -60.93 1538.29
+343 -3 -16 -168.07 -54.42 1383.51 -210.29 -60.90 1537.70
+344 -3 -17 -182.06 -54.42 1383.62 -226.93 -60.86 1537.06
+345 -3 -18 -196.12 -54.43 1383.73 -243.64 -60.82 1536.38
+346 -3 -19 -210.26 -54.43 1383.84 -260.40 -60.78 1535.65
+347 -3 -20 -224.48 -54.44 1383.95 -277.24 -60.74 1534.87
+348 -3 -21 -238.79 -54.44 1384.06 -294.14 -60.70 1534.05
+349 -3 -22 -253.16 -54.47 1384.13 -311.09 -60.67 1533.14
+350 -3 -23 -267.68 -54.46 1384.27 -328.17 -60.60 1532.27
+351 -4 23 353.42 -68.33 1384.40 414.15 -76.96 1532.17
+352 -4 22 338.91 -68.32 1384.28 397.07 -77.03 1533.09
+353 -4 21 324.51 -68.31 1384.18 380.08 -77.09 1533.96
+354 -4 20 310.20 -68.31 1384.07 363.16 -77.15 1534.79
+355 -4 19 295.97 -68.30 1383.96 346.31 -77.21 1535.57
+356 -4 18 281.83 -68.30 1383.85 329.54 -77.26 1536.31
+357 -4 17 267.77 -68.29 1383.74 312.82 -77.31 1537.00
+358 -4 16 253.78 -68.29 1383.62 296.17 -77.36 1537.64
+359 -4 15 239.86 -68.28 1383.51 279.57 -77.41 1538.24
+360 -4 14 226.00 -68.28 1383.40 263.02 -77.45 1538.79
+361 -4 13 212.20 -68.27 1383.29 246.52 -77.49 1539.29
+362 -4 12 198.46 -68.26 1383.17 230.07 -77.52 1539.75
+363 -4 11 184.76 -68.26 1383.06 213.65 -77.56 1540.15
+364 -4 10 171.11 -68.25 1382.95 197.27 -77.58 1540.52
+365 -4 9 157.50 -68.25 1382.83 180.93 -77.61 1540.83
+366 -4 8 143.93 -68.24 1382.72 164.61 -77.63 1541.10
+367 -4 7 130.39 -68.23 1382.60 148.32 -77.64 1541.31
+368 -4 6 116.87 -68.23 1382.49 132.06 -77.65 1541.48
+369 -4 5 103.39 -68.22 1382.37 115.80 -77.67 1541.61
+370 -4 4 89.92 -68.21 1382.25 99.57 -77.68 1541.68
+371 -4 3 76.47 -68.21 1382.14 83.36 -77.69 1541.71
+372 -4 2 63.03 -68.20 1382.02 67.15 -77.69 1541.69
+373 -4 1 49.60 -68.19 1381.79 50.95 -77.68 1541.50
+374 -4 -1 36.16 -68.20 1381.91 34.81 -77.69 1541.62
+375 -4 -2 22.73 -68.20 1382.02 18.62 -77.69 1541.69
+376 -4 -3 9.28 -68.21 1382.14 2.42 -77.69 1541.71
+377 -4 -4 -4.17 -68.21 1382.25 -13.79 -77.68 1541.68
+378 -4 -5 -17.65 -68.22 1382.37 -30.02 -77.67 1541.61
+379 -4 -6 -31.14 -68.22 1382.48 -46.26 -77.65 1541.49
+380 -4 -7 -44.65 -68.23 1382.60 -62.52 -77.64 1541.32
+381 -4 -8 -58.20 -68.23 1382.71 -78.80 -77.62 1541.10
+382 -4 -9 -71.77 -68.24 1382.83 -95.11 -77.60 1540.84
+383 -4 -10 -85.39 -68.24 1382.94 -111.45 -77.57 1540.53
+384 -4 -11 -99.04 -68.25 1383.06 -127.82 -77.54 1540.17
+385 -4 -12 -112.74 -68.25 1383.17 -144.22 -77.51 1539.77
+386 -4 -13 -126.49 -68.26 1383.28 -160.67 -77.48 1539.32
+387 -4 -14 -140.29 -68.26 1383.39 -177.16 -77.44 1538.82
+388 -4 -15 -154.15 -68.27 1383.51 -193.70 -77.40 1538.27
+389 -4 -16 -168.07 -68.27 1383.62 -210.29 -77.35 1537.68
+390 -4 -17 -182.06 -68.28 1383.73 -226.93 -77.30 1537.04
+391 -4 -18 -196.12 -68.29 1383.84 -243.64 -77.25 1536.36
+392 -4 -19 -210.26 -68.29 1383.95 -260.40 -77.20 1535.63
+393 -4 -20 -224.48 -68.30 1384.06 -277.24 -77.15 1534.85
+394 -4 -21 -238.79 -68.31 1384.17 -294.14 -77.09 1534.03
+395 -4 -22 -253.16 -68.33 1384.24 -311.09 -77.05 1533.13
+396 -4 -23 -267.68 -68.32 1384.38 -328.17 -76.97 1532.25
+397 -5 23 353.42 -82.21 1384.51 414.15 -93.34 1532.12
+398 -5 22 338.91 -82.20 1384.39 397.07 -93.42 1533.03
+399 -5 21 324.51 -82.19 1384.29 380.08 -93.50 1533.90
+400 -5 20 310.20 -82.19 1384.18 363.16 -93.57 1534.73
+401 -5 19 295.97 -82.18 1384.07 346.31 -93.64 1535.51
+402 -5 18 281.83 -82.17 1383.96 329.54 -93.71 1536.24
+403 -5 17 267.77 -82.16 1383.85 312.82 -93.77 1536.93
+404 -5 16 253.78 -82.16 1383.74 296.17 -93.83 1537.58
+405 -5 15 239.86 -82.15 1383.62 279.57 -93.88 1538.17
+406 -5 14 226.00 -82.14 1383.51 263.02 -93.94 1538.72
+407 -5 13 212.20 -82.13 1383.40 246.52 -93.98 1539.22
+408 -5 12 198.46 -82.13 1383.28 230.07 -94.03 1539.68
+409 -5 11 184.76 -82.12 1383.17 213.65 -94.06 1540.09
+410 -5 10 171.11 -82.11 1383.06 197.27 -94.10 1540.45
+411 -5 9 157.50 -82.10 1382.94 180.93 -94.13 1540.76
+412 -5 8 143.93 -82.09 1382.83 164.61 -94.15 1541.03
+413 -5 7 130.39 -82.08 1382.71 148.32 -94.17 1541.24
+414 -5 6 116.87 -82.08 1382.60 132.06 -94.19 1541.41
+415 -5 5 103.39 -82.07 1382.48 115.80 -94.21 1541.54
+416 -5 4 89.92 -82.06 1382.37 99.57 -94.22 1541.61
+417 -5 3 76.47 -82.05 1382.25 83.36 -94.22 1541.64
+418 -5 2 63.03 -82.05 1382.13 67.15 -94.23 1541.62
+419 -5 1 49.60 -82.03 1381.90 50.95 -94.21 1541.43
+420 -5 -1 36.16 -82.04 1382.02 34.81 -94.22 1541.55
+421 -5 -2 22.73 -82.05 1382.13 18.62 -94.23 1541.62
+422 -5 -3 9.28 -82.05 1382.25 2.42 -94.22 1541.64
+423 -5 -4 -4.17 -82.06 1382.36 -13.79 -94.21 1541.61
+424 -5 -5 -17.65 -82.07 1382.48 -30.02 -94.20 1541.54
+425 -5 -6 -31.14 -82.07 1382.60 -46.26 -94.18 1541.42
+426 -5 -7 -44.65 -82.08 1382.71 -62.52 -94.17 1541.25
+427 -5 -8 -58.20 -82.09 1382.82 -78.80 -94.15 1541.03
+428 -5 -9 -71.77 -82.09 1382.94 -95.11 -94.12 1540.77
+429 -5 -10 -85.39 -82.10 1383.05 -111.45 -94.09 1540.46
+430 -5 -11 -99.04 -82.11 1383.17 -127.82 -94.05 1540.10
+431 -5 -12 -112.74 -82.12 1383.28 -144.22 -94.01 1539.70
+432 -5 -13 -126.49 -82.12 1383.39 -160.67 -93.97 1539.25
+433 -5 -14 -140.29 -82.13 1383.51 -177.16 -93.92 1538.75
+434 -5 -15 -154.15 -82.14 1383.62 -193.70 -93.87 1538.21
+435 -5 -16 -168.07 -82.14 1383.73 -210.29 -93.82 1537.62
+436 -5 -17 -182.06 -82.15 1383.84 -226.93 -93.76 1536.98
+437 -5 -18 -196.12 -82.16 1383.95 -243.64 -93.70 1536.30
+438 -5 -19 -210.26 -82.17 1384.06 -260.40 -93.63 1535.57
+439 -5 -20 -224.48 -82.18 1384.17 -277.24 -93.57 1534.79
+440 -5 -21 -238.79 -82.19 1384.28 -294.14 -93.50 1533.97
+441 -5 -22 -253.16 -82.21 1384.35 -311.09 -93.44 1533.07
+442 -5 -23 -267.68 -82.21 1384.49 -328.17 -93.34 1532.20
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/ECalRotationCalculator.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/ECalRotationCalculator.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/ECalRotationCalculator.java Mon Mar 14 16:06:17 2016
@@ -1,7 +1,7 @@
package org.hps.detector.ecal.geo2015.ecal;
import org.hps.detector.ecal.geo2015.geoutils.Vector;
-import org.hps.detector.ecal.geo2015.base.Cheating;
+import org.hps.detector.ecal.geo2015.base.StatFunUtils;
/*
* This class will calculate rotation angles of ECal modules plane (4 measuring
@@ -96,7 +96,7 @@
private boolean checkNormals() {
- if (Double.compare(Cheating.round(n_ini.Module(),12),1.0)==0 && Double.compare(Cheating.round(n_fin.Module(),12),1.0)==0) {
+ if (Double.compare(StatFunUtils.round(n_ini.Module(),12),1.0)==0 && Double.compare(StatFunUtils.round(n_fin.Module(),12),1.0)==0) {
return true;
}
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/Transformations.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/Transformations.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/ecal/Transformations.java Mon Mar 14 16:06:17 2016
@@ -1,161 +1,168 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.hps.detector.ecal.geo2015.ecal;
-
-
-import org.hps.detector.ecal.geo2015.geoutils.Vector;
-import org.hps.detector.ecal.geo2015.base.DataLoader;
-import org.hps.detector.ecal.geo2015.crystal.Crystal;
-import org.hps.detector.ecal.geo2015.crystal.Geant4Position;
-
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.HashMap;
-
-/**
- * Class does all the transformations to rotate and translate the modules of ecal by given arguments from rel to it's nominal pos.
- * An issue is, that once a module is transformed, the non modified module map remains undefined
- * This needs to be fixed or not?
- * Has bunch of printouts for debuging, will be removed soon, I hope soon :/
- * @author SA
- */
-public class Transformations {
-
- public Vector transVec;
- public double[] rotation;
- private String module;// top or bottom or all
- private Vector CMvec_nom_top = new Vector(109.88, 230.79, 1008.73);
- private Vector CMvec_nom_bot = new Vector(109.88, -230.79, 1008.73);
-
- private Map<String, Crystal> crystalMap;
-
- public Transformations(String module, double [] trans , double [] rot){
- System.out.println(module);
- System.out.println("trans arg "+trans[0]+"\t"+trans[1]+"\t"+trans[2]);
- System.out.println("rot arg "+rot[0]+"\t"+rot[1]+"\t"+rot[2]);
- this.transVec = new Vector(trans);
- transVec.Print();
- this.rotation = rot;
- System.out.println("rotation "+this.rotation[0]+"\t"+this.rotation[1]+"\t"+this.rotation[2]);
- this.module = module;
- this.crystalMap = new HashMap<String, Crystal>();
- try{ this.makeTransformation();}
- catch(IOException e){System.err.print("Can't do transformations, for some reason "+crystalMap.size());}
- }
-
- public Map<String, Crystal> getCrystalMap() {
- return this.crystalMap;
- }
-
- private void makeTransformation() throws IOException{
- DataLoader data = new DataLoader();
-
- data.setSplitSimbol("\t");
- data.LoadData("/projet/nucleon2/annie/HPS/withHPS_Java/SENA/hps_trunk_dev/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt");
- System.out.println("Number of coloms read from the file = " + data.getNumberCols());
-
- Double[] N = data.getColumn(0);
- Double[] layer = data.getColumn(1);
- Double[] col = data.getColumn(2);
- Double[] Xfront = data.getColumn(3);
- Double[] Yfront = data.getColumn(4);
- Double[] Zfront = data.getColumn(5);
- Double[] Xback = data.getColumn(6);
- Double[] Yback = data.getColumn(7);
- Double[] Zback = data.getColumn(8);
-
- // data.Print();
- Vector[] frontXYZ = new Vector[N.length];
- Vector[] backXYZ = new Vector[N.length];
-
- Vector CMvec_nom = new Vector();
-
- /* File wfile = new File("../data/output_relTarget.txt");
- FileWriter fw = new FileWriter(wfile.getAbsoluteFile());
- BufferedWriter bw = new BufferedWriter(fw);
- bw.write("#column /t #layer /t #front_faceX /t #front_faceY /t #front_faceZ /t #back_faceX /t #back_faceY /t #back_faceZ \n");
-*/
- // translate the coordinate system to CM
- for (int loop = 0; loop < N.length; loop++) {
-
-
- if (this.module.compareToIgnoreCase("bottom")==0 && layer[loop] > 0) {
- //crystalMap.put(String.format("c%d:l%d", col[loop].intValue(), layer[loop].intValue()),
- // new Crystal(col[loop].intValue(), layer[loop].intValue(),
- // new Geant4Position(frontXYZ[loop], backXYZ[loop])));
- continue;
- } else if (this.module.compareToIgnoreCase("top")==0 && layer[loop] < 0) {
- //crystalMap.put(String.format("c%d:l%d", col[loop].intValue(), layer[loop].intValue()),
- // new Crystal(col[loop].intValue(), layer[loop].intValue(),
- // new Geant4Position(frontXYZ[loop], backXYZ[loop])));
- continue;
- }
- frontXYZ[loop] = new Vector(Xfront[loop], Yfront[loop], Zfront[loop]);
- backXYZ[loop] = new Vector(Xback[loop], Yback[loop], Zback[loop]);
-
- System.out.println("Initial position");
- frontXYZ[loop].Print();
- backXYZ[loop].Print();
-
- if (layer[loop] > 0) {
-
- CMvec_nom = CMvec_nom_top;
- } else if (layer[loop] < 0) {
- CMvec_nom = CMvec_nom_bot;
- }
-
- // translate by the vector = center of coordinate system, I mean
- // where the ecal is.
- frontXYZ[loop] = frontXYZ[loop].TranslateBy(CMvec_nom.getOpposite());
- backXYZ[loop] = backXYZ[loop].TranslateBy(CMvec_nom.getOpposite());
- CMvec_nom.Print();
- System.out.println("after translation to CM COO-system");
- // frontXYZ[loop].Print();
- // backXYZ[loop].Print();
-
- /// Rotate the modules by angle calc from suvey data
- frontXYZ[loop] = frontXYZ[loop].RotateBy(this.rotation[0], this.rotation[1], this.rotation[2]);
- backXYZ[loop] = backXYZ[loop].RotateBy(this.rotation[0], this.rotation[1], this.rotation[2]);
-
- System.out.println("after module plane rotation");
- //frontXYZ[loop].Print();
- //backXYZ[loop].Print();
-
- // Translate modules by the translation vector the diff of CM
- frontXYZ[loop] = frontXYZ[loop].TranslateBy(transVec);
- backXYZ[loop] = backXYZ[loop].TranslateBy(transVec);
-
- System.out.println("after translation by survey shift");
- // frontXYZ[loop].Print();
- // backXYZ[loop].Print();
-
- /// Translate back to initial coordinate system
- frontXYZ[loop] = frontXYZ[loop].TranslateBy(CMvec_nom);
- backXYZ[loop] = backXYZ[loop].TranslateBy(CMvec_nom);
- System.out.println("after translation back to initial system");
- frontXYZ[loop].Print();
- backXYZ[loop].Print();
-
- /*bw.write(String.valueOf(col[loop].intValue()) + "\t" + String.valueOf(layer[loop].intValue()) + "\t"
- + String.valueOf(frontXYZ[loop].x) + "\t" + String.valueOf(frontXYZ[loop].y) + "\t"
- + String.valueOf(frontXYZ[loop].z) + "\t" + String.valueOf(backXYZ[loop].x) + "\t"
- + String.valueOf(backXYZ[loop].y) + "\t" + String.valueOf(backXYZ[loop].z) + "\n");*/
-
- if(frontXYZ[loop]==null || backXYZ[loop]==null)
- System.err.println("The vectors are 0? really? Should never happen");
-
- Geant4Position g4pos = new Geant4Position(frontXYZ[loop], backXYZ[loop]);
-
- crystalMap.put(String.format("c%d:l%d", col[loop].intValue(), layer[loop].intValue()),
- new Crystal(col[loop].intValue(), layer[loop].intValue(), g4pos));
- System.out.println("icol = "+col[loop].intValue()+" ilay = "+layer[loop].intValue());
- g4pos.Print();
- }
- System.err.println("Number of map content Transformations "+crystalMap.size());
-
- }
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.hps.detector.ecal.geo2015.ecal;
+
+
+import org.hps.detector.ecal.geo2015.geoutils.Vector;
+import org.hps.detector.ecal.geo2015.base.DataLoader;
+import org.hps.detector.ecal.geo2015.crystal.Crystal;
+import org.hps.detector.ecal.geo2015.crystal.Geant4Position;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * Class does all the transformations to rotate and translate the modules of ecal by given arguments from rel to it's nominal pos.
+ * An issue is, that once a module is transformed, the non modified module map remains undefined
+ * This needs to be fixed or not?
+ * Has bunch of printouts for debuging, will be removed soon, I hope soon :/
+ * @author SA
+ */
+public class Transformations {
+
+ public Vector transVec;
+ public double[] rotation;
+ private String module;// top or bottom or all
+ private Vector CMvec_nom_top = new Vector(109.88, 230.79, 1008.73);
+ private Vector CMvec_nom_bot = new Vector(109.88, -230.79, 1008.73);
+
+ private Map<String, Crystal> crystalMap;
+
+ public Transformations(String module, double [] trans , double [] rot){
+ System.out.println(module);
+ System.out.println("trans arg "+trans[0]+"\t"+trans[1]+"\t"+trans[2]);
+ System.out.println("rot arg "+rot[0]+"\t"+rot[1]+"\t"+rot[2]);
+ this.transVec = new Vector(trans);
+ transVec.Print();
+ this.rotation = rot;
+ System.out.println("rotation "+this.rotation[0]+"\t"+this.rotation[1]+"\t"+this.rotation[2]);
+ this.module = module;
+ this.crystalMap = new HashMap<String, Crystal>();
+ try{ this.makeTransformation();}
+ catch(IOException e){System.err.print("Can't do transformations, for some reason "+crystalMap.size());}
+ }
+
+ public Map<String, Crystal> getCrystalMap() {
+ return this.crystalMap;
+ }
+
+ private void makeTransformation() throws IOException{
+ DataLoader data = new DataLoader();
+
+ data.setSplitSimbol("\t");
+ data.LoadData("/projet/nucleon2/annie/HPS/withHPS_Java/SENA/hps_trunk_dev/HPSJAVA_409anothercopy02_02_2016/detector-model/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt");
+ System.out.println("FILE PATHHHHHH "+ ( new File(".").getAbsolutePath().toString() ) );
+ System.out.println("FILE PATH11111 "+ System.getProperty("user.dir")+"/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt");
+
+ //data.LoadData(System.getProperty("user.dir")+"/src/main/java/org/hps/detector/ecal/geo2015/data/Crystal_COORDINATES_relTarget.txt");
+ //data.LoadData(FileSystems.getDefault().getPath("data", "Crystal_COORDINATES_relTarget.txt").toString());
+ System.out.println("Number of coloms read from the file = " + data.getNumberCols());
+
+ Double[] N = data.getColumn(0);
+ Double[] layer = data.getColumn(1);
+ Double[] col = data.getColumn(2);
+ Double[] Xfront = data.getColumn(3);
+ Double[] Yfront = data.getColumn(4);
+ Double[] Zfront = data.getColumn(5);
+ Double[] Xback = data.getColumn(6);
+ Double[] Yback = data.getColumn(7);
+ Double[] Zback = data.getColumn(8);
+
+ // data.Print();
+ Vector[] frontXYZ = new Vector[N.length];
+ Vector[] backXYZ = new Vector[N.length];
+
+ Vector CMvec_nom = new Vector();
+
+ /* File wfile = new File("../data/output_relTarget.txt");
+ FileWriter fw = new FileWriter(wfile.getAbsoluteFile());
+ BufferedWriter bw = new BufferedWriter(fw);
+ bw.write("#column /t #layer /t #front_faceX /t #front_faceY /t #front_faceZ /t #back_faceX /t #back_faceY /t #back_faceZ \n");
+*/
+ // translate the coordinate system to CM
+ for (int loop = 0; loop < N.length; loop++) {
+
+
+ if (this.module.compareToIgnoreCase("bottom")==0 && layer[loop] > 0) {
+ //crystalMap.put(String.format("c%d:l%d", col[loop].intValue(), layer[loop].intValue()),
+ // new Crystal(col[loop].intValue(), layer[loop].intValue(),
+ // new Geant4Position(frontXYZ[loop], backXYZ[loop])));
+ continue;
+ } else if (this.module.compareToIgnoreCase("top")==0 && layer[loop] < 0) {
+ //crystalMap.put(String.format("c%d:l%d", col[loop].intValue(), layer[loop].intValue()),
+ // new Crystal(col[loop].intValue(), layer[loop].intValue(),
+ // new Geant4Position(frontXYZ[loop], backXYZ[loop])));
+ continue;
+ }
+ frontXYZ[loop] = new Vector(Xfront[loop], Yfront[loop], Zfront[loop]);
+ backXYZ[loop] = new Vector(Xback[loop], Yback[loop], Zback[loop]);
+
+ System.out.println("Initial position");
+ frontXYZ[loop].Print();
+ backXYZ[loop].Print();
+
+ if (layer[loop] > 0) {
+ CMvec_nom = CMvec_nom_top;
+ } else if (layer[loop] < 0) {
+ CMvec_nom = CMvec_nom_bot;
+ }
+
+ // translate by the vector = center of coordinate system, I mean
+ // where the ecal is.
+ frontXYZ[loop] = frontXYZ[loop].TranslateBy(CMvec_nom.getOpposite());
+ backXYZ[loop] = backXYZ[loop].TranslateBy(CMvec_nom.getOpposite());
+ //frontXYZ[loop] = frontXYZ[loop].TranslateBy(CMvec_nom);
+ //backXYZ[loop] = backXYZ[loop].TranslateBy(CMvec_nom);
+
+ CMvec_nom.Print();
+ System.out.println("after translation to CM COO-system");
+ // frontXYZ[loop].Print();
+ // backXYZ[loop].Print();
+
+ /// Rotate the modules by angle calc from suvey data
+ frontXYZ[loop] = frontXYZ[loop].RotateBy(this.rotation[0], this.rotation[1], this.rotation[2]);
+ backXYZ[loop] = backXYZ[loop].RotateBy(this.rotation[0], this.rotation[1], this.rotation[2]);
+
+ System.out.println("after module plane rotation");
+ //frontXYZ[loop].Print();
+ //backXYZ[loop].Print();
+
+ // Translate modules by the translation vector the diff of CM
+ frontXYZ[loop] = frontXYZ[loop].TranslateBy(transVec);
+ backXYZ[loop] = backXYZ[loop].TranslateBy(transVec);
+
+ System.out.println("after translation by survey shift");
+ // frontXYZ[loop].Print();
+ // backXYZ[loop].Print();
+
+ /// Translate back to initial coordinate system
+ frontXYZ[loop] = frontXYZ[loop].TranslateBy(CMvec_nom);
+ backXYZ[loop] = backXYZ[loop].TranslateBy(CMvec_nom);
+ System.out.println("after translation back to initial system");
+ frontXYZ[loop].Print();
+ backXYZ[loop].Print();
+
+ /*bw.write(String.valueOf(col[loop].intValue()) + "\t" + String.valueOf(layer[loop].intValue()) + "\t"
+ + String.valueOf(frontXYZ[loop].x) + "\t" + String.valueOf(frontXYZ[loop].y) + "\t"
+ + String.valueOf(frontXYZ[loop].z) + "\t" + String.valueOf(backXYZ[loop].x) + "\t"
+ + String.valueOf(backXYZ[loop].y) + "\t" + String.valueOf(backXYZ[loop].z) + "\n");*/
+
+ if(frontXYZ[loop]==null || backXYZ[loop]==null)
+ System.err.println("The vectors are 0? really? Should never happen");
+
+ Geant4Position g4pos = new Geant4Position(frontXYZ[loop], backXYZ[loop]);
+
+ crystalMap.put(String.format("c%d:l%d", col[loop].intValue(), layer[loop].intValue()),
+ new Crystal(col[loop].intValue(), layer[loop].intValue(), g4pos));
+ System.out.println("icol = "+col[loop].intValue()+" ilay = "+layer[loop].intValue());
+ g4pos.Print();
+ }
+ System.err.println("Number of map content Transformations "+crystalMap.size());
+
+ }
+}
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/geoutils/Vector.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/geoutils/Vector.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/hps/detector/ecal/geo2015/geoutils/Vector.java Mon Mar 14 16:06:17 2016
@@ -6,7 +6,7 @@
package org.hps.detector.ecal.geo2015.geoutils;
-import org.hps.detector.ecal.geo2015.base.Cheating;
+import org.hps.detector.ecal.geo2015.base.StatFunUtils;
/**
*Define Vector in a 3D coordinate system
@@ -56,7 +56,7 @@
public boolean isUnitary(){
- return (Double.compare(Cheating.round(this.Module(),12), 1.0)==0);
+ return (Double.compare(StatFunUtils.round(this.Module(),12), 1.0)==0);
}
///Vector Module
@@ -133,10 +133,10 @@
// System.out.println(Math.acos(this.ScaliarM(vec2)/(this.Module()*vec2.Module())));
double cosAlpha = this.ScaliarM(vec2) / (this.Module() * vec2.Module());
- if (Double.compare(Cheating.round(cosAlpha,12),1.0)==0) {
+ if (Double.compare(StatFunUtils.round(cosAlpha,12),1.0)==0) {
cosAlpha = 1.0;
}
- else if (Double.compare(Cheating.round(cosAlpha,12),-1.0)==0) {
+ else if (Double.compare(StatFunUtils.round(cosAlpha,12),-1.0)==0) {
cosAlpha = -1.0;
}
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSEcal4Converter.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSEcal4Converter.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSEcal4Converter.java Mon Mar 14 16:06:17 2016
@@ -1,14 +1,12 @@
package org.lcsim.detector.converter.compact;
-import java.util.ArrayList;
-import java.util.List;
+
import java.util.Map;
import java.util.logging.Logger;
import org.hps.detector.ecal.geo2015.crystal.Crystal;
import org.hps.detector.ecal.geo2015.ecal.Transformations;
-import org.hps.detector.ecal.CrystalRange;
import org.hps.detector.ecal.EcalCrystal;
import org.hps.detector.ecal.HPSEcalDetectorElement;
import org.jdom.DataConversionException;
@@ -173,7 +171,8 @@
final ITranslation3D iposBot = new Translation3D(centerxyz[0], centerxyz[1], centerxyz[2]);
final IRotation3D irotBot = new RotationGeant(thetaxyz[0], thetaxyz[1], thetaxyz[2]-zrot_cry); // thetaxyz[2]-zrot_cry= the compound rotation for the Psie
-
+ //final IRotation3D irotBot = new RotationGeant(thetaxyz[0], thetaxyz[1], thetaxyz[2]+zrot_cry); // thetaxyz[2]+zrot_cry= the compound rotation for the Psie
+
// Place the crystal.
final IPhysicalVolume CrystalPlacement = new PhysicalVolume(new Transform3D(iposBot, irotBot), baseName + crystaln, crystalLogVol, mom, crystaln);
this.createDetectorElement(detector, subdet, CrystalPlacement, ix, iy);
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4.java Mon Mar 14 16:06:17 2016
@@ -78,6 +78,7 @@
// Setup crystal logical volume.
+ //dy1=dx1=1.00; dy2=dx2=20.00; dz=50;
Trapezoid crystalTrap = new Trapezoid("crystal_trap", dx1, dx2, dy1, dy2, dz);
Volume crystalLogVol = new Volume("crystal_volume", crystalTrap, lcdd.getMaterial(materialName));
crystalLogVol.setSensitiveDetector(sens);
@@ -171,8 +172,8 @@
}
// Transform of crystal.
- Position ipos = new Position(baseName + "_pos_pos_bot", centerxyz[0], centerxyz[1], centerxyz[2]);
- Rotation irot = new Rotation(baseName + "_rot_pos_bot", thetaxyz[0], thetaxyz[1], thetaxyz[2]-zrot_cry);
+ Position ipos = new Position(baseName + "_pos", centerxyz[0], centerxyz[1], centerxyz[2]);
+ Rotation irot = new Rotation(baseName + "_rot", thetaxyz[0], thetaxyz[1], thetaxyz[2]-zrot_cry);
define.addPosition(ipos);
define.addRotation(irot);
Modified: java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/subdetector/HPSEcal4.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/subdetector/HPSEcal4.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/main/java/org/lcsim/geometry/subdetector/HPSEcal4.java Mon Mar 14 16:06:17 2016
@@ -1,5 +1,20 @@
package org.lcsim.geometry.subdetector;
-public class HPSEcal4 {
+import org.jdom.Element;
+import org.jdom.JDOMException;
-}
+/**
+ * Reconstruction version of HPS ECal with crystal array.
+ *
+ * @author Jeremy McCormick <[log in to unmask]>
+ * @author Timothy Nelson <[log in to unmask]>
+ * @version $Id: HPSEcal4.java,v 1.3 2012/04/30 18:04:38 jeremy Exp $
+ */
+//public class HPSEcal4
+public class HPSEcal4 extends HPSEcal3{
+
+ HPSEcal4(Element node) throws JDOMException
+ {
+ super(node);
+ }
+}
Modified: java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/detector/converter/compact/HPSEcal4ConverterTest.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/detector/converter/compact/HPSEcal4ConverterTest.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/detector/converter/compact/HPSEcal4ConverterTest.java Mon Mar 14 16:06:17 2016
@@ -10,6 +10,7 @@
import junit.framework.TestSuite;
import org.lcsim.detector.converter.compact.HPSEcal4Converter;
+import org.lcsim.geometry.subdetector.HPSEcal4;
import org.lcsim.geometry.Detector;
import org.lcsim.geometry.GeometryReader;
Modified: java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4LCDDTest.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4LCDDTest.java (original)
+++ java/branches/HPSJAVA-409/detector-model/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSEcal4LCDDTest.java Mon Mar 14 16:06:17 2016
@@ -34,4 +34,4 @@
OutputStream out = new BufferedOutputStream(new FileOutputStream(new TestOutputFile("HPSEcal4Test.lcdd")));
new Main().convert("HPSEcal4Test",in,out);
}
- }
+ }
Added: java/branches/HPSJAVA-409/detector-model/src/test/resources/org/lcsim/geometry/subdetector/HPSEcal4Test.xml
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/test/resources/org/lcsim/geometry/subdetector/HPSEcal4Test.xml (added)
+++ java/branches/HPSJAVA-409/detector-model/src/test/resources/org/lcsim/geometry/subdetector/HPSEcal4Test.xml Mon Mar 14 16:06:17 2016
@@ -0,0 +1,67 @@
+<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
+ <info name="HPSEcal4Test" />
+ <define>
+ <!-- world volume -->
+ <constant name="world_side" value="10000.0*cm" />
+ <constant name="world_x" value="world_side" />
+ <constant name="world_y" value="world_side" />
+ <constant name="world_z" value="world_side" />
+ <!-- tracking region -->
+ <constant name="tracking_region_radius" value="200.0*cm" />
+ <constant name="tracking_region_min" value="5.0*cm" />
+ <constant name="tracking_region_zmax" value="100.0*cm" />
+ <!-- ECal placement parameters -->
+ <constant name="beam_angle" value="0.03052"/>
+ <constant name="ecal_front" value="13.3/2*mm" />
+ <constant name="ecal_back" value="16/2*mm" />
+ <constant name="ecal_z" value="160/2*mm" />
+ <constant name="ecal_dface" value="139.3*cm"/>
+ <!-- ECal Modules translation parameters -->
+ <constant name="top_tr_x" value="-0.710000000000008"/>
+ <constant name="top_tr_y" value="2.7249999999999943"/>
+ <constant name="top_tr_z" value="4.9375"/>
+ <constant name="bot_tr_x" value="-0.4049999999999727"/>
+ <constant name="bot_tr_y" value="-0.9124999999999659"/>
+ <constant name="bot_tr_z" value="2.6224999999999454"/>
+ <!-- ECal Modules rotation parameters(Rz(alpha)Ry(beta)Rx(gamma)) -->
+ <constant name="top_rot_alpha" value="0.00064964212772"/>
+ <constant name="top_rot_beta" value="0.0"/>
+ <constant name="top_rot_gamma" value="-0.00046882347412"/>
+ <constant name="bot_rot_alpha" value="0.0005150274940439"/>
+ <constant name="bot_rot_beta" value="0.0"/>
+ <constant name="bot_rot_gamma" value="0.0013469727279283583"/>
+ </define>
+ <materials>
+ <material name="LeadTungstate">
+ <D value="8.28" unit="g/cm3" />
+ <composite n="1" ref="Pb" />
+ <composite n="1" ref="W" />
+ <composite n="4" ref="O" />
+ </material>
+ </materials>
+ <detectors>
+
+
+
+ <detector id="13" name="Ecal" type="HPSEcal4" insideTrackingVolume="false" readout="EcalHits">
+ <comment>The crystal ECal</comment>
+ <material name="LeadTungstate" />
+ <dimensions x1="ecal_front" y1="ecal_front" x2="ecal_back" y2="ecal_back" z="ecal_z" />
+ <translations top_tr_x="top_tr_x" top_tr_y="top_tr_y" top_tr_z="top_tr_z" bot_tr_x="bot_tr_x" bot_tr_y="bot_tr_y" bot_tr_z="bot_tr_z" />
+ <rotations top_rot_alpha="top_rot_alpha" top_rot_beta="top_rot_beta" top_rot_gamma="top_rot_gamma" bot_rot_alpha="bot_rot_alpha" bot_rot_beta="bot_rot_beta" bot_rot_gamma="bot_rot_gamma" />
+ <layout beamgap="20.0*mm" nx="46" ny="5" dface="ecal_dface">
+ <remove ixmin="-10" ixmax="-2" iymin="-1" iymax="1" />
+ <top dx="ecal_dface*tan(beam_angle)" dy="0." dz="0."/>
+ <bottom dx="ecal_dface*tan(beam_angle)" dy="0." dz="0."/>
+ </layout>
+ </detector>
+
+
+ </detectors>
+ <readouts>
+ <readout name="EcalHits">
+ <segmentation type="GridXYZ" gridSizeX="0.0" gridSizeY="0.0" gridSizeZ="0.0" />
+ <id>system:6,side:-2,layer:4,ix:-8,iy:-6</id>
+ </readout>
+ </readouts>
+</lccdd>
|