Class Reference for E1039 Core & Analysis Software
KalmanDSTrk Class Reference

Pattern Dictionary Filter built based on Kun Liu's ktracker. More...

#include </dev/shm/kenichi/update-github-e1039-doc/e1039-core/packages/reco/patterndb/KalmanDSTrk.h>

Public Types

enum  DS_LEVEL { NO_DS , IN_ST_DS , ST23_DS , ST123_DS }
 

Public Member Functions

 KalmanDSTrk (const PHField *field, const TGeoManager *geom, bool enable_KF=true, int DS_level=KalmanDSTrk::NO_DS, const std::string sim_db_name="", const std::string pattern_db_name="")
 
 ~KalmanDSTrk ()
 
void Verbosity (const int a)
 
int Verbosity () const
 
void printTimers ()
 
int setRawEvent (SRawEvent *event_input)
 
int setRawEventWorker (SRawEvent *event_input)
 
void setRawEventDebug (SRawEvent *event_input)
 
bool acceptEvent (SRawEvent *rawEvent)
 
void buildTrackletsInStation (int stationID, int listID, double *pos_exp=NULL, double *window=NULL)
 Tracklet finding stuff. More...
 
void buildBackPartialTracks ()
 
void buildGlobalTracks ()
 
int fitTracklet (Tracklet &tracklet)
 
bool acceptTracklet (Tracklet &tracklet)
 
bool hodoMask (Tracklet &tracklet)
 
bool muonID_comp (Tracklet &tracklet)
 
bool muonID_search (Tracklet &tracklet)
 
bool muonID_hodoAid (Tracklet &tracklet)
 
void buildPropSegments ()
 
void resolveLeftRight (SRawEvent::hit_pair hpair, int &LR1, int &LR2)
 
void resolveLeftRight (Tracklet &tracklet, double threshold)
 
void resolveSingleLeftRight (Tracklet &tracklet)
 
void removeBadHits (Tracklet &tracklet)
 
int reduceTrackletList (std::list< Tracklet > &tracklets)
 
void getSagittaWindowsInSt1 (Tracklet &tracklet, double *pos_exp, double *window, int st1ID)
 
void getExtrapoWindowsInSt1 (Tracklet &tracklet, double *pos_exp, double *window, int st1ID)
 
void printAtDetectorBack (int stationID, std::string outputFileName)
 
SRecTrack processOneTracklet (Tracklet &tracklet)
 Track fitting stuff. More...
 
bool fitTrack (KalmanTrack &kmtrk)
 
void resolveLeftRight (KalmanTrack &kmtrk)
 
std::list< Tracklet > & getFinalTracklets ()
 Final output. More...
 
std::list< Tracklet > & getBackPartials ()
 
std::list< Tracklet > & getTrackletList (int i)
 
std::list< SRecTrack > & getSRecTracks ()
 
std::list< PropSegment > & getPropSegments (int i)
 
void chi2fit (int n, double x[], double y[], double &a, double &b)
 
const std::string & get_pattern_db_name () const
 
void set_pattern_db_name (const std::string &patternDbName)
 
const std::string & get_sim_db_name () const
 
void set_sim_db_name (const std::string &simDbName)
 

Detailed Description

Pattern Dictionary Filter built based on Kun Liu's ktracker.

Author
Haiwang Yu, yuhw@.nosp@m.nmsu.nosp@m..edu

Created: 08-27-2018

Definition at line 40 of file KalmanDSTrk.h.

Member Enumeration Documentation

◆ DS_LEVEL

Enumerator
NO_DS 
IN_ST_DS 
ST23_DS 
ST123_DS 

Definition at line 45 of file KalmanDSTrk.h.

Constructor & Destructor Documentation

◆ KalmanDSTrk()

KalmanDSTrk::KalmanDSTrk ( const PHField field,
const TGeoManager *  geom,
bool  enable_KF = true,
int  DS_level = KalmanDSTrk::NO_DS,
const std::string  sim_db_name = "",
const std::string  pattern_db_name = "" 
)
explicit

Definition at line 36 of file KalmanDSTrk.cxx.

