FairRoot/PandaRoot
|
#include <PndCAGBTracker.h>
Public Types | |
enum | { kFastPrimIter, kAllPrimIter, kAllPrimJumpIter, kAllSecIter } |
Public Member Functions | |
PndCAGBTracker () | |
~PndCAGBTracker () | |
void | Init () |
void | StartEvent () |
void | SetNSlices (int N) |
const PndCAGBHit * | Hits () const |
const PndCAGBHit & | Hit (int index) const |
int | NHits () const |
double | Time () const |
double | StatTime (int iTimer) const |
int | NTimers () const |
int | StatNEvents () const |
int | NTracks () const |
PndCAGBTrack * | Tracks () const |
PndCAGBTrack * | Tracks () |
const PndCAGBTrack & | Track (int i) const |
int * | TrackHits () const |
int * | TrackHits () |
int | TrackHit (int i) const |
const PndCAParam & | GetParameters () const |
PndCAParam & | GetParametersNonConst () |
int | NStations () const |
void | WriteSettings (std::ostream &out) const |
void | ReadSettings (std::istringstream &in) |
void | WriteEvent (FILE *out) const |
void | SaveHitsInFile (string prefix) const |
bool | SaveTracksInFile (string prefix) const |
bool | ReadHitsFromFile (string prefix) |
double | SliceTrackerTime () const |
double | SliceTrackerCpuTime () const |
void | StoreToFile (const char *filename) const |
void | RestoreFromFile (FILE *f) |
void | SetHits (std::vector< PndCAGBHit > &hits) |
int | GetHitsSize () const |
void | FindTracks () |
void | CATrackFinder () |
void | Create1Plets (const PndCATarget &target, const PndCAHits &hits, PndCAElementsOnStation< PndCANPletV > &singlets, int iStation) |
void | PickUpHits (PndCAElementsOnStation< PndCANPletV > &a, PndCAElementsOnStation< PndCANPletV > &r, int iS) |
void | CreateNPlets (const PndCATarget &target, const PndCAHits &hits, PndCAElementsOnStation< PndCANPletV > &triplets, int iStation, int cellLength) |
void | FindNeighbours (PndCANPlets &triplets) |
void | CreateTracks (const PndCANPlets &triplets, PndCATracks &tracks) |
void | InvertCholetsky (float a[15]) const |
void | MultiplySS (float const C[15], float const V[15], float K[5][5]) const |
void | MultiplyMS (float const C[5][5], float const V[15], float K[15]) const |
void | MultiplySR (float const C[15], float const r_in[5], float r_out[5]) const |
void | FilterTracks (float const r[5], float const C[15], float const m[5], float const V[15], float R[5], float W[15], float &chi2) const |
void | Merge (PndCATracks &tracks) |
void | FindBestCandidate (int ista, PndCATrack &best_tr, int currITrip, PndCATrack &curr_tr, unsigned char min_best_l, const PndCANPlets &triplets, unsigned int &nCalls) |
Public Attributes | |
int | fFindIter |
PndCATarget | fTarget |
float | fMaxInvMom |
float | fPick_m |
float | fPick_r |
float | fPick |
float | fPickNeighbour |
float | TRACK_PROB_CUT |
float | TRACK_CHI2_CUT |
float_v | TRIPLET_CHI2_CUT |
float | fMaxDX0 |
Protected Attributes | |
vector< PndCAGBHit > | fHits |
int | fNHits |
int * | fTrackHits |
PndCAGBTrack * | fTracks |
int | fNTracks |
double | fTime |
double | fStatTime [fNTimers] |
int | fStatNEvents |
double | fSliceTrackerTime |
double | fSliceTrackerCpuTime |
PndCATFIterTimerInfo | fGTi |
PndCATFTimerInfo | fTi |
PndCATFIterTimerInfo | fStatGTi |
PndCATFTimerInfo | fStatTi |
PndCAParam | fParameters |
PndCAStationSTT | fStations [50] |
Static Protected Attributes | |
static const int | fNTimers = 25 |
Private Member Functions | |
PndCAGBTracker (const PndCAGBTracker &) | |
PndCAGBTracker & | operator= (const PndCAGBTracker &) |
Friends | |
class | PndCAPerformance |
Try to group close hits in row formed by one track. After sort hits. More... | |
Definition at line 46 of file PndCAGBTracker.h.
anonymous enum |
Enumerator | |
---|---|
kFastPrimIter | |
kAllPrimIter | |
kAllPrimJumpIter | |
kAllSecIter |
Definition at line 136 of file PndCAGBTracker.h.
PndCAGBTracker::PndCAGBTracker | ( | ) |
Definition at line 101 of file PndCAGBTracker.cxx.
References PndCATFIterTimerInfo::Add(), PndCATFTimerInfo::Add(), fGTi, fStatGTi, fStatTi, fStatTime, fTi, i, and PndCATFTimerInfo::SetNIter().
PndCAGBTracker::~PndCAGBTracker | ( | ) |
|
private |
void PndCAGBTracker::CATrackFinder | ( | ) |
Find Tracks
Definition at line 476 of file PndCAGBTracker.cxx.
References PndCAHit::Angle(), c, PndCAStripInfo::cos, cos(), CreateNPlets(), CreateTracks(), PndCAHit::DR(), PndCAGBHit::Err2R(), PndCAGBHit::Err2X1(), PndCAGBHit::Err2X2(), PndCAGBHit::ErrX12(), exit(), PndCAStation::f, PndCAHit::fAngle, PndCAStationSTT::fCos, PndCAHitSTT::fDR, PndCAHit::fDR, PndCAStationSTTSector::fFirstHit, fGTi, fHits, PndCAStationSTT::fHits1D, FindNeighbours(), PndCAHitSTT::fISec, PndCAHit::fISec, PndCAHit::fIsLeft, PndCAHitSTT::fISta, Fit(), fMaxDX0, fMaxInvMom, PndCAStationSTTSector::fNHits, fNHits, fNTracks, PndCAHitSTT::fOrigID, fPick, fPick_m, fPick_r, fPickNeighbour, PndCAHit::fR, PndCAStationSTT::fSectors, PndCAStationSTT::fSin, fStations, fTarget, fTi, fTrackHits, fTracks, PndCAHitSTT::fU, PndCAHit::fU, PndCAHit::fX1, GetParameters(), h, h1d, hit(), PndCATracks::Hit(), hits, i, PndCAHit::Id(), PndCAStationSTT::Init(), PndCAGBHit::IRow(), PndCAHit::IsLeft(), PndCAHit::IStation(), PndCAParameters::LastCellLength, PndCAParameters::MaxCellLength, PndCAParameters::MaxNStations, Merge(), nHits, CAMath::Nint(), PndCAParameters::NMVDStations, NStations(), PndCAStationArray< T >::OnStation(), PndCAHit::R(), s, PndCAGBHit::SetErr2X0(), PndCAGBHit::SetErr2X1(), PndCAGBHit::SetErr2X2(), PndCAGBHit::SetErrX12(), PndCAGBTrack::SetFirstHitRef(), PndCAGBTrack::SetInnerParam(), PndCAGBHit::SetIsLeft(), PndCAGBTrack::SetNHits(), PndCAGBTrack::SetOuterParam(), PndCAStripInfo::sin, sin(), sqrt(), StartStationShift, PndCAParam::Station(), timer, TRACK_CHI2_CUT, TRACK_PROB_CUT, TRIPLET_CHI2_CUT, CAMath::TwoPi(), PndCAHit::U(), PndCAHit::X1(), and PndCAHit::X2().
Referenced by FindTracks().
void PndCAGBTracker::Create1Plets | ( | const PndCATarget & | target, |
const PndCAHits & | hits, | ||
PndCAElementsOnStation< PndCANPletV > & | singlets, | ||
int | iStation | ||
) |
Definition at line 1289 of file PndCAGBTracker.cxx.
References PndCAHitV::Angle(), PndCAParam::cBz(), TrackHitRecord::fIHit, PndCATrackParamVector::Filter(), PndCANPletV::fIsValid, PndCANPletV::fLastHit, PndCANPletV::fNHits, PndCANPletV::fParam, TrackHitRecord::fPrevHit, TrackHitRecord::fStation, GetParameters(), gTrackHitRecords, hit(), PndCATrackParamVector::InitByTarget(), PndCATrackParamVector::InitDirection(), PndCAHitV::ISec(), PndCAHitV::IsValid(), PndCAHits::OnStation(), PndCATrackParamVector::SetAngle(), PndCATrackParamVector::SetISec(), PndCATrackParamVector::Transport0ToX(), PndCATarget::X0(), PndCAHitV::X0(), PndCATarget::X1(), PndCAHitV::X1(), PndCATarget::X2(), and PndCAHitV::X2().
Referenced by CreateNPlets().
void PndCAGBTracker::CreateNPlets | ( | const PndCATarget & | target, |
const PndCAHits & | hits, | ||
PndCAElementsOnStation< PndCANPletV > & | triplets, | ||
int | iStation, | ||
int | cellLength | ||
) |
Definition at line 1348 of file PndCAGBTracker.cxx.
References PndCAStation::CellLength, Create1Plets(), PndCAElementsOnStation< T >::fHitsRef, PndCAElementsOnStation< T >::fISta, GetParameters(), hits, PickUpHits(), and PndCAParam::Station().
Referenced by CATrackFinder().
void PndCAGBTracker::CreateTracks | ( | const PndCANPlets & | triplets, |
PndCATracks & | tracks | ||
) |
Definition at line 816 of file PndCAGBTracker.cxx.
References PndCATrack::AddHit(), PndCATrack::Chi2(), PndCATrackParam::Chi2(), FindBestCandidate(), PndCATracks::HitsRef(), i, PndCANPlet::IHit(), PndCANPlet::ISta(), PndCAParameters::LastCellLength, PndCATrack::Level(), PndCANPlet::Level(), PndCAParameters::MinimumHitsForRecoTrack, PndCANPlet::N(), PndCATrack::NHits(), NStations(), PndCAStationArray< T >::OnStation(), and PndCANPlet::Param().
Referenced by CATrackFinder().
void PndCAGBTracker::FilterTracks | ( | float const | r[5], |
float const | C[15], | ||
float const | m[5], | ||
float const | V[15], | ||
float | R[5], | ||
float | W[15], | ||
float & | chi2 | ||
) | const |
Definition at line 1016 of file PndCAGBTracker.cxx.
References i, InvertCholetsky(), MultiplyMS(), MultiplySR(), and MultiplySS().
Referenced by Merge().
void PndCAGBTracker::FindBestCandidate | ( | int | ista, |
PndCATrack & | best_tr, | ||
int | currITrip, | ||
PndCATrack & | curr_tr, | ||
unsigned char | min_best_l, | ||
const PndCANPlets & | triplets, | ||
unsigned int & | nCalls | ||
) |
Definition at line 1207 of file PndCAGBTracker.cxx.
References PndCATrack::AddHit(), ASSERT, PndCATrack::Chi2(), fabs(), i, PndCANPlet::IHit(), PndCANPlet::INeighbours(), PndCANPlet::ISta(), PndCATrack::Level(), PndCANPlet::Level(), PndCANPlet::N(), PndCATrack::NDF(), PndCANPlet::NNeighbours(), PndCAStationArray< T >::OnStation(), PndCANPlet::QMomentum(), PndCANPlet::QMomentumErr(), and StartStationShift.
Referenced by CreateTracks().
void PndCAGBTracker::FindNeighbours | ( | PndCANPlets & | triplets | ) |
Definition at line 770 of file PndCAGBTracker.cxx.
References PndCANPlet::Chi2Level(), PndCANPlet::Chi2Neighbours(), fPick, IsRightNeighbour(), PndCANPlet::ISta(), PndCANPlet::Level(), PndCANPlet::Neighbours(), PndCANPlet::NNeighbours(), PndCAStationArray< T >::NStations(), PndCAStationArray< T >::OnStation(), StartStationShift, t1, and t2.
Referenced by CATrackFinder().
void PndCAGBTracker::FindTracks | ( | ) |
Read hits, row by row
Definition at line 223 of file PndCAGBTracker.cxx.
References PndCATFTimerInfo::Calc(), CATrackFinder(), PndCATFIterTimerInfo::Clear(), PndCATFTimerInfo::Clear(), fGTi, fNTracks, fParameters, fSliceTrackerCpuTime, fSliceTrackerTime, fStatGTi, fStatNEvents, fStatTi, fStatTime, fTi, fTime, i, L1CATFIterTimerInfo::PrintReal(), L1CATFTimerInfo::PrintReal(), and timer.
Referenced by PndCATracking::Exec().
|
inline |
|
inline |
Definition at line 78 of file PndCAGBTracker.h.
References fParameters.
Referenced by CATrackFinder(), Create1Plets(), CreateNPlets(), Merge(), and PickUpHits().
|
inline |
Definition at line 79 of file PndCAGBTracker.h.
References fParameters.
Referenced by PndCATracking::Exec().
|
inline |
Definition at line 57 of file PndCAGBTracker.h.
References exit(), fHits, and fNHits.
Referenced by PndCATracking::Exec().
|
inline |
void PndCAGBTracker::Init | ( | ) |
Definition at line 148 of file PndCAGBTracker.cxx.
References fNHits, fNTracks, fSliceTrackerCpuTime, fSliceTrackerTime, fStatNEvents, fStatTime, fTime, fTrackHits, fTracks, gTrackHitRecords, and i.
void PndCAGBTracker::InvertCholetsky | ( | float | a[15] | ) | const |
Definition at line 882 of file PndCAGBTracker.cxx.
References d, fabs(), i, and sqrt().
Referenced by FilterTracks().
void PndCAGBTracker::Merge | ( | PndCATracks & | tracks | ) |
Definition at line 1051 of file PndCAGBTracker.cxx.
References PndCATrack::AddHit(), C(), PndCAParam::cBz(), PndCATrackParam::Cov(), FilterTracks(), PndCATrack::Fit(), fTarget, GetParameters(), PndCATracks::HitsRef(), PndCATrack::IHits(), PndCATrack::NHits(), p1, p2, PndCATrackParam::Par(), r, t1, t2, and PndCATrackParam::Transport().
Referenced by CATrackFinder().
void PndCAGBTracker::MultiplyMS | ( | float const | C[5][5], |
float const | V[15], | ||
float | K[15] | ||
) | const |
void PndCAGBTracker::MultiplySR | ( | float const | C[15], |
float const | r_in[5], | ||
float | r_out[5] | ||
) | const |
void PndCAGBTracker::MultiplySS | ( | float const | C[15], |
float const | V[15], | ||
float | K[5][5] | ||
) | const |
|
inline |
Definition at line 65 of file PndCAGBTracker.h.
References fNHits.
Referenced by PndCATracking::Exec(), and WriteEvent().
|
inline |
Definition at line 81 of file PndCAGBTracker.h.
References fParameters, and PndCAParam::NStations().
Referenced by CATrackFinder(), and CreateTracks().
|
inline |
Definition at line 68 of file PndCAGBTracker.h.
References fNTimers.
Referenced by PndCATracking::Exec().
|
inline |
Definition at line 70 of file PndCAGBTracker.h.
References fNTracks.
Referenced by PndCATracking::Exec().
|
private |
void PndCAGBTracker::PickUpHits | ( | PndCAElementsOnStation< PndCANPletV > & | a, |
PndCAElementsOnStation< PndCANPletV > & | r, | ||
int | iS | ||
) |
Definition at line 1390 of file PndCAGBTracker.cxx.
References PndCATrackParamVector::Accept(), PndCATrackParamVector::Angle(), c10, c11, c20, c21, FitStore::du, PndCATrackParamVector::DzDs(), FitStore::err2U, PndCAHit::Err2X1(), PndCATrackParamVector::Err2X1(), PndCAHit::Err2X2(), PndCATrackParamVector::Err2X2(), f, FitStore::F0, FitStore::F1, FitStore::F2, PndCATrackParamVector::fC, PndCATrackParamVector::fChi2, PndCAStationSTT::fCos, PndCAHitSTT::fDR, PndCAStationSTTSector::fFirstHit, PndCAStationSTT::fHits1D, TrackHitRecord::fIHit, PndCATrackParamVector::Filter(), PndCAHit::fISec, PndCATrackParamVector::fISec, PndCANPletV::fIsValid, PndCANPletV::fLastHit, FitStore::fLastHit, PndCATrackParamVector::fNDF, PndCAStationSTTSector::fNHits, PndCANPletV::fNHits, FitStore::fNHits, PndCAHitSTT::fOrigID, PndCATrackParamVector::fP, PndCANPletV::fParam, TrackHitRecord::fPrevHit, PndCAStationSTT::fResolution, PndCAStationSTT::fSectors, PndCAStationSTT::fSin, TrackHitRecord::fStation, fStations, PndCAHitSTT::fU, GetParameters(), gTrackHitRecords, h1d, hit(), hits, PndCAElementsOnStation< T >::HitsRef(), i, FitStore::iHit, PndCATrackParamVector::ISec(), PndCAElementsOnStation< T >::IStation(), PndCANPletV::IsValid(), PndCAStation::NDF, PndCAParameters::NMVDStations, PndCAHits::OnStationConst(), p, FitStore::param, PndCANPletV::ParamRef(), PndCATrackParamVector::Rotate(), rsqrt(), s, PndCAElementsOnStation< T >::SetStation(), PndCATrackParamVector::SetTrackParam(), PndCANPletV::SetValid(), PndCATrackParamVector::SinPhi(), PndCAParam::Station(), store(), PndCATrackParamVector::Transport0(), TRIPLET_CHI2_CUT, CAMath::TwoPi(), PndCAHit::X1(), PndCATrackParamVector::X1(), PndCAHit::X2(), PndCATrackParamVector::X2(), PndCATrackParamVector::Y(), and PndCATrackParamVector::Z().
Referenced by CreateNPlets().
bool PndCAGBTracker::ReadHitsFromFile | ( | string | prefix | ) |
Definition at line 439 of file PndCAGBTracker.cxx.
References fabs(), fHits, fNHits, i, PndCAGBHit::IRow(), and PndCAParameters::MaxNStations.
void PndCAGBTracker::ReadSettings | ( | std::istringstream & | in | ) |
Definition at line 326 of file PndCAGBTracker.cxx.
References fParameters.
Referenced by PndCATracking::Exec().
void PndCAGBTracker::RestoreFromFile | ( | FILE * | f | ) |
void PndCAGBTracker::SaveHitsInFile | ( | string | prefix | ) | const |
Definition at line 420 of file PndCAGBTracker.cxx.
bool PndCAGBTracker::SaveTracksInFile | ( | string | prefix | ) | const |
Definition at line 350 of file PndCAGBTracker.cxx.
References PndCAGBTrack::FirstHitRef(), fNTracks, fTrackHits, fTracks, i, PndCAGBTrack::NHits(), out, and t.
void PndCAGBTracker::SetHits | ( | std::vector< PndCAGBHit > & | hits | ) |
Definition at line 395 of file PndCAGBTracker.cxx.
References PndCAGBHit::Angle(), fabs(), fHits, fNHits, PndCAGBHit::IRow(), PndCAParameters::MaxNStations, and PndCAGBHit::SetIRow().
Referenced by PndCATracking::Exec().
void PndCAGBTracker::SetNSlices | ( | int | N | ) |
|
inline |
Definition at line 96 of file PndCAGBTracker.h.
References fSliceTrackerCpuTime.
Referenced by PndCATracking::Exec().
|
inline |
Definition at line 95 of file PndCAGBTracker.h.
References fSliceTrackerTime.
Referenced by PndCATracking::Exec().
void PndCAGBTracker::StartEvent | ( | ) |
Definition at line 170 of file PndCAGBTracker.cxx.
References fNHits, fNTracks, fTrackHits, fTracks, and gTrackHitRecords.
Referenced by ~PndCAGBTracker().
|
inline |
|
inline |
Definition at line 67 of file PndCAGBTracker.h.
References fStatTime.
Referenced by PndCATracking::Exec().
void PndCAGBTracker::StoreToFile | ( | const char * | filename | ) | const |
|
inline |
|
inline |
|
inline |
Definition at line 76 of file PndCAGBTracker.h.
References fTrackHits, and i.
Referenced by PndCATracking::Exec().
|
inline |
|
inline |
|
inline |
|
inline |
void PndCAGBTracker::WriteEvent | ( | FILE * | out | ) | const |
Definition at line 335 of file PndCAGBTracker.cxx.
References fHits, nHits, and NHits().
void PndCAGBTracker::WriteSettings | ( | std::ostream & | out | ) | const |
Definition at line 319 of file PndCAGBTracker.cxx.
|
friend |
Try to group close hits in row formed by one track. After sort hits.
Definition at line 155 of file PndCAGBTracker.h.
int PndCAGBTracker::fFindIter |
Definition at line 141 of file PndCAGBTracker.h.
|
protected |
Definition at line 172 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), FindTracks(), and PndCAGBTracker().
|
protected |
Definition at line 158 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), GetHitsSize(), Hit(), Hits(), ReadHitsFromFile(), SaveHitsInFile(), SetHits(), and WriteEvent().
float PndCAGBTracker::fMaxDX0 |
Definition at line 152 of file PndCAGBTracker.h.
Referenced by CATrackFinder().
float PndCAGBTracker::fMaxInvMom |
Definition at line 144 of file PndCAGBTracker.h.
Referenced by CATrackFinder().
|
protected |
Definition at line 159 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), Hit(), Init(), NHits(), ReadHitsFromFile(), SetHits(), and StartEvent().
|
staticprotected |
Definition at line 166 of file PndCAGBTracker.h.
Referenced by NTimers().
|
protected |
Definition at line 163 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), FindTracks(), Init(), NTracks(), SaveTracksInFile(), and StartEvent().
|
protected |
Definition at line 178 of file PndCAGBTracker.h.
Referenced by FindTracks(), GetParameters(), GetParametersNonConst(), NStations(), and ReadSettings().
float PndCAGBTracker::fPick |
Definition at line 145 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), and FindNeighbours().
float PndCAGBTracker::fPick_m |
Definition at line 145 of file PndCAGBTracker.h.
Referenced by CATrackFinder().
float PndCAGBTracker::fPick_r |
Definition at line 145 of file PndCAGBTracker.h.
Referenced by CATrackFinder().
float PndCAGBTracker::fPickNeighbour |
Definition at line 148 of file PndCAGBTracker.h.
Referenced by CATrackFinder().
|
protected |
Definition at line 171 of file PndCAGBTracker.h.
Referenced by FindTracks(), Init(), and SliceTrackerCpuTime().
|
protected |
Definition at line 170 of file PndCAGBTracker.h.
Referenced by FindTracks(), Init(), and SliceTrackerTime().
|
protected |
Definition at line 174 of file PndCAGBTracker.h.
Referenced by FindTracks(), and PndCAGBTracker().
|
protected |
Definition at line 179 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), and PickUpHits().
|
protected |
Definition at line 168 of file PndCAGBTracker.h.
Referenced by FindTracks(), Init(), and StatNEvents().
|
protected |
Definition at line 175 of file PndCAGBTracker.h.
Referenced by FindTracks(), and PndCAGBTracker().
|
protected |
Definition at line 167 of file PndCAGBTracker.h.
Referenced by FindTracks(), Init(), PndCAGBTracker(), and StatTime().
PndCATarget PndCAGBTracker::fTarget |
Definition at line 143 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), and Merge().
|
protected |
Definition at line 173 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), FindTracks(), and PndCAGBTracker().
|
protected |
Definition at line 165 of file PndCAGBTracker.h.
Referenced by FindTracks(), Init(), and Time().
|
protected |
Definition at line 161 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), Init(), SaveTracksInFile(), StartEvent(), TrackHit(), and TrackHits().
|
protected |
Definition at line 162 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), Init(), SaveTracksInFile(), StartEvent(), Track(), and Tracks().
float PndCAGBTracker::TRACK_CHI2_CUT |
Definition at line 150 of file PndCAGBTracker.h.
Referenced by CATrackFinder().
float PndCAGBTracker::TRACK_PROB_CUT |
Definition at line 149 of file PndCAGBTracker.h.
Referenced by CATrackFinder().
float_v PndCAGBTracker::TRIPLET_CHI2_CUT |
Definition at line 151 of file PndCAGBTracker.h.
Referenced by CATrackFinder(), and PickUpHits().