FairRoot/PandaRoot
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
FTSCATrack Class Reference

#include <FTSCATracks.h>

Public Member Functions

 FTSCATrack ()
 
int NHits () const
 
vector< TES > & IHits ()
 
const vector< TES > & IHits () const
 
void RemoveHit (int iH)
 
void AddHit (char iS, int iH)
 
void AddHit (const TES &iH)
 
void AddHitsToTheBeginning (vector< TES > &hits)
 
float & Chi2 ()
 
const float & Chi2 () const
 
char & NDF ()
 
const char & NDF () const
 
char & Level ()
 
const char & Level () const
 
int NUsedHits (const FTSCAHits &hits) const
 
void SetHitsAsUsed (FTSCAHits &hits) const
 
const PndFTSCATrackParam Fit (const FTSCAHits &hits, const FTSCATarget &target, const PndFTSCAParam &caParam, bool dir=true, bool usePar=false, PndFTSCATrackParam outerParam=PndFTSCATrackParam())
 
const PndFTSCATrackParam Fit2Times (const FTSCAHits &hits, const FTSCATarget &target0, const PndFTSCAParam &caParam, bool dir)
 

Static Public Member Functions

static bool Compare (const FTSCATrack *a, const FTSCATrack *b)
 

Private Attributes

float fChi2
 
char fNDF
 
vector< TESfIHits
 
char fLevel
 

Detailed Description

Definition at line 15 of file FTSCATracks.h.

Constructor & Destructor Documentation

FTSCATrack::FTSCATrack ( )
inline

Definition at line 20 of file FTSCATracks.h.

References fIHits.

20 :fChi2(0),fNDF(-5),fIHits(),fLevel(0){ fIHits.reserve(PndFTSCAParameters::MaxNStations); };
vector< TES > fIHits
Definition: FTSCATracks.h:109
float fChi2
Definition: FTSCATracks.h:107

Member Function Documentation

void FTSCATrack::AddHit ( char  iS,
int  iH 
)
inline

Definition at line 36 of file FTSCATracks.h.

References fIHits, and fNDF.

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

36  {
37  fIHits.push_back( TES(iS, iH) );
38 #ifdef DRIFT_TUBES
39  fNDF++;
40 #else
41  fNDF+=2;
42 #endif
43  }
vector< TES > fIHits
Definition: FTSCATracks.h:109
Definition: FTSCATES.h:13
void FTSCATrack::AddHit ( const TES iH)
inline

Definition at line 44 of file FTSCATracks.h.

References fIHits, and fNDF.

44  {
45  fIHits.push_back( iH );
46 #ifdef DRIFT_TUBES
47  fNDF++;
48 #else
49  fNDF+=2;
50 #endif
51  }
vector< TES > fIHits
Definition: FTSCATracks.h:109
void FTSCATrack::AddHitsToTheBeginning ( vector< TES > &  hits)
inline

Definition at line 53 of file FTSCATracks.h.

References fIHits, fNDF, and IHits().

54  {
55  fIHits.insert(IHits().begin(), hits.begin(), hits.end());
56 #ifdef DRIFT_TUBES
57  fNDF+=hits.size();
58 #else
59  fNDF+=2*hits.size();
60 #endif
61  }
vector< TES > fIHits
Definition: FTSCATracks.h:109
vector< TES > & IHits()
Definition: FTSCATracks.h:24
CbmHit * hits[nHits]
Definition: RiemannTest.C:19
float& FTSCATrack::Chi2 ( )
inline

Definition at line 63 of file FTSCATracks.h.

References fChi2.

Referenced by PndFTSCAGBTracker::CreateTracks(), and PndFTSCAGBTracker::FindBestCandidate().

63 { return fChi2; }
float fChi2
Definition: FTSCATracks.h:107
const float& FTSCATrack::Chi2 ( ) const
inline

Definition at line 64 of file FTSCATracks.h.

References fChi2.

64 { return fChi2; }
float fChi2
Definition: FTSCATracks.h:107
static bool FTSCATrack::Compare ( const FTSCATrack a,
const FTSCATrack b 
)
inlinestatic

Definition at line 70 of file FTSCATracks.h.

References fChi2, and fIHits.

Referenced by FTSCATracks::SelectAndSaveTracks().

