1 #ifndef EARMS_ELASTICARMS_H 2 #define EARMS_ELASTICARMS_H 20 ElasticArms(
unsigned int n,
unsigned int m,
double lambda,
double lambdav);
66 void GetVertex(
double& x,
double& y,
double& z)
const;
74 void SetArm(
unsigned int i,
double theta,
double phi);
90 double SumVi(
unsigned int a)
const;
111 std::vector<double>
fZ;
116 typedef std::vector< std::vector<double> >
matrix;
double fBeta
1/T in units of 1/sigma^2
double fLambda
Noise penalty term in units of sigma^2.
unsigned int LeadingArm() const
std::vector< double > fWsqr
Combined weight for hit 1/(sigmaH^2 + sigmaMS^2)
void SetLambda(double lam)
double fY0
Vertex y location (cm)
std::vector< bool > fMiaColUnchanged
Is a column of fMia changed in UpdateMia?
std::vector< double > fDhi
From hit to vertex location^2 [cm^2].
double fZ0
Vertex z location (cm)
double fLambdaV
Distance scale for hits to appear on (cm)
Elastic Arms vertex finding algorithm.
unsigned int fM
Number of arms.
bool fBetaUnchanged
Whether fBeta is the same since last call to UpdateMia.
std::vector< double > fXorY
Transverse hit positions (cm)
void SetHit(unsigned int i, double z, double xory, double sigma, int view)
std::vector< double > fdZds
Track dz/ds.
double SumVi(unsigned int a) const
std::vector< std::vector< double > > matrix
void GetVertex(double &x, double &y, double &z) const
unsigned int fN
Data to fit.
std::vector< double > fDaa
Distance from vertex to prong [cm].
int fProngFit
1 - treat arms as prongs in fit, 0 - treat as lines
std::vector< double > fZ
Z locations of hits (cm)
double fX0
Model parameters.
void SetArm(unsigned int i, double theta, double phi)
std::vector< bool > fMiaRowUnchanged
Is a row of fMia changed in UpdateMia?
std::vector< double > fdXds
Track dx/ds.
matrix fVia
Strength of association hit i to track a.
std::vector< std::vector< bool > > fMiaUnchanged
Is fMia changed in UpdateMia?
ElasticArms(unsigned int n, unsigned int m, double lambda, double lambdav)
std::vector< int > fView
Which view is the hit in?
matrix fExpBetaMia
exp(-fBeta*Mia) - compute once used many time
double fExpBetaLambda
exp(-fBeta*fLambda) - computed once used many
std::vector< double > fdYds
Track dy/ds.
double fT
A measure of the "temperature" in units of sigma^2.
void SetVertex(double x, double y, double z)
matrix fMia
Distance^2 hit i to track a (sigma^2)