FairRoot/PandaRoot
Public Member Functions | Private Attributes | List of all members
PndRiemannHit Class Reference

#include <PndRiemannHit.h>

Inheritance diagram for PndRiemannHit:

Public Member Functions

 PndRiemannHit ()
 
 PndRiemannHit (double x, double y, double z, double dx, double dy, double dz)
 
 PndRiemannHit (FairHit *cl, int hitID=-1)
 
 ~PndRiemannHit ()
 
 PndRiemannHit (const PndRiemannHit &myHit)
 
PndRiemannHitoperator= (const PndRiemannHit &myHit)
 
void setXYZ (double x, double y, double z)
 
void setDXYZ (double dx, double dy, double dz)
 
void setHit (FairHit *cl)
 
const TVector3 & x () const
 
const FairHit * hit () const
 
int hitID () const
 
double s () const
 
double z () const
 
double alpha () const
 
double sigmaXY () const
 
double sigmaX () const
 
double sigmaY () const
 
double sigmaW () const
 
const TMatrixDcovX () const
 
double covX (int row, int col) const
 
bool operator< (const PndRiemannHit &aHit) const
 
void calcPosOnTrk (PndRiemannTrack *trk)
 

Private Attributes

TVector3 fX
 
TVector3 fSigmaX
 Sigma Error of fX (should be replaced by covariance matrix) More...
 
TMatrixD fCovX
 Covariance Matrix of the hit. More...
 
FairHit * fHit
 
int fHitID
 
double fS
 pathlength along track More...
 
double fZ
 z-coordinate of hit More...
 
double fDeltaZ
 error in z More...
 
double fAlpha
 angle along track More...
 
int fVerbose
 

Detailed Description

Definition at line 35 of file PndRiemannHit.h.

Constructor & Destructor Documentation

PndRiemannHit::PndRiemannHit ( )
inline

Definition at line 39 of file PndRiemannHit.h.

39 : fX(0.,0.,0.), fSigmaX(0.,0.,0.), fCovX(3,3), fHit(0), fHitID(-1), fS(-1.), fZ(-1.), fDeltaZ(-1.), fAlpha(-1.), fVerbose(0) {};
FairHit * fHit
TVector3 fSigmaX
Sigma Error of fX (should be replaced by covariance matrix)
double fS
pathlength along track
double fDeltaZ
error in z
double fAlpha
angle along track
double fZ
z-coordinate of hit
TMatrixD fCovX
Covariance Matrix of the hit.
PndRiemannHit::PndRiemannHit ( double  x,
double  y,
double  z,
double  dx,
double  dy,
double  dz 
)

Definition at line 40 of file PndRiemannHit.cxx.

References dz.

40  :
41  fCovX(3,3),fHit(0), fS(-1),fZ(mz), fDeltaZ(-1.), fAlpha(-1.), fVerbose(0)
42 {
43  setXYZ(mx,my,mz);
44  setDXYZ(dx,dy,dz);
45 }
FairHit * fHit
double dy
double fS
pathlength along track
void setDXYZ(double dx, double dy, double dz)
void setXYZ(double x, double y, double z)
double fDeltaZ
error in z
double dx
double fAlpha
angle along track
double fZ
z-coordinate of hit
TMatrixD fCovX
Covariance Matrix of the hit.
PndRiemannHit::PndRiemannHit ( FairHit *  cl,
int  hitID = -1 
)

Definition at line 48 of file PndRiemannHit.cxx.

References setHit().

48  :
49  fCovX(3,3),fHit(cl), fHitID(myHitID), fS(-1), fZ(-1.), fDeltaZ(-1.), fAlpha(-1.), fVerbose(0)
50 {
51  setHit(cl);
52 }
FairHit * fHit
double fS
pathlength along track
double fDeltaZ
error in z
void setHit(FairHit *cl)
double fAlpha
angle along track
double fZ
z-coordinate of hit
TMatrixD fCovX
Covariance Matrix of the hit.
PndRiemannHit::~PndRiemannHit ( )

