hep.lcd.util.swim
Class Helix

java.lang.Object
  |
  +--hep.lcd.util.swim.Helix

public class Helix
extends Object

Given a particle of initial momentum, position and charge (p, r0, and iq), calculates its trajectory in a uniform magnetic field in the z-direction and determines its point of intersection (r_hit) with a cylinder centered at the origin with axis parallel to the z-axis and with ends. Trajectories are parameterized as fn of path length, s. There are no approximations made. Units are Tesla, cm, GeV/c

Author:
Ray Frey - Javaized by Tony Johnson
Source Code:
Helix.java

Field Summary
static int PLANE_MINUSZ
           
static int PLANE_PLUSZ
           
static int PLANE_R
           
static int PROBLEM
           
 
Constructor Summary
Helix(double B, double r_cyl, double z_pl)
          Create a Helix swimmer
 
Method Summary
 double[] getCenter()
           
 double[] getIntersect()
           
 int getPlane()
           
 double getRadius()
           
 boolean isFlipped()
          Status of curvature flipping
 void setCurvatureFlip(boolean isFlipped)
          Flag for flipped curvature.
 void swim(double[] p, double[] r0_in, int iq)
           
 void swim(double[] p, double[] r0_in, int iq, boolean isFlipped)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROBLEM

public static final int PROBLEM

PLANE_R

public static final int PLANE_R

PLANE_PLUSZ

public static final int PLANE_PLUSZ

PLANE_MINUSZ

public static final int PLANE_MINUSZ
Constructor Detail

Helix

public Helix(double B,
             double r_cyl,
             double z_pl)
Create a Helix swimmer
Parameters:
B - field strength; uniform, solenoidal, directed along z-axis
r_cyl - radius of cylinder
z_pl - z-coordinate of planes at end of cylinder (assumes symmetric placement at +/- z )
Method Detail

getIntersect

public double[] getIntersect()
Returns:
position at point of intersection (x,y,z)

getPlane

public int getPlane()
Returns:
cyl/plane which is first hit

getCenter

public double[] getCenter()

getRadius

public double getRadius()

swim

public void swim(double[] p,
                 double[] r0_in,
                 int iq,
                 boolean isFlipped)
Parameters:
p - 3-momentum (px,py,pz)
r0 - initial position (x0,y0,z0)
iq - charge iq = q/|e| = +/- 1
isFlipped - curvature flipping option
See Also:
setCurvatureFlip(boolean)

swim

public void swim(double[] p,
                 double[] r0_in,
                 int iq)
Parameters:
p - 3-momentum (px,py,pz)
r0 - initial position (x0,y0,z0)
iq - charge iq = q/|e| = +/- 1

setCurvatureFlip

public void setCurvatureFlip(boolean isFlipped)
Flag for flipped curvature.
This enables us to compare this Helix with GISMO hits for example.
Parameters:
isFlipped - true if curvatures should be flipped (default: with flipping)
See Also:
isFlipped()

isFlipped

public boolean isFlipped()
Status of curvature flipping
Returns:
true if curvature flipping option is on
See Also:
setCurvatureFlip(boolean)


The LCD Group