PandaRoot
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)
 

Detailed Description

Definition at line 15 of file FTSCATracks.h.

Constructor & Destructor Documentation

◆ FTSCATrack()

FTSCATrack::FTSCATrack ( )
inline

Definition at line 20 of file FTSCATracks.h.

20 : fChi2(0), fNDF(-5), fIHits(), fLevel(0) { fIHits.reserve(PndFTSCAParameters::MaxNStations); };

Member Function Documentation

◆ AddHit() [1/2]

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

Definition at line 37 of file FTSCATracks.h.

38  {
39  fIHits.push_back(TES(iS, iH));
40 #ifdef DRIFT_TUBES
41  fNDF++;
42 #else
43  fNDF += 2;
44 #endif
45  }
Definition: FTSCATES.h:12

◆ AddHit() [2/2]

void FTSCATrack::AddHit ( const TES iH)
inline

Definition at line 46 of file FTSCATracks.h.

47  {
48  fIHits.push_back(iH);
49 #ifdef DRIFT_TUBES
50  fNDF++;
51 #else
52  fNDF += 2;
53 #endif
54  }

◆ AddHitsToTheBeginning()

void FTSCATrack::AddHitsToTheBeginning ( vector< TES > &  hits)
inline

Definition at line 56 of file FTSCATracks.h.

References IHits().

57  {
58  fIHits.insert(IHits().begin(), hits.begin(), hits.end());
59 #ifdef DRIFT_TUBES
60  fNDF += hits.size();
61 #else
62  fNDF += 2 * hits.size();
63 #endif
64  }
vector< TES > & IHits()
Definition: FTSCATracks.h:24

◆ Chi2() [1/2]

float& FTSCATrack::Chi2 ( )
inline

Definition at line 66 of file FTSCATracks.h.

66 { return fChi2; }

◆ Chi2() [2/2]

const float& FTSCATrack::Chi2 ( ) const
inline

Definition at line 67 of file FTSCATracks.h.

67 { return fChi2; }

◆ Compare()

static bool FTSCATrack::Compare ( const FTSCATrack a,
const FTSCATrack b 
)
inlinestatic

Definition at line 73 of file FTSCATracks.h.

Referenced by FTSCATracks::SelectAndSaveTracks().

74  {
75  // return (a->fIHits.size() > b->fIHits.size()) ||
76  // ( (a->fIHits.size() == b->fIHits.size()) &&
77  // ( (a->fIHits[0].s < b->fIHits[0].s) ||
78  // ( (a->fIHits[0].s == b->fIHits[0].s) && (a->fChi2 < b->fChi2)
79  // )
80  // )
81  // );
82  return (a->fIHits.size() > b->fIHits.size()) || ((a->fIHits.size() == b->fIHits.size()) && (a->fChi2 < b->fChi2));
83  }

◆ Fit()

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

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

Referenced by SetHitsAsUsed().

203 {
204  vector<TESV> iHits(NHits());
205  const int NTHits = iHits.size();
206  // cout<<"NTHits "<<NTHits<<endl;
207  for (unsigned short ihit = 0; ihit < NTHits; ihit++) {
208  // cout<<"IHits()[ihit] ista "<<int(IHits()[ihit].s)<<" number "<<IHits()[ihit].e<<endl;
209  iHits[ihit] = IHits()[ihit];
210  }
211 
213  // CAFunctionality::Fit( caParam, hits, param, iHits, target0, dir );
214  if (usePar) {
215  /*param.SetX(outerParam.X());
216  param.SetY(outerParam.Y());
217  param.SetZ(outerParam.Z());
218  param.SetTx(outerParam.Tx());
219  param.SetTy(outerParam.Ty());
220  param.SetQP(outerParam.QP());
221  for (int i=0; i<15; i++)
222  {
223  param.SetCov(i,outerParam.Cov(i));
224  }*/
225  param.SetQP(outerParam.QP());
226  CAFunctionality::FitUseParam(caParam, hits, param, iHits, target0, dir, usePar);
227  } else {
228  CAFunctionality::Fit(caParam, hits, param, iHits, target0, dir);
229  }
230 
231  PndFTSCATrackParam paramS(param, 0);
232  fChi2 = paramS.Chi2();
233  fNDF = paramS.NDF();
234  // fPar = paramS;
235  return paramS;
236 }
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))
int NHits() const
Definition: FTSCATracks.h:22
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))
vector< TES > & IHits()
Definition: FTSCATracks.h:24

