EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
genfit::GblFitter Class Reference

Generic GBL implementation. More...

#include <fun4all_GenFit/blob/master/GBL/include/GblFitter.h>

+ Inheritance diagram for genfit::GblFitter:
+ Collaboration diagram for genfit::GblFitter:

Public Member Functions

 GblFitter ()
 
virtual ~GblFitter ()
 
void setOptions (std::string internalIterations="", bool enableScatterers=true, bool enableIntermediateScatterer=true, unsigned int externalIterations=1, unsigned int recalcJacobians=1)
 Set options of the fitter/GBL.
 
void setMSOptions (bool enableScatterers=true, bool enableIntermediateScatterer=true)
 Set multiple scattering options of the fitter/GBL.
 
void getScattererFromMatList (double &length, double &theta, double &s, double &ds, const double p, const double mass, const double charge, const std::vector< genfit::MatStep > &steps) const
 Evaluates moments of radiation length distribution from list of material steps and computes parameters describing a corresponding thick scatterer.
 
void processTrackWithRep (Track *trk, const AbsTrackRep *rep, bool resortHits=false) override
 
double constructGblInfo (Track *trk, const AbsTrackRep *rep)
 Propagate seed, populate track with scatterers and GblFitterInfos with reference state set.
 
void updateGblInfo (gbl::GblTrajectory &traj, genfit::Track *trk, const genfit::AbsTrackRep *rep)
 Populate all fitter infos in track for rep with results of trajectory fit.
 
std::vector< gbl::GblPointcollectGblPoints (genfit::Track *trk, const genfit::AbsTrackRep *rep)
 Constructs all GBL points and returns them in vector for trajectory construction.
 
void cleanGblInfo (Track *trk, const AbsTrackRep *rep) const
 Remove all previous gbl fitter data from track Also removes trackpoints without measurement.
 
void sortHits (Track *trk, const AbsTrackRep *rep) const
 Sort hits in track by arc-len using extrapolation.
 
void setTrackSegmentController (GblTrackSegmentController *controler)
 
- Public Member Functions inherited from genfit::AbsFitter
 AbsFitter ()
 
virtual ~AbsFitter ()
 
void processTrack (Track *, bool resortHits=false)
 
virtual void setDebugLvl (unsigned int lvl=1)
 

Private Member Functions

 GblFitter (const GblFitter &)
 
GblFitteroperator= (GblFitter const &)
 

Private Attributes

std::string m_gblInternalIterations
 
bool m_enableScatterers
 
bool m_enableIntermediateScatterer
 
unsigned int m_externalIterations
 
unsigned int m_recalcJacobians
 
double scatEpsilon
 
GblTrackSegmentControllerm_segmentController
 

Additional Inherited Members

- Protected Attributes inherited from genfit::AbsFitter
unsigned int debugLvl_
 

Detailed Description

Generic GBL implementation.

The interface class to GBL track fit

Definition at line 53 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 53 of file GblFitter.h

Constructor & Destructor Documentation

genfit::GblFitter::GblFitter ( const GblFitter )
private
genfit::GblFitter::GblFitter ( )
inline

Default (and only) constructor

Definition at line 74 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 74 of file GblFitter.h

GblFitter::~GblFitter ( )
virtual

Destructor

Definition at line 90 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 90 of file GblFitter.cc

Member Function Documentation

void GblFitter::cleanGblInfo ( Track trk,
const AbsTrackRep rep 
) const

Remove all previous gbl fitter data from track Also removes trackpoints without measurement.

Parameters
trkThe track
repRepresentation for which to clean data
Returns
void

Definition at line 232 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 232 of file GblFitter.cc

References genfit::TrackPoint::deleteFitterInfo(), genfit::Track::deletePoint(), genfit::Track::getNumPoints(), genfit::Track::getPoint(), genfit::TrackPoint::hasRawMeasurements(), ip(), and genfit::TrackPoint::setScatterer().

+ Here is the call graph for this function:

std::vector< gbl::GblPoint > GblFitter::collectGblPoints ( genfit::Track trk,
const genfit::AbsTrackRep rep 
)

Constructs all GBL points and returns them in vector for trajectory construction.

Returns
const std::vector< gbl::GblPoint, std::allocator >&

Definition at line 273 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 273 of file GblFitter.cc

