Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DTrackLSFitter Class Reference

#include <DTrackLSFitter.h>

+ Inheritance diagram for DTrackLSFitter:

Public Types

enum  fit_type_t { kWireBased, kTimeBased }
 
enum  fit_status_t { kFitNotDone, kFitSuccess, kFitFailed, kFitNoImprovement }
 

Public Member Functions

 DTrackLSFitter (JEventLoop *loop)
 
 ~DTrackLSFitter ()
 
jerror_t init (void)
 Called once at program start. More...
 
jerror_t brun (JEventLoop *eventLoop, int32_t runnumber)
 Called everytime a new run number is detected. More...
 
jerror_t evnt (JEventLoop *eventLoop, uint64_t eventnumber)
 Called every event. More...
 
jerror_t erun (void)
 
jerror_t fini (void)
 
HepVector getParams ()
 
double getChiSquared ()
 
int getSizeFDC ()
 
int getSizeCDC ()
 
int getStatus ()
 
string Name (void) const
 
fit_status_t FitTrack (void)
 
double ChiSq (fit_type_t fit_type, DReferenceTrajectory *rt, double *chisq_ptr=NULL, int *dof_ptr=NULL, vector< pull_t > *pulls_ptr=NULL)
 
 JOBJECT_PUBLIC (DTrackFitter)
 
void Reset (void)
 
void AddHit (const DCDCTrackHit *cdchit)
 
void AddHit (const DFDCPseudo *fdchit)
 
void AddHits (vector< const DCDCTrackHit * > cdchits)
 
void AddHits (vector< const DFDCPseudo * > fdchits)
 
const vector< const
DCDCTrackHit * > & 
GetCDCInputHits (void) const
 
const vector< const DFDCPseudo * > & GetFDCInputHits (void) const
 
const vector< const
DCDCTrackHit * > & 
GetCDCFitHits (void) const
 
const vector< const DFDCPseudo * > & GetFDCFitHits (void) const
 
void ClearExtrapolations (void)
 
const DKinematicDataGetInputParameters (void) const
 
const DTrackingDataGetFitParameters (void) const
 
double GetChisq (void) const
 
int GetNdof (void) const
 
unsigned int GetNumPotentialFDCHits (void) const
 
unsigned int GetNumPotentialCDCHits (void) const
 
bool GetIsSmoothed (void) const
 
vector< pull_t > & GetPulls (void)
 
const map< DetectorSystem_t,
vector< Extrapolation_t > > & 
GetExtrapolations (void) const
 
fit_type_t GetFitType (void) const
 
const DMagneticFieldMapGetDMagneticFieldMap (void) const
 
void SetFitType (fit_type_t type)
 
void SetInputParameters (const DTrackingData &starting_params)
 
fit_status_t FitTrack (const DVector3 &pos, const DVector3 &mom, double q, double mass, double t0=QuietNaN, DetectorSystem_t t0_det=SYS_NULL)
 
fit_status_t FitTrack (const DTrackingData &starting_params)
 
fit_status_t FindHitsAndFitTrack (const DKinematicData &starting_params, const DReferenceTrajectory *rt, JEventLoop *loop, double mass=-1.0, int N=0, double t0=QuietNaN, DetectorSystem_t t0_det=SYS_NULL)
 mass<0 means get it from starting_params More...
 
fit_status_t FindHitsAndFitTrack (const DKinematicData &starting_params, const map< DetectorSystem_t, vector< DTrackFitter::Extrapolation_t > > &extrapolations, JEventLoop *loop, double mass, int N, double t0, DetectorSystem_t t0_det)
 
jerror_t CorrectForELoss (const DKinematicData &starting_params, DReferenceTrajectory *rt, DVector3 &pos, DVector3 &mom, double mass)
 
double CalcDensityEffect (double p, double mass, double density, double Z_over_A, double I)
 
double CalcDensityEffect (double p, double mass, double rho_Z_over_A, double LnI)
 
double CalcDensityEffect (double betagamma, double rho_Z_over_A, double LnI)
 
