7 #ifndef __TRACKPARTICLEFITOBJECT_H
8 #define __TRACKPARTICLEFITOBJECT_H
11 #include "TwoVector.h"
17 #include "EVENT/TrackState.h"
18 #include "EVENT/Track.h"
52 virtual double getDPx(
int ilocal)
const;
53 virtual double getDPy(
int ilocal)
const;
54 virtual double getDPz(
int ilocal)
const;
55 virtual double getDE(
int ilocal)
const;
57 virtual double getFirstDerivative_Meta_Local(
int iMeta,
int ilocal ,
int metaSet )
const;
58 virtual double getSecondDerivative_Meta_Local(
int iMeta,
int ilocal ,
int jlocal,
int metaSet )
const;
60 virtual double getChi2 ()
const;
62 virtual int getNPar()
const {
return NPAR;}
67 virtual int getCharge()
const;
79 static const double omega_pt_conv;
80 static const double maxpt;
103 const FourVector& momentum,
135 enum {iD0=0, iPhi0, iOmega, iZ0, iTanL, iStart, iEnd, NPAR};
139 static const double parfact[NPAR];
141 virtual void initialise(
const double* _pars,
const double* _cov,
double m);
143 void updateCache()
const;
144 void updateMomentumDerivatives()
const;
145 void updateNormalDerivatives()
const;
146 void updateTrajectoryDerivatives()
const;
160 mutable double momentumFirstDerivatives[4][NPAR];
161 mutable double momentumSecondDerivatives[4][NPAR][NPAR];
163 mutable double normalFirstDerivatives[3][NPAR];
164 mutable double normalSecondDerivatives[3][NPAR][NPAR];
166 mutable double trajectoryStartFirstDerivatives[3][NPAR];
167 mutable double trajectoryStartSecondDerivatives[3][NPAR][NPAR];
169 mutable double trajectoryEndFirstDerivatives[3][NPAR];
170 mutable double trajectoryEndSecondDerivatives[3][NPAR][NPAR];
172 mutable double phi0 ;
173 mutable double omega ;
174 mutable double tanl ;
177 mutable double s_start;
178 mutable double s_end ;
182 void resetMomentumFirstDerivatives()
const;
183 void resetMomentumSecondDerivatives()
const;
185 void resetNormalFirstDerivatives()
const;
186 void resetNormalSecondDerivatives()
const;
188 void resetTrajectoryFirstDerivatives()
const;
189 void resetTrajectorySecondDerivatives()
const;
191 void setMomentumFirstDerivatives (
int iMeta,
int jLocal,
double x)
const;
192 void setMomentumSecondDerivatives(
int iMeta,
int jLocal,
int kLocal,
double x)
const;
194 void setNormalFirstDerivatives (
int iMeta,
int jLocal,
double x)
const;
195 void setNormalSecondDerivatives(
int iMeta,
int jLocal,
int kLocal,
double x)
const;
197 void setTrajectoryStartFirstDerivatives (
int iMeta,
int jLocal,
double x)
const;
198 void setTrajectoryStartSecondDerivatives(
int iMeta,
int jLocal,
int kLocal,
double x)
const;
200 void setTrajectoryEndFirstDerivatives (
int iMeta,
int jLocal,
double x)
const;
201 void setTrajectoryEndSecondDerivatives(
int iMeta,
int jLocal,
int kLocal,
double x)
const;
203 virtual double getMomentumFirstDerivatives (
int iMeta,
int jLocal)
const;
204 virtual double getMomentumSecondDerivatives(
int iMeta,
int jLocal,
int kLocal)
const;
206 virtual double getNormalFirstDerivatives (
int iMeta,
int jLocal)
const;
207 virtual double getNormalSecondDerivatives(
int iMeta,
int jLocal,
int kLocal)
const;
209 virtual double getTrajectoryStartFirstDerivatives (
int iMeta,
int jLocal)
const;
210 virtual double getTrajectoryStartSecondDerivatives(
int iMeta,
int jLocal,
int kLocal)
const;
212 virtual double getTrajectoryEndFirstDerivatives (
int iMeta,
int jLocal)
const;
213 virtual double getTrajectoryEndSecondDerivatives(
int iMeta,
int jLocal,
int kLocal)
const;
219 #endif // __TRACKPARTICLEFITOBJECT_H
virtual double getDPx(int ilocal) const
Return d p_x / d par_ilocal (derivative of px w.r.t. local parameter ilocal)
Definition: TrackParticleFitObject.cc:275
virtual bool setParameters(int ivertex, const ThreeVector &vertex, const FourVector &momentum, double charge_)
Set parameters such that track passes through a vertex with a given 4-momentum; return=success.
Definition: TrackParticleFitObject.h:101
virtual ThreeVector getVertex(int ivertex) const
Get start (i=0) or stop (i=1) vertex.
Definition: TrackParticleFitObject.cc:1318
virtual bool fixVertexParam(int ivertex, bool fix=true)
Get helix that is tangential at a certain arc length s.
Definition: TrackParticleFitObject.cc:1479
static double bfield
Global B field in Tesla(!)
Definition: TrackParticleFitObject.h:77
virtual int getNPar() const
Get total number of parameters of this FitObject.
Definition: TrackParticleFitObject.h:62
virtual void setVertex(int ivertex, const TwoVector &v)
Set start (i=0) or stop (i=1) vertex to a point as close as possible to given point.
Definition: TrackParticleFitObject.cc:1398
virtual double getDPz(int ilocal) const
Return d p_z / d par_ilocal (derivative of pz w.r.t. local parameter ilocal)
Definition: TrackParticleFitObject.cc:289
virtual ThreeVector getVertexDerivative(int ivertex, int ilocal) const
Get derivative of vertex w.r.t. parameter ilocal.
Definition: TrackParticleFitObject.cc:1430
virtual FourVector getMomentum(int ivertex) const
Get momentum at vertex.
Definition: TrackParticleFitObject.cc:1454
virtual TrackParticleFitObject & assign(const BaseFitObject &source)
Assign from anther object, if of same type.
Definition: TrackParticleFitObject.cc:204
Abstract base class for particle objects of kinematic fits.
Definition: ParticleFitObject.h:63
virtual bool releaseVertexParam(int ivertex)
Release parameter(s) pertaining to a vertex.
Definition: TrackParticleFitObject.cc:1491
static double getBfield()
Get the B field for all tracks (in Tesla)
Definition: TrackParticleFitObject.cc:1309
Declares class ParticleFitObject.
virtual double getChi2() const
Get chi squared from measured and fitted parameters.
Definition: TrackParticleFitObject.cc:345
virtual double getDPy(int ilocal) const
Return d p_y / d par_ilocal (derivative of py w.r.t. local parameter ilocal)
Definition: TrackParticleFitObject.cc:282
virtual double getDE(int ilocal) const
Return d E / d par_ilocal (derivative of E w.r.t. local parameter ilocal)
Definition: TrackParticleFitObject.cc:296
Definition: TrackParticleFitObject.h:20
virtual JBLHelix getJBLHelix()
Get JBLhelix.
Definition: TrackParticleFitObject.cc:1324
Definition: TwoVector.h:18
static double setBfield(double bfield_)
Set the B field for all tracks.
Definition: TrackParticleFitObject.cc:1304
virtual bool updateParams(double p[], int idim)
Read values from global vector, readjust vector; return: significant change.
Definition: TrackParticleFitObject.cc:230
Abstract base class for particle objects of kinematic fits.
Definition: BaseFitObject.h:110
virtual const char * getParamName(int ilocal) const
Get name of parameter ilocal.
Definition: TrackParticleFitObject.cc:217
virtual TrackParticleFitObject * copy() const
Return a new copy of itself.
Definition: TrackParticleFitObject.cc:200
A helix, parametrized by (kappa, phi0, theta, dca, z0)
Definition: JBLHelix.h:33
Definition: ThreeVector.h:18