FEDRA emulsion software from the OPERA Collaboration
|
#include <EdbTrackFitter.h>
Public Member Functions | |
float | Chi2SegM (EdbSegP s1, EdbSegP s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2) |
float | Chi2SegMCS (const EdbSegP &s1, const EdbSegP &s2) |
EdbTrackFitter () | |
int | FitTrackLine (const EdbTrackP &tr, float &x, float &y, float &z, float &tx, float &ty, float &w) |
int | FitTrackLine (EdbTrackP &tr) |
float | PMS_KF (EdbTrackP &t, float p0=10., float probbest=0.5) |
void | Print () |
double | ProbSegMCS (EdbSegP *s1, EdbSegP *s2) |
void | SetDefaultBrick () |
void | SetNsegMax (int nseg) |
bool | SplitTrack (EdbTrackP &t, EdbTrackP &t1, int isplit) |
int | SplitTrackByKink (EdbTrackP *t, TObjArray &tracks, float maxkink) |
virtual | ~EdbTrackFitter () |
Static Public Member Functions | |
static float | Chi2ACP (EdbSegP s1, EdbSegP s2, EdbScanCond &cond) |
static float | Chi2ASeg (EdbSegP &s1, EdbSegP &s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2) |
static float | Chi2ASegLL (EdbSegP &s1, EdbSegP &s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2) |
static float | Chi2PSeg (EdbSegP &s1, EdbSegP &s2, EdbSegP &seg, EdbScanCond &cond1, EdbScanCond &cond2) |
static float | Chi2Seg (EdbSegP *s1, EdbSegP *s2) |
static float | MaxChi2Seg (EdbTrackP &tr) |
static float | MaxKink (EdbTrackP &tr) |
static float | MeanChi2Seg (EdbTrackP &tr) |
static float | MeanKink (EdbTrackP &tr) |
static int | RMSprojXY (EdbTrackP &tr, float &ex, float &ey) |
static float | Theta (EdbSegP &s, EdbSegP &s1) |
Public Attributes | |
bool | eDE_correction |
take into account the energy loss or not More... | |
float | eM |
mass of the particle (if negative - use the mass setted in the track) More... | |
float | ePcut |
minimal momentum? More... | |
float | ePdef |
default momentum More... | |
float | eTPb |
? More... | |
float | eX0 |
rad length of the media [microns] More... | |
Private Attributes | |
int | eNsegMax |
max number of segments (for arrays allocation) More... | |
EdbTrackFitter::EdbTrackFitter | ( | ) |
|
inlinevirtual |
|
static |
Exact copy of the function traditionally used for the linking of couples
fast estimation of chi2 in the special case when the position
errors of segments are negligible in respect to angular errors:
sigmaXY/dz << sigmaTXY
application: up/down linking, alignment (offset search)
All calculation are done in the track plane which remove the
dependency of the polar angle (phi)
|
static |
fast estimation of chi2 in the special case when the position
errors of segments are negligible in respect to angular errors:
sigmaXY/dz << sigmaTXY
application: up/down linking,
All calculation are done in the track plane which remove the
dependency of the polar angle (phi)
|
static |
fast estimation of chi2 in the special case when the position
errors of segments are negligible in respect to angular errors:
sigmaXY/dz << sigmaTXY
application: up/down linking,
All calculation are done in the track plane which remove the
dependency of the polar angle (phi)
In this function the Likelihood estimated by Andrey and stored in s1.eChi2 and s2.eChi2 are used
|
static |
Estimation of chi2 using the covariance matrix
Return value: Prob: is Chi2 probability (area of the tail of Chi2-distribution)
If we accept couples with Prob >= ProbMin then ProbMin is the
probability to reject the good couple
The mass and momentum of the tr are used for multiple scattering estimation
float EdbTrackFitter::Chi2SegM | ( | EdbSegP | s1, |
EdbSegP | s2, | ||
EdbSegP & | s, | ||
EdbScanCond & | cond1, | ||
EdbScanCond & | cond2 | ||
) |
full estimation of chi2 without covariance matrix - the result seems to be identical to Chi2Seg
VT: 19-Sep-2007
Input: 2 segments passed by value because them will be modified during calculations
Return value - the result of the fit - passed by value
1) calcualte the mean direction vector for the 2-seg group
double DZemul=s1.DZem()+s2.DZem();
Use hardcoded value because EdbSegP::DZem() contains sum of chi2 for microtracks.
int EdbTrackFitter::FitTrackLine | ( | const EdbTrackP & | tr, |
float & | x, | ||
float & | y, | ||
float & | z, | ||
float & | tx, | ||
float & | ty, | ||
float & | w | ||
) |
track fit by averaging of segments parameters and return the mean values
int EdbTrackFitter::FitTrackLine | ( | EdbTrackP & | tr | ) |
|
static |
return the maximal seg-to-seg chi2 along the track
|
static |
return the maximal seg-to-seg kink theta angle
|
static |
|
static |
float EdbTrackFitter::PMS_KF | ( | EdbTrackP & | t, |
float | p0 = 10. , |
||
float | probbest = 0.5 |
||
) |
select track momentum in a way to have the given chi2-probablity calculated by KF
void EdbTrackFitter::Print | ( | ) |
|
static |
fit track by straight line using coordinates only and return RMS's
void EdbTrackFitter::SetDefaultBrick | ( | ) |
|
inline |
split track t in 2 at the point isplit - will be the first segment of of t1
int EdbTrackFitter::SplitTrackByKink | ( | EdbTrackP * | t, |
TObjArray & | tracks, | ||
float | maxkink | ||
) |
split track t in several tracks accourding to maxkink
return total number of tracks after splitting;
after splitting all new tracks added to the array "tracks"
bool EdbTrackFitter::eDE_correction |
take into account the energy loss or not
float EdbTrackFitter::eM |
mass of the particle (if negative - use the mass setted in the track)
|
private |
max number of segments (for arrays allocation)
float EdbTrackFitter::ePcut |
minimal momentum?
float EdbTrackFitter::ePdef |
default momentum
float EdbTrackFitter::eTPb |
?
float EdbTrackFitter::eX0 |
rad length of the media [microns]