bool ExtrapolateToRadius (double R, const vector< Extrapolation_t > &extraps, DVector3 &pos, DVector3 &mom, double &t, double &s) const
 
bool ExtrapolateToRadius (double R, const vector< Extrapolation_t > &extraps, DVector3 &pos) const
 
double DistToWire (const DCoordinateSystem *wire, const vector< Extrapolation_t > &extrapolations, DVector3 *pos=NULL, DVector3 *mom=NULL, DVector3 *position_along_wire=NULL) const
 

Public Attributes

uint64_t eventNo
 
int debug_level
 

Protected Attributes

vector< const DCDCTrackHit * > cdchits
 
vector< const DFDCPseudo * > fdchits
 
DTrackingData input_params
 
fit_type_t fit_type
 
const DMagneticFieldMapbfield
 
const DGeometrygeom
 
const DRootGeomRootGeom
 
JEventLoop * loop
 
DTrackingData fit_params
 
double chisq
 
int Ndof
 
vector< pull_tpulls
 
map< DetectorSystem_t, vector
< Extrapolation_t > > 
extrapolations
 
fit_status_t fit_status
 
vector< const DCDCTrackHit * > cdchits_used_in_fit
 
vector< const DFDCPseudo * > fdchits_used_in_fit
 
bool IsSmoothed
 
unsigned int potential_fdc_hits_on_track
 
unsigned int potential_cdc_hits_on_track
 
bool CORRECT_FOR_ELOSS
 

Private Member Functions

void setFitterStartParams ()
 

Private Attributes

const DLorentzDeflectionslorentz_def
 
DFDCSegment_factorysegment_factory
 
HepVector ppEnd
 
chisqMinfitPtr
 
int size_fdc
 
int size_cdc
 
double xpInitial
 
double zInitial
 
double thetaInitial
 
double phiInitial
 
double ptinvInitial
 
int status
 

Detailed Description

Definition at line 35 of file DTrackLSFitter.h.

Member Enumeration Documentation

Enumerator
kFitNotDone 
kFitSuccess 
kFitFailed 
kFitNoImprovement 

Definition at line 70 of file DTrackFitter.h.

enum DTrackFitter::fit_type_t
inherited
Enumerator
kWireBased 
kTimeBased 

Definition at line 65 of file DTrackFitter.h.

Constructor & Destructor Documentation

DTrackLSFitter::DTrackLSFitter ( JEventLoop *  loop)
DTrackLSFitter::~DTrackLSFitter ( )

Definition at line 90 of file DTrackLSFitter.cc.

Member Function Documentation

void DTrackFitter::AddHit ( const DFDCPseudo fdchit)
inherited

Definition at line 138 of file DTrackFitter.cc.

void DTrackFitter::AddHits ( vector< const DFDCPseudo * >  fdchits)
inherited

Definition at line 147 of file DTrackFitter.cc.

jerror_t DTrackLSFitter::brun ( JEventLoop *  eventLoop,
int32_t  runnumber 
)

Called everytime a new run number is detected.

double DTrackFitter::CalcDensityEffect ( double  p,
double  mass,
double  density,
double  Z_over_A,
double  I 
)
inherited

Definition at line 412 of file DTrackFitter.cc.

Referenced by DTrackFitterKalmanSIMD::GetdEdx().

double DTrackFitter::CalcDensityEffect ( double  p,
double  mass,
double  rho_Z_over_A,
double  LnI 
)
inherited

Definition at line 422 of file DTrackFitter.cc.

double DTrackFitter::CalcDensityEffect ( double  betagamma,
double  rho_Z_over_A,
double  LnI 
)
inherited

Definition at line 430 of file DTrackFitter.cc.

References e, sqrt(), X, and X0.

double DTrackLSFitter::ChiSq ( fit_type_t  fit_type,
DReferenceTrajectory rt,
double *  chisq_ptr = NULL,
int *  dof_ptr = NULL,
vector< pull_t > *  pulls_ptr = NULL 
)
virtual

Implements DTrackFitter.

Definition at line 98 of file DTrackLSFitter.cc.

