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

#include <DTrackCandidate_factory_CDC.h>

+ Inheritance diagram for DTrackCandidate_factory_CDC:

Classes

class  DCDCLineFit
 
class  DCDCRingSeed
 
class  DCDCSuperLayerSeed
 
class  DCDCTrackCircle
 
class  DCDCTrkHit
 
struct  DSpiralParams_t
 
struct  intersection_t
 

Public Types

enum  trk_flags_t { NONE = 0x000, NOISE = 0x001, USED = 0x002, OUT_OF_TIME = 0x004 }
 
enum  wire_direction_t { WIRE_DIRECTION_AXIAL = 0, WIRE_DIRECTION_STEREOLEFT = 1, WIRE_DIRECTION_STEREORIGHT = 2 }
 
typedef vector< vector
< DCDCRingSeed > >::iterator 
ringiter
 

Public Member Functions

 DTrackCandidate_factory_CDC ()
 
 ~DTrackCandidate_factory_CDC ()
 
const char * Tag (void)
 

Private Member Functions

jerror_t init (void)
 Called once at program start. More...
 
jerror_t brun (JEventLoop *locEventLoop, int32_t runnumber)
 Called everytime a new run number is detected. More...
 
jerror_t evnt (JEventLoop *locEventLoop, uint64_t eventnumber)
 Called every event. More...
 
jerror_t erun (void)
 Called everytime run number changes, provided brun has been called. More...
 
jerror_t fini (void)
 Called after last event of last event source has been processed. More...
 
void Reset_Pools (void)
 
DCDCTrkHitGet_Resource_CDCTrkHit (void)
 
DCDCSuperLayerSeedGet_Resource_CDCSuperLayerSeed (void)
 
DHelicalFitGet_Resource_HelicalFit (void)
 
DCDCTrackCircleGet_Resource_CDCTrackCircle (void)
 
jerror_t Get_CDCHits (JEventLoop *loop)
 
void Find_SuperLayerSeeds (vector< DCDCTrkHit * > &locSuperLayerHits, unsigned int locSuperLayer)
 
void Link_RingSeeds (vector< DCDCRingSeed * > &parent, ringiter ring, ringiter ringend, unsigned int locSuperLayer, unsigned int locNumPreviousRingsWithoutHit)
 
double MinDist2 (const DCDCRingSeed &locInnerRingSeed, const DCDCRingSeed &locOuterRingSeed)
 
double MinDist2 (const vector< DCDCTrkHit * > &locInnerSeedHits, const vector< DCDCTrkHit * > &locOuterSeedHits)
 
void Reject_SuperLayerSeeds_HighSeedDensity (unsigned int locSuperLayer)
 
void Calc_SuperLayerPhiRange (DCDCSuperLayerSeed *locSuperLayerSeed, double &locSeedFirstPhi, double &locSeedLastPhi)
 
bool Check_IfPhiRangesOverlap (double locFirstSeedPhi, double locLastSeedPhi, double locTargetFirstPhi, double locTargetLastPhi)
 
void Set_SpiralLinkParams (void)
 
bool SearchFor_SpiralTurn_TwoSeedsSharingManyHits (DCDCSuperLayerSeed *locSuperLayerSeed1, DCDCSuperLayerSeed *locSuperLayerSeed2)
 
bool SearchFor_SpiralTurn_TwoSeedsSharingFewHits (DCDCSuperLayerSeed *locSuperLayerSeed1, DCDCSuperLayerSeed *locSuperLayerSeed2)
 
bool SearchFor_SpiralTurn_ManyHitsAdjacentRing (DCDCSuperLayerSeed *locSuperLayerSeed1, DCDCSuperLayerSeed *locSuperLayerSeed2, int locRingToCheck, int locMinStrawsAdjacentRing, int &locMaxSpiralNumHits)
 
bool SearchFor_SpiralTurn_MissingOrBetweenRings (DCDCSuperLayerSeed *locSuperLayerSeed1, DCDCSuperLayerSeed *locSuperLayerSeed2)
 
bool SearchFor_SpiralTurn_SingleSeed (DCDCSuperLayerSeed *locSuperLayerSeed)
 
void Print_SuperLayerSeeds (void)
 
