20 #ifndef PNDRIEMANNTRACK_HH
21 #define PNDRIEMANNTRACK_HH
56 const TVectorD&
n()
const{
return fn;}
57 double c()
const {
return fc;}
58 const TVectorD&
av()
const{
return fav;}
60 TVectorD
orig()
const;
98 double m()
const {
return fm;}
100 double t()
const {
return ft;}
106 void init(
double x0,
double y0,
double R,
107 double dip,
double z0);
110 void refit(
bool withErrorCalc =
true);
115 void szFit(
bool withErrorCalc =
true);
134 out << std::setprecision(6) <<
"Riemann Track: Radius " <<
r() <<
" +/- " <<
dR() <<
" Origin: " <<
orig()[0] <<
" +/- " <<
dX() <<
" / " <<
orig()[1] <<
" +/- " <<
dY() << std::endl;
135 out <<
"RiemannTrack: Normal: " <<
n()[0] <<
"/" <<
n()[1] <<
"/" <<
n()[2] <<
" c: " <<
c() << std::endl;
PndRiemannHit * getLastHit()
unsigned int getNumHits()
double fweight
sum over all weights (1/(sigmaXY*sigmaXY))
double calcSZChi2(PndRiemannHit *hit)
double distError(PndRiemannHit *hit)
PndRiemannHit correctSttSkewedHit(PndSttHit *mySttHit, PndSttTube *myTube)
void init(double x0, double y0, double R, double dip, double z0)
double calcZPosByS(double s)
PndRiemannHit correctSttHit(PndSttHit *mySttHit)
std::vector< PndRiemannHit > fHits
static T Sqrt(const T &x)
double distCircle(PndRiemannHit *hit)
double szDist(PndRiemannHit *hit)
friend std::ostream & operator<<(std::ostream &out, PndRiemannTrack &track)
double dist(PndRiemannHit *hit)
Int_t GetBranchId(TString branchName)
double fmError
Error of fit.
std::map< TString, Int_t > fBranchNameMap
double fChi2
Chisquare of sz fit.
void calcJacRXY()
calcualtes fjacRXY
TVector3 calcErrorPosByS(Double_t s, Double_t dS)
TVector3 calcErrorLineOffset(PndRiemannTrack &track)
const TVectorD & n() const
TVector3 calcErrorLineNorm(PndRiemannTrack &track)
FairTrackParP getTrackParPForHit(Int_t i, Double_t B)
Int_t getCharge(Double_t B)
void addPndTrackCand(PndTrackCand *trackCand)
void SetVertexCut(double cut)
TVectorD fn
normal vector to plane;
TVectorD calcErrorXY1XY2(TVector3 &line, TVector3 &dLine, TVector3 &offset, TVector3 &dOffset)
void refit(bool withErrorCalc=true)
void calcStartStopAlpha()
double ChiSquareDistCircle()
int calcIntersection(PndRiemannTrack &track, TVector3 &p1, TVector3 &p2)
TMatrixD covPlane() const
virtual void Print(std::ostream &out=std::cout)
TMatrixD fjacRXY
jacobian matrix to transform from c,n1,n2,n2 to r,x,y
void szFit(bool withErrorCalc=true)
void addHit(PndRiemannHit &hit)
Double_t calcErrorS(TVector2 &XY, TVector2 &dXY, PndRiemannTrack *track)
double fc
distance of plane to origin
TMatrixD fcovPlane
full covarince matrix of the plane;
TVector3 getPforHit(int i, double B)
std::vector< PndRiemannHit > getHits() const
double fm
parameters of sz-fit
const TVectorD & av() const
TVectorD fav
average over all hits
PndTrack getPndTrack(Double_t B)
double calcAlpha(PndRiemannHit *myHit)
TVector3 calcPosByS(double s)
PndRiemannHit * getHit(unsigned int i)
TMatrixT< double > TMatrixD
double ftError
Error of fit.
double szError(PndRiemannHit *hit)