hep.lcd.recon.tracking
Class HelicalSwimmer

java.lang.Object
  |
  +--hep.lcd.recon.tracking.HelicalSwimmer

public class HelicalSwimmer
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:
Mike Ronan - generalized for track fitting modified by Nick Sinev March 1999 to get path length (needed for mult. scattering calc.) Nick's version of angles handling Modified by Nick Sinev June 10 1999 - added second intersection point calculations
Source Code:
HelicalSwimmer.java

Field Summary
 double B
           
static int PLANE_MINUSZ
           
static int PLANE_PLUSZ
           
static int PLANE_R
           
static int PROBLEM
           
 boolean trace
           
 
Constructor Summary
HelicalSwimmer()
          Create helical swimmer with some default parameters; (essentually not usable set)
HelicalSwimmer(double B, double r_cyl, double z_pl)
          Create a Helix swimmer
HelicalSwimmer(TrkParams params, double r_cyl, double z_pl)
          Create a Helix swimmer for the given trajectory
HelicalSwimmer(TrkParams params, double B, double r_cyl, double z_pl)
          Create a Helix swimmer for the given trajectory
 
Method Summary
 double[] getCenter()
           
 double[] getIntersect()
           
 double[] getIntersect2()
           
 double getLength()
           
 double getLength2()
           
 int getPlane()
           
 int getPlane2()
           
 double getRadius()
           
 double getSinXang()
           
 void setBField(double BField)
           
 void swim(double r_cyl)
           
 void swim(double[] p, double[] r0_in, int iq)
           
 void swim(double r_cyl, double z_pl)
           
 void swim(TrkParams params)
           
 void swim(TrkParams params, double r, double z)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

trace

public boolean trace

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

B

public double B
Constructor Detail

HelicalSwimmer

public HelicalSwimmer()
Create helical swimmer with some default parameters; (essentually not usable set)

HelicalSwimmer

public HelicalSwimmer(TrkParams params,
                      double B,
                      double r_cyl,
                      double z_pl)
Create a Helix swimmer for the given trajectory
Parameters:
params - - Track 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 )

HelicalSwimmer

public HelicalSwimmer(TrkParams params,
                      double r_cyl,
                      double z_pl)
Create a Helix swimmer for the given trajectory
Parameters:
params - - Track parameters
r_cyl - - radius of cylinder in cm
z_pl - - z-coordinate of planes at end of cylinder (assumes symmetric placement at +/- z )

HelicalSwimmer

public HelicalSwimmer(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

setBField

public void setBField(double BField)

getIntersect

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

getIntersect2

public double[] getIntersect2()

getPlane

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

getPlane2

public int getPlane2()

getCenter

public double[] getCenter()

getRadius

public double getRadius()

getLength

public double getLength()
Returns:
track length from initial point to intersection

getLength2

public double getLength2()

getSinXang

public double getSinXang()

swim

public void swim(double r_cyl)
Parameters:
r_cyl - cylinder to intercept

swim

public void swim(double r_cyl,
                 double z_pl)

swim

public void swim(TrkParams params)

swim

public void swim(TrkParams params,
                 double r,
                 double z)

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


The LCD Group