MarlinTPC
1.2.0
|
fitter which takes into account the pad geometry.
More...
#include <TrackFitterSimpleChiSquarePads.h>
Public Member Functions | |
TrackFitterSimpleChiSquarePads (gear::TPCParameters const *gearTPCParameters, double transDefocussing, double longDefocussing, double transDiffusion, double longDiffusion) | |
The constructor needs the pad geometry, which is taken grom GEAR. More... | |
virtual std::string | getRevision () const |
returns the revision of this implementation and of the TrackFitterBase it is derrived from | |
virtual unsigned char | getFitterType () const |
Information what fitter implementation this is. | |
virtual DoubleVec | calculateResiduals (EVENT::Track const *testTrack, unsigned int testHitNumber, EVENT::Track const *referenceTrack=NULL) const |
Return the distance of the hit testHitNumber of the testTrack to the point of closest approach on the referenceTrack wrt. the hit. More... | |
virtual DoubleVec | calculateResiduals (EVENT::TrackerHit const *testHit, EVENT::Track const *trackWithoutTestHit) const |
Return the distance of the given hit to the test track where this hit has been removed. More... | |
virtual IMPL::TrackImpl * | fitTrack (EVENT::Track const *seedTrack) const |
Perform the actual fitting. More... | |
![]() | |
TrackFitterSimpleChiSquare (double transDefocussing, double longDefocussing, double transDiffusion, double longDiffusion, double zAnode) | |
Constructor for ![]() | |
virtual double | getTransDefocussing () const |
The transverse defocussing in the readout structure ![]() | |
virtual double | getLongDefocussing () const |
The longitudinal defocussing in the readout structure ![]() | |
virtual double | getTransDiffusionCoef () const |
The transverse diffusion coefficient (in mm/ ![]() | |
virtual double | getLongDiffusionCoef () const |
The longitudinal diffusion coefficient (in mm/ ![]() | |
virtual double | getZAnode () const |
The z coordinate of the readout anode (termination of drift volume) | |
![]() | |
TrackFitterBase () | |
The Constructor. More... | |
void | setD0Start (double d0) |
Set a d0 start value for the fit. More... | |
void | setPhiStart (double phi) |
Set a phi start value for the fit. More... | |
void | setOmegaStart (double omega) |
Set a omega start value for the fit. More... | |
void | setTanLambdaStart (double tanLambda) |
Set a tanLambda start value for the fit. More... | |
void | setZ0Start (double z0) |
Set a z0 start value for the fit. More... | |
void | setNoZFitFlag (bool noZFit=true) |
Switch to turn off the fitting in z. More... | |
bool | getNoZFitFlag () const |
Get the noZFit flag. | |
void | fixD0 (bool fix=true) |
Fix or release d0. | |
void | fixPhi (bool fix=true) |
Fix or release phi. | |
void | fixOmega (bool fix=true) |
Fix or release omega. | |
void | fixTanLambda (bool fix=true) |
Fix or release tanLambda. | |
void | fixZ0 (bool fix=true) |
Fix or release z0. | |
Static Public Member Functions | |
static TrackFitterBase * | getInstance (LCParameters const *parameters) |
Well defined interface to create a new instance of the track fitter. | |
![]() | |
static TrackFitterBase * | getInstance (LCParameters const *parameters) |
Well defined interface to create a new instance of the track fitter. | |
![]() | |
static void | setTrackFitterType (unsigned char type, IMPL::TrackImpl *track) |
Convenience function to set bits 16-23 to be the track type. | |
static unsigned char | getFitterTypeFromTrack (int trackTypeWord) |
Convenicene function to get the tracker type out of the trackType word. | |
Protected Member Functions | |
void | initialiseGEARGeometry (gear::TPCParameters const *gearTPCParameters) |
Called from both constructors to set the GEAR information (originally there were two, right now this is obsolete) | |
![]() | |
double | distanceOnCircle (double phi1, double phi2) const |
Calculate the angular distance on a circle. More... | |
Protected Attributes | |
gear::TPCParameters const * | _TPCParameters |
A pointer to the GEAR TPC parameters. | |
gear::PadRowLayout2D const * | _padLayout |
A pointer to the GEAR pad layout. | |
int | _padLayoutType |
The type of pad layout (PadRowLayout2D::CARTESIAN or PadRowLayout2D::POLAR) | |
![]() | |
double | _transDefocussing |
The defocussing and diffusion coefficients. | |
double | _longDefocussing |
double | _transDiffusion |
double | _longDiffusion |
double | _zAnode |
The z coordinate of the readout anode. | |
![]() | |
double | _d0Start |
The start value for the fit and a flag whether to apply d0Start or the value from the seed track. | |
bool | _useD0Start |
double | _phiStart |
The start value for the fit and a flag whether to apply phiStart or the value from the seed track. | |
bool | _usePhiStart |
double | _omegaStart |
The start value for the fit and a flag whether to apply omegaStart or the value from the seed track. | |
bool | _useOmegaStart |
double | _tanLambdaStart |
The start value for the fit and a flag whether to apply tanLambdaStart or the value from the seed track. | |
bool | _useTanLambdaStart |
double | _z0Start |
The start value for the fit and a flag whether to apply z0Start or the value from the seed track. | |
bool | _useZ0Start |
bool | _noZFit |
flag whether to perform a 2D or a 3D fit | |
bool | _fixD0 |
flags whether to fix a fit parameter | |
bool | _fixPhi |
bool | _fixOmega |
bool | _fixTanLambda |
bool | _fixZ0 |
Additional Inherited Members | |
![]() | |
static const unsigned char | FITFAILEDBIT = 30 |
Bit 30 in the TrackType word is fit failed. | |
fitter which takes into account the pad geometry.
It reimplements the getResiduals
functions to calculate the residuals along the pad rows and not perpendicular to the track.
Currently the actual fitter is not implemented yet. But one can instanciate the fitter to use the getResiduals
functions, which is reimplemented to caculate the residuals along the pad rows.
marlintpc::TrackFitterSimpleChiSquarePads::TrackFitterSimpleChiSquarePads | ( | gear::TPCParameters const * | gearTPCParameters, |
double | transDefocussing, | ||
double | longDefocussing, | ||
double | transDiffusion, | ||
double | longDiffusion | ||
) |
The constructor needs the pad geometry, which is taken grom GEAR.
In addition it requires the defocussing and diffusion parameters for the chi square function.
References marlintpc::TrackFitterSimpleChiSquare::_zAnode, and initialiseGEARGeometry().
Referenced by getInstance().
|
virtual |
Return the distance of the hit testHitNumber
of the testTrack to the point of closest approach on the referenceTrack wrt. the hit.
If no referenceTrack is given the distance to the testTrack is returned.
Throws EVENT::DataNotAvailableException in case there is no hit number "testHitNumber" on testHit.
Calls calculateResidual(EVENT::TrackerHit *testHit, EVENT::Track *trackWithoutTestHit) in this implementation.
Reimplemented from marlintpc::TrackFitterBase.
|
virtual |
Return the distance of the given hit to the test track where this hit has been removed.
The residual is calculated as the distance along the pad row.
Reimplemented from marlintpc::TrackFitterBase.
References _padLayout, _padLayoutType, marlintpc::IntersectionCalculator::circle_circle(), marlintpc::IntersectionCalculator::circle_straightLine_phi(), marlintpc::TrackFitterBase::distanceOnCircle(), and marlintpc::IntersectionCalculator::horizonalLine_circle().
|
virtual |
Perform the actual fitting.
Uses TrackFitterSimpleChiSquare::fitTrack, using the residuals from this class, and then setting the correct fitter type.
Reimplemented from marlintpc::TrackFitterSimpleChiSquare.
References marlintpc::TrackFitterSimpleChiSquare::fitTrack(), getFitterType(), and marlintpc::TrackFitterBase::setTrackFitterType().