FEDRA emulsion software from the OPERA Collaboration
|
#include <EdbPlateTracking.h>
Public Member Functions | |
EdbPlateTracking () | |
EdbPlateTracking (EdbPattern &S1, EdbPattern &S2, EdbSegP &prediction) | |
EdbPlateTracking (EdbPattern &S1, EdbPattern &S2, EdbSegP &prediction, EdbPlateP &plate) | |
int | ExtrapolateCond (EdbScanCond &inputcond, int flag, EdbScanCond &outputcond) |
int | FindBestCandidate (EdbPattern &fndbt, EdbSegP &fnd, EdbPattern &cnd, float wmin, float wmindegrad, float chi2max) |
int | FindBestCandidateDS (EdbPattern &fndbt, EdbSegP &fnd, EdbPattern &cnd, float wmin, float wmindegrad, float chi2max, EdbSegP &spred, float maxdmin) |
int | FindCandidateMT (EdbPattern &fnds1, EdbPattern &fnds2, EdbSegP &fnd) |
int | FindCandidateMTDS (EdbPattern &fnds1, EdbPattern &fnds2, EdbSegP &fnd, EdbSegP &spred, float maxdmin) |
int | FindCandidates (EdbSegP &spred, EdbPattern &fndbt, EdbPattern &fnds1, EdbPattern &fnds2) |
int | FindCompliments (EdbSegP &s, EdbPattern &pat, TObjArray &found, float chi2max, TArrayF &chiarr) |
int | FindPrediction (EdbSegP &spred, EdbSegP &fndbt, EdbSegP &fnds1, EdbSegP &fnds2, EdbSegP &snewpred) |
int | FindPredictionDS (EdbSegP &spred, EdbSegP &fndbt, EdbSegP &fnds1, EdbSegP &fnds2, EdbSegP &snewpred, float maxdmin) |
int | FindTrack (EdbTrackP &pred, EdbTrackP &found, EdbPlateP &plate) |
bool | GetSBtreeEntry (int entry, TTree &tsbt) |
void | Print () |
void | Set0 () |
void | SetCondBT (EdbScanCond &cond) |
void | SetCondMT (EdbScanCond &cond) |
void | SetPred (const EdbSegP &pred) |
void | TransformFromPlateRS () |
int | UpdateFlag (int flag, int status) |
bool | UpdateSBtree (TTree &tsbt, int idp[4], int idf[4]) |
virtual | ~EdbPlateTracking () |
Static Public Member Functions | |
static void | CloseSBtree (TTree *tree) |
static int | GetBTHoles (int flag) |
static int | GetMTHoles (int flag) |
static TTree * | InitSBtree (const char *file_name="sbt.root", const char *mode="RECREATE") |
Public Attributes | |
Float_t | eChi2MaxBT |
(1.5) maximum chi2 accepted between prediction and basetrack candidates More... | |
Float_t | eChi2MaxMT |
(1.6) maximum chi2 accepted between prediction and microtrack candidates More... | |
EdbScanCond | eCondBT |
EdbScanCond | eCondMT |
------— processing parameters (can be default) and itermeadiate results ---------------------— More... | |
Float_t | eDegradPos |
SigmaX = SigmaX(0) + degradPos * mth. More... | |
Float_t | eDegradSlope |
SigmaTX = SigmaTX(0) + degradSlope * bth. More... | |
Float_t | eDeltaR |
(20) More... | |
Int_t | eIdf [4] |
Int_t | eIdp [4] |
to read from sbt More... | |
EdbSegP | eNext |
next prediction More... | |
EdbPlateP | ePlate |
plate geometry and correction parameters to be applied to prediction More... | |
EdbSegP | ePred |
------— input data ------------------------— More... | |
bool | ePredictionScan |
if true use GetPatternDataForPrediction( spred.ID(), side, pat ); in FindCandidates (default is false) More... | |
Float_t | ePreliminaryChi2MaxMT |
(1.6) / microtracks and basetracks selection More... | |
Float_t | ePulsMinBT |
(18) More... | |
Float_t | ePulsMinDegradBT |
(0) More... | |
Float_t | ePulsMinDegradMT |
(0) More... | |
Float_t | ePulsMinMT |
(10) mimimal number of grains accepted to select microtracks More... | |
EdbSegP | eS |
------— output: main result ------------------------— More... | |
EdbSegP | eS1 |
EdbPattern | eS1cnd |
microtrack candidates passed all cuts More... | |
EdbPattern | eS1pre |
the result of the selection of microtracks ordered by chi square More... | |
EdbSegP | eS2 |
found segments More... | |
EdbPattern | eS2cnd |
EdbPattern | eS2pre |
EdbPattern | eScnd |
basetracks candidates passed all cuts More... | |
EdbPattern | eSide1 |
side 1 microtracks in plate reference system More... | |
EdbPattern | eSide2 |
side 2 microtracks in plate reference system More... | |
EdbPattern | eSpre |
the result of the selection of basetracks ordered by chi square More... | |
Int_t | eStatus |
-1-nothing, 0-bt, 1-mt1, 2-mt2 More... | |
//////////////////////////////////////////////////////////////////////// // EdbPlateTracking // // ////////////////////////////////////////////////////////////////////////
|
inline |
|
inline |
|
inline |
|
virtual |
|
static |
int EdbPlateTracking::ExtrapolateCond | ( | EdbScanCond & | inputcond, |
int | flag, | ||
EdbScanCond & | outputcond | ||
) |
tTODO: tuning the dependency of sigma NOTED by Artem: when we do jumping we have no "holes" stored in the flag, so this function do not extrapolate errors correctly so one had to encrease the acceptance manually, possible solution can be to add total plates number before the last found track into the flag and use it only for extrapolation
int EdbPlateTracking::FindBestCandidate | ( | EdbPattern & | fndbt, |
EdbSegP & | fnd, | ||
EdbPattern & | cnd, | ||
float | wmin, | ||
float | wmindegrad, | ||
float | chi2max | ||
) |
int EdbPlateTracking::FindBestCandidateDS | ( | EdbPattern & | fndbt, |
EdbSegP & | fnd, | ||
EdbPattern & | cnd, | ||
float | wmin, | ||
float | wmindegrad, | ||
float | chi2max, | ||
EdbSegP & | spred, | ||
float | maxdmin = 1. |
||
) |
int EdbPlateTracking::FindCandidateMT | ( | EdbPattern & | fnds1, |
EdbPattern & | fnds2, | ||
EdbSegP & | fnd | ||
) |
int EdbPlateTracking::FindCandidateMTDS | ( | EdbPattern & | fnds1, |
EdbPattern & | fnds2, | ||
EdbSegP & | fnd, | ||
EdbSegP & | spred, | ||
float | maxdmin = 1. |
||
) |
int EdbPlateTracking::FindCandidates | ( | EdbSegP & | spred, |
EdbPattern & | fndbt, | ||
EdbPattern & | fnds1, | ||
EdbPattern & | fnds2 | ||
) |
Find microtracks and basetracks for the prediction segment "spred" Selection criteria: 1) select all microtracks with (puls >= ePreliminaryPulsMinMT) (6) and (chi2 < ePreliminaryChi2MaxMT) for both side 2) select all basetracks by using the selected microtracks, with (chi2_bt < eChi2MaxBT) Microtracks and basetracks in output are sorted according to chi2 (ascending order = the first one is the best one)
Input: spred - track prediction Output: fnds1 - microtracks having puls>=ePreliminaryPulsMinMT and chi2<ePreliminaryChi2MaxMT in the top side of the emulsion plate fnds2 - microtracks having puls>=ePreliminaryPulsMinMT and chi2<ePreliminaryChi2MaxMT in the bottom side of the emulsion plate fndbt - basetracks built from the microtracks and (chi2_bt < eChi2MaxBT)
int EdbPlateTracking::FindCompliments | ( | EdbSegP & | s, |
EdbPattern & | pat, | ||
TObjArray & | found, | ||
float | chi2max, | ||
TArrayF & | chiarr | ||
) |
return found sorted by increasing chi2
int EdbPlateTracking::FindPrediction | ( | EdbSegP & | spred, |
EdbSegP & | fndbt, | ||
EdbSegP & | fnds1, | ||
EdbSegP & | fnds2, | ||
EdbSegP & | snewpred | ||
) |
Select the best (micro or base) track matching with the prediction and prepare for a new search.
Selection criteria: 1) Call FindCandidates having the list of basetrack and microtrack candidates 2) Call FindCandidateBT which looks for the best basetrack, if any 3) If no basetrack is found, call FindCandidateMT which looks fot the best microtrack, if any. Microtracks accepted shold satisfy the following cut: (puls >= ePulsMinMT) (10) and (chi2 < eChi2MaxMT)
Input: spred - track prediction Output:
Return: -1: no track found 0: basetrack found 1: microtrack top found 2: microtrack bottom found
int EdbPlateTracking::FindPredictionDS | ( | EdbSegP & | spred, |
EdbSegP & | fndbt, | ||
EdbSegP & | fnds1, | ||
EdbSegP & | fnds2, | ||
EdbSegP & | snewpred, | ||
float | maxdmin = 1. |
||
) |
Select the best (micro or base) track matching with the prediction and prepare for a new search.
Selection criteria: 1) Call FindCandidates having the list of basetrack and microtrack candidates 2) Call FindCandidateBT which looks for the best basetrack, if any 3) If no basetrack is found, call FindCandidateMT which looks fot the best microtrack, if any. Microtracks accepted shold satisfy the following cut: (puls >= ePulsMinMT) (10) and (chi2 < eChi2MaxMT)
Input: spred - track prediction Output:
Return: -1: no track found 0: basetrack found 1: microtrack top found 2: microtrack bottom found
look for tracks in this plate track - input track in brick RS - will be updated on output plate - all plate parameters including affine transformation plate-to-brick
|
inlinestatic |
|
inlinestatic |
bool EdbPlateTracking::GetSBtreeEntry | ( | int | entry, |
TTree & | tsbt | ||
) |
|
static |
void EdbPlateTracking::Print | ( | ) |
void EdbPlateTracking::Set0 | ( | ) |
|
inline |
|
inline |
void EdbPlateTracking::TransformFromPlateRS | ( | ) |
int EdbPlateTracking::UpdateFlag | ( | int | flag, |
int | status | ||
) |
status: -1 -found nothing, 0-bt, 1-mt1, 2-mt2
bool EdbPlateTracking::UpdateSBtree | ( | TTree & | tsbt, |
int | idp[4], | ||
int | idf[4] | ||
) |
Float_t EdbPlateTracking::eChi2MaxBT |
(1.5) maximum chi2 accepted between prediction and basetrack candidates
Float_t EdbPlateTracking::eChi2MaxMT |
(1.6) maximum chi2 accepted between prediction and microtrack candidates
EdbScanCond EdbPlateTracking::eCondBT |
EdbScanCond EdbPlateTracking::eCondMT |
------— processing parameters (can be default) and itermeadiate results ---------------------—
Float_t EdbPlateTracking::eDegradPos |
SigmaX = SigmaX(0) + degradPos * mth.
Float_t EdbPlateTracking::eDegradSlope |
SigmaTX = SigmaTX(0) + degradSlope * bth.
Float_t EdbPlateTracking::eDeltaR |
(20)
Int_t EdbPlateTracking::eIdf[4] |
Int_t EdbPlateTracking::eIdp[4] |
to read from sbt
EdbSegP EdbPlateTracking::eNext |
next prediction
EdbPlateP EdbPlateTracking::ePlate |
plate geometry and correction parameters to be applied to prediction
EdbSegP EdbPlateTracking::ePred |
------— input data ------------------------—
prediction to be found in this plate in Brick reference system
bool EdbPlateTracking::ePredictionScan |
if true use GetPatternDataForPrediction( spred.ID(), side, pat ); in FindCandidates (default is false)
Float_t EdbPlateTracking::ePreliminaryChi2MaxMT |
(1.6) / microtracks and basetracks selection
Float_t EdbPlateTracking::ePulsMinBT |
(18)
Float_t EdbPlateTracking::ePulsMinDegradBT |
(0)
Float_t EdbPlateTracking::ePulsMinDegradMT |
(0)
Float_t EdbPlateTracking::ePulsMinMT |
(10) mimimal number of grains accepted to select microtracks
EdbSegP EdbPlateTracking::eS |
------— output: main result ------------------------—
EdbSegP EdbPlateTracking::eS1 |
EdbPattern EdbPlateTracking::eS1cnd |
microtrack candidates passed all cuts
EdbPattern EdbPlateTracking::eS1pre |
the result of the selection of microtracks ordered by chi square
EdbSegP EdbPlateTracking::eS2 |
found segments
EdbPattern EdbPlateTracking::eS2cnd |
EdbPattern EdbPlateTracking::eS2pre |
EdbPattern EdbPlateTracking::eScnd |
basetracks candidates passed all cuts
EdbPattern EdbPlateTracking::eSide1 |
side 1 microtracks in plate reference system
EdbPattern EdbPlateTracking::eSide2 |
side 2 microtracks in plate reference system
EdbPattern EdbPlateTracking::eSpre |
the result of the selection of basetracks ordered by chi square
Int_t EdbPlateTracking::eStatus |
-1-nothing, 0-bt, 1-mt1, 2-mt2