Definition at line 55 of file PndRiemannHit.cxx.

55 {}
PndRiemannHit::PndRiemannHit ( const PndRiemannHit myHit)
inline

Definition at line 45 of file PndRiemannHit.h.

45  : TObject(myHit), fX(myHit.fX), fSigmaX(myHit.fSigmaX),
46  fCovX(myHit.fCovX), fHit(myHit.fHit), fHitID(myHit.fHitID), fS(myHit.fS),
47  fZ(myHit.fZ), fDeltaZ(myHit.fDeltaZ), fAlpha(myHit.fAlpha), fVerbose(myHit.fVerbose)
48  {}
FairHit * fHit
TVector3 fSigmaX
Sigma Error of fX (should be replaced by covariance matrix)
double fS
pathlength along track
double fDeltaZ
error in z
double fAlpha
angle along track
double fZ
z-coordinate of hit
TMatrixD fCovX
Covariance Matrix of the hit.

Member Function Documentation

double PndRiemannHit::alpha ( ) const
inline

Definition at line 76 of file PndRiemannHit.h.

References fAlpha.

76 {return fAlpha;}
double fAlpha
angle along track
void PndRiemannHit::calcPosOnTrk ( PndRiemannTrack trk)

Definition at line 92 of file PndRiemannHit.cxx.

References fAlpha, fHit, fS, fVerbose, fX, PndRiemannTrack::getHit(), PndRiemannTrack::orig(), r, PndRiemannTrack::r(), RIEMANNSCALE, and x().

Referenced by PndRiemannTrack::calcIntersection(), PndRiemannTrack::calcSZChi2(), PndRiemannTrack::szDist(), and PndRiemannTrack::szError().

92  {
93  assert(trk!=NULL);
94  TVectorD o=trk->orig();
95  o*=RIEMANNSCALE;// convert back to cm;
96  double r=trk->r();
97  r*=RIEMANNSCALE;
98  const PndRiemannHit* firstHit=trk->getHit(0);
99  assert(firstHit!=NULL);
100  TVector2 k(firstHit->x().X()-o[0],firstHit->x().Y()-o[1]);
101  TVector2 l(fX.X()-o[0],fX.Y()-o[1]);
102  fAlpha=l.DeltaPhi(k);
103 // if (fAlpha < 0)
104 // fAlpha += TMath::Pi()*2;
105  fS=fAlpha*r;
106  if (fVerbose > 1) std::cout << "Alpha/r " << fAlpha << "/" << r << "--> z/s "<< fHit->GetZ() << "/" << fS <<std::endl;
107 }
FairHit * fHit
double r
Definition: RiemannTest.C:14
#define RIEMANNSCALE
double fS
pathlength along track
double r() const
double fAlpha
angle along track
TVectorD orig() const
const TVector3 & x() const
Definition: PndRiemannHit.h:71
PndRiemannHit * getHit(unsigned int i)
const TMatrixD& PndRiemannHit::covX ( ) const
inline

Definition at line 81 of file PndRiemannHit.h.

References fCovX.

81 {return fCovX;}
TMatrixD fCovX
Covariance Matrix of the hit.
double PndRiemannHit::covX ( int  row,
int  col 
) const
inline

Definition at line 82 of file PndRiemannHit.h.

References col, fCovX, and row.

82 {return fCovX[row][col];}
int row
Definition: anaLmdDigi.C:67
int col
Definition: anaLmdDigi.C:67
TMatrixD fCovX
Covariance Matrix of the hit.
const FairHit* PndRiemannHit::hit ( ) const
inline

Definition at line 72 of file PndRiemannHit.h.

References fHit.

Referenced by PndRiemannTrack::getTrackParPForHit().

72 {return fHit;}
FairHit * fHit
int PndRiemannHit::hitID ( ) const
inline

Definition at line 73 of file PndRiemannHit.h.

