FEDRA emulsion software from the OPERA Collaboration
|
#include <EdbPVRec.h>
Public Member Functions | |
EdbSegCouple * | AddSegCouple (int id1, int id2) |
int | Align (int alignFlag) |
void | CalculateAffXY (int alignFlag) |
void | CalculateAffXYZ (float z, int alignFlag) |
int | CheckSegmentsDuplication (EdbPattern *pat) |
float | Chi2A (EdbSegCouple *scp, int iprob=1) |
float | Chi2A (EdbSegP *s1, EdbSegP *s2, int iprob=1) |
float | Chi2KF (EdbSegCouple *scp) |
int | CHI2mode () const |
float | Chi2Pz0 (EdbSegCouple *scp) |
void | ClearSegCouples () |
EdbScanCond * | Cond () |
int | CutCHI2P (float chimax) |
int | DiffPat (EdbPattern *pat1, EdbPattern *pat2, Long_t vdiff[4]) |
int | DiffPatCell (TIndexCell *cel1, TIndexCell *cel2, Long_t vdiff[4]) |
EdbPatCouple () | |
void | FillCell_XYaXaY (EdbPattern *pat, EdbScanCond *cond, float dz, float stepx, float stepy) |
void | FillCell_XYaXaY (EdbScanCond *cond, float zlink, int id=0) |
int | FillCHI2 () |
int | FillCHI2P () |
int | FindOffset (EdbPattern *pat1, EdbPattern *pat2, Long_t vdiff[4]) |
int | FindOffset0 (float xmax, float ymax) |
int | FindOffset01 (float xmax, float ymax) |
int | FindOffset1 (float xmax, float ymax) |
EdbAffine2D * | GetAff () |
EdbSegCouple * | GetSegCouple (int i) const |
int | ID1 () const |
int | ID2 () const |
int | LinkFast () |
int | LinkSlow (float chi2max) |
int | Ncouples () const |
float | OffsetTX () const |
float | OffsetTY () const |
float | OffsetX () const |
float | OffsetY () const |
EdbPattern * | Pat1 () |
EdbPattern * | Pat2 () |
void | PrintCouples () |
void | RemoveSegCouple (EdbSegCouple *sc) |
int | SelectIsolated () |
void | SetCHI2mode (int m) |
void | SetCond (EdbScanCond *cond) |
void | SetID (int id1, int id2) |
void | SetOffset (float o1, float o2, float o3, float o4) |
void | SetOffsetsMax (float ox, float oy) |
void | SetPat1 (EdbPattern *pat1) |
void | SetPat2 (EdbPattern *pat2) |
void | SetSigma (float s1, float s2, float s3, float s4) |
void | SetZlink (float z) |
float | SigmaTX () const |
float | SigmaTY () const |
float | SigmaX () const |
float | SigmaY () const |
int | SortByCHI2P () |
float | Zlink () const |
~EdbPatCouple () | |
Private Attributes | |
EdbAffine2D * | eAff |
affine transformation as: pat2 = pat1->Transform(aff) More... | |
float | eChi2Max |
int | eCHI2mode |
algorithm used for chi2 calculation More... | |
EdbScanCond * | eCond |
int | eCoupleType |
1 - up/down link; 0 - plate-to-plate More... | |
Int_t | eID [2] |
id-s of patterns in volume More... | |
Float_t | eOffset [4] |
EdbPattern * | ePat1 |
EdbPattern * | ePat2 |
TObjArray * | eSegCouples |
Float_t | eSigma [4] |
expected pat<->pat sigma after alignment More... | |
float | eXoffsetMax |
float | eYoffsetMax |
float | eZlink |
at this z patterns should be linked (aligned) More... | |
EdbPatCouple::EdbPatCouple | ( | ) |
EdbPatCouple::~EdbPatCouple | ( | ) |
EdbSegCouple * EdbPatCouple::AddSegCouple | ( | int | id1, |
int | id2 | ||
) |
int EdbPatCouple::Align | ( | int | alignFlag | ) |
void EdbPatCouple::CalculateAffXY | ( | int | alignFlag | ) |
void EdbPatCouple::CalculateAffXYZ | ( | float | z, |
int | alignFlag | ||
) |
calculate affine transformation for SELECTED couples at given z if flag==0 (default) - permit patterns deformation
int EdbPatCouple::CheckSegmentsDuplication | ( | EdbPattern * | pat | ) |
float EdbPatCouple::Chi2A | ( | EdbSegCouple * | scp, |
int | iprob = 1 |
||
) |
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)
float EdbPatCouple::Chi2KF | ( | EdbSegCouple * | scp | ) |
exact estimation of chi2 with full fitting procedure Applications: up/down linking, alignment (offset search)
All calculation are done with full corellation matrix for both segments (dependency on the polar angle (phi) is taken into account)
|
inline |
float EdbPatCouple::Chi2Pz0 | ( | EdbSegCouple * | scp | ) |
|
inline |
|
inline |
int EdbPatCouple::CutCHI2P | ( | float | chi2max | ) |
int EdbPatCouple::DiffPat | ( | EdbPattern * | pat1, |
EdbPattern * | pat2, | ||
Long_t | vdiff[4] | ||
) |
int EdbPatCouple::DiffPatCell | ( | TIndexCell * | cel1, |
TIndexCell * | cel2, | ||
Long_t | vdiff[4] | ||
) |
Input: 2 cells as "x:y:ax:ay:entry" where entry is local id vdiff - vector of differences
Output: 1 patterns as: "entry1:entry2"
Action: all entries from both patterns satisfied to current vdiff for each cell are selected. Entries could be taken more than once
tTODO: move this algorithm to TIndexCell (n-dim)
void EdbPatCouple::FillCell_XYaXaY | ( | EdbPattern * | pat, |
EdbScanCond * | cond, | ||
float | dz, | ||
float | stepx, | ||
float | stepy | ||
) |
fill cells according to Sigma(angle) functions here cells size do not depends on dz!
void EdbPatCouple::FillCell_XYaXaY | ( | EdbScanCond * | cond, |
float | zlink, | ||
int | id = 0 |
||
) |
fill cells according to Sigma(angle) functions at z=zlink
int EdbPatCouple::FillCHI2 | ( | ) |
final chi2 calculation based on the linked track
int EdbPatCouple::FillCHI2P | ( | ) |
fast chi2 calculation used for couples selection
int EdbPatCouple::FindOffset | ( | EdbPattern * | pat1, |
EdbPattern * | pat2, | ||
Long_t | vdiff[4] | ||
) |
int EdbPatCouple::FindOffset0 | ( | float | xmax, |
float | ymax | ||
) |
int EdbPatCouple::FindOffset01 | ( | float | xmax, |
float | ymax | ||
) |
int EdbPatCouple::FindOffset1 | ( | float | xmax, |
float | ymax | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
int EdbPatCouple::LinkFast | ( | ) |
to link segments of already aligned patterns fast - because check couples by cells
int EdbPatCouple::LinkSlow | ( | float | chi2max | ) |
to link segments of already aligned patterns slow - because check all couples
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void EdbPatCouple::PrintCouples | ( | ) |
|
inline |
int EdbPatCouple::SelectIsolated | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
int EdbPatCouple::SortByCHI2P | ( | ) |
|
inline |
|
private |
affine transformation as: pat2 = pat1->Transform(aff)
|
private |
|
private |
algorithm used for chi2 calculation
|
private |
|
private |
1 - up/down link; 0 - plate-to-plate
|
private |
id-s of patterns in volume
|
private |
maximal allowed offset before alignment "x:y:tx:ty"
|
private |
|
private |
|
private |
|
private |
expected pat<->pat sigma after alignment
|
private |
|
private |
|
private |
at this z patterns should be linked (aligned)