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

More...

#include <DTrackCandidate_factory.h>

+ Inheritance diagram for DTrackCandidate_factory:

Public Member Functions

 DTrackCandidate_factory ()
 
 ~DTrackCandidate_factory ()
 

Protected Member Functions

virtual jerror_t init (void)
 
virtual jerror_t evnt (JEventLoop *loop, uint64_t eventnumber)
 Invoked via JEventProcessor virtual method. More...
 
virtual jerror_t brun (JEventLoop *eventLoop, int32_t runnumber)
 
virtual jerror_t erun (void)
 
virtual jerror_t fini (void)
 
double DocaToHelix (const DCDCTrackHit *hit, double q, const DVector3 &pos, const DVector3 &mom)
 
double GetSenseOfRotation (DHelicalFit &fit, const DFDCPseudo *fdchit, const DVector3 &pos)
 
jerror_t DoRefit (DHelicalFit &fit, vector< const DFDCSegment * >segments, vector< const DCDCTrackHit * >cdchits, double &Bz)
 
void ProjectHelixToZ (const double z, const double q, const DVector3 &mom, DVector3 &pos)
 
void GetPositionAndMomentum (const DFDCSegment *segment, DVector3 &pos, DVector3 &mom) const
 
jerror_t GetPositionAndMomentum (DHelicalFit &fit, double Bz, const DVector3 &origin, DVector3 &pos, DVector3 &mom) const
 
void GetPositionAndMomentum (double z, const DHelicalFit &fit, double Bz, DVector3 &pos, DVector3 &mom) const
 
void GetPositionAndMomentum (const DHelicalFit &fit, double Bz, DVector3 &pos, DVector3 &mom) const
 
void UpdatePositionAndMomentum (DHelicalFit &fit, double Bz, const DVector3 &origin, DVector3 &pos, DVector3 &mom) const
 
bool CheckZPosition (const DTrackCandidate *fdccan) const
 
bool MatchMethod1 (const DTrackCandidate *fdccan, vector< unsigned int > &cdc_forward_ids, vector< DVector3 > &cdc_endplate_projections, vector< int > &cdc_forward_matches)
 
bool MatchMethod2 (const DTrackCandidate *fdccan, const DTrackCandidate *cdccan)
 
bool MatchMethod3 (const DTrackCandidate *cdccan, vector< int > &forward_matches)
 
bool MatchMethod4 (const DTrackCandidate *srccan, vector< int > &forward_matches, int &num_fdc_cands_remaining)
 
bool MatchMethod5 (DTrackCandidate *can, vector< const DCDCTrackHit * > &cdchits, vector< int > &forward_matches)
 
void MatchMethod6 (DTrackCandidate *can, vector< const DFDCPseudo * > &fdchits, vector< unsigned int > &used_cdc_hits, unsigned int &num_unmatched_cdcs)
 
bool MatchMethod7 (DTrackCandidate *srccan, vector< int > &forward_matches, int &num_fdc_cands_remaining)
 
bool MatchMethod8 (const DTrackCandidate *cdccan, vector< int > &forward_matches)
 
bool MatchMethod9 (unsigned int src_index, const DTrackCandidate *srccan, const DFDCSegment *segment, vector< const DTrackCandidate * > &cands, vector< int > &forward_matches)
 
bool MatchMethod10 (unsigned int src_index, const DTrackCandidate *srccan, const DFDCSegment *segment, vector< const DTrackCandidate * > &cands, vector< int > &forward_matches)
 
bool MatchMethod11 (double q, DVector3 &mypos, DVector3 &mymom, DHelicalFit &fit2, const DFDCSegment *segment1, const DFDCSegment *segment2)
 
bool MatchMethod12 (DTrackCandidate *srccan, vector< int > &forward_matches, int &num_fdc_cands_remaining)
 
bool MatchMethod13 (unsigned int src_index, const DTrackCandidate *srccan, const DFDCSegment *segment, vector< const DTrackCandidate * > &cands, vector< int > &forward_matches)
 
bool TryToFlipDirection (vector< const DSCHit * > &scihits, DVector3 &mom, DVector3 &pos) const
 
bool MatchStraySegments (vector< int > &forward_matches, int &num_fdc_cands_remaining)
 
bool MakeCandidateFromMethod1 (double theta, vector< const DFDCSegment * > &segments, const DTrackCandidate *cdccan)
 

Private Attributes

const DMagneticFieldMapbfield
 
bool dIsNoFieldFlag
 
DMagneticFieldStepperstepper
 
const DParticleIDdParticleID
 
vector< const DTrackCandidate * > cdctrackcandidates
 
vector< const DTrackCandidate * > fdctrackcandidates
 
vector< const DCDCTrackHit * > mycdchits
 
vector< DTrackCandidate * > trackcandidates
 
int DEBUG_LEVEL
 
int MIN_NUM_HITS
 
bool DEBUG_HISTS
 
TH2F * match_dist
 
TH2F * match_dist_vs_p
 
double FactorForSenseOfRotation
 
DVector3 cdc_endplate
 
double endplate_rmax
 
double TARGET_Z
 
int MAX_NUM_TRACK_CANDIDATES
 
vector< vector< DVector3 > > sc_pos
 
vector< vector< DVector3 > > sc_norm
 

Detailed Description

Form complete list of DTrackCandidate objects using the lists formed from the CDC and FDCCathodes candidate factories (DTrackCandidate_factory_CDC and DTrackCandidate_factory_FDCCathodes).

Track finding starts by looking for candidates independently in the CDC and FDC. The results of those first passes are used as input here where a single list is made containijng all candidates.

This will attempt to identify any candidates that should be merged into a single candidate, mainly if a both a CDC and FDC candidate were found for the same track.

In addition, stray CDC hits that did not belong to any candidate are merged into existing candidates if possible.

Definition at line 50 of file DTrackCandidate_factory.h.

Constructor & Destructor Documentation

DTrackCandidate_factory::DTrackCandidate_factory ( )
inline

Definition at line 52 of file DTrackCandidate_factory.h.

DTrackCandidate_factory::~DTrackCandidate_factory ( )
inline

Definition at line 56 of file DTrackCandidate_factory.h.

Member Function Documentation

jerror_t DTrackCandidate_factory::brun ( JEventLoop *  eventLoop,
int32_t  runnumber 
)
protectedvirtual
bool DTrackCandidate_factory::CheckZPosition ( const DTrackCandidate fdccan) const
protected
double DTrackCandidate_factory::DocaToHelix ( const DCDCTrackHit hit,
double  q,
const DVector3 pos,
const DVector3 mom 
)
protected
jerror_t DTrackCandidate_factory::DoRefit ( DHelicalFit fit,
vector< const DFDCSegment * >  segments,
vector< const DCDCTrackHit * >  cdchits,
double &  Bz 
)
protected
jerror_t DTrackCandidate_factory::erun ( void  )
protectedvirtual

Definition at line 214 of file DTrackCandidate_factory.cc.

jerror_t DTrackCandidate_factory::fini ( void  )
protectedvirtual

Definition at line 227 of file DTrackCandidate_factory.cc.

void DTrackCandidate_factory::GetPositionAndMomentum ( const DFDCSegment segment,
DVector3 pos,
DVector3 mom 
) const
protected
jerror_t DTrackCandidate_factory::GetPositionAndMomentum ( DHelicalFit fit,
double  Bz,
const DVector3 origin,
DVector3 pos,
DVector3 mom 
) const
protected
void DTrackCandidate_factory::GetPositionAndMomentum ( double  z,
const DHelicalFit fit,
double  Bz,
DVector3 pos,
DVector3 mom 
) const
protected
void DTrackCandidate_factory::GetPositionAndMomentum ( const DHelicalFit fit,
double  Bz,
DVector3 pos,
DVector3 mom 
) const
protected
double DTrackCandidate_factory::GetSenseOfRotation ( DHelicalFit fit,
const DFDCPseudo fdchit,
const DVector3 pos 
)
protected
jerror_t DTrackCandidate_factory::init ( void  )
protectedvirtual

Definition at line 120 of file DTrackCandidate_factory.cc.