References fHitID.

73 {return fHitID;}
bool PndRiemannHit::operator< ( const PndRiemannHit aHit) const
inline

< Sort hits by arclength, fails if track curls

Definition at line 83 of file PndRiemannHit.h.

References s().

83  {
84  if (s() >= 0 && aHit.s() >= 0){
85  return s() < aHit.s();
86  }
87  else if (s() <= 0 && aHit.s() <= 0){
88  return -s() < -aHit.s();
89  }
90  else
91  return s() < aHit.s();
92  }
double s() const
Definition: PndRiemannHit.h:74
PndRiemannHit& PndRiemannHit::operator= ( const PndRiemannHit myHit)
inline

Definition at line 50 of file PndRiemannHit.h.

References fAlpha, fCovX, fDeltaZ, fHit, fHitID, fS, fSigmaX, fVerbose, fX, and fZ.

51  {
52  if (this != &myHit){
53  fX = myHit.fX;
54  fSigmaX = myHit.fSigmaX;
55  fCovX = myHit.fCovX;
56  fHit = myHit.fHit;
57  fHitID = myHit.fHitID;
58  fS = myHit.fS;
59  fZ = myHit.fZ;
60  fDeltaZ = myHit.fDeltaZ;
61  fAlpha = myHit.fAlpha;
62  fVerbose = myHit.fVerbose;
63  }
64  return *this;
65  }
FairHit * fHit
TVector3 fSigmaX
Sigma Error of fX (should be replaced by covariance matrix)
double fS
pathlength along track
double fDeltaZ
error in z
double fAlpha
angle along track
double fZ
z-coordinate of hit
TMatrixD fCovX
Covariance Matrix of the hit.
double PndRiemannHit::s ( ) const
inline
void PndRiemannHit::setDXYZ ( double  dx,
double  dy,
double  dz 
)

Definition at line 70 of file PndRiemannHit.cxx.

References fCovX, fDeltaZ, fX, and RIEMANNSCALE.

Referenced by PndMvdRiemannTrackFinderTaskEff::AddGhostTrack(), PndMvdRiemannTrackFinderTaskCutPar::CalcParHists(), PndMvdRiemannTrackFinderTaskCutPar::CalcRiemannTracks(), PndMvdSttGemRiemannTrackFinder::CheckRiemannHitStt(), PndRiemannTrack::correctSttHit(), PndSttCellTrackletGenerator::CreateRiemannTrack(), PndSciTAnaIdeal::GetRiemannTrack(), PndMvdRiemannVertexFinderTask::refit(), and setHit().

71 {
72  fCovX[0][0] = TMath::Power(dx/RIEMANNSCALE,2);
73  fCovX[1][1] = TMath::Power(dy/RIEMANNSCALE,2);
74  fCovX[2][2] = 4*(TMath::Power(fX.X(),2)*fCovX[0][0] + 2*fX.X()*fX.Y()*dx*dy + TMath::Power(fX.Y(),2)*fCovX[1][1])/TMath::Power(RIEMANNSCALE,2);
75 
77 }
double dy
#define RIEMANNSCALE
double fDeltaZ
error in z
double dx
TMatrixD fCovX
Covariance Matrix of the hit.
void PndRiemannHit::setHit ( FairHit *  cl)

Definition at line 79 of file PndRiemannHit.cxx.

References setDXYZ(), and setXYZ().

Referenced by PndRiemannHit().

80 {
81  setXYZ(cl->GetX(), cl->GetY(), cl->GetZ());
82  setDXYZ(cl->GetDx(), cl->GetDy(), cl->GetDz());
83 }
void setDXYZ(double dx, double dy, double dz)
void setXYZ(double x, double y, double z)
void PndRiemannHit::setXYZ ( double  x,
double  y,
double  z 
)
double PndRiemannHit::sigmaW ( ) const
inline

Definition at line 80 of file PndRiemannHit.h.

References sigmaX(), sigmaY(), CAMath::Sqrt(), x(), and y.