double DTrackFitter::DistToWire ( const DCoordinateSystem wire,
const vector< Extrapolation_t > &  extrapolations,
DVector3 pos = NULL,
DVector3 mom = NULL,
DVector3 position_along_wire = NULL 
) const
inherited
jerror_t DTrackLSFitter::erun ( void  )
jerror_t DTrackLSFitter::evnt ( JEventLoop *  eventLoop,
uint64_t  eventnumber 
)

Called every event.

bool DTrackFitter::ExtrapolateToRadius ( double  R,
const vector< Extrapolation_t > &  extraps,
DVector3 pos 
) const
inherited

Definition at line 527 of file DTrackFitter.cc.

DTrackFitter::fit_status_t DTrackFitter::FindHitsAndFitTrack ( const DKinematicData starting_params,
const DReferenceTrajectory rt,
JEventLoop *  loop,
double  mass = -1.0,
int  N = 0,
double  t0 = QuietNaN,
DetectorSystem_t  t0_det = SYS_NULL 
)
inherited

mass<0 means get it from starting_params

Fit a DTrackCandidate using a given mass hypothesis.

This will perform a full wire-based and time-based fit using the given mass and starting from the given candidate. The given DReferenceTrajectory is used to swim the track numerous times during the various stages but will be left with the final time-based fit result. The JEventLoop given will be used to get the hits (CDC and FDC) and default DTrackHitSelector to use for the fit.

Definition at line 271 of file DTrackFitter.cc.

References _DBG_, DKinematicData::charge(), DTrackHitSelector::GetAllHits(), IDTrack(), DTrackHitSelector::kHelical, DTrackHitSelector::kWireBased, DKinematicData::mass(), DKinematicData::momentum(), DKinematicData::position(), start_time, and prof_time::TimeDiffNow().

Referenced by DTrackTimeBased_factory::AddMissingTrackHypothesis(), DTrackWireBased_factory::DoFit(), and DTrackTimeBased_factory::DoFit().

DTrackFitter::fit_status_t DTrackFitter::FindHitsAndFitTrack ( const DKinematicData starting_params,
const map< DetectorSystem_t, vector< DTrackFitter::Extrapolation_t > > &  extrapolations,
JEventLoop *  loop,
double  mass,
int  N,
double  t0,
DetectorSystem_t  t0_det 
)
inherited
jerror_t DTrackLSFitter::fini ( void  )
DTrackFitter::fit_status_t DTrackFitter::FitTrack ( const DVector3 pos,
const DVector3 mom,
double  q,
double  mass,
double  t0 = QuietNaN,
DetectorSystem_t  t0_det = SYS_NULL 
)
inherited
DTrackFitter::fit_status_t DTrackFitter::FitTrack ( const DTrackingData starting_params)
inherited

Definition at line 179 of file DTrackFitter.cc.

References start_time, and prof_time::TimeDiffNow().

const vector<const DCDCTrackHit*>& DTrackFitter::GetCDCInputHits ( void  ) const
inlineinherited

Definition at line 137 of file DTrackFitter.h.

double DTrackLSFitter::getChiSquared ( )

Definition at line 272 of file DTrackLSFitter.cc.

References DTrackFitter::chisq, fitPtr, and chisqMin::getChi2().

const DMagneticFieldMap* DTrackFitter::GetDMagneticFieldMap ( void  ) const
inlineinherited
const vector<const DFDCPseudo*>& DTrackFitter::GetFDCInputHits ( void  ) const
inlineinherited

Definition at line 138 of file DTrackFitter.h.

fit_type_t DTrackFitter::GetFitType ( void  ) const
inlineinherited

Definition at line 167 of file DTrackFitter.h.

const DKinematicData& DTrackFitter::GetInputParameters ( void  ) const
inlineinherited

Definition at line 152 of file DTrackFitter.h.

unsigned int DTrackFitter::GetNumPotentialCDCHits ( void  ) const
inlineinherited
unsigned int DTrackFitter::GetNumPotentialFDCHits ( void  ) const
inlineinherited
HepVector DTrackLSFitter::getParams ( )

