MarlinTPC  1.2.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
marlintpc::TrackFitterSimpleChiSquarePads Class Reference

$\chi^2$ fitter which takes into account the pad geometry. More...

#include <TrackFitterSimpleChiSquarePads.h>

Inheritance diagram for marlintpc::TrackFitterSimpleChiSquarePads:
marlintpc::TrackFitterSimpleChiSquare marlintpc::TrackFitterBase

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...
 
- Public Member Functions inherited from marlintpc::TrackFitterSimpleChiSquare
 TrackFitterSimpleChiSquare (double transDefocussing, double longDefocussing, double transDiffusion, double longDiffusion, double zAnode)
 Constructor for $\chi^2$ fitter, initializes the track fitter with the initial values.
 
virtual double getTransDefocussing () const
 The transverse defocussing in the readout structure $\sigma_{0,{\mathrm trans}}$ (in mm)
 
virtual double getLongDefocussing () const
 The longitudinal defocussing in the readout structure $\sigma_{0,{\mathrm long}}$ (in mm)
 
virtual double getTransDiffusionCoef () const
 The transverse diffusion coefficient (in mm/ $\sqrt{\mathrm mm}$)
 
virtual double getLongDiffusionCoef () const
 The longitudinal diffusion coefficient (in mm/ $\sqrt{\mathrm mm}$)
 
virtual double getZAnode () const
 The z coordinate of the readout anode (termination of drift volume)
 
- Public Member Functions inherited from marlintpc::TrackFitterBase
 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 TrackFitterBasegetInstance (LCParameters const *parameters)
 Well defined interface to create a new instance of the track fitter.
 
- Static Public Member Functions inherited from marlintpc::TrackFitterSimpleChiSquare
static TrackFitterBasegetInstance (LCParameters const *parameters)
 Well defined interface to create a new instance of the track fitter.
 
- Static Public Member Functions inherited from marlintpc::TrackFitterBase
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)
 
- Protected Member Functions inherited from marlintpc::TrackFitterBase
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)
 
- Protected Attributes inherited from marlintpc::TrackFitterSimpleChiSquare
double _transDefocussing
 The defocussing and diffusion coefficients.
 
double _longDefocussing
 
double _transDiffusion
 
double _longDiffusion
 
double _zAnode
 The z coordinate of the readout anode.
 
- Protected Attributes inherited from marlintpc::TrackFitterBase
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 Public Attributes inherited from marlintpc::TrackFitterBase
static const unsigned char FITFAILEDBIT = 30
 Bit 30 in the TrackType word is fit failed.
 

Detailed Description

$\chi^2$ 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.

Todo:
: Implement the fitter function.

Constructor & Destructor Documentation

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

Member Function Documentation

EVENT::DoubleVec marlintpc::TrackFitterSimpleChiSquarePads::calculateResiduals ( EVENT::Track const *  testTrack,
unsigned int  testHitNumber,
EVENT::Track const *  referenceTrack = NULL 
) const
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.

EVENT::DoubleVec marlintpc::TrackFitterSimpleChiSquarePads::calculateResiduals ( EVENT::TrackerHit const *  testHit,
EVENT::Track const *  trackWithoutTestHit 
) const
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().

IMPL::TrackImpl * marlintpc::TrackFitterSimpleChiSquarePads::fitTrack ( EVENT::Track const *  seedTrack) const
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().


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