References genfit::GblFitterInfo::constructGblPoint(), genfit::TrackPoint::getFitterInfo(), genfit::Track::getNumPoints(), genfit::Track::getPoint(), and ip().

+ Here is the call graph for this function:

double GblFitter::constructGblInfo ( Track trk,
const AbsTrackRep rep 
)

Propagate seed, populate track with scatterers and GblFitterInfos with reference state set.

Parameters
trkTrack to attach with infos at given rep
repTrackRep to which fitter info shall be attached
Returns
Length of track from extrapolations

Definition at line 374 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 374 of file GblFitter.cc

References genfit::AbsMeasurement::constructPlane(), Acts::Test::dim, genfit::AbsTrackRep::extrapolateBy(), genfit::StateOnPlane::extrapolateToPlane(), genfit::AbsTrackRep::extrapolateToPlane(), genfit::AbsTrackRep::getCharge(), genfit::AbsTrackRep::getDim(), genfit::AbsTrackRep::getDir(), genfit::AbsTrackRep::getForwardJacobianAndNoise(), genfit::AbsTrackRep::getMass(), genfit::AbsTrackRep::getMomMag(), genfit::Track::getNumPoints(), genfit::Track::getNumPointsWithMeasurement(), genfit::StateOnPlane::getPlane(), genfit::Track::getPoint(), genfit::Track::getPointWithMeasurement(), genfit::StateOnPlane::getPos(), genfit::TrackPoint::getRawMeasurement(), getScattererFromMatList(), genfit::TrackPoint::getSortingParameter(), genfit::Track::getStateSeed(), genfit::AbsTrackRep::getSteps(), genfit::Track::getTimeSeed(), genfit::Track::insertPoint(), Acts::PrimitivesView3DTest::plane, s1, s2, scatEpsilon, genfit::TrackPoint::setFitterInfo(), genfit::GblFitterInfo::setJacobian(), genfit::AbsTrackRep::setPosMom(), genfit::TrackPoint::setScatterer(), genfit::TrackPoint::setSortingParameter(), and genfit::AbsTrackRep::setTime().

+ Here is the call graph for this function:

void GblFitter::getScattererFromMatList ( double &  length,
double &  theta,
double &  s,
double &  ds,
const double  p,
const double  mass,
const double  charge,
const std::vector< genfit::MatStep > &  steps 
) const

Evaluates moments of radiation length distribution from list of material steps and computes parameters describing a corresponding thick scatterer.

Based on input from Claus Kleinwort (DESY), adapted for continuous material distribution represented by a sum of step functions. Returned thick scatterer can be represented by two GBL scattering points. Calculates variance of theta from total sum of radiation lengths instead of summimg squares of individual deflection angle variances.

Parameters
lengthreturned: Length of the track
thetareturned: Variation of distribution of deflection angle
sreturned: First moment of material scattering distribution
dsreturned: Second moment (variance) of material scattering distribution
pParticle momentum magnitude (GeV/c)
massMass of particle (GeV/c/c)
stepsVector of material steps from (RKTrackRep) extrapolation
Returns
void

Definition at line 314 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 314 of file GblFitter.cc

References Acts::UnitConstants::e, genfit::MatStep::material_, charm_jet_strange_helicity::N, genfit::Material::radiationLength, Acts::UnitConstants::s, Acts::Test::step(), genfit::MatStep::stepSize_, xmax, and xmin.

+ Here is the call graph for this function:

GblFitter& genfit::GblFitter::operator= ( GblFitter const &  )
private
void GblFitter::processTrackWithRep ( Track trk,
const AbsTrackRep rep,
bool  resortHits = false 
)
overridevirtual
void genfit::GblFitter::setMSOptions ( bool  enableScatterers = true,
bool  enableIntermediateScatterer = true 
)
inline

Set multiple scattering options of the fitter/GBL.

Returns
void
Parameters
enableScatterersIf false, no scatterers will be added to GBL trajectory
enableIntermediateScattererTrue to simulate thick sctatterers by two thin scatterers 1st at detector plane and intermediate between each two planes

Definition at line 119 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 119 of file GblFitter.h

References m_enableIntermediateScatterer, and m_enableScatterers.

void genfit::GblFitter::setOptions ( std::string  internalIterations = "",
bool  enableScatterers = true,
bool  enableIntermediateScatterer = true,
unsigned int  externalIterations = 1,
unsigned int  recalcJacobians = 1 
)
inline

Set options of the fitter/GBL.