References PatternDBUtil::BuildPatternDB(), Tracklet::Eval(), GeomSvc::instance(), PatternDBUtil::LoadPatternDB(), nChamberPlanes, nHodoPlanes, NO_DS, nPropPlanes, and nStations.

+ Here is the call graph for this function:

◆ ~KalmanDSTrk()

KalmanDSTrk::~KalmanDSTrk ( )

Definition at line 420 of file KalmanDSTrk.cxx.

Member Function Documentation

◆ acceptEvent()

bool KalmanDSTrk::acceptEvent ( SRawEvent rawEvent)

Definition at line 643 of file KalmanDSTrk.cxx.

References SRawEvent::getNHitsInD0(), SRawEvent::getNHitsInD1(), SRawEvent::getNHitsInD2(), SRawEvent::getNHitsInD3m(), SRawEvent::getNHitsInD3p(), SRawEvent::getNHitsInDetectors(), SRawEvent::getNPropHitsAll(), SRawEvent::getNRoadsNeg(), SRawEvent::getNRoadsPos(), LogInfo, Verbosity(), and Fun4AllBase::VERBOSITY_A_LOT.

Referenced by setRawEventWorker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ acceptTracklet()

bool KalmanDSTrk::acceptTracklet ( Tracklet tracklet)

Definition at line 1684 of file KalmanDSTrk.cxx.

References Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), hodoMask(), GeomSvc::isInKMAG(), Tracklet::isValid(), LogInfo, muonID_comp(), muonID_search(), nStations, and Tracklet::stationID.

Referenced by buildBackPartialTracks(), buildGlobalTracks(), and buildTrackletsInStation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildBackPartialTracks()

void KalmanDSTrk::buildBackPartialTracks ( )

Remove bad hits if needed

Definition at line 681 of file KalmanDSTrk.cxx.

References acceptTracklet(), chi2fit(), Tracklet::chisq, PatternDB::DC2, PatternDB::DC3m, PatternDB::DC3p, PatternDB::ERR_KEY, fitTracklet(), GeomSvc::getPlaneType(), PatternDBUtil::GetTrackletKey(), hodoMask(), Tracklet::isValid(), LogInfo, nChamberPlanes, Tracklet::print(), reduceTrackletList(), removeBadHits(), resolveLeftRight(), PatternDB::St23, ST23_DS, Verbosity(), and Fun4AllBase::VERBOSITY_A_LOT.

Referenced by setRawEventWorker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildGlobalTracks()

void KalmanDSTrk::buildGlobalTracks ( )

Resolve the left-right with a tight pull cut, then a loose one, then resolve by single projections

Remove bad hits if needed

Definition at line 899 of file KalmanDSTrk.cxx.

References acceptTracklet(), buildTrackletsInStation(), Tracklet::chisq_vtx, PatternDB::DC1, PatternDB::DC2, PatternDB::DC3m, PatternDB::DC3p, PatternDB::ERR_KEY, fitTracklet(), SRecTrack::getChisqVertex(), getExtrapoWindowsInSt1(), getSagittaWindowsInSt1(), PatternDBUtil::GetTrackletKey(), hodoMask(), Tracklet::invP, Tracklet::isValid(), SRecTrack::isValid(), LogInfo, Tracklet::merge(), Tracklet::print(), processOneTracklet(), removeBadHits(), resolveLeftRight(), resolveSingleLeftRight(), PatternDB::St123, ST123_DS, Verbosity(), and Fun4AllBase::VERBOSITY_A_LOT.

Referenced by setRawEventWorker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildPropSegments()

void KalmanDSTrk::buildPropSegments ( )

Definition at line 1943 of file KalmanDSTrk.cxx.

References PropSegment::fit(), SRawEvent::getPartialHitPairsInSuperDetector(), PropSegment::hits, PropSegment::isValid(), LogInfo, and PropSegment::print().

Referenced by setRawEventWorker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildTrackletsInStation()

void KalmanDSTrk::buildTrackletsInStation ( int  stationID,
int  listID,
double *  pos_exp = NULL,
double *  window = NULL 
)

