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

Constructor & Destructor Documentation

◆ FTSCATrack()

FTSCATrack::FTSCATrack ( )
inline

Definition at line 32 of file FTSCATracks.h.

32 : 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 49 of file FTSCATracks.h.

50  {
51  fIHits.push_back(TES(iS, iH));
52 #ifdef DRIFT_TUBES
53  fNDF++;
54 #else
55  fNDF += 2;
56 #endif
57  }
Definition: FTSCATES.h:24

◆ AddHit() [2/2]

void FTSCATrack::AddHit ( const TES iH)
inline

Definition at line 58 of file FTSCATracks.h.

59  {
60  fIHits.push_back(iH);
61 #ifdef DRIFT_TUBES
62  fNDF++;
63 #else
64  fNDF += 2;
65 #endif
66  }

◆ AddHitsToTheBeginning()

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

Definition at line 68 of file FTSCATracks.h.

References IHits().

69  {
70  fIHits.insert(IHits().begin(), hits.begin(), hits.end());
71 #ifdef DRIFT_TUBES
72  fNDF += hits.size();
73 #else
74  fNDF += 2 * hits.size();
75 #endif
76  }
vector< TES > & IHits()
Definition: FTSCATracks.h:36

◆ Chi2() [1/2]

float& FTSCATrack::Chi2 ( )
inline

Definition at line 78 of file FTSCATracks.h.

78 { return fChi2; }

◆ Chi2() [2/2]

const float& FTSCATrack::Chi2 ( ) const
inline

Definition at line 79 of file FTSCATracks.h.

79 { return fChi2; }

◆ Compare()

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

Definition at line 85 of file FTSCATracks.h.

Referenced by FTSCATracks::SelectAndSaveTracks().

86  {
87  // return (a->fIHits.size() > b->fIHits.size()) ||
88  // ( (a->fIHits.size() == b->fIHits.size()) &&
89  // ( (a->fIHits[0].s < b->fIHits[0].s) ||
90  // ( (a->fIHits[0].s == b->fIHits[0].s) && (a->fChi2 < b->fChi2)
91  // )
92  // )
93  // );
94  return (a->fIHits.size() > b->fIHits.size()) || ((a->fIHits.size() == b->fIHits.size()) && (a->fChi2 < b->fChi2));
95  }

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

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

Referenced by SetHitsAsUsed().

215 {
216  vector<TESV> iHits(NHits());
217  const int NTHits = iHits.size();
218  // cout<<"NTHits "<<NTHits<<endl;
219  for (unsigned short ihit = 0; ihit < NTHits; ihit++) {
220  // cout<<"IHits()[ihit] ista "<<int(IHits()[ihit].s)<<" number "<<IHits()[ihit].e<<endl;
221  iHits[ihit] = IHits()[ihit];
222  }
223 
225  // CAFunctionality::Fit( caParam, hits, param, iHits, target0, dir );
226  if (usePar) {
227  /*param.SetX(outerParam.X());
228  param.SetY(outerParam.Y());
229  param.SetZ(outerParam.Z());
230  param.SetTx(outerParam.Tx());
231  param.SetTy(outerParam.Ty());
232  param.SetQP(outerParam.QP());
233  for (int i=0; i<15; i++)
234  {
235  param.SetCov(i,outerParam.Cov(i));
236  }*/
237  param.SetQP(outerParam.QP());
238  CAFunctionality::FitUseParam(caParam, hits, param, iHits, target0, dir, usePar);
239  } else {
240  CAFunctionality::Fit(caParam, hits, param, iHits, target0, dir);
241  }
242 
243  PndFTSCATrackParam paramS(param, 0);
244  fChi2 = paramS.Chi2();
245  fNDF = paramS.NDF();
246  // fPar = paramS;
247  return paramS;
248 }
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:34
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:36

◆ Fit2Times()

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

Definition at line 250 of file FTSCATracks.h.

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

Referenced by SetHitsAsUsed().

251 {
252  vector<TESV> iHits(NHits());
253  const int NTHits = iHits.size();
254 
255  for (unsigned short ihit = 0; ihit < NTHits; ihit++) {
256  iHits[ihit] = IHits()[ihit];
257  }
258 
260 
261  CAFunctionality::Fit(caParam, hits, param, iHits, target0, dir);
262  param.SetNDF(-4);
263  param.SetChi2(0.f);
264  CAFunctionality::Fit(caParam, hits, param, iHits, target0, !dir);
265 
266  PndFTSCATrackParam paramS(param, 0);
267  fChi2 = paramS.Chi2();
268  fNDF = paramS.NDF();
269  return paramS;
270 }
int NHits() const
Definition: FTSCATracks.h:34
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:36
float f
Definition: P4_F32vec4.h:32

◆ IHits() [1/2]

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

Definition at line 36 of file FTSCATracks.h.

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

36 { return fIHits; }

◆ IHits() [2/2]

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

Definition at line 37 of file FTSCATracks.h.

37 { return fIHits; }

◆ Level() [1/2]

char& FTSCATrack::Level ( )
inline

Definition at line 82 of file FTSCATracks.h.

82 { return fLevel; }

◆ Level() [2/2]

const char& FTSCATrack::Level ( ) const
inline

Definition at line 83 of file FTSCATracks.h.

83 { return fLevel; }

◆ NDF() [1/2]

char& FTSCATrack::NDF ( )
inline

Definition at line 80 of file FTSCATracks.h.

80 { return fNDF; }

◆ NDF() [2/2]

const char& FTSCATrack::NDF ( ) const
inline

Definition at line 81 of file FTSCATracks.h.

81 { return fNDF; }

◆ NHits()

int FTSCATrack::NHits ( ) const
inline

Definition at line 34 of file FTSCATracks.h.

Referenced by Fit(), and Fit2Times().

34 { return fIHits.size(); }

◆ NUsedHits()

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

Definition at line 97 of file FTSCATracks.h.

References FTSCAHit::IsUsed().

Referenced by FTSCATracks::SelectAndSaveTracks().

98  {
99  int nused = 0;
100  for (unsigned int iH = 0; iH < fIHits.size(); ++iH) {
101  const FTSCAHit &h = hits[fIHits[iH]];
102  if (h.IsUsed())
103  nused++;
104  }
105  return nused;
106  }
bool IsUsed() const
Definition: FTSCAHits.h:86

◆ RemoveHit()

void FTSCATrack::RemoveHit ( int  iH)
inline

Definition at line 39 of file FTSCATracks.h.

References IHits().

40  {
41  fIHits.erase(IHits().begin() + iH);
42 #ifdef DRIFT_TUBES
43  fNDF--;
44 #else
45  fNDF -= 2;
46 #endif
47  }
vector< TES > & IHits()
Definition: FTSCATracks.h:36

◆ SetHitsAsUsed()

void FTSCATrack::SetHitsAsUsed ( FTSCAHits hits) const
inline

Definition at line 108 of file FTSCATracks.h.

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

Referenced by FTSCATracks::SelectAndSaveTracks().

109  {
110  for (unsigned int iH = 0; iH < fIHits.size(); ++iH) {
111  FTSCAHit &h = hits[fIHits[iH]];
112  h.SetAsUsed();
113  }
114  }
void SetAsUsed()
Definition: FTSCAHits.h:87

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