public class GarfieldTrack extends Object implements Track
GarfieldTrackFinder
::testGenericTrackFit()GarfieldHit
,
GarfieldHelix
Modifier and Type | Field and Description |
---|---|
(package private) static ConditionsListener |
_conListener |
private List<TrackState> |
_trackStates |
private double |
chi2 |
(package private) static double |
chi2NdfFitEnd |
int |
debugLevel |
(package private) static double |
emCalZ |
private double |
grade |
private boolean |
hasZ |
GarfieldHelix |
hel |
ArrayList |
hits |
private int |
ID |
private boolean |
isEndcap |
int |
lastLayer |
(package private) static int |
maxBarrelLayer |
(package private) static int |
maxEndcapLayer |
private double |
maxRadius |
private MCParticle |
mcParticle |
private boolean |
mcParticleIsKnown |
private double |
minRadius |
int |
ndf |
int |
nHits |
int |
nLayerMissed |
(package private) static int |
PARA_d0 |
(package private) static int |
PARA_kappa |
(package private) static int |
PARA_lambda |
(package private) static int |
PARA_phi0 |
(package private) static int |
PARA_z0 |
(package private) static double |
speedOfLight |
private String |
status |
private MipStub |
stub |
private boolean |
trackDone |
private double[] |
trackPara |
Constructor and Description |
---|
GarfieldTrack()
Default constructor.
|
GarfieldTrack(GarfieldTrack g)
Copy constructor.
|
GarfieldTrack(MipStub mStub,
int debugL)
Construct GarfieldTrack from a
MipStub . |
GarfieldTrack(Track standardTrack,
EventHeader event,
int debugLevel)
Construct GarfieldTrack from a standard hep.lcd Track.
Since hep.lcd.event.Track is not linked to hits,
and lacks other information used by K0S finder, Monte Carlo pointers
are used to construct a list of hits, and a fake MipStub created to
support fitting. |
Modifier and Type | Method and Description |
---|---|
void |
addHit(GarfieldHit h)
Add a new hit to this track.
Helix parameters are not changed, Chi2 is recalculated. |
void |
calculateChi2()
Chi-square from hits and - if MipStub exists - from mipstub to track matching.
|
void |
calculateHelixFromHits()
updated 03/23/05 to remove vcreation of new double,
and call to CircleFromPoints to calculate helix parameters for barrel tracks
|
double |
chi2Contrib(int i)
hit chiSquare contribution
|
void |
chi2FitIteration(double range,
int mode) |
void |
debug() |
double |
distanceCutValue() |
void |
dropHit(int i)
Drop a hit from this track.
Helix parameters are not changed, Chi2 is recalculated. |
boolean |
fastChi2Fit(int scale) |
private void |
findMCParticle() |
boolean |
fitSuccess()
Returns true if the track has been successfully fitted
|
boolean |
fullChi2Fit(double rangeMax,
int nIter) |
int |
getCharge() |
double |
getChi2()
Get the Chi Squared for the track fit
|
double |
getdEdx() |
double |
getdEdxError() |
int |
getEquivnHits() |
SymmetricMatrix |
getErrorMatrix()
Get the error matrix
|
double |
getGrade() |
int |
getHitID(int i) |
int |
getHitLayer(int i) |
double[] |
getHitPoint(int i) |
int |
getID() |
double |
getMaxR() |
MCParticle |
getMCParticle()
Returns MCParticle that produced tracker hits that are associated with
this track.
|
double |
getMinR() |
double[] |
getMipStubBase() |
double |
getMipStubBase(int i) |
double |
getMipStubKappa() |
double[] |
getMomentum() |
int |
getNdf() |
int |
getNDF()
Get the numbers of degrees of freedom for the fit
|
int |
getnHits() |
int |
getNumberOfStepovers() |
double |
getP(double bField) |
double |
getPara(String name)
gets track parameters
parameters refer to point of closest approach (pca) in the xy plane
magnetic field points along z direction
- getPara("kappa") gives curvature
- d0: impact parameter in xy plane - z0: impact parameter in z direction - lambda: tan lambda (dip angle) - phi0: phi direction at point of closest approach |
double |
getPoint(int i,
int j) |
double |
getPt(double bField)
transverse momentum Pt in GeV = 0.299..
|
double |
getPX() |
double |
getPY() |
double |
getPZ() |
double |
getRadiusOfInnermostHit() |
double[] |
getReferencePoint() |
double |
getReferencePointX() |
double |
getReferencePointY() |
double |
getReferencePointZ() |
String |
getStatus() |
int |
getStubMinLayer() |
int |
getStubNHits() |
int[] |
getSubdetectorHitNumbers() |
List<TrackerHit> |
getTrackerHits() |
double |
getTrackParameter(int param)
Get an individual track parameter
The track parameters for LCD are defined as follows
Index
Meaning
0
d0 = XY impact parameter
1
phi0
2
omega = 1/curv.radius (negative for negative tracks)
3
z0 = z of track origin (z impact parameter)
4
s = tan lambda
Parameters according to the L3 conventions
|
double[] |
getTrackParameters()
Get the track parameters as an array
|
List<Track> |
getTracks() |
List<TrackState> |
getTrackStates() |
int |
getType() |
boolean |
hasZMeasurement() |
static void |
initialize(Detector detector)
Initialization of static members.
|
boolean |
isDone() |
boolean |
isEndcap() |
boolean |
isPurged() |
boolean |
isReferencePointPCA() |
boolean |
isRejected() |
private double |
kappaError() |
void |
newCalculateHelixFromHits() |
boolean |
oldFullChi2Fit(double rangeMax,
int nIter) |
void |
purgeHits(double cutValue,
int nHitMin,
int nIter)
Throw avay hits that have worst chi2 until there are no hits left with contribution
to Chi2 above
cutValue , or until the number of hits on the track
falls below nHitMin . |
void |
purgeTrack() |
int |
q() |
void |
rejectTrack() |
void |
setDebugLevel(int i)
controls amount of debug text output and test histograms, =0 not output, >0 debug output
|
void |
setDone() |
double |
setGrade(double chi2Weight)
calculate grade of track
|
void |
setHasZ(boolean val) |
void |
setHelix(double[] pbase,
double[] p2) |
void |
setHelixBaseToPCA() |
void |
setID(int id) |
void |
setLastLayer(int i) |
void |
setRadii() |
void |
setStatus(String stat) |
void |
setTrackParameters()
finds point of closest approach in x,y plane with respect to 0,0,0
see also getPara() |
public ArrayList hits
public GarfieldHelix hel
private double[] trackPara
private double minRadius
private double maxRadius
private String status
private MipStub stub
private int ID
public int ndf
private double chi2
private double grade
public int lastLayer
public int nLayerMissed
private boolean isEndcap
private boolean hasZ
public int nHits
public int debugLevel
private boolean trackDone
private MCParticle mcParticle
private boolean mcParticleIsKnown
private List<TrackState> _trackStates
static int PARA_d0
static int PARA_phi0
static int PARA_kappa
static int PARA_z0
static int PARA_lambda
static int maxEndcapLayer
static int maxBarrelLayer
static double chi2NdfFitEnd
static double speedOfLight
static double emCalZ
static ConditionsListener _conListener
GarfieldTrack()
GarfieldTrack(Track standardTrack, EventHeader event, int debugLevel)
hep.lcd.event.Track
is not linked to hits,
and lacks other information used by K0S finder, Monte Carlo pointers
are used to construct a list of hits, and a fake MipStub created to
support fitting. This needs to be done better to fully integrate
garfield tracking into the full tracking algorithm - plan to do
it later, and hopefully with a better framework (org.lcsim ?).
For now, any methods requiring access to individual hits might not
work correctly if called for GarfieldTrack
object created with this constructor.GarfieldTrack(GarfieldTrack g)
public static void initialize(Detector detector)
org.lcsim.contrib.garfield.util.Const
has been initialized.public int getID()
public double getGrade()
public int getHitID(int i)
public double[] getHitPoint(int i)
public int getNumberOfStepovers()
public int getHitLayer(int i)
public double getPara(String name)
how to get pca from track parameter
x-coordinate pca_x = -d0 * sin(phi0)
// see also contrib/timb/mc/fast/tracking/DocaTrackParameters.java
x-coordinate pca_y = d0 * cos(phi0)
z-coordinate pca_z = z0
how to get helix direction at pca
dir-x =cos(phi0)
dir-y =sin(phi0)
dir-z =lambda
public String getStatus()
public int getnHits()
public int getStubMinLayer()
public int getEquivnHits()
public double getMinR()
public double getMaxR()
public double getChi2()
Track
getChi2
in interface Track
Track.getNDF()
public int getNdf()
public double getPt(double bField)
bField
- B field in Teslapublic double getP(double bField)
public boolean hasZMeasurement()
public boolean isPurged()
public boolean isRejected()
public boolean isDone()
public boolean isEndcap()
public int q()
public double getMipStubBase(int i)
public double[] getMipStubBase()
public double getMipStubKappa()
public int getStubNHits()
public void setID(int id)
public void setHasZ(boolean val)
public void setDebugLevel(int i)
public void setLastLayer(int i)
public void setDone()
public void setStatus(String stat)
public void setHelix(double[] pbase, double[] p2)
public void rejectTrack()
public void purgeTrack()
public void setRadii()
public double setGrade(double chi2Weight)
public void setTrackParameters()
public void purgeHits(double cutValue, int nHitMin, int nIter)
cutValue
, or until the number of hits on the track
falls below nHitMin
. Track is re-fit after removing each hit.public void addHit(GarfieldHit h)
public void dropHit(int i)
public void setHelixBaseToPCA()
public double distanceCutValue()
public void calculateHelixFromHits()
public void newCalculateHelixFromHits()
public double getPoint(int i, int j)
public void calculateChi2()
public double chi2Contrib(int i)
i
- hit number from 0 to nHits-1public boolean fullChi2Fit(double rangeMax, int nIter)
public boolean oldFullChi2Fit(double rangeMax, int nIter)
public boolean fastChi2Fit(int scale)
public void chi2FitIteration(double range, int mode)
private double kappaError()
public void debug()
public MCParticle getMCParticle()
private void findMCParticle()
public double[] getTrackParameters()
Track
getTrackParameters
in interface Track
Track.getTrackParameter(int)
public double getTrackParameter(int param)
Track
Index | Meaning |
---|---|
0 | d0 = XY impact parameter |
1 | phi0 |
2 | omega = 1/curv.radius (negative for negative tracks) |
3 | z0 = z of track origin (z impact parameter) |
4 | s = tan lambda |
getTrackParameter
in interface Track
param
- The index of the track parameterpublic double getdEdxError()
getdEdxError
in interface Track
public List<TrackerHit> getTrackerHits()
getTrackerHits
in interface Track
public int[] getSubdetectorHitNumbers()
getSubdetectorHitNumbers
in interface Track
public boolean fitSuccess()
Track
fitSuccess
in interface Track
public SymmetricMatrix getErrorMatrix()
Track
getErrorMatrix
in interface Track
Track.getTrackParameter(int)
public double[] getMomentum()
getMomentum
in interface Track
public int getNDF()
Track
getNDF
in interface Track
Track.getChi2()
public double getRadiusOfInnermostHit()
getRadiusOfInnermostHit
in interface Track
public boolean isReferencePointPCA()
isReferencePointPCA
in interface Track
public double[] getReferencePoint()
getReferencePoint
in interface Track
public double getReferencePointX()
getReferencePointX
in interface Track
public double getReferencePointY()
getReferencePointY
in interface Track
public double getReferencePointZ()
getReferencePointZ
in interface Track
public List<TrackState> getTrackStates()
getTrackStates
in interface Track
Copyright © 2016 Linear Collider Detector (LCD). All rights reserved.