Returns
void
Parameters
internalIterationsGBL down-weighting in iterations. One letter (T,H,C) per iteration. Seems "HH" is resonable for outliers. Default "" is OK. Separate by comma for each external iteration (usually last), e.g., for 3 iterations: ",,HH" to down-weight at last one
enableScatterersIf false, no scatterers will be added to GBL trajectory
enableIntermediateScattererTrue to simulate thick sctatterers by two thin scatterers 1st at detector plane and intermediate between each two planes
externalIterationsSets number of times GblTrajectory.fit(...) will be called in processTrackWithRep(...). Called external iterations. State is updated each time with GBL results. If =0, GblFitterInfos will filled by reference states and GblFitStatus in track able to construct simple GBL trajectory (for fit by GBL of output to Mille binary) / get list of points 1st at detector plane and intermediate between each two planes
recalcJacobiansNumber of iteration up to which Jacobians should be recalculated / planes/meas updated after the fit. 0 = do not recalculate Jacobians. 1 = recalculate after first GBL fit. 2 = after 1st and 2nd GBL fit etc.

Definition at line 100 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 100 of file GblFitter.h

References m_enableIntermediateScatterer, m_enableScatterers, m_externalIterations, m_gblInternalIterations, and m_recalcJacobians.

void GblFitter::setTrackSegmentController ( GblTrackSegmentController controler)

Definition at line 97 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 97 of file GblFitter.cc

void GblFitter::sortHits ( Track trk,
const AbsTrackRep rep 
) const

Sort hits in track by arc-len using extrapolation.

Parameters
trkThe track
repThe track representation
Returns
void

Definition at line 243 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 243 of file GblFitter.cc

References genfit::AbsMeasurement::constructPlane(), genfit::StateOnPlane::extrapolateToPlane(), genfit::Track::getNumPointsWithMeasurement(), genfit::Track::getPointWithMeasurement(), genfit::TrackPoint::getRawMeasurement(), genfit::Track::getStateSeed(), genfit::Track::getTimeSeed(), Acts::PrimitivesView3DTest::plane, genfit::AbsTrackRep::setPosMom(), genfit::TrackPoint::setSortingParameter(), genfit::AbsTrackRep::setTime(), and genfit::Track::sort().

+ Here is the call graph for this function:

void GblFitter::updateGblInfo ( gbl::GblTrajectory traj,
genfit::Track trk,
const genfit::AbsTrackRep rep 
)

Populate all fitter infos in track for rep with results of trajectory fit.

Updates also seed state in track (from forward prediction at first point)

(The trajectory can only be cut before track end, cannot have missing points in between (if valid))

TODO ?? Re-construct all points in GblFitterInfos (updated) and collect them in fit status

Parameters
trajThe fitted GblTrajectory
trkThe track with fitter infos from whose points traj was created
repThe representation to which this fit status belong

Definition at line 288 of file GblFitter.cc.

View newest version in sPHENIX GitHub at line 288 of file GblFitter.cc

References genfit::TrackPoint::getFitterInfo(), genfit::Track::getNumPoints(), genfit::Track::getPoint(), ip(), gbl::GblTrajectory::isValid(), and genfit::GblFitterInfo::updateFitResults().

+ Here is the call graph for this function:

Member Data Documentation

bool genfit::GblFitter::m_enableIntermediateScatterer
private

Definition at line 61 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 61 of file GblFitter.h

Referenced by setMSOptions(), and setOptions().

bool genfit::GblFitter::m_enableScatterers
private

Definition at line 60 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 60 of file GblFitter.h

Referenced by setMSOptions(), and setOptions().

unsigned int genfit::GblFitter::m_externalIterations
private

Definition at line 62 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 62 of file GblFitter.h

Referenced by setOptions().

std::string genfit::GblFitter::m_gblInternalIterations
private

Definition at line 59 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 59 of file GblFitter.h

Referenced by setOptions().

unsigned int genfit::GblFitter::m_recalcJacobians
private

Definition at line 63 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 63 of file GblFitter.h

Referenced by setOptions().

GblTrackSegmentController* genfit::GblFitter::m_segmentController
private

Definition at line 67 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 67 of file GblFitter.h

double genfit::GblFitter::scatEpsilon
private

Definition at line 66 of file GblFitter.h.

View newest version in sPHENIX GitHub at line 66 of file GblFitter.h


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