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 134 of file FTSCATracks.h.

Constructor & Destructor Documentation

◆ FTSCATracks()

FTSCATracks::FTSCATracks ( FTSCAHits hits)
inline

Definition at line 136 of file FTSCATracks.h.

136 : fHitsRef(hits){};

Member Function Documentation

◆ Hit()

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

Definition at line 138 of file FTSCATracks.h.

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

◆ HitsRef()

FTSCAHits* FTSCATracks::HitsRef ( )
inline

Definition at line 150 of file FTSCATracks.h.

150 { return fHitsRef; }

◆ SelectAndSaveTracks()

void FTSCATracks::SelectAndSaveTracks ( FTSCATracks tracks)
inline

Definition at line 188 of file FTSCATracks.h.

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

189 {
190  vector<FTSCATrack *> vptrackcandidate; // vptrackcandidate - array of pointers to vtrackcandidate
191  vptrackcandidate.resize(size());
192 
193  for (unsigned int iC = 0; iC < size(); ++iC) {
194  vptrackcandidate[iC] = &((*this)[iC]);
195  }
196 
197  sort(vptrackcandidate.begin(), vptrackcandidate.end(), FTSCATrack::Compare);
198 
199  for (vector<FTSCATrack *>::iterator trIt = vptrackcandidate.begin(); trIt != vptrackcandidate.end(); ++trIt) {
200  FTSCATrack *tr = *trIt;
201 
202  if ((tr->NUsedHits(*fHitsRef) > 0))
203  continue; // don't allow tracks have shared hits. Track will be shorter, leave it for the next iteration
204  // if(tr->NHits()<10) continue;
205 #ifndef SAVE_ALL_CANDIDATES_DBG
206  tr->SetHitsAsUsed(*fHitsRef);
207 #endif
208 
209  tracks.push_back(*tr);
210  } // i_trackCandidate
211 }
int NUsedHits(const FTSCAHits &hits) const
Definition: FTSCATracks.h:97
static bool Compare(const FTSCATrack *a, const FTSCATrack *b)
Definition: FTSCATracks.h:85
void SetHitsAsUsed(FTSCAHits &hits) const
Definition: FTSCATracks.h:108

◆ SortTracksByZ()

void FTSCATracks::SortTracksByZ ( )
inline

Definition at line 157 of file FTSCATracks.h.

References i, and FTSCATrack::IHits().

158 {
159  // sort (tracks.begin(), tracks.end(), CompareByZ);
160  FTSCATrack tempTrack;
161  // cout<<"before sort\n";
162  for (int i = this->size() - 1; i > -1; i--) {
163  for (int j = 1; j < i + 1; j++) {
164  FTSCATrack &t1 = (*this)[j - 1];
165  FTSCATrack &t2 = (*this)[j];
166 
167  // float diff11 = abs( (*(this->HitsRef()))[t1.IHits()[0]].X0() - 393.995) ;
168  // float diff21 = abs( (*(this->HitsRef()))[t2.IHits()[0]].X0() - 393.995) ;
169 
170  // float diff12 = abs( (*(this->HitsRef()))[t1.IHits()[t1.NHits()-1]].X0() - 467.84) ;
171  // float diff22 = abs( (*(this->HitsRef()))[t2.IHits()[t2.NHits()-1]].X0() - 467.84) ;
172  float diff12 = abs((*(this->HitsRef()))[t1.IHits()[0]].X0() - 467.84);
173  float diff22 = abs((*(this->HitsRef()))[t2.IHits()[0]].X0() - 467.84);
174  // sort tracks so that first come those which fit closer into the middle-region of FTS
175  if /*((diff11>diff21) &&*/ (diff12 > diff22)
176  // sort tracks so that first come those which are closer to PV
177  // if ( ( (*(this->HitsRef()))[t1.IHits()[0]].X0() > (*(this->HitsRef()))[t2.IHits()[0]].X0() ) )
178  {
179  tempTrack = (*this)[j - 1];
180  (*this)[j - 1] = (*this)[j];
181  (*this)[j] = tempTrack;
182  }
183  }
184  }
185  // cout<<"save tracks\n";
186 }
FTSCAHits * HitsRef()
Definition: FTSCATracks.h:150
unsigned int i
Definition: P4_F32vec4.h:33
vector< TES > & IHits()
Definition: FTSCATracks.h:36

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