Tracklet finding stuff.

Definition at line 1416 of file KalmanDSTrk.cxx.

References acceptTracklet(), PatternDB::DC1, PatternDB::DC2, PatternDB::DC3m, PatternDB::DC3p, PatternDB::ERROR_STATION, fitTracklet(), SRawEvent::getPartialHitPairsInSuperDetector(), PatternDBUtil::GetTrackletKey(), Tracklet::hits, IN_ST_DS, Tracklet::isValid(), LogInfo, Tracklet::nUHits, NULL, Tracklet::nVHits, Tracklet::nXHits, Tracklet::print(), Tracklet::sortHits(), PatternDB::St1, PatternDB::St2, PatternDB::St3, Tracklet::stationID, Verbosity(), and Fun4AllBase::VERBOSITY_A_LOT.

Referenced by buildGlobalTracks(), and setRawEventWorker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ chi2fit()

void KalmanDSTrk::chi2fit ( int  n,
double  x[],
double  y[],
double &  a,
double &  b 
)

Tool, a simple-minded chi square fit Y = a*X + b

Definition at line 2409 of file KalmanDSTrk.cxx.

Referenced by buildBackPartialTracks().

+ Here is the caller graph for this function:

◆ fitTrack()

bool KalmanDSTrk::fitTrack ( KalmanTrack kmtrk)

Definition at line 2324 of file KalmanDSTrk.cxx.

References KalmanTrack::getNodeList(), KalmanFitter::processOneTrack(), and KalmanFitter::updateTrack().

Referenced by processOneTracklet(), and resolveLeftRight().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fitTracklet()

int KalmanDSTrk::fitTracklet ( Tracklet tracklet)

Definition at line 2008 of file KalmanDSTrk.cxx.

References Tracklet::chisq, Tracklet::err_invP, Tracklet::err_tx, Tracklet::err_ty, Tracklet::err_x0, Tracklet::err_y0, Tracklet::invP, nStations, Tracklet::stationID, Tracklet::tx, Tracklet::ty, Tracklet::x0, and Tracklet::y0.

Referenced by buildBackPartialTracks(), buildGlobalTracks(), buildTrackletsInStation(), removeBadHits(), resolveLeftRight(), and resolveSingleLeftRight().

+ Here is the caller graph for this function:

◆ get_pattern_db_name()

const std::string& KalmanDSTrk::get_pattern_db_name ( ) const
inline

Definition at line 132 of file KalmanDSTrk.h.

◆ get_sim_db_name()

const std::string& KalmanDSTrk::get_sim_db_name ( ) const
inline

Definition at line 140 of file KalmanDSTrk.h.

◆ getBackPartials()

std::list<Tracklet>& KalmanDSTrk::getBackPartials ( )
inline

Definition at line 123 of file KalmanDSTrk.h.

◆ getExtrapoWindowsInSt1()

void KalmanDSTrk::getExtrapoWindowsInSt1 ( Tracklet tracklet,
double *  pos_exp,
double *  window,
int  st1ID 
)

Definition at line 2087 of file KalmanDSTrk.cxx.

References Tracklet::getExpPosErrorX(), Tracklet::getExpPosErrorY(), Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), GeomSvc::getPlaneType(), GeomSvc::getUinStereoPlane(), nStations, and Tracklet::stationID.

Referenced by buildGlobalTracks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFinalTracklets()

std::list<Tracklet>& KalmanDSTrk::getFinalTracklets ( )
inline

Final output.

Definition at line 122 of file KalmanDSTrk.h.

◆ getPropSegments()

std::list<PropSegment>& KalmanDSTrk::getPropSegments ( int  i)
inline

Definition at line 126 of file KalmanDSTrk.h.

◆ getSagittaWindowsInSt1()

void KalmanDSTrk::getSagittaWindowsInSt1 ( Tracklet tracklet,
double *  pos_exp,
double *  window,
int  st1ID 
)

Definition at line 2115 of file KalmanDSTrk.cxx.

References Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), GeomSvc::getPlaneType(), GeomSvc::getUinStereoPlane(), Tracklet::hits, nStations, and Tracklet::stationID.

