FairRoot/PandaRoot
Classes | Functions | Variables
PndCAGBTracker.cxx File Reference
#include "PndCAStationSTT.h"
#include "PndCAGBTracker.h"
#include "PndCAGBHit.h"
#include "PndCAGBTrack.h"
#include "PndCATrackParam.h"
#include "PndCAMath.h"
#include "PndCATrackLinearisationVector.h"
#include "PndCAPerformance.h"
#include "TStopwatch.h"
#include "PndCATarget.h"
#include "PndCAHits.h"
#include "PndCAHitsV.h"
#include "PndCATracks.h"
#include <algorithm>
#include <fstream>
#include <iostream>
#include <sstream>
#include "PndCAMCPoint.h"
#include "PndCAPerformanceBase.h"

Go to the source code of this file.

Classes

struct  TrackHitRecord
 
struct  FitStore
 

Functions

void ConvertTrackParamToVector (PndCATrackParam t0[uint_v::Size], PndCATrackParamVector &t, int &nTracksV)
 
bool IsRightNeighbour (const PndCANPlet &a, const PndCANPlet &b, float pick, float &chi2)
 
vector< FitStorestore (3000)
 

Variables

vector< TrackHitRecordgTrackHitRecords
 
const int StartStationShift = 1
 
bool SINGLE_THREADED = false
 

Function Documentation

void ConvertTrackParamToVector ( PndCATrackParam  t0[uint_v::Size],
PndCATrackParamVector t,
int &  nTracksV 
)
inline

Definition at line 185 of file PndCAGBTracker.cxx.

References Chi2(), Par, PndCATrackParamVector::SetChi2(), PndCATrackParamVector::SetCov(), PndCATrackParamVector::SetNDF(), PndCATrackParamVector::SetPar(), PndCATrackParamVector::SetSignCosPhi(), PndCATrackParamVector::SetX(), t0, and X.

187 {
188  float_v tmpVec;
189  int_v tmpVecShort;
190  float_v::Memory tmpFloat;
191  int_v::Memory tmpShort;
192 
193  for(int iV=0; iV < nTracksV; iV++) tmpFloat[iV] = t0[iV].X();
194  tmpVec.load( tmpFloat );
195  t.SetX(tmpVec);
196  for(int iV=0; iV < nTracksV; iV++) tmpFloat[iV] = t0[iV].SignCosPhi();
197  tmpVec.load( tmpFloat );
198  t.SetSignCosPhi(tmpVec);
199 
200  for(int iP=0; iP<5; iP++)
201  {
202  for(int iV=0; iV < nTracksV; iV++) tmpFloat[iV] = t0[iV].Par()[iP];
203  tmpVec.load( tmpFloat );
204  t.SetPar(iP,tmpVec);
205  }
206  for(int iC=0; iC<15; iC++)
207  {
208  for(int iV=0; iV < nTracksV; iV++) tmpFloat[iV] = t0[iV].Cov()[iC];
209  tmpVec.load( tmpFloat );
210  t.SetCov(iC,tmpVec);
211  }
212  for(int iV=0; iV < nTracksV; iV++) tmpFloat[iV] = t0[iV].Chi2();
213  tmpVec.load( tmpFloat );
214  t.SetChi2(tmpVec);
215  for(int iV=0; iV < nTracksV; iV++) tmpShort[iV] = t0[iV].NDF();
216  tmpVecShort.load( tmpShort );
217  t.SetNDF(tmpVecShort);
218 }
void SetSignCosPhi(const float_v &v)
void SetChi2(const float_v &v)
void SetCov(int i, const float_v &v)
double X
Definition: anaLmdDigi.C:68
void SetX(const float_v &v)
PndMultiFieldPar * Par
Definition: sim_emc_apd.C:115
double Chi2(const double *xx)
void SetPar(int i, const float_v &v)
bool IsRightNeighbour ( const PndCANPlet a,
const PndCANPlet b,
float  pick,
float &  chi2 
)
inline

Definition at line 755 of file PndCAGBTracker.cxx.

References fabs(), i, PndCANPlet::IHit(), PndCANPlet::N(), PndCANPlet::QMomentum(), PndCANPlet::QMomentumErr2(), sqrt(), and StartStationShift.

Referenced by PndCAGBTracker::FindNeighbours().

755  {
756  int start = (a.N() < b.N() ) ? 0 : a.N() - b.N();
757  for( int i = start; i<a.N()-StartStationShift; i++){
758  if ( a.IHit(i+StartStationShift) != b.IHit(i) ){
759  return false;
760  }
761  }
762  chi2 = fabs(a.QMomentum() - b.QMomentum())/sqrt(a.QMomentumErr2() + b.QMomentumErr2());
763  if ( chi2 > pick ) return false; // neighbours must have same qp
764  chi2 *= chi2;
765  return true;
766 }
const int StartStationShift
Int_t i
Definition: run_full.C:25
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
float QMomentum() const
Definition: PndCANPlets.h:41
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
float QMomentumErr2() const
Definition: PndCANPlets.h:43
int N() const
Definition: PndCANPlets.h:33
const PndCATES & IHit(int IH) const
Definition: PndCANPlets.h:35
vector<FitStore> store ( 3000  )

Variable Documentation

vector<TrackHitRecord> gTrackHitRecords
bool SINGLE_THREADED = false

Definition at line 99 of file PndCAGBTracker.cxx.

const int StartStationShift = 1