bool Build_TrackCircles (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
bool Link_SuperLayers (vector< DCDCTrackCircle * > &locCDCTrackCircles, unsigned int locOuterSuperLayer)
 
void Link_SuperLayers_FromAxial (vector< DCDCTrackCircle * > &locCDCTrackCircles, unsigned int locOuterSuperLayer, unsigned int locInnerSuperLayer)
 
void Link_SuperLayers_FromStereo (vector< DCDCTrackCircle * > &locCDCTrackCircles, unsigned int locOuterSuperLayer, unsigned int locInnerSuperLayer)
 
bool Link_SuperLayers_FromStereo_ToAxial (vector< DCDCTrackCircle * > &locCDCTrackCircles, unsigned int locOuterSuperLayer, unsigned int locInnerSuperLayer)
 
void Link_SuperLayers_FromStereo_ToStereo (vector< DCDCTrackCircle * > &locCDCTrackCircles, unsigned int locOuterSuperLayer, unsigned int locInnerSuperLayer)
 
bool Check_IfShouldAttemptLink (const DCDCSuperLayerSeed *locSuperLayerSeed, bool locInnerSeedFlag)
 
bool Attempt_SeedLink (DCDCSuperLayerSeed *locSuperLayerSeed1, DCDCSuperLayerSeed *locSuperLayerSeed2)
 
bool Attempt_SeedLink (DCDCRingSeed &locRingSeed1, DCDCRingSeed &locRingSeed2, wire_direction_t locWireDirection1, wire_direction_t locWireDirection2)
 
void Recycle_DCDCTrackCircle (DCDCTrackCircle *locCDCTrackCircle)
 
void Print_TrackCircles (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Print_TrackCircle (DCDCTrackCircle *locCDCTrackCircle)
 
void Reject_DefiniteSpiralArms (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Drop_IncompleteGroups (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Fit_Circles (vector< DCDCTrackCircle * > &locCDCTrackCircles, bool locFitOnlyIfNullFitFlag, bool locAddStereoLayerIntersectionsFlag, bool locFitDuringLinkingFlag=false)
 
DVector3 Find_IntersectionBetweenSuperLayers (const DCDCSuperLayerSeed *locInnerSuperLayerSeed, const DCDCSuperLayerSeed *locOuterSuperLayerSeed)
 
void Handle_StereoAndFilter (vector< DCDCTrackCircle * > &locCDCTrackCircles, bool locFinalPassFlag)
 
void Truncate_TrackCircles (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Set_HitBitPattern_Axial (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Filter_TrackCircles_Axial (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Create_NewCDCSuperLayerSeeds (DCDCTrackCircle *locCDCTrackCircle)
 
DCDCSuperLayerSeedCreate_NewStereoSuperLayerSeed (DCDCSuperLayerSeed *locCDCSuperLayerSeed, const DCDCTrackCircle *locCDCTrackCircle, map< DCDCTrkHit *, DCDCTrkHit * > &locProjectedStereoHitMap)
 
bool Calc_StereoPosition (const DCDCWire *wire, const DHelicalFit *fit, DVector3 &pos, double &var_z, double &locPhiStereo, double d=0.0)
 
bool Select_CDCSuperLayerSeeds (DCDCTrackCircle *locCDCTrackCircle, bool locFinalPassFlag)
 
void Select_ThetaZStereoHits (const DCDCTrackCircle *locCDCTrackCircle, int locInnerSeedSeriesIndex, int locOuterSeedSeriesIndex, bool locFinalPassFlag, vector< DCDCTrkHit * > &locComboHits)
 
void Calc_StereoHitDeltaPhis (unsigned int locSuperLayer, vector< DCDCTrkHit * > &locHits, const DCDCTrackCircle *locCDCTrackCircle, vector< pair< DCDCTrkHit *, double > > &locDeltaPhis)
 
double MinDeltaPhi (const vector< DCDCTrkHit * > &locInnerSeedHits, const vector< DCDCTrkHit * > &locOuterSeedHits)
 
void Recycle_DCDCSuperLayerSeed (DCDCSuperLayerSeed *locCDCSuperLayerSeed)
 
bool Find_ThetaZ (const DHelicalFit *locFit, const vector< DCDCTrkHit * > &locStereoHits, double &locTheta, double &locZ, double &locChiSqPerNDF)
 
bool Find_ThetaZ_Regression (const DHelicalFit *locFit, const vector< DCDCTrkHit * > &locStereoHits, double &locTheta, double &locZ, double &locChiSqPerNDF)
 
bool Find_Theta (const DHelicalFit *locFit, const vector< DCDCTrkHit * > &locStereoHits, double &locTheta, double &locThetaMin, double &locThetaMax, double &locChiSqPerNDF)
 
bool Find_Z (const DHelicalFit *locFit, const vector< DCDCTrkHit * > &locStereoHits, double locThetaMin, double locThetaMax, double &locZ)
 
void Set_HitBitPattern_All (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Filter_TrackCircles_Stereo (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Add_UnusedHits (vector< DCDCTrackCircle * > &locCDCTrackCircles)
 
void Create_TrackCandidiate (DCDCTrackCircle *locCDCTrackCircle)
 
bool Calc_PositionAndMomentum (DCDCTrackCircle *locCDCTrackCircle, DVector3 &pos, DVector3 &mom)
 

Private Attributes

int DEBUG_LEVEL
 
unsigned int MAX_ALLOWED_CDC_HITS
 
unsigned int MAX_NUM_RINGSEED_RINGS_SKIPABLE
 
double MAX_HIT_DIST
 
double MAX_HIT_DIST2
 
unsigned int MIN_SEED_HITS
 
unsigned int MAX_STRAWS_BETWEEN_LINK_SPIRAL_TURN
 
unsigned int MIN_STRAWS_POTENTIAL_SPIRAL_TURN
 
unsigned int MIN_STRAWS_DEFINITE_SPIRAL_TURN
 
unsigned int MIN_STRAWS_ADJACENT_TO_SPIRAL_TURN
 
unsigned int SEED_DENSITY_BIN_STRAW_WIDTH
 
unsigned int MAX_SEEDS_IN_STRAW_BIN
 
unsigned int MAX_ALLOWED_TRACK_CIRCLES
 
bool ENABLE_DEAD_HV_BOARD_LINKING
 
unsigned int MAX_SUPERLAYER_NEW_TRACK
 
double MAX_COMMON_HIT_FRACTION
 
double MIN_CIRCLE_ASYMMETRY
 
double MAX_DRIFT_TIME
 
double MAX_SEED_TIME_DIFF
 
unsigned int MIN_PRUNED_STEREO_HITS
 
double MAX_UNUSED_HIT_LINK_ANGLE
 
size_t MAX_DCDCTrkHitPoolSize
 
size_t MAX_DCDCSuperLayerSeedPoolSize
 
size_t MAX_DCDCTrackCirclePoolSize
 
size_t MAX_HelicalFitPoolSize
 
double TARGET_Z
 
double VERTEX_Z_MIN
 
double VERTEX_Z_MAX
 
map< DCDCTrkHit *, unsigned int > dStereoHitNumUsedMap
 
vector< DCDCTrkHit * > dCDCTrkHitPool_Available
 
vector< DCDCTrkHit * > dCDCTrkHitPool_All
 
vector< DCDCSuperLayerSeed * > dCDCSuperLayerSeedPool_Available
 
vector< DCDCSuperLayerSeed * > dCDCSuperLayerSeedPool_All
 
vector< DCDCTrackCircle * > dCDCTrackCirclePool_Available
 
vector< DCDCTrackCircle * > dCDCTrackCirclePool_All
 
vector< DHelicalFit * > dHelicalFitPool_All
 
vector< DHelicalFit * > dHelicalFitPool_Available
 
vector< unsigned int > dNumStrawsPerRing
 
vector< unsigned int > superlayer_boundaries
 
unsigned int dNumCDCHits
 
vector< DCDCTrkHit * > cdctrkhits
 
vector< vector< DCDCTrkHit * > > cdchits_by_superlayer
 
vector< vector
< DCDCSuperLayerSeed * > > 
dSuperLayerSeeds
 
const DMagneticFieldMapdMagneticField
 
double dFactorForSenseOfRotation
 
unsigned int dNumSeedDensityPhiBins
 
map< unsigned int, vector
< pair< double, double > > > 
dRejectedPhiRegions
 

Detailed Description

Definition at line 27 of file DTrackCandidate_factory_CDC.h.

Member Typedef Documentation

typedef vector<vector<DCDCRingSeed> >::iterator DTrackCandidate_factory_CDC::ringiter

Definition at line 179 of file DTrackCandidate_factory_CDC.h.

Member Enumeration Documentation

Enumerator
NONE 
NOISE 
USED 
OUT_OF_TIME 

Definition at line 34 of file DTrackCandidate_factory_CDC.h.

Enumerator
WIRE_DIRECTION_AXIAL 
WIRE_DIRECTION_STEREOLEFT 
WIRE_DIRECTION_STEREORIGHT 

Definition at line 42 of file DTrackCandidate_factory_CDC.h.

Constructor & Destructor Documentation

DTrackCandidate_factory_CDC::DTrackCandidate_factory_CDC ( )
inline

Definition at line 30 of file DTrackCandidate_factory_CDC.h.

DTrackCandidate_factory_CDC::~DTrackCandidate_factory_CDC ( )

Definition at line 67 of file DTrackCandidate_factory_CDC.cc.

Member Function Documentation

bool DTrackCandidate_factory_CDC::Attempt_SeedLink ( DCDCSuperLayerSeed locSuperLayerSeed1,
DCDCSuperLayerSeed locSuperLayerSeed2 
)
private
bool DTrackCandidate_factory_CDC::Attempt_SeedLink ( DCDCRingSeed locRingSeed1,
DCDCRingSeed locRingSeed2,
wire_direction_t  locWireDirection1,
wire_direction_t  locWireDirection2 
)
private
jerror_t DTrackCandidate_factory_CDC::brun ( JEventLoop *  locEventLoop,
int32_t  runnumber 
)
private

Called everytime a new run number is detected.

Definition at line 154 of file DTrackCandidate_factory_CDC.cc.

References DApplication::GetBfield(), DGeometry::GetCDCWires(), DApplication::GetDGeometry(), DGeometry::GetTargetZ(), and size.

void DTrackCandidate_factory_CDC::Calc_StereoHitDeltaPhis ( unsigned int  locSuperLayer,
vector< DCDCTrkHit * > &  locHits,
const DCDCTrackCircle locCDCTrackCircle,
vector< pair< DCDCTrkHit *, double > > &  locDeltaPhis 
)
private
bool DTrackCandidate_factory_CDC::Calc_StereoPosition ( const DCDCWire wire,
const DHelicalFit fit,
DVector3 pos,
double &  var_z,
double &  locPhiStereo,
double  d = 0.0 
)
private
void DTrackCandidate_factory_CDC::Calc_SuperLayerPhiRange ( DCDCSuperLayerSeed locSuperLayerSeed,
double &  locSeedFirstPhi,
double &  locSeedLastPhi 
)
private
bool DTrackCandidate_factory_CDC::Check_IfPhiRangesOverlap ( double  locFirstSeedPhi,
double  locLastSeedPhi,
double  locTargetFirstPhi,
double  locTargetLastPhi 
)
private

Definition at line 1129 of file DTrackCandidate_factory_CDC.cc.

bool DTrackCandidate_factory_CDC::Check_IfShouldAttemptLink ( const DCDCSuperLayerSeed locSuperLayerSeed,
bool  locInnerSeedFlag 
)
private
void DTrackCandidate_factory_CDC::Create_NewCDCSuperLayerSeeds ( DCDCTrackCircle locCDCTrackCircle)
private
jerror_t DTrackCandidate_factory_CDC::erun ( void  )
private

Called everytime run number changes, provided brun has been called.

Definition at line 4721 of file DTrackCandidate_factory_CDC.cc.

jerror_t DTrackCandidate_factory_CDC::evnt ( JEventLoop *  locEventLoop,
uint64_t  eventnumber 
)
private

Called every event.

Definition at line 214 of file DTrackCandidate_factory_CDC.cc.

References CDCSortByChiSqPerNDFDecreasing().

void DTrackCandidate_factory_CDC::Filter_TrackCircles_Axial ( vector< DCDCTrackCircle * > &  locCDCTrackCircles)
private
DVector3 DTrackCandidate_factory_CDC::Find_IntersectionBetweenSuperLayers ( const DCDCSuperLayerSeed locInnerSuperLayerSeed,
const DCDCSuperLayerSeed locOuterSuperLayerSeed 
)
private
void DTrackCandidate_factory_CDC::Find_SuperLayerSeeds ( vector< DCDCTrkHit * > &  locSuperLayerHits,
unsigned int  locSuperLayer 
)
private
bool DTrackCandidate_factory_CDC::Find_Theta ( const DHelicalFit locFit,
const vector< DCDCTrkHit * > &  locStereoHits,
double &  locTheta,
double &  locThetaMin,
double &  locThetaMax,
double &  locChiSqPerNDF 
)
private

Find the theta value using the input stereo hits. The values for dPhiStereo and dStereoHitPos.Z() are assumed to be valid. The value of locFit.r0 is also used to calculate theta.

This uses a histogramming technique that looks at the overlaps of the angle ranges subtended by each hit between the given target limits. The overlaps usually lead to a range of values for theta. The limits of these are stored in locThetaMin and locThetaMax. The centroid of the range is stored in the theta field.

Definition at line 3984 of file DTrackCandidate_factory_CDC.cc.

References alpha, DTrackCandidate_factory_CDC::DCDCTrkHit::dPhiStereo, DTrackCandidate_factory_CDC::DCDCTrkHit::dStereoHitPos, DHelicalFit::h, hist, M_TWO_PI, Nbins, and DHelicalFit::r0.

bool DTrackCandidate_factory_CDC::Find_ThetaZ ( const DHelicalFit locFit,
const vector< DCDCTrkHit * > &  locStereoHits,
double &  locTheta,
double &  locZ,
double &  locChiSqPerNDF 
)
private

Definition at line 3781 of file DTrackCandidate_factory_CDC.cc.

References DHelicalFit::r0, sqrt(), x, and y.

bool DTrackCandidate_factory_CDC::Find_Z ( const DHelicalFit locFit,
const vector< DCDCTrkHit * > &  locStereoHits,
double  locThetaMin,
double  locThetaMax,
double &  locZ 
)
private

Find the z value of the vertex using the stereo hits. The values for dPhiStereo and dStereoHitPos.Z() are assumed to be valid.

This uses a histogramming technique that looks at the overlaps of the z ranges subtended by each hit between the given theta limits. The overlaps usually lead to a range of values for z_vertex. The centroid of the range is returned as locZ.

Definition at line 4083 of file DTrackCandidate_factory_CDC.cc.

References DTrackCandidate_factory_CDC::DCDCTrkHit::dPhiStereo, DTrackCandidate_factory_CDC::DCDCTrkHit::dStereoHitPos, DHelicalFit::h, hist, Nbins, DHelicalFit::r0, zmax, and zmin.

jerror_t DTrackCandidate_factory_CDC::fini ( void  )
private

Called after last event of last event source has been processed.

Definition at line 4729 of file DTrackCandidate_factory_CDC.cc.

void DTrackCandidate_factory_CDC::Fit_Circles ( vector< DCDCTrackCircle * > &  locCDCTrackCircles,
bool  locFitOnlyIfNullFitFlag,
bool  locAddStereoLayerIntersectionsFlag,
bool  locFitDuringLinkingFlag = false 
)
private

Do a quick fit of the 2-D projection of the axial hits in the seed to a circle Include intersection between stereo layer seeds if locAddStereoLayerIntersectionsFlag = true (assumes only one stereo seed series for each inner/outer) Determine the sign of the charge (and correspondingly the initial phi angle) assuming that the majority of hits come from the outgoing part of the track.

If the resulting circle passes within MAX_HIT_DIST the majority of the hits, then the fit was a success. Otherwise it is a failure and the DCDCTrackCircle is discarded.

locFitOnlyIfNullFitFlag should be false unless just truncated the input set of circles if true, this will skip fitting circles that have DCDCTrackCircle::fit != NULL (i.e. were not truncated)

Definition at line 2353 of file DTrackCandidate_factory_CDC.cc.

References DHelicalFit::AddHitXYZ(), BeamRMS, DHelicalFit::chisq, DTrackCandidate_factory_CDC::DCDCTrackCircle::dAverageDriftTime, DTrackCandidate_factory_CDC::DCDCTrackCircle::dSuperLayerSeeds_Axial, DTrackCandidate_factory_CDC::DCDCTrackCircle::dWeightedChiSqPerDF, DHelicalFit::FindSenseOfRotation(), DTrackCandidate_factory_CDC::DCDCTrackCircle::fit, DHelicalFit::FitCircle(), DHelicalFit::FitCircleRiemann(), DHelicalFit::FitCircleStraightTrack(), DTrackCandidate_factory_CDC::DCDCTrackCircle::Get_SuperLayerSeed(), DHelicalFit::GetNhits(), DHelicalFit::GuessChargeFromCircleFit(), DHelicalFit::h, DHelicalFit::ndof, DHelicalFit::phi, DHelicalFit::r0, sqrt(), DHelicalFit::x0, and DHelicalFit::y0.

DTrackCandidate_factory_CDC::DCDCSuperLayerSeed * DTrackCandidate_factory_CDC::Get_Resource_CDCSuperLayerSeed ( void  )
private
DTrackCandidate_factory_CDC::DCDCTrackCircle * DTrackCandidate_factory_CDC::Get_Resource_CDCTrackCircle ( void  )
private
DTrackCandidate_factory_CDC::DCDCTrkHit * DTrackCandidate_factory_CDC::Get_Resource_CDCTrkHit ( void  )
private
DHelicalFit * DTrackCandidate_factory_CDC::Get_Resource_HelicalFit ( void  )
private

Definition at line 369 of file DTrackCandidate_factory_CDC.cc.

References DHelicalFit::Reset().

void DTrackCandidate_factory_CDC::Handle_StereoAndFilter ( vector< DCDCTrackCircle * > &  locCDCTrackCircles,
bool  locFinalPassFlag 
)
private

Definition at line 2559 of file DTrackCandidate_factory_CDC.cc.

jerror_t DTrackCandidate_factory_CDC::init ( void  )
private

Called once at program start.

Definition at line 75 of file DTrackCandidate_factory_CDC.cc.

void DTrackCandidate_factory_CDC::Link_RingSeeds ( vector< DCDCRingSeed * > &  parent,
ringiter  ring,
ringiter  ringend,
unsigned int  locSuperLayer,
unsigned int  locNumPreviousRingsWithoutHit 
)
private

Combine DCDCRingSeed's from rings into DCDCSuperLayerSeed's

This a a re-entrant routine (i.e. it calls itself recursively). Upon entry, parent contains a list of pointers to all of the ringseeds from the rings outside of ring that are to be combined into a seed. This will search through all ringseeds of ring and if any are found that can extend the parent, a copy of parent is made, the current ringseed of this ring is added to it, and then it is passed on to another call to this routine. If no matches are found, then it will try skipping a ring to find matches (if enabled). If still no matches are found (which will be the case for the outer-most ring), then the ringseeds in parent will be combined into a single DCDCSuperLayerSeed.

Definition at line 661 of file DTrackCandidate_factory_CDC.cc.

References DTrackCandidate_factory_CDC::DCDCSuperLayerSeed::dCDCRingSeeds, and DTrackCandidate_factory_CDC::DCDCRingSeed::hits.

bool DTrackCandidate_factory_CDC::Link_SuperLayers ( vector< DCDCTrackCircle * > &  locCDCTrackCircles,
unsigned int  locOuterSuperLayer 
)
private

Loop over the DCDCTrackCircles and the next super layer seeds and compare the positions of their first and last hits to see if we should link them together. If at <= MAX_SUPERLAYER_NEW_TRACK: Any seeds from the outer super layer that are not linked will be added to the DCDCTrackCircle list. Will try to link by skipping a super layer if a link was not previously performed and ENABLE_DEAD_HV_BOARD_LINKING is set to true (default false)

Definition at line 1639 of file DTrackCandidate_factory_CDC.cc.

References DTrackCandidate_factory_CDC::DCDCSuperLayerSeed::dSeedIndex, DTrackCandidate_factory_CDC::DCDCSuperLayerSeed::dSuperLayer, DTrackCandidate_factory_CDC::DCDCTrackCircle::dSuperLayerSeeds_Axial, DTrackCandidate_factory_CDC::DCDCTrackCircle::dSuperLayerSeeds_InnerStereo, DTrackCandidate_factory_CDC::DCDCTrackCircle::dSuperLayerSeeds_OuterStereo, and DTrackCandidate_factory_CDC::DCDCSuperLayerSeed::linked.

void DTrackCandidate_factory_CDC::Link_SuperLayers_FromStereo ( vector< DCDCTrackCircle * > &  locCDCTrackCircles,
unsigned int  locOuterSuperLayer,
unsigned int  locInnerSuperLayer 
)
private
double DTrackCandidate_factory_CDC::MinDeltaPhi ( const vector< DCDCTrkHit * > &  locInnerSeedHits,
const vector< DCDCTrkHit * > &  locOuterSeedHits 
)
private

Returns the minimum delta-phi between the two groups of hits. Assumes all of the hits in a given set are on the same ring. First it checks if the two seeds overlap in phi: if so, then return 0 Otherwise, only the first and last hits of the adjacent rings between each seed's hit list are used. to calculate a maximum of 4 delta-phis (minimum of 1) of which, the smallest is returned.

Definition at line 3686 of file DTrackCandidate_factory_CDC.cc.

References DTrackCandidate_factory_CDC::DCDCTrkHit::hit, M_TWO_PI, DCDCWire::phi, DCDCWire::ring, DCDCWire::straw, and DCDCTrackHit::wire.

double DTrackCandidate_factory_CDC::MinDist2 ( const DCDCRingSeed locInnerRingSeed,
const DCDCRingSeed locOuterRingSeed 
)
private
double DTrackCandidate_factory_CDC::MinDist2 ( const vector< DCDCTrkHit * > &  locInnerSeedHits,
const vector< DCDCTrkHit * > &  locOuterSeedHits 
)
private

Returns the minimum distance squared between the two seeds. Assumes all of the hits in a given set are on the same ring. First it checks if the two seeds overlap in phi: if so, then the radial difference between the rings (squared) is returned. Otherwise, only the first and last hits of the adjacent rings between each seed's hit list are used. to calculate a maximum of 4 distances (minimum of 1), of which the smallest is returned.

Definition at line 803 of file DTrackCandidate_factory_CDC.cc.

References DTrackCandidate_factory_CDC::DCDCTrkHit::Dist2(), DTrackCandidate_factory_CDC::DCDCTrkHit::hit, M_TWO_PI, DCoordinateSystem::origin, DCDCWire::phi, DCDCWire::ring, DCDCWire::straw, and DCDCTrackHit::wire.

void DTrackCandidate_factory_CDC::Print_SuperLayerSeeds ( void  )
private
void DTrackCandidate_factory_CDC::Print_TrackCircles ( vector< DCDCTrackCircle * > &  locCDCTrackCircles)
private

Definition at line 2220 of file DTrackCandidate_factory_CDC.cc.

void DTrackCandidate_factory_CDC::Recycle_DCDCSuperLayerSeed ( DCDCSuperLayerSeed locCDCSuperLayerSeed)
private
void DTrackCandidate_factory_CDC::Recycle_DCDCTrackCircle ( DCDCTrackCircle locCDCTrackCircle)
private
void DTrackCandidate_factory_CDC::Reject_SuperLayerSeeds_HighSeedDensity ( unsigned int  locSuperLayer)
private

Definition at line 892 of file DTrackCandidate_factory_CDC.cc.

References hist, and M_TWO_PI.

void DTrackCandidate_factory_CDC::Reset_Pools ( void  )
private

Definition at line 299 of file DTrackCandidate_factory_CDC.cc.

bool DTrackCandidate_factory_CDC::SearchFor_SpiralTurn_ManyHitsAdjacentRing ( DCDCSuperLayerSeed locSuperLayerSeed1,
DCDCSuperLayerSeed locSuperLayerSeed2,
int  locRingToCheck,
int  locMinStrawsAdjacentRing,
int &  locMaxSpiralNumHits 
)
private
void DTrackCandidate_factory_CDC::Set_HitBitPattern_Axial ( vector< DCDCTrackCircle * > &  locCDCTrackCircles)
private
void DTrackCandidate_factory_CDC::Set_SpiralLinkParams ( void  )
private

Definition at line 1177 of file DTrackCandidate_factory_CDC.cc.

const char* DTrackCandidate_factory_CDC::Tag ( void  )
inline

Definition at line 32 of file DTrackCandidate_factory_CDC.h.

Member Data Documentation

vector<vector<DCDCTrkHit*> > DTrackCandidate_factory_CDC::cdchits_by_superlayer
private

Definition at line 312 of file DTrackCandidate_factory_CDC.h.

vector<DCDCTrkHit*> DTrackCandidate_factory_CDC::cdctrkhits
private

Definition at line 311 of file DTrackCandidate_factory_CDC.h.

vector<DCDCSuperLayerSeed*> DTrackCandidate_factory_CDC::dCDCSuperLayerSeedPool_All
private

Definition at line 299 of file DTrackCandidate_factory_CDC.h.

vector<DCDCSuperLayerSeed*> DTrackCandidate_factory_CDC::dCDCSuperLayerSeedPool_Available
private

Definition at line 298 of file DTrackCandidate_factory_CDC.h.

vector<DCDCTrackCircle*> DTrackCandidate_factory_CDC::dCDCTrackCirclePool_All
private

Definition at line 302 of file DTrackCandidate_factory_CDC.h.

vector<DCDCTrackCircle*> DTrackCandidate_factory_CDC::dCDCTrackCirclePool_Available
private

Definition at line 301 of file DTrackCandidate_factory_CDC.h.

vector<DCDCTrkHit*> DTrackCandidate_factory_CDC::dCDCTrkHitPool_All
private

Definition at line 296 of file DTrackCandidate_factory_CDC.h.

vector<DCDCTrkHit*> DTrackCandidate_factory_CDC::dCDCTrkHitPool_Available
private

Definition at line 295 of file DTrackCandidate_factory_CDC.h.

int DTrackCandidate_factory_CDC::DEBUG_LEVEL
private

Definition at line 261 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::dFactorForSenseOfRotation
private

Definition at line 316 of file DTrackCandidate_factory_CDC.h.

vector<DHelicalFit*> DTrackCandidate_factory_CDC::dHelicalFitPool_All
private

Definition at line 304 of file DTrackCandidate_factory_CDC.h.

vector<DHelicalFit*> DTrackCandidate_factory_CDC::dHelicalFitPool_Available
private

Definition at line 305 of file DTrackCandidate_factory_CDC.h.

const DMagneticFieldMap* DTrackCandidate_factory_CDC::dMagneticField
private

Definition at line 315 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::dNumCDCHits
private

Definition at line 310 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::dNumSeedDensityPhiBins
private

Definition at line 318 of file DTrackCandidate_factory_CDC.h.

vector<unsigned int> DTrackCandidate_factory_CDC::dNumStrawsPerRing
private

Definition at line 307 of file DTrackCandidate_factory_CDC.h.

map<unsigned int, vector<pair<double, double> > > DTrackCandidate_factory_CDC::dRejectedPhiRegions
private

Definition at line 320 of file DTrackCandidate_factory_CDC.h.

map<DCDCTrkHit*, unsigned int> DTrackCandidate_factory_CDC::dStereoHitNumUsedMap
private

Definition at line 292 of file DTrackCandidate_factory_CDC.h.

vector<vector<DCDCSuperLayerSeed*> > DTrackCandidate_factory_CDC::dSuperLayerSeeds
private

Definition at line 313 of file DTrackCandidate_factory_CDC.h.

bool DTrackCandidate_factory_CDC::ENABLE_DEAD_HV_BOARD_LINKING
private

Definition at line 274 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MAX_ALLOWED_CDC_HITS
private

Definition at line 262 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MAX_ALLOWED_TRACK_CIRCLES
private

Definition at line 273 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::MAX_COMMON_HIT_FRACTION
private

Definition at line 276 of file DTrackCandidate_factory_CDC.h.

size_t DTrackCandidate_factory_CDC::MAX_DCDCSuperLayerSeedPoolSize
private

Definition at line 284 of file DTrackCandidate_factory_CDC.h.

size_t DTrackCandidate_factory_CDC::MAX_DCDCTrackCirclePoolSize
private

Definition at line 285 of file DTrackCandidate_factory_CDC.h.

size_t DTrackCandidate_factory_CDC::MAX_DCDCTrkHitPoolSize
private

Definition at line 283 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::MAX_DRIFT_TIME
private

Definition at line 278 of file DTrackCandidate_factory_CDC.h.

size_t DTrackCandidate_factory_CDC::MAX_HelicalFitPoolSize
private

Definition at line 286 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::MAX_HIT_DIST
private

Definition at line 264 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::MAX_HIT_DIST2
private

Definition at line 265 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MAX_NUM_RINGSEED_RINGS_SKIPABLE
private

Definition at line 263 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::MAX_SEED_TIME_DIFF
private

Definition at line 279 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MAX_SEEDS_IN_STRAW_BIN
private

Definition at line 272 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MAX_STRAWS_BETWEEN_LINK_SPIRAL_TURN
private

Definition at line 267 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MAX_SUPERLAYER_NEW_TRACK
private

Definition at line 275 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::MAX_UNUSED_HIT_LINK_ANGLE
private

Definition at line 281 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::MIN_CIRCLE_ASYMMETRY
private

Definition at line 277 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MIN_PRUNED_STEREO_HITS
private

Definition at line 280 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MIN_SEED_HITS
private

Definition at line 266 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MIN_STRAWS_ADJACENT_TO_SPIRAL_TURN
private

Definition at line 270 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MIN_STRAWS_DEFINITE_SPIRAL_TURN
private

Definition at line 269 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::MIN_STRAWS_POTENTIAL_SPIRAL_TURN
private

Definition at line 268 of file DTrackCandidate_factory_CDC.h.

unsigned int DTrackCandidate_factory_CDC::SEED_DENSITY_BIN_STRAW_WIDTH
private

Definition at line 271 of file DTrackCandidate_factory_CDC.h.

vector<unsigned int> DTrackCandidate_factory_CDC::superlayer_boundaries
private

Definition at line 308 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::TARGET_Z
private

Definition at line 288 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::VERTEX_Z_MAX
private

Definition at line 290 of file DTrackCandidate_factory_CDC.h.

double DTrackCandidate_factory_CDC::VERTEX_Z_MIN
private

Definition at line 289 of file DTrackCandidate_factory_CDC.h.


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