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)