71  {
72  // return (a->fIHits.size() > b->fIHits.size()) ||
73  // ( (a->fIHits.size() == b->fIHits.size()) &&
74  // ( (a->fIHits[0].s < b->fIHits[0].s) ||
75  // ( (a->fIHits[0].s == b->fIHits[0].s) && (a->fChi2 < b->fChi2)
76  // )
77  // )
78  // );
79  return (a->fIHits.size() > b->fIHits.size()) ||
80  ( (a->fIHits.size() == b->fIHits.size()) && (a->fChi2 < b->fChi2)
81  );
82 
83  }
vector< TES > fIHits
Definition: FTSCATracks.h:109
float fChi2
Definition: FTSCATracks.h:107
const PndFTSCATrackParam FTSCATrack::Fit ( const FTSCAHits hits,
const FTSCATarget target,
const PndFTSCAParam caParam,
bool  dir = true,
bool  usePar = false,
PndFTSCATrackParam  outerParam = PndFTSCATrackParam() 
)
inline

Definition at line 199 of file FTSCATracks.h.

References PndFTSCATrackParam::Chi2(), fChi2, CAFunctionality::Fit(), CAFunctionality::FitUseParam(), fNDF, IHits(), PndFTSCATrackParam::NDF(), NHits(), and PndFTSCATrackParam::QP().

Referenced by PndFTSCAGBTracker::Merge().

200 {
201  vector<TESV> iHits(NHits());
202  const int NTHits = iHits.size();
203  //cout<<"NTHits "<<NTHits<<endl;
204  for ( unsigned short ihit = 0; ihit < NTHits; ihit++ )
205  {
206  //cout<<"IHits()[ihit] ista "<<int(IHits()[ihit].s)<<" number "<<IHits()[ihit].e<<endl;
207  iHits[ihit] = IHits()[ihit];
208  }
209 
211  //CAFunctionality::Fit( caParam, hits, param, iHits, target0, dir );
212  if (usePar)
213  {
214  /*param.SetX(outerParam.X());
215  param.SetY(outerParam.Y());
216  param.SetZ(outerParam.Z());
217  param.SetTx(outerParam.Tx());
218  param.SetTy(outerParam.Ty());
219  param.SetQP(outerParam.QP());
220  for (int i=0; i<15; i++)
221  {
222  param.SetCov(i,outerParam.Cov(i));
223  }*/
224  param.SetQP(outerParam.QP());
225  CAFunctionality::FitUseParam( caParam, hits, param, iHits, target0, dir, usePar );
226  }
227  else
228  {
229  CAFunctionality::Fit( caParam, hits, param, iHits, target0, dir );
230  }
231 
232 
233  PndFTSCATrackParam paramS( param, 0 );
234  fChi2 = paramS.Chi2();
235  fNDF = paramS.NDF();
236  //fPar = paramS;
237  return paramS;
238 }
float_m FitUseParam(const PndFTSCAParam &caParam, const FTSCAHits &hits, PndFTSCATrackParamVector &param, const vector< TESV > &iHits, const FTSCATarget &target, bool dir, bool usePar=false, const float_m &mask=float_m(true))
float_m Fit(const PndFTSCAParam &caParam, const FTSCAHits &hits, PndFTSCATrackParamVector &param, const vector< TESV > &iHits, const FTSCATarget &target, bool dir, const float_m &active=float_m(true))
float fChi2
Definition: FTSCATracks.h:107
vector< TES > & IHits()
Definition: FTSCATracks.h:24
int NHits() const
Definition: FTSCATracks.h:22
const PndFTSCATrackParam FTSCATrack::Fit2Times ( const FTSCAHits hits,
const FTSCATarget target0,
const PndFTSCAParam caParam,
bool  dir 
)
inline

Definition at line 241 of file FTSCATracks.h.

References PndFTSCATrackParam::Chi2(), f, fChi2, CAFunctionality::Fit(), fNDF, IHits(), PndFTSCATrackParam::NDF(), NHits(), PndFTSCATrackParamVector::SetChi2(), and PndFTSCATrackParamVector::SetNDF().

242 {
243  vector<TESV> iHits(NHits());
244  const int NTHits = iHits.size();
245 
246  for ( unsigned short ihit = 0; ihit < NTHits; ihit++ )
247  {
248  iHits[ihit] = IHits()[ihit];
249  }
250 
252 
253  CAFunctionality::Fit( caParam, hits, param, iHits, target0, dir );
254  param.SetNDF(-4);
255  param.SetChi2(0.f);
256  CAFunctionality::Fit( caParam, hits, param, iHits, target0, !dir );
257 
258  PndFTSCATrackParam paramS( param, 0 );
259  fChi2 = paramS.Chi2();
260  fNDF = paramS.NDF();
261  return paramS;
262 }
float_m Fit(const PndFTSCAParam &caParam, const FTSCAHits &hits, PndFTSCATrackParamVector &param, const vector< TESV > &iHits, const FTSCATarget &target, bool dir, const float_m &active=float_m(true))
float fChi2
Definition: FTSCATracks.h:107
vector< TES > & IHits()
Definition: FTSCATracks.h:24
TFile * f
Definition: bump_analys.C:12
int NHits() const
Definition: FTSCATracks.h:22
vector<TES>& FTSCATrack::IHits ( )
inline