Referenced by buildGlobalTracks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSRecTracks()

std::list<SRecTrack>& KalmanDSTrk::getSRecTracks ( )
inline

Definition at line 125 of file KalmanDSTrk.h.

◆ getTrackletList()

std::list<Tracklet>& KalmanDSTrk::getTrackletList ( int  i)
inline

Definition at line 124 of file KalmanDSTrk.h.

◆ hodoMask()

bool KalmanDSTrk::hodoMask ( Tracklet tracklet)

Definition at line 1714 of file KalmanDSTrk.cxx.

References Tracklet::getExpPosErrorX(), Tracklet::getExpPosErrorY(), Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), LogInfo, nChamberPlanes, nStations, and Tracklet::stationID.

Referenced by acceptTracklet(), buildBackPartialTracks(), and buildGlobalTracks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ muonID_comp()

bool KalmanDSTrk::muonID_comp ( Tracklet tracklet)

Definition at line 1837 of file KalmanDSTrk.cxx.

References Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), Tracklet::invP, LogInfo, nStations, Tracklet::seg_x, Tracklet::seg_y, Tracklet::stationID, Tracklet::tx, and Tracklet::ty.

Referenced by acceptTracklet().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ muonID_hodoAid()

bool KalmanDSTrk::muonID_hodoAid ( Tracklet tracklet)

Definition at line 1894 of file KalmanDSTrk.cxx.

References Tracklet::getExpPosErrorX(), Tracklet::getExpPosErrorY(), Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), PropSegment::hodoHits, Tracklet::invP, nChamberPlanes, PropSegment::nHodoHits, nStations, Tracklet::seg_x, Tracklet::seg_y, and Tracklet::stationID.

Referenced by muonID_search().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ muonID_search()

bool KalmanDSTrk::muonID_search ( Tracklet tracklet)

Definition at line 1765 of file KalmanDSTrk.cxx.

References PropSegment::fit(), Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), PropSegment::getPosRef(), SignedHit::hit, PropSegment::hits, PropSegment::init(), Tracklet::invP, GeomSvc::isInPlane(), muonID_hodoAid(), nChamberPlanes, PropSegment::nHodoHits, nStations, Tracklet::seg_x, Tracklet::seg_y, SignedHit::sign, Tracklet::stationID, Tracklet::tx, and Tracklet::ty.

Referenced by acceptTracklet().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ printAtDetectorBack()

void KalmanDSTrk::printAtDetectorBack ( int  stationID,
std::string  outputFileName 
)

Definition at line 2163 of file KalmanDSTrk.cxx.

References GeomSvc::getPlaneCenterX(), GeomSvc::getPlaneCenterY(), GeomSvc::getPlanePosition(), GeomSvc::getPlaneScaleX(), and GeomSvc::getPlaneScaleY().

+ Here is the call graph for this function:

◆ printTimers()

void KalmanDSTrk::printTimers ( )

Definition at line 2377 of file KalmanDSTrk.cxx.

◆ processOneTracklet()

SRecTrack KalmanDSTrk::processOneTracklet ( Tracklet tracklet)

◆ reduceTrackletList()

int KalmanDSTrk::reduceTrackletList ( std::list< Tracklet > &  tracklets)

Definition at line 2050 of file KalmanDSTrk.cxx.

References LogInfo.

Referenced by buildBackPartialTracks().

+ Here is the caller graph for this function:

◆ removeBadHits()

void KalmanDSTrk::removeBadHits ( Tracklet tracklet)

Definition at line 1276 of file KalmanDSTrk.cxx.

References Tracklet::calcChisq(), Hit::detectorID, Hit::driftDistance, fitTracklet(), GeomSvc::getPlaneType(), SignedHit::hit, Tracklet::hits, Hit::index, Tracklet::isValid(), LogInfo, nChamberPlanes, Tracklet::nUHits, NULL, Tracklet::nVHits, Tracklet::nXHits, Tracklet::print(), Hit::print(), Tracklet::residual, resolveSingleLeftRight(), and SignedHit::sign.

