Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@
import org.jlab.rec.ahdc.PreCluster.PreCluster;

import java.util.ArrayList;
import org.jlab.geom.detector.alert.AHDC.AlertDCFactory;
import org.jlab.geom.prim.Line3D;
import org.jlab.geom.prim.Point3D;

/**
* Cluster are compose by 2 PreCluster on layer with a different stereo angle
*/
public class Cluster {

private int _trackId = -1;
private double _StereoAngle = 20.0;
private double _DeltaZ = 300.0;
private double _Zoffset = 150.0;
private double _StereoAngle = 20.0;//not used
private double _DeltaZ = 300;//not used
private double _Zoffset = 150;//not used

private double _Radius;
private double _Phi;
Expand All @@ -26,14 +29,38 @@ public class Cluster {
private double _V;
private ArrayList<PreCluster> _PreClusters_list;

private static Line3D representativeLine(PreCluster pc) {
if (pc == null || pc.get_hits_list() == null || pc.get_hits_list().isEmpty()) {
return null;
}
Hit h = pc.get_hits_list().get(0);
return h.getLine();
}
public static double getStereoAngleDeg(int superlayerId) {
switch (superlayerId) {
case 0: return -19.1489;
case 1: return -19.2857;
case 2: return -20.0;
case 3: return -20.6897;
case 4: return -20.0;
default: return -20.0;
}
}

public Cluster(PreCluster precluster, PreCluster other_precluster) {
this._PreClusters_list = new ArrayList<>();
_PreClusters_list.add(precluster);
_PreClusters_list.add(other_precluster);
this._Radius = (precluster.get_Radius() + other_precluster.get_Radius()) / 2;

this._Z = ((other_precluster.get_Phi() - precluster.get_Phi()) / (Math.toRadians(_StereoAngle) * Math.pow(-1, precluster.get_Super_layer()-1) - Math.toRadians(_StereoAngle) * Math.pow(-1, other_precluster.get_Super_layer()-1))) * _DeltaZ - _Zoffset;
Line3D line1 = representativeLine(precluster);
Point3D end1 = line1.end();
Point3D start1 = line1.origin();
double DeltaZ = end1.z()-start1.z();
double Zref = end1.z();
double StereoAnglep = getStereoAngleDeg(precluster.get_Super_layer());
double StereoAngleo = getStereoAngleDeg(other_precluster.get_Super_layer());
this._Z = ((precluster.get_Phi() - other_precluster.get_Phi()) / (Math.toRadians(StereoAnglep) * Math.pow(-1, precluster.get_Super_layer()-1) - Math.toRadians(StereoAngleo) * Math.pow(-1, other_precluster.get_Super_layer()-1))) * DeltaZ + Zref;

double x1 = -precluster.get_Radius() * Math.sin(precluster.get_Phi());
double y1 = -precluster.get_Radius() * Math.cos(precluster.get_Phi());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,10 @@ private static Line3D buildShiftedWireLine(Hit h, Vec2 tangentXY) {
double dz = e.z() - o.z();

// New origin: (tangent.x, tangent.y, original_z)
Point3D oShift = new Point3D(tangentXY.x, tangentXY.y, o.z());
Point3D eShift = new Point3D(oShift.x() + dx, oShift.y() + dy, oShift.z() + dz);

//Point3D oShift = new Point3D(tangentXY.x, tangentXY.y, o.z());
//Point3D eShift = new Point3D(oShift.x() + dx, oShift.y() + dy, oShift.z() + dz);
Point3D eShift = new Point3D(tangentXY.x, tangentXY.y, e.z());
Point3D oShift = new Point3D(tangentXY.x - dx, tangentXY.y - dy, e.z() - dz);
return new Line3D(oShift, eShift);
}

Expand Down
Loading