Definition at line 268 of file DTrackLSFitter.cc.

References ppEnd.

int DTrackLSFitter::getSizeCDC ( )

Definition at line 282 of file DTrackLSFitter.cc.

References size_cdc.

int DTrackLSFitter::getSizeFDC ( )

Definition at line 278 of file DTrackLSFitter.cc.

References size_fdc.

int DTrackLSFitter::getStatus ( void  )

Definition at line 337 of file DTrackLSFitter.cc.

References status.

jerror_t DTrackLSFitter::init ( void  )

Called once at program start.

DTrackFitter::JOBJECT_PUBLIC ( DTrackFitter  )
inherited
string DTrackLSFitter::Name ( void  ) const
inlinevirtual

Implements DTrackFitter.

Definition at line 55 of file DTrackLSFitter.h.

References string.

void DTrackFitter::SetInputParameters ( const DTrackingData starting_params)
inlineinherited

Definition at line 171 of file DTrackFitter.h.

Member Data Documentation

int DTrackLSFitter::debug_level

Definition at line 46 of file DTrackLSFitter.h.

Referenced by FitTrack().

uint64_t DTrackLSFitter::eventNo

Definition at line 43 of file DTrackLSFitter.h.

vector<const DFDCPseudo*> DTrackFitter::fdchits_used_in_fit
protectedinherited
fit_status_t DTrackFitter::fit_status
protectedinherited
chisqMin* DTrackLSFitter::fitPtr
private

Definition at line 67 of file DTrackLSFitter.h.

Referenced by FitTrack(), and getChiSquared().

JEventLoop* DTrackFitter::loop
protectedinherited
const DLorentzDeflections* DTrackLSFitter::lorentz_def
private

Definition at line 61 of file DTrackLSFitter.h.

Referenced by DTrackLSFitter(), and FitTrack().

double DTrackLSFitter::phiInitial
private

Definition at line 72 of file DTrackLSFitter.h.

Referenced by FitTrack(), and setFitterStartParams().

unsigned int DTrackFitter::potential_cdc_hits_on_track
protectedinherited

Definition at line 247 of file DTrackFitter.h.

Referenced by DTrackFitterKalmanSIMD::FitTrack().

unsigned int DTrackFitter::potential_fdc_hits_on_track
protectedinherited

Definition at line 246 of file DTrackFitter.h.

Referenced by DTrackFitterKalmanSIMD::FitTrack().

HepVector DTrackLSFitter::ppEnd
private

Definition at line 66 of file DTrackLSFitter.h.

Referenced by FitTrack(), and getParams().

double DTrackLSFitter::ptinvInitial
private

Definition at line 72 of file DTrackLSFitter.h.

Referenced by FitTrack(), and setFitterStartParams().

const DRootGeom* DTrackFitter::RootGeom
protectedinherited

Definition at line 230 of file DTrackFitter.h.

Referenced by DTrackFitterALT1::DTrackFitterALT1().

DFDCSegment_factory* DTrackLSFitter::segment_factory
private

Definition at line 63 of file DTrackLSFitter.h.

Referenced by DTrackLSFitter().

int DTrackLSFitter::size_cdc
private

Definition at line 68 of file DTrackLSFitter.h.

Referenced by getSizeCDC(), and setFitterStartParams().

int DTrackLSFitter::size_fdc
private

Definition at line 68 of file DTrackLSFitter.h.

Referenced by getSizeFDC(), and setFitterStartParams().

int DTrackLSFitter::status
private

Definition at line 78 of file DTrackLSFitter.h.

Referenced by FitTrack(), and getStatus().

double DTrackLSFitter::thetaInitial
private

Definition at line 72 of file DTrackLSFitter.h.

Referenced by FitTrack(), and setFitterStartParams().

double DTrackLSFitter::xpInitial
private

Definition at line 72 of file DTrackLSFitter.h.

Referenced by FitTrack(), and setFitterStartParams().

double DTrackLSFitter::zInitial
private

Definition at line 72 of file DTrackLSFitter.h.

Referenced by FitTrack(), and setFitterStartParams().


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