MarlinTPC  1.2.0
Public Member Functions | List of all members
marlintpc::rb_Segment Class Reference

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...
 

Detailed Description

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).

Constructor & Destructor Documentation

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.

Parameters
[in]BzcBz*c
[in]tripletslist 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.

Parameters
[in]BzcBz*c
[in]hitslist of hits
[in]maxHitsPerRowmaximum 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.

Parameters
[in]segmentslist of segments
Remarks
better do weighted averaging at mid points?

References marlintpc::simpleHelix::getStateAt().

Member Function Documentation

void marlintpc::rb_Segment::addHit ( rb_Hit hit)

Add (unused) hit to segment.

Keeping row based ordering of hits. Hit is flagged as used.

Parameters
hithit 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.

Parameters
[in,out]rowMaprow 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.

Parameters
[in]refPosreference point (X coordinate)
[out]newParparameter vector
[out]newCovcovariance 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.

Parameters
[out]parhelix parameter (curvature is zero for Bz*c = 0.)

Referenced by match().

void marlintpc::rb_Segment::getRefPoint ( double *  position) const

Get reference point.

Parameters
[out]positionposition 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.

Parameters
[in]segsegment to compare with
[in]chi2Cutchi2/ndf cut for segment matching
[in]trpStepSizetriplet step size (=2)
Returns
matching flag

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.

Parameters
[in]hithit to compare with
[in]chi2Cutchi2 cut for hit matching
Returns
matching flag

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.

Parameters
[in]hitshits to compare with
[in]matchingHitsmatching hits
[in]chi2Cutchi2 cut for hit matching

References match().

void marlintpc::rb_Segment::setId ( int  id)

Set segment ID.

Parameters
[in]idID

The documentation for this class was generated from the following files: