Hall-D Software
alpha
|
#include <DTrackCandidate_factory.h>
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 DMagneticFieldMap * | bfield |
bool | dIsNoFieldFlag |
DMagneticFieldStepper * | stepper |
const DParticleID * | dParticleID |
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 |
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.
|
inline |
Definition at line 52 of file DTrackCandidate_factory.h.
|
inline |
Definition at line 56 of file DTrackCandidate_factory.h.
|
protectedvirtual |
Definition at line 130 of file DTrackCandidate_factory.cc.
References dapp, DApplication::GetBfield(), DGeometry::GetCDCEndplate(), DApplication::GetDGeometry(), DGeometry::GetStartCounterGeom(), and DGeometry::GetTargetZ().
|
protected |
Definition at line 3274 of file DTrackCandidate_factory.cc.
References DKinematicData::charge(), e, DKinematicData::momentum(), DKinematicData::position(), DTrackCandidate::rc, return, sin(), sqrt(), x, DTrackCandidate::xc, y, and DTrackCandidate::yc.
|
protected |
Definition at line 988 of file DTrackCandidate_factory.cc.
References dir, DCoordinateSystem::origin, sin(), DCoordinateSystem::udir, DCDCTrackHit::wire, x, and y.
|
protected |
Definition at line 1073 of file DTrackCandidate_factory.cc.
References DHelicalFit::AddHit(), DHelicalFit::AddHitXYZ(), DHelicalFit::FitCircle(), DHelicalFit::FitCircleRiemann(), DCoordinateSystem::origin, DHelicalFit::r0, DHelicalFit::tanl, DFDCPseudo::wire, x, DFDCPseudo::xy, and y.
|
protectedvirtual |
Definition at line 214 of file DTrackCandidate_factory.cc.
|
protectedvirtual |
Invoked via JEventProcessor virtual method.
Definition at line 242 of file DTrackCandidate_factory.cc.
References _DBG_, cdc_fdc_match(), CDCHitSortByLayerincreasing(), DKinematicData::charge(), DTrackCandidate::chisq, FDCHitSortByLayerincreasing(), DFDCSegment::hits, DKinematicData::momentum(), DTrackCandidate::Ndof, DKinematicData::PID(), DKinematicData::position(), DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DTrackCandidate::used_cdc_indexes, DTrackCandidate::xc, and DTrackCandidate::yc.
|
protectedvirtual |
Definition at line 227 of file DTrackCandidate_factory.cc.
|
protected |
Definition at line 813 of file DTrackCandidate_factory.cc.
References DFDCSegment::hits, DFDCSegment::phi0, DFDCSegment::Phi1, py, DFDCSegment::q, DFDCSegment::rc, sin(), DFDCSegment::tanl, x, DFDCSegment::xc, y, DFDCSegment::yc, and DFDCSegment::z_vertex.
|
protected |
Definition at line 877 of file DTrackCandidate_factory.cc.
References EPS, DHelicalFit::h, DHelicalFit::r0, sin(), sqrt(), DHelicalFit::tanl, DHelicalFit::x0, and DHelicalFit::y0.
|
protected |
Definition at line 3134 of file DTrackCandidate_factory.cc.
References DHelicalFit::h, py, DHelicalFit::r0, sin(), DHelicalFit::tanl, x, DHelicalFit::x0, y, and DHelicalFit::y0.
|
protected |
Definition at line 850 of file DTrackCandidate_factory.cc.
References e, DHelicalFit::h, DHelicalFit::r0, sin(), sqrt(), DHelicalFit::tanl, x, DHelicalFit::x0, y, and DHelicalFit::y0.
|
protected |
Definition at line 1041 of file DTrackCandidate_factory.cc.
References DCoordinateSystem::origin, DHelicalFit::r0, sin(), DHelicalFit::tanl, DFDCPseudo::wire, DHelicalFit::x0, DFDCPseudo::xy, and DHelicalFit::y0.
|
protectedvirtual |
Definition at line 120 of file DTrackCandidate_factory.cc.
|
protected |
Definition at line 1184 of file DTrackCandidate_factory.cc.
References _DBG_, Bz_avg, CDCHitSortByLayerincreasing(), DTrackCandidate::chisq, DHelicalFit::chisq, DHelicalFit::h, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, PiMinus, PiPlus, DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DTrackCandidate::used_cdc_indexes, DFDCPseudo::wire, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHelicalFit::y0, and DTrackCandidate::yc.
|
protected |
Definition at line 1121 of file DTrackCandidate_factory.cc.
References _DBG_, cdc_fdc_match(), DKinematicData::charge(), DKinematicData::momentum(), and DKinematicData::position().
|
protected |
Definition at line 2492 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::AddHit(), DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, DHelicalFit::FitCircle(), DHelicalFit::FitCircleRiemann(), DHelicalFit::FitCircleStraightTrack(), DHelicalFit::FitLineRiemann(), DHelicalFit::GetHits(), DHelicalFit::h, DFDCSegment::hits, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, DFDCSegment::package, PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, x, DHFHit_t::x, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHFHit_t::y, y, DHelicalFit::y0, DTrackCandidate::yc, and DHFHit_t::z.
|
protected |
Definition at line 2646 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::h, DFDCSegment::hits, DCoordinateSystem::origin, DFDCSegment::package, DFDCPseudo::wire, x, DFDCPseudo::xy, and y.
|
protected |
Definition at line 2770 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::AddHit(), DHelicalFit::AddHitXYZ(), CDCHitSortByLayerincreasing(), DTrackCandidate::chisq, DHelicalFit::chisq, FDCHitSortByLayerincreasing(), DHelicalFit::FitCircleRiemann(), DHelicalFit::FitLineRiemann(), DHelicalFit::h, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, x, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, y, DHelicalFit::y0, and DTrackCandidate::yc.
|
protected |
Definition at line 2982 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::AddHit(), DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, DHelicalFit::FitCircleRiemann(), DHelicalFit::FitLineRiemann(), DHelicalFit::GetHits(), DHelicalFit::h, DFDCSegment::hits, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, DFDCSegment::package, PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, x, DHFHit_t::x, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHFHit_t::y, y, DHelicalFit::y0, DTrackCandidate::yc, DHFHit_t::z, and DHelicalFit::z_vertex.
|
protected |
Definition at line 1266 of file DTrackCandidate_factory.cc.
References _DBG_, Bz_avg, CDCHitSortByLayerincreasing(), DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, dir, DHelicalFit::FindSenseOfRotation(), DHelicalFit::h, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DTrackCandidate::used_cdc_indexes, DFDCPseudo::wire, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHelicalFit::y0, and DTrackCandidate::yc.
|
protected |
Definition at line 1413 of file DTrackCandidate_factory.cc.
References _DBG_, Bz_avg, CDCHitSortByLayerincreasing(), DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, DHelicalFit::FindSenseOfRotation(), DHelicalFit::FitLineRiemann(), DHelicalFit::h, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, DKinematicData::PID(), PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DTrackCandidate::used_cdc_indexes, DFDCPseudo::wire, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHelicalFit::y0, and DTrackCandidate::yc.
|
protected |
Definition at line 1568 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::AddHit(), DHelicalFit::AddHitXYZ(), BEAM_VAR, Bz_avg, DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, DHelicalFit::FitCircle(), DHelicalFit::FitCircleRiemann(), DHelicalFit::FitLineRiemann(), DHelicalFit::GetHits(), DHelicalFit::h, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, DHFHit_t::x, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHFHit_t::y, DHelicalFit::y0, DTrackCandidate::yc, DHFHit_t::z, and DHelicalFit::z_vertex.
|
protected |
Definition at line 1738 of file DTrackCandidate_factory.cc.
References _DBG_, Bz_avg, DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, DHelicalFit::h, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHelicalFit::y0, and DTrackCandidate::yc.
|
protected |
Definition at line 1842 of file DTrackCandidate_factory.cc.
References _DBG_, Bz_avg, DKinematicData::charge(), DHelicalFit::h, DKinematicData::momentum(), DCoordinateSystem::origin, DHelicalFit::phi, DKinematicData::position(), DHelicalFit::r0, DKinematicData::setMomentum(), DKinematicData::setPosition(), sin(), DHelicalFit::tanl, DTrackCandidate::used_cdc_indexes, DFDCPseudo::wire, x, DHelicalFit::x0, DFDCPseudo::xy, y, DHelicalFit::y0, and DHelicalFit::z_vertex.
|
protected |
Definition at line 1953 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::AddHit(), DHelicalFit::AddHitXYZ(), CDCHitSortByLayerincreasing(), DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, FDCHitSortByLayerincreasing(), DHelicalFit::FitCircle(), DHelicalFit::FitCircleRiemann(), DHelicalFit::GetHits(), DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, x, DHFHit_t::x, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHFHit_t::y, y, DHelicalFit::y0, DTrackCandidate::yc, and DHFHit_t::z.
|
protected |
Definition at line 2122 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::AddHit(), DHelicalFit::AddHitXYZ(), BEAM_VAR, CDCHitSortByLayerincreasing(), DTrackCandidate::chisq, DHelicalFit::chisq, dir, DHelicalFit::FitCircle(), DHelicalFit::FitCircleRiemann(), DHelicalFit::GuessChargeFromCircleFit(), DHelicalFit::h, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, PiMinus, PiPlus, DHelicalFit::PruneHit(), DHelicalFit::r0, DTrackCandidate::rc, SegmentSortByLayerincreasing(), DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, x, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, y, DHelicalFit::y0, and DTrackCandidate::yc.
|
protected |
Definition at line 2324 of file DTrackCandidate_factory.cc.
References _DBG_, DHelicalFit::AddHit(), DKinematicData::charge(), DTrackCandidate::chisq, DHelicalFit::chisq, DHelicalFit::FitCircle(), DHelicalFit::FitCircleRiemann(), DHelicalFit::FitLineRiemann(), DHelicalFit::GetHits(), DHelicalFit::h, DFDCSegment::hits, DKinematicData::momentum(), DTrackCandidate::Ndof, DHelicalFit::ndof, DCoordinateSystem::origin, DFDCSegment::package, PiMinus, PiPlus, DKinematicData::position(), DHelicalFit::r0, DTrackCandidate::rc, DKinematicData::setMomentum(), DKinematicData::setPID(), DKinematicData::setPosition(), DHelicalFit::tanl, DFDCPseudo::wire, x, DHFHit_t::x, DHelicalFit::x0, DTrackCandidate::xc, DFDCPseudo::xy, DHFHit_t::y, y, DHelicalFit::y0, DTrackCandidate::yc, and DHFHit_t::z.
|
protected |
Definition at line 3207 of file DTrackCandidate_factory.cc.
References _DBG_.
|
protected |
Definition at line 961 of file DTrackCandidate_factory.cc.
|
protected |
Definition at line 3166 of file DTrackCandidate_factory.cc.
References _DBG_.
|
protected |
Definition at line 3256 of file DTrackCandidate_factory.cc.
|
private |
Definition at line 138 of file DTrackCandidate_factory.h.
|
private |
Definition at line 154 of file DTrackCandidate_factory.h.
|
private |
Definition at line 143 of file DTrackCandidate_factory.h.
|
private |
Definition at line 149 of file DTrackCandidate_factory.h.
|
private |
Definition at line 148 of file DTrackCandidate_factory.h.
|
private |
Definition at line 139 of file DTrackCandidate_factory.h.
|
private |
Definition at line 141 of file DTrackCandidate_factory.h.
|
private |
Definition at line 155 of file DTrackCandidate_factory.h.
|
private |
Definition at line 153 of file DTrackCandidate_factory.h.
|
private |
Definition at line 144 of file DTrackCandidate_factory.h.
|
private |
Definition at line 150 of file DTrackCandidate_factory.h.
|
private |
Definition at line 150 of file DTrackCandidate_factory.h.
|
private |
Definition at line 157 of file DTrackCandidate_factory.h.
|
private |
Definition at line 148 of file DTrackCandidate_factory.h.
|
private |
Definition at line 145 of file DTrackCandidate_factory.h.
|
private |
Definition at line 160 of file DTrackCandidate_factory.h.
|
private |
Definition at line 159 of file DTrackCandidate_factory.h.
|
private |
Definition at line 140 of file DTrackCandidate_factory.h.
|
private |
Definition at line 156 of file DTrackCandidate_factory.h.
|
private |
Definition at line 146 of file DTrackCandidate_factory.h.