Definition at line 24 of file FTSCATracks.h.

References fIHits.

Referenced by AddHitsToTheBeginning(), Fit(), Fit2Times(), PndFTSCAGBTracker::Merge(), RemoveHit(), and FTSCATracks::SortTracksByZ().

24 { return fIHits; }
vector< TES > fIHits
Definition: FTSCATracks.h:109
const vector<TES>& FTSCATrack::IHits ( ) const
inline

Definition at line 25 of file FTSCATracks.h.

References fIHits.

25 { return fIHits; }
vector< TES > fIHits
Definition: FTSCATracks.h:109
char& FTSCATrack::Level ( )
inline

Definition at line 67 of file FTSCATracks.h.

References fLevel.

Referenced by PndFTSCAGBTracker::CreateTracks(), and PndFTSCAGBTracker::FindBestCandidate().

67 { return fLevel; }
const char& FTSCATrack::Level ( ) const
inline

Definition at line 68 of file FTSCATracks.h.

References fLevel.

68 { return fLevel; }
char& FTSCATrack::NDF ( )
inline

Definition at line 65 of file FTSCATracks.h.

References fNDF.

Referenced by PndFTSCAGBTracker::FindBestCandidate().

65 { return fNDF; }
const char& FTSCATrack::NDF ( ) const
inline

Definition at line 66 of file FTSCATracks.h.

References fNDF.

66 { return fNDF; }
int FTSCATrack::NHits ( ) const
inline

Definition at line 22 of file FTSCATracks.h.

References fIHits.

Referenced by PndFTSCAGBTracker::CreateTracks(), PndFTSCADisplay::DrawGBTracks(), Fit(), Fit2Times(), and PndFTSCAGBTracker::Merge().

22 { return fIHits.size(); }
vector< TES > fIHits
Definition: FTSCATracks.h:109
int FTSCATrack::NUsedHits ( const FTSCAHits hits) const
inline

Definition at line 86 of file FTSCATracks.h.

References fIHits, h, and FTSCAHit::IsUsed().

Referenced by FTSCATracks::SelectAndSaveTracks().

86  {
87  int nused = 0;
88  for ( unsigned int iH = 0; iH < fIHits.size(); ++iH ) {
89  const FTSCAHit &h = hits[fIHits[iH]];
90  if ( h.IsUsed() ) nused++;
91  }
92  return nused;
93  }
vector< TES > fIHits
Definition: FTSCATracks.h:109
bool IsUsed() const
Definition: FTSCAHits.h:73
void FTSCATrack::RemoveHit ( int  iH)
inline

Definition at line 27 of file FTSCATracks.h.

References fIHits, fNDF, and IHits().

27  {
28  fIHits.erase( IHits().begin()+iH );
29 #ifdef DRIFT_TUBES
30  fNDF--;
31 #else
32  fNDF-=2;
33 #endif
34  }
vector< TES > fIHits
Definition: FTSCATracks.h:109
vector< TES > & IHits()
Definition: FTSCATracks.h:24
void FTSCATrack::SetHitsAsUsed ( FTSCAHits hits) const
inline

Definition at line 95 of file FTSCATracks.h.

References fIHits, h, and FTSCAHit::SetAsUsed().

Referenced by FTSCATracks::SelectAndSaveTracks().

95  {
96  for ( unsigned int iH = 0; iH < fIHits.size(); ++iH ) {
97  FTSCAHit &h = hits[fIHits[iH]];
98  h.SetAsUsed();
99  }
100  }
vector< TES > fIHits
Definition: FTSCATracks.h:109
void SetAsUsed()
Definition: FTSCAHits.h:74

Member Data Documentation

float FTSCATrack::fChi2
private

Definition at line 107 of file FTSCATracks.h.

Referenced by Chi2(), Compare(), Fit(), and Fit2Times().

vector<TES> FTSCATrack::fIHits
private
char FTSCATrack::fLevel
private

Definition at line 111 of file FTSCATracks.h.

Referenced by Level().

char FTSCATrack::fNDF
private

Definition at line 108 of file FTSCATracks.h.

Referenced by AddHit(), AddHitsToTheBeginning(), Fit(), Fit2Times(), NDF(), and RemoveHit().


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