MarlinTPC
1.2.0
|
Row based segment. More...
#include <RowTripletBasedTrackFinderProcessor.h>
Public Member Functions | |
rb_Segment (double, trpListType) | |
Construct row based segment from (unused hits of) triplets. More... | |
rb_Segment (double, hitListType, unsigned int=1) | |
Construct row based segment from (unused) hits in list. More... | |
rb_Segment (std::vector< rb_Segment * > segments) | |
Construct row based segment from other segments. More... | |
double | getBzc () const |
Get Bz*c. | |
int | getFirstRow () const |
Get first row number. | |
int | getLastRow () const |
Get first last number. | |
void | getRefPoint (double *) const |
Get reference point. More... | |
int | getNdf () const |
Get number of degrees of freedom (of segment fit). | |
double | getChi2 () const |
Get chi2 from segment fit. | |
void | getPar (double *) const |
Get (all five helix) parameters from segment fit. More... | |
const hitListType & | getHitList () const |
Get list of hits. | |
const TVectorD & | getPar () const |
Get parameter vector. | |
const TMatrixDSym & | getCov () const |
Get covariance matrix. | |
bool | match (rb_Segment *, const double, const int) const |
Match segment with other segment. More... | |
bool | match (rb_Hit *, const double) const |
Match segment with unused hit. More... | |
void | match (hitListType &, hitListType &, const double) const |
Match segment with (list of) unused hits. More... | |
void | getLCIOStateAtRefPoint (const double *, TVectorD &, TMatrixDSym &) const |
Get segment state at reference point. More... | |
void | fillRowMap (std::map< int, int > &) const |
Fill row map. More... | |
int | getId () const |
Get segment ID. | |
void | setId (int) |
Set segment ID. More... | |
void | addHit (rb_Hit *) |
Add (unused) hit to segment. More... | |
Row based segment.
Is build from (the unused hits) of matching triplets (from equivalence classes) and fitted in XY and ZS (or from other matching segments).
marlintpc::rb_Segment::rb_Segment | ( | double | Bzc, |
trpListType | triplets | ||
) |
Construct row based segment from (unused hits of) triplets.
Build and fit segments. Corresponding hits are flagged as used.
[in] | Bzc | Bz*c |
[in] | triplets | list of triplets |
References marlintpc::rb_Hit::getRow(), marlintpc::rb_Hit::getUsed(), and marlintpc::rb_Hit::setUsed().
marlintpc::rb_Segment::rb_Segment | ( | double | Bzc, |
hitListType | hits, | ||
unsigned int | maxHitsPerRow = 1 |
||
) |
Construct row based segment from (unused) hits in list.
Build and fit segments. Corresponding hits are flagged as used.
[in] | Bzc | Bz*c |
[in] | hits | list of hits |
[in] | maxHitsPerRow | maximum number of hits per row |
References marlintpc::rb_Hit::getRow(), marlintpc::rb_Hit::getUsed(), and marlintpc::rb_Hit::setUsed().
marlintpc::rb_Segment::rb_Segment | ( | std::vector< rb_Segment * > | segments | ) |
Construct row based segment from other segments.
Combine segments.
[in] | segments | list of segments |
References marlintpc::simpleHelix::getStateAt().
void marlintpc::rb_Segment::addHit | ( | rb_Hit * | hit | ) |
Add (unused) hit to segment.
Keeping row based ordering of hits. Hit is flagged as used.
hit | hit to add |
References marlintpc::rb_Hit::getRow(), and marlintpc::rb_Hit::setUsed().
Referenced by marlintpc::RowBasedFastHoughTransformationProcessor::processEvent().
void marlintpc::rb_Segment::fillRowMap | ( | std::map< int, int > & | rowMap | ) | const |
Fill row map.
[in,out] | rowMap | row map |
Referenced by marlintpc::RowBasedFastHoughTransformationProcessor::processEvent().
void marlintpc::rb_Segment::getLCIOStateAtRefPoint | ( | const double * | refPos, |
TVectorD & | newPar, | ||
TMatrixDSym & | newCov | ||
) | const |
Get segment state at reference point.
Propagate track state at point and transform from helix to LCIO representation.
[in] | refPos | reference point (X coordinate) |
[out] | newPar | parameter vector |
[out] | newCov | covariance matrix |
References getCov(), getPar(), getRefPoint(), marlintpc::simpleHelix::getStateAt(), and marlintpc::simpleHelix::helixToLCIOJacobian().
void marlintpc::rb_Segment::getPar | ( | double * | par | ) | const |
Get (all five helix) parameters from segment fit.
[out] | par | helix parameter (curvature is zero for Bz*c = 0.) |
Referenced by match().
void marlintpc::rb_Segment::getRefPoint | ( | double * | position | ) | const |
Get reference point.
[out] | position | position of reference point |
Referenced by getLCIOStateAtRefPoint(), and match().
bool marlintpc::rb_Segment::match | ( | rb_Segment * | seg, |
const double | chi2Cut, | ||
const int | trpStepSize | ||
) | const |
Match segment with other segment.
Compare the (4 (line) or 5 (helix)) track parameters (at the mid point). The segments must not overlap (in rows) and the (row) gap must be smaller than the average length.
[in] | seg | segment to compare with |
[in] | chi2Cut | chi2/ndf cut for segment matching |
[in] | trpStepSize | triplet step size (=2) |
References getCov(), getFirstRow(), getLastRow(), getPar(), getRefPoint(), and marlintpc::simpleHelix::getStateAt().
Referenced by match(), and marlintpc::RowBasedFastHoughTransformationProcessor::processEvent().
bool marlintpc::rb_Segment::match | ( | rb_Hit * | hit, |
const double | chi2Cut | ||
) | const |
Match segment with unused hit.
Compare the (2) positional track parameters at the hit with the hit measurements (are zero there) and errors.
[in] | hit | hit to compare with |
[in] | chi2Cut | chi2 cut for hit matching |
References getCov(), marlintpc::simpleHelix::getExpectedPlanePos(), getPar(), marlintpc::rb_Hit::getPhiMeas(), marlintpc::rb_Hit::getPos(), getRefPoint(), marlintpc::simpleHelix::getStateAt(), marlintpc::rb_Hit::getVarXY(), and marlintpc::rb_Hit::getVarZ().
void marlintpc::rb_Segment::match | ( | hitListType & | hits, |
hitListType & | matchingHits, | ||
const double | chi2Cut | ||
) | const |
Match segment with (list of) unused hits.
[in] | hits | hits to compare with |
[in] | matchingHits | matching hits |
[in] | chi2Cut | chi2 cut for hit matching |
References match().
void marlintpc::rb_Segment::setId | ( | int | id | ) |
Set segment ID.
[in] | id | ID |