Referenced by PndRiemannTrack::distError().

80 {return TMath::Sqrt(TMath::Power(2*x().x()*sigmaX(),2) + TMath::Power(2*x().y()*sigmaY(),2));} // error of z-Coordinate (x2+y2) in RiemannSpace
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
double sigmaX() const
Definition: PndRiemannHit.h:78
const TVector3 & x() const
Definition: PndRiemannHit.h:71
Double_t y
double sigmaY() const
Definition: PndRiemannHit.h:79
double PndRiemannHit::sigmaX ( ) const
inline

Definition at line 78 of file PndRiemannHit.h.

References fCovX, and CAMath::Sqrt().

Referenced by PndRiemannTrack::addHit(), PndMvdSttGemRiemannTrackFinder::CheckRiemannHitStt(), PndRiemannTrack::distError(), and sigmaW().

78 {return TMath::Sqrt(fCovX[0][0]);}
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
TMatrixD fCovX
Covariance Matrix of the hit.
double PndRiemannHit::sigmaXY ( ) const

Definition at line 109 of file PndRiemannHit.cxx.

References fCovX, and CAMath::Sqrt().

Referenced by PndRiemannTrack::addHit().

110 {
111  double result = TMath::Sqrt(fCovX[0][0] + fCovX[1][1]);
112  if (result == 0.){
113  return 1.;
114  }
115  else return result;
116 }
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
TMatrixD fCovX
Covariance Matrix of the hit.
double PndRiemannHit::sigmaY ( ) const
inline

Definition at line 79 of file PndRiemannHit.h.

References fCovX, and CAMath::Sqrt().

Referenced by PndRiemannTrack::addHit(), PndMvdSttGemRiemannTrackFinder::CheckRiemannHitStt(), PndRiemannTrack::distError(), and sigmaW().

79 {return TMath::Sqrt(fCovX[1][1]);}
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
TMatrixD fCovX
Covariance Matrix of the hit.
const TVector3& PndRiemannHit::x ( ) const
inline
double PndRiemannHit::z ( ) const

Member Data Documentation

double PndRiemannHit::fAlpha
private

angle along track

Definition at line 109 of file PndRiemannHit.h.

Referenced by alpha(), calcPosOnTrk(), and operator=().

TMatrixD PndRiemannHit::fCovX
private

Covariance Matrix of the hit.

Definition at line 103 of file PndRiemannHit.h.

Referenced by covX(), operator=(), setDXYZ(), sigmaX(), sigmaXY(), and sigmaY().

double PndRiemannHit::fDeltaZ
private

error in z

Definition at line 108 of file PndRiemannHit.h.

Referenced by operator=(), and setDXYZ().

FairHit* PndRiemannHit::fHit
private

Definition at line 104 of file PndRiemannHit.h.

Referenced by calcPosOnTrk(), hit(), and operator=().

int PndRiemannHit::fHitID
private

Definition at line 105 of file PndRiemannHit.h.

Referenced by hitID(), and operator=().

double PndRiemannHit::fS
private

pathlength along track

Definition at line 106 of file PndRiemannHit.h.

Referenced by calcPosOnTrk(), operator=(), and s().

TVector3 PndRiemannHit::fSigmaX
private

Sigma Error of fX (should be replaced by covariance matrix)

Definition at line 102 of file PndRiemannHit.h.

Referenced by operator=().

int PndRiemannHit::fVerbose
private

Definition at line 110 of file PndRiemannHit.h.

Referenced by calcPosOnTrk(), and operator=().

TVector3 PndRiemannHit::fX
private

Definition at line 101 of file PndRiemannHit.h.

Referenced by calcPosOnTrk(), operator=(), setDXYZ(), setXYZ(), and x().

double PndRiemannHit::fZ
private

z-coordinate of hit

Definition at line 107 of file PndRiemannHit.h.

Referenced by operator=(), setXYZ(), and z().


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