bool DTrackCandidate_factory::MatchMethod1 ( const DTrackCandidate fdccan,
vector< unsigned int > &  cdc_forward_ids,
vector< DVector3 > &  cdc_endplate_projections,
vector< int > &  cdc_forward_matches 
)
protected
bool DTrackCandidate_factory::MatchMethod11 ( double  q,
DVector3 mypos,
DVector3 mymom,
DHelicalFit fit2,
const DFDCSegment segment1,
const DFDCSegment segment2 
)
protected
bool DTrackCandidate_factory::MatchStraySegments ( vector< int > &  forward_matches,
int &  num_fdc_cands_remaining 
)
protected

Definition at line 3207 of file DTrackCandidate_factory.cc.

References _DBG_.

void DTrackCandidate_factory::ProjectHelixToZ ( const double  z,
const double  q,
const DVector3 mom,
DVector3 pos 
)
protected

Definition at line 961 of file DTrackCandidate_factory.cc.

References sin(), x, and y.

bool DTrackCandidate_factory::TryToFlipDirection ( vector< const DSCHit * > &  scihits,
DVector3 mom,
DVector3 pos 
) const
protected

Definition at line 3166 of file DTrackCandidate_factory.cc.

References _DBG_.

void DTrackCandidate_factory::UpdatePositionAndMomentum ( DHelicalFit fit,
double  Bz,
const DVector3 origin,
DVector3 pos,
DVector3 mom 
) const
protected

Definition at line 3256 of file DTrackCandidate_factory.cc.

Member Data Documentation

const DMagneticFieldMap* DTrackCandidate_factory::bfield
private

Definition at line 138 of file DTrackCandidate_factory.h.

DVector3 DTrackCandidate_factory::cdc_endplate
private

Definition at line 154 of file DTrackCandidate_factory.h.

vector<const DTrackCandidate*> DTrackCandidate_factory::cdctrackcandidates
private

Definition at line 143 of file DTrackCandidate_factory.h.

bool DTrackCandidate_factory::DEBUG_HISTS
private

Definition at line 149 of file DTrackCandidate_factory.h.

int DTrackCandidate_factory::DEBUG_LEVEL
private

Definition at line 148 of file DTrackCandidate_factory.h.

bool DTrackCandidate_factory::dIsNoFieldFlag
private

Definition at line 139 of file DTrackCandidate_factory.h.

const DParticleID* DTrackCandidate_factory::dParticleID
private

Definition at line 141 of file DTrackCandidate_factory.h.

double DTrackCandidate_factory::endplate_rmax
private

Definition at line 155 of file DTrackCandidate_factory.h.

double DTrackCandidate_factory::FactorForSenseOfRotation
private

Definition at line 153 of file DTrackCandidate_factory.h.

vector<const DTrackCandidate*> DTrackCandidate_factory::fdctrackcandidates
private

Definition at line 144 of file DTrackCandidate_factory.h.

TH2F* DTrackCandidate_factory::match_dist
private

Definition at line 150 of file DTrackCandidate_factory.h.

TH2F * DTrackCandidate_factory::match_dist_vs_p
private

Definition at line 150 of file DTrackCandidate_factory.h.

int DTrackCandidate_factory::MAX_NUM_TRACK_CANDIDATES
private

Definition at line 157 of file DTrackCandidate_factory.h.

int DTrackCandidate_factory::MIN_NUM_HITS
private

Definition at line 148 of file DTrackCandidate_factory.h.

vector<const DCDCTrackHit*> DTrackCandidate_factory::mycdchits
private

Definition at line 145 of file DTrackCandidate_factory.h.

vector<vector<DVector3> > DTrackCandidate_factory::sc_norm
private

Definition at line 160 of file DTrackCandidate_factory.h.

vector<vector<DVector3> > DTrackCandidate_factory::sc_pos
private

Definition at line 159 of file DTrackCandidate_factory.h.

DMagneticFieldStepper* DTrackCandidate_factory::stepper
private

Definition at line 140 of file DTrackCandidate_factory.h.

double DTrackCandidate_factory::TARGET_Z
private

Definition at line 156 of file DTrackCandidate_factory.h.

vector<DTrackCandidate *> DTrackCandidate_factory::trackcandidates
private

Definition at line 146 of file DTrackCandidate_factory.h.


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