BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/TrkBase/TrkBase-00-01-12/TrkBase/TrkHelixUtils.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: TrkHelixUtils.h,v 1.2 2006/03/28 01:02:36 zhangy Exp $
4//
5// Description: package of utility routines for doing things to helices.
6// No data members. I'll probably want to put this someplace else
7// eventually.
8//
9// Environment:
10// Software developed for the BaBar Detector at the SLAC B-Factory.
11//
12// Author(s): Steve Schaffner
13//
14//------------------------------------------------------------------------
15
16#ifndef TRKHELIXUTILS_H
17#define TRKHELIXUTILS_H
18#include "CLHEP/Matrix/Vector.h"
19#include "CLHEP/Matrix/Matrix.h"
20#include "CLHEP/Matrix/SymMatrix.h"
21#include "CLHEP/Vector/ThreeVector.h"
22#include "CLHEP/Geometry/Point3D.h"
23#ifndef ENABLE_BACKWARDS_COMPATIBILITY
25#endif
26using CLHEP::HepMatrix;
27using CLHEP::HepVector;
28using CLHEP::Hep3Vector;
29using CLHEP::HepSymMatrix;
30
31class TrkExchangePar;
32class BField;
33class BesPointErr;
34class BesVectorErr;
35class NeutParams;
36// Class interface //
37class TrkHelixUtils {
38
39public:
41
42 // Create a helix-set from a position and a momentum.
43 // Uses nominal B field to determine curvature.
44 static TrkExchangePar helixFromMom(const HepPoint3D& vertex,
45 const Hep3Vector& p, double sign, const BField&);
46
47 // Does the same, but gives *real* errors on the parameters
48 // (instead of a default error matrix)
49 // Uses nominal B field to determine curvature.
51 const BesVectorErr& p,const HepMatrix& cxp, double sign, const BField&);
52 // Does the same but for neutrals
54 const BesVectorErr& p,const HepMatrix& cxp, double sign, const BField&);
55
56 // Jacobian for transforming std helix params to new set defined at fltNew
57 static HepMatrix jacobianExtrapolate(const TrkExchangePar&, double fltNew);
58
59 // Actually transform the error matrix, as above
60 static HepSymMatrix extrapolateCov(TrkExchangePar &, double fltNew);
61
62 // Path length (3-d) to intersection with cylinder at radius rad.
63 static double fltToRad(const TrkExchangePar& hel, double rad);
64
65private:
66 // Preempt
67 TrkHelixUtils& operator= (const TrkHelixUtils&);
69};
70
71#endif
72
static double fltToRad(const TrkExchangePar &hel, double rad)
static NeutParams lineFromMomErr(const BesPointErr &vertex, const BesVectorErr &p, const HepMatrix &cxp, double sign, const BField &)
static TrkExchangePar helixFromMomErr(const BesPointErr &vertex, const BesVectorErr &p, const HepMatrix &cxp, double sign, const BField &)
static TrkExchangePar helixFromMom(const HepPoint3D &vertex, const Hep3Vector &p, double sign, const BField &)
static HepMatrix jacobianExtrapolate(const TrkExchangePar &, double fltNew)
static HepSymMatrix extrapolateCov(TrkExchangePar &, double fltNew)