org.jscience.physics.nuclear.kinematics.montecarlo
Class MicronDetector

java.lang.Object
  extended by org.jscience.physics.nuclear.kinematics.montecarlo.MicronDetector
All Implemented Interfaces:
WeightingFunction

public class MicronDetector
extends java.lang.Object
implements WeightingFunction

This class represents the geometry of a Micron LEDA-type detector, to use for deciding if an virtual vector will hit and which strip.


Constructor Summary
MicronDetector(double z0, double theta)
          It is assumed that the detector is centered about phi=90 degrees.
 
Method Summary
static Direction changePhi(Direction dir)
          Given a direction, returns a direction with modified phi so that associated direction is in the correct 72 degree window to possibly hit the detector(90-36 to 90+36, or 54 to 126).
static int getDetector(Direction dir)
          based on our convention of the bottom detector being det 4, detector numbers going down as one goes counter clockwise looking at the array from the target
 double getDistance()
          Returns distance to detector in mm.
 double getIncidence()
          Returns 1/cos(incidence angle).
 boolean getInterStrip()
          DOCUMENT ME!
 int getStrip()
          If interstrip is true, then the event was between the returned strip and the returned strip + 1.
 boolean isHit(Direction dir)
          DOCUMENT ME!
static void main(java.lang.String[] args)
          DOCUMENT ME!
 double weight(double x)
          Weighting for isotropic thetas in degrees.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MicronDetector

public MicronDetector(double z0,
                      double theta)
It is assumed that the detector is centered about phi=90 degrees. Unfortunately, the real array has detectors at -90 degrees, etc, so some care is needed in using this. See the changePhi and getDetector methods. This constructor specified the location along the z-axis of the virtual center of the detector. Zero would be the target, and positive numbers mean upstream of the target. Theta is the angle the normal vector of the detector plane makes with the beam axis (positive by definition). Alternatively, it is the angle that an initally flat array gets rotated forward to be in the lampshade configuration.

Parameters:
z0 - in mm
theta - in radians
Method Detail

isHit

public boolean isHit(Direction dir)
DOCUMENT ME!

Parameters:
dir - DOCUMENT ME!
Returns:
DOCUMENT ME!

getStrip

public int getStrip()
If interstrip is true, then the event was between the returned strip and the returned strip + 1.

Returns:
DOCUMENT ME!

getIncidence

public double getIncidence()
Returns 1/cos(incidence angle).

Returns:
DOCUMENT ME!

getDistance

public double getDistance()
Returns distance to detector in mm.

Returns:
DOCUMENT ME!

getInterStrip

public boolean getInterStrip()
DOCUMENT ME!

Returns:
DOCUMENT ME!

changePhi

public static Direction changePhi(Direction dir)
Given a direction, returns a direction with modified phi so that associated direction is in the correct 72 degree window to possibly hit the detector(90-36 to 90+36, or 54 to 126).

Parameters:
dir - DOCUMENT ME!
Returns:
DOCUMENT ME!

getDetector

public static int getDetector(Direction dir)
based on our convention of the bottom detector being det 4, detector numbers going down as one goes counter clockwise looking at the array from the target

Parameters:
dir - DOCUMENT ME!
Returns:
DOCUMENT ME!

weight

public double weight(double x)
Weighting for isotropic thetas in degrees.

Specified by:
weight in interface WeightingFunction
Parameters:
x - DOCUMENT ME!
Returns:
DOCUMENT ME!

main

public static void main(java.lang.String[] args)
DOCUMENT ME!

Parameters:
args - DOCUMENT ME!