PandaRoot
FTSCATracks Class Reference

#include <FTSCATracks.h>

Inheritance diagram for FTSCATracks:

Public Member Functions

 FTSCATracks (FTSCAHits *hits)
 
const FTSCAHitHit (int iH, int iT) const
 
void SelectAndSaveTracks (FTSCATracks &tracks)
 
FTSCAHitsHitsRef ()
 
void SortTracksByZ ()
 

Detailed Description

Definition at line 122 of file FTSCATracks.h.

Constructor & Destructor Documentation

◆ FTSCATracks()

FTSCATracks::FTSCATracks ( FTSCAHits hits)
inline

Definition at line 124 of file FTSCATracks.h.

124 : fHitsRef(hits){};

Member Function Documentation

◆ Hit()

const FTSCAHit& FTSCATracks::Hit ( int  iH,
int  iT 
) const
inline

Definition at line 126 of file FTSCATracks.h.

126 { return (*fHitsRef)[(*this)[iT].IHits()[iH]]; }

◆ HitsRef()

FTSCAHits* FTSCATracks::HitsRef ( )
inline

Definition at line 138 of file FTSCATracks.h.

138 { return fHitsRef; }

◆ SelectAndSaveTracks()

void FTSCATracks::SelectAndSaveTracks ( FTSCATracks tracks)
inline

Definition at line 176 of file FTSCATracks.h.

References FTSCATrack::Compare(), FTSCATrack::NUsedHits(), and FTSCATrack::SetHitsAsUsed().

177 {
178  vector<FTSCATrack *> vptrackcandidate; // vptrackcandidate - array of pointers to vtrackcandidate
179  vptrackcandidate.resize(size());
180 
181  for (unsigned int iC = 0; iC < size(); ++iC) {
182  vptrackcandidate[iC] = &((*this)[iC]);
183  }
184 
185  sort(vptrackcandidate.begin(), vptrackcandidate.end(), FTSCATrack::Compare);
186 
187  for (vector<FTSCATrack *>::iterator trIt = vptrackcandidate.begin(); trIt != vptrackcandidate.end(); ++trIt) {
188  FTSCATrack *tr = *trIt;
189 
190  if ((tr->NUsedHits(*fHitsRef) > 0))
191  continue; // don't allow tracks have shared hits. Track will be shorter, leave it for the next iteration
192  // if(tr->NHits()<10) continue;
193 #ifndef SAVE_ALL_CANDIDATES_DBG
194  tr->SetHitsAsUsed(*fHitsRef);
195 #endif
196 
197  tracks.push_back(*tr);
198  } // i_trackCandidate
199 }
int NUsedHits(const FTSCAHits &hits) const
Definition: FTSCATracks.h:85
static bool Compare(const FTSCATrack *a, const FTSCATrack *b)
Definition: FTSCATracks.h:73
void SetHitsAsUsed(FTSCAHits &hits) const
Definition: FTSCATracks.h:96

◆ SortTracksByZ()

void FTSCATracks::SortTracksByZ ( )
inline

Definition at line 145 of file FTSCATracks.h.

References i, and FTSCATrack::IHits().

146 {
147  // sort (tracks.begin(), tracks.end(), CompareByZ);
148  FTSCATrack tempTrack;
149  // cout<<"before sort\n";
150  for (int i = this->size() - 1; i > -1; i--) {
151  for (int j = 1; j < i + 1; j++) {
152  FTSCATrack &t1 = (*this)[j - 1];
153  FTSCATrack &t2 = (*this)[j];
154 
155  // float diff11 = abs( (*(this->HitsRef()))[t1.IHits()[0]].X0() - 393.995) ;
156  // float diff21 = abs( (*(this->HitsRef()))[t2.IHits()[0]].X0() - 393.995) ;
157 
158  // float diff12 = abs( (*(this->HitsRef()))[t1.IHits()[t1.NHits()-1]].X0() - 467.84) ;
159  // float diff22 = abs( (*(this->HitsRef()))[t2.IHits()[t2.NHits()-1]].X0() - 467.84) ;
160  float diff12 = abs((*(this->HitsRef()))[t1.IHits()[0]].X0() - 467.84);
161  float diff22 = abs((*(this->HitsRef()))[t2.IHits()[0]].X0() - 467.84);
162  // sort tracks so that first come those which fit closer into the middle-region of FTS
163  if /*((diff11>diff21) &&*/ (diff12 > diff22)
164  // sort tracks so that first come those which are closer to PV
165  // if ( ( (*(this->HitsRef()))[t1.IHits()[0]].X0() > (*(this->HitsRef()))[t2.IHits()[0]].X0() ) )
166  {
167  tempTrack = (*this)[j - 1];
168  (*this)[j - 1] = (*this)[j];
169  (*this)[j] = tempTrack;
170  }
171  }
172  }
173  // cout<<"save tracks\n";
174 }
FTSCAHits * HitsRef()
Definition: FTSCATracks.h:138
unsigned int i
Definition: P4_F32vec4.h:21
vector< TES > & IHits()
Definition: FTSCATracks.h:24

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