◆ Fit2Times()

const PndFTSCATrackParam FTSCATrack::Fit2Times ( const FTSCAHits hits,
const FTSCATarget target0,
const PndFTSCAParam caParam,
bool  dir 
)
inline

Definition at line 238 of file FTSCATracks.h.

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

Referenced by SetHitsAsUsed().

239 {
240  vector<TESV> iHits(NHits());
241  const int NTHits = iHits.size();
242 
243  for (unsigned short ihit = 0; ihit < NTHits; ihit++) {
244  iHits[ihit] = IHits()[ihit];
245  }
246 
248 
249  CAFunctionality::Fit(caParam, hits, param, iHits, target0, dir);
250  param.SetNDF(-4);
251  param.SetChi2(0.f);
252  CAFunctionality::Fit(caParam, hits, param, iHits, target0, !dir);
253 
254  PndFTSCATrackParam paramS(param, 0);
255  fChi2 = paramS.Chi2();
256  fNDF = paramS.NDF();
257  return paramS;
258 }
int NHits() const
Definition: FTSCATracks.h:22
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))
vector< TES > & IHits()
Definition: FTSCATracks.h:24
float f
Definition: P4_F32vec4.h:20

◆ IHits() [1/2]

vector<TES>& FTSCATrack::IHits ( )
inline

Definition at line 24 of file FTSCATracks.h.

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

24 { return fIHits; }

◆ IHits() [2/2]

const vector<TES>& FTSCATrack::IHits ( ) const
inline

Definition at line 25 of file FTSCATracks.h.

25 { return fIHits; }

◆ Level() [1/2]

char& FTSCATrack::Level ( )
inline

Definition at line 70 of file FTSCATracks.h.

70 { return fLevel; }

◆ Level() [2/2]

const char& FTSCATrack::Level ( ) const
inline

Definition at line 71 of file FTSCATracks.h.

71 { return fLevel; }

◆ NDF() [1/2]

char& FTSCATrack::NDF ( )
inline

Definition at line 68 of file FTSCATracks.h.

68 { return fNDF; }

◆ NDF() [2/2]

const char& FTSCATrack::NDF ( ) const
inline

Definition at line 69 of file FTSCATracks.h.

69 { return fNDF; }

◆ NHits()

int FTSCATrack::NHits ( ) const
inline

Definition at line 22 of file FTSCATracks.h.

Referenced by Fit(), and Fit2Times().

22 { return fIHits.size(); }

◆ NUsedHits()

int FTSCATrack::NUsedHits ( const FTSCAHits hits) const
inline

Definition at line 85 of file FTSCATracks.h.

References 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())
91  nused++;
92  }
93  return nused;
94  }
bool IsUsed() const
Definition: FTSCAHits.h:74

◆ RemoveHit()

void FTSCATrack::RemoveHit ( int  iH)
inline

Definition at line 27 of file FTSCATracks.h.

References IHits().

28  {
29  fIHits.erase(IHits().begin() + iH);
30 #ifdef DRIFT_TUBES
31  fNDF--;
32 #else
33  fNDF -= 2;
34 #endif
35  }
vector< TES > & IHits()
Definition: FTSCATracks.h:24

◆ SetHitsAsUsed()

void FTSCATrack::SetHitsAsUsed ( FTSCAHits hits) const
inline

Definition at line 96 of file FTSCATracks.h.

References Fit(), Fit2Times(), and FTSCAHit::SetAsUsed().

Referenced by FTSCATracks::SelectAndSaveTracks().

97  {
98  for (unsigned int iH = 0; iH < fIHits.size(); ++iH) {
99  FTSCAHit &h = hits[fIHits[iH]];
100  h.SetAsUsed();
101  }
102  }
void SetAsUsed()
Definition: FTSCAHits.h:75

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