dwvisser.monte
Class MicronDetector

java.lang.Object
  |
  +--dwvisser.monte.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.

Version:
Author:
dwvisser

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()
           
 int getStrip()
          If interstrip is true, then the event was between the returned strip and the returned strip + 1.
 boolean isHit(Direction dir)
           
static void main(java.lang.String[] args)
           
 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)

getStrip

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


getIncidence

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


getDistance

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


getInterStrip

public boolean getInterStrip()

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).


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


weight

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

Specified by:
weight in interface WeightingFunction

main

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