FairRoot/PandaRoot
Public Member Functions | Private Attributes | List of all members
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 ()
 

Private Attributes

FTSCAHitsfHitsRef
 

Detailed Description

Definition at line 119 of file FTSCATracks.h.

Constructor & Destructor Documentation

FTSCATracks::FTSCATracks ( FTSCAHits hits)
inline

Definition at line 121 of file FTSCATracks.h.

121 :fHitsRef(hits){};
FTSCAHits * fHitsRef
Definition: FTSCATracks.h:138

Member Function Documentation

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

Definition at line 123 of file FTSCATracks.h.

References fHitsRef.

Referenced by PndFTSCAGBTracker::CATrackFinder(), and PndFTSCADisplay::DrawGBTracks().

123 { return (*fHitsRef)[ (*this)[iT].IHits()[iH] ]; }
FTSCAHits * fHitsRef
Definition: FTSCATracks.h:138
FTSCAHits* FTSCATracks::HitsRef ( )
inline

Definition at line 135 of file FTSCATracks.h.

References fHitsRef.

Referenced by PndFTSCAGBTracker::CreateTracks(), PndFTSCAGBTracker::Merge(), and SortTracksByZ().

135 { return fHitsRef; }
FTSCAHits * fHitsRef
Definition: FTSCATracks.h:138
void FTSCATracks::SelectAndSaveTracks ( FTSCATracks tracks)
inline

Definition at line 174 of file FTSCATracks.h.

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

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

Definition at line 141 of file FTSCATracks.h.

References HitsRef(), i, FTSCATrack::IHits(), t1, and t2.

Referenced by PndFTSCAGBTracker::Merge().

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

Member Data Documentation

FTSCAHits* FTSCATracks::fHitsRef
private

Definition at line 138 of file FTSCATracks.h.

Referenced by Hit(), HitsRef(), and SelectAndSaveTracks().


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