Referenced by buildBackPartialTracks(), and buildGlobalTracks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resolveLeftRight() [1/3]

void KalmanDSTrk::resolveLeftRight ( KalmanTrack kmtrk)

Definition at line 2337 of file KalmanDSTrk.cxx.

References fitTrack(), KalmanTrack::getHitIndexList(), KalmanTrack::getNodeList(), GeomSvc::getPlaneResolution(), and GeomSvc::getUinStereoPlane().

+ Here is the call graph for this function:

◆ resolveLeftRight() [2/3]

void KalmanDSTrk::resolveLeftRight ( SRawEvent::hit_pair  hpair,
int &  LR1,
int &  LR2 
)

Definition at line 1376 of file KalmanDSTrk.cxx.

Referenced by buildBackPartialTracks(), and buildGlobalTracks().

+ Here is the caller graph for this function:

◆ resolveLeftRight() [3/3]

void KalmanDSTrk::resolveLeftRight ( Tracklet tracklet,
double  threshold 
)

Definition at line 1145 of file KalmanDSTrk.cxx.

References Tracklet::err_tx, Tracklet::err_ty, Tracklet::err_x0, Tracklet::err_y0, fitTracklet(), Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), Tracklet::getXZErrorInSt1(), Tracklet::getXZInfoInSt1(), Tracklet::hits, LogInfo, Tracklet::print(), Tracklet::stationID, Tracklet::tx, Tracklet::ty, Tracklet::x0, and Tracklet::y0.

+ Here is the call graph for this function:

◆ resolveSingleLeftRight()

void KalmanDSTrk::resolveSingleLeftRight ( Tracklet tracklet)

Definition at line 1253 of file KalmanDSTrk.cxx.

References fitTracklet(), Tracklet::getExpPositionX(), Tracklet::getExpPositionY(), Tracklet::hits, LogInfo, and Tracklet::print().

Referenced by buildGlobalTracks(), and removeBadHits().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_pattern_db_name()

void KalmanDSTrk::set_pattern_db_name ( const std::string &  patternDbName)
inline

Definition at line 136 of file KalmanDSTrk.h.

◆ set_sim_db_name()

void KalmanDSTrk::set_sim_db_name ( const std::string &  simDbName)
inline

Definition at line 144 of file KalmanDSTrk.h.

◆ setRawEvent()

int KalmanDSTrk::setRawEvent ( SRawEvent event_input)

Definition at line 445 of file KalmanDSTrk.cxx.

References setRawEventWorker().

+ Here is the call graph for this function:

◆ setRawEventDebug()

void KalmanDSTrk::setRawEventDebug ( SRawEvent event_input)

Definition at line 438 of file KalmanDSTrk.cxx.

References SRawEvent::getAllHits().

+ Here is the call graph for this function:

◆ setRawEventWorker()

int KalmanDSTrk::setRawEventWorker ( SRawEvent event_input)

Definition at line 482 of file KalmanDSTrk.cxx.

References acceptEvent(), buildBackPartialTracks(), buildGlobalTracks(), buildPropSegments(), buildTrackletsInStation(), SRawEvent::getAllHits(), SRawEvent::getHitsIndexInDetector(), SRawEvent::getHitsIndexInDetectors(), SRawEvent::isFPGATriggered(), LogInfo, processOneTracklet(), TFEXIT_FAIL_BACKPARTIAL, TFEXIT_FAIL_GLOABL, TFEXIT_FAIL_MULTIPLICITY, TFEXIT_FAIL_ST2_TRACKLET, TFEXIT_FAIL_ST3_TRACKLET, and TFEXIT_SUCCESS.

Referenced by setRawEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Verbosity() [1/2]

int KalmanDSTrk::Verbosity ( ) const
inline

Definition at line 60 of file KalmanDSTrk.h.

Referenced by acceptEvent(), buildBackPartialTracks(), buildGlobalTracks(), and buildTrackletsInStation().

+ Here is the caller graph for this function:

◆ Verbosity() [2/2]

void KalmanDSTrk::Verbosity ( const int  a)
inline

Definition at line 59 of file KalmanDSTrk.h.


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