BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
ExtMdcTrack.h
Go to the documentation of this file.
1//
2// File: ExtMdcTrack.h
3// Author: L.L.Wang
4//
5// Deccription: A class to get MDC reconstuction track,
6// and supply information to track extrapolation.
7// It is only a interface.
8//
9// History: 2005.7.4 created by L.L.Wang
10//
11
12#ifndef EXTMDCTRACK_H
13#define EXTMDCTRACK_H
14#include "CLHEP/Geometry/Point3D.h"
15#include "CLHEP/Matrix/SymMatrix.h"
16#include "CLHEP/Vector/ThreeVector.h"
17
18#ifndef ENABLE_BACKWARDS_COMPATIBILITY
19typedef HepGeom::Point3D<double> HepPoint3D;
20#endif
21#ifndef ENABLE_BACKWARDS_COMPATIBILITY
22typedef HepGeom::Vector3D<double> HepVector3D;
23#endif
24
25#include "MdcRecEvent/RecMdcKalTrack.h"
26#include "MdcRecEvent/RecMdcTrack.h"
27
28using namespace std;
29
30using namespace CLHEP;
31
32static const int NdimMdcErr( 5 );
33static const int NdimExtErr( 6 );
34static const int NumHelixPar( 5 );
35
37public:
38 ExtMdcTrack( void ); // Construction.
39 ~ExtMdcTrack( void ); // Destruction.
40
41 void SetMsgFlag( bool aFlag ) { myMsgFlag = aFlag; };
42 bool SetMdcRecTrkCol( RecMdcTrackCol* aPointer ); // Get RecMdcTrackCol from TDS.
43 bool SetMdcKalTrkCol( RecMdcKalTrackCol* aPointer ); // Get RecMdcTrackCol from TDS.
44 bool SetParId( int pid ) {
45 myParID = pid;
46 return true;
47 };
48 bool GetOneGoodTrk(); // Get a good MdcRecTrk.
49 bool ReadTrk( int pid );
50 int GetTrackID() { return myTrackID; } // Get RecMdcTrackl ID.
51 RecMdcTrack* GetMdcRecTrkPtr() const; // Get RecMdcTrackl pointer.
52 const Hep3Vector GetPosition() const; // Get coordinate of the track at the Mdc->Tof point.
53 const Hep3Vector GetMomentum() const; // Get the momentum of the track at the Mdc_>Tof point.
54 const HepSymMatrix GetErrorMatrix() const; // Get 6x6 (x,p)Err matrix at the Mdc_>Tof point.
55 double GetTrackLength() const; // Get the track length of the track at the Mdc->Tof point.
56 inline double GetTrkTof() const { return myTrkTof; };
57 // double GetTOF() const;//Get the Tof of the track at the Mdc->Tof point.
58 double GetPt() const; // Get the pt of the track at the Mdc->Tof point.
59 double GetParticleCharge() const; // Get the charge of the track(+1,-1).
60
61private:
62 void Convert(); // Convert data due to unit problem.
63 bool myMsgFlag;
64 int myTrackID;
65 RecMdcTrackCol* myMdcTrackCol;
66 RecMdcTrackCol::iterator myMdcRecTrkIter; // Iterater of MdcRecTrk.
67 RecMdcKalTrackCol* myMdcKalTrackCol;
68 RecMdcKalTrackCol::iterator myMdcKalTrkIter; // Iterater of MdcRecTrk.
69 string myInputTrk;
70 int myParID;
71
72 HepVector myHelixPar; // Mdc reconstucted track's helix 5 parameters.
73 HepPoint3D myPivot; // Pivot point of the MdcRecTrk' helix.
74 HepSymMatrix myMdcErr; // Error matrix(5x5) of the MdcRecTrk's helix.
75 double myPhiTerm; // Phi angle of the MdcRecTrk's helix at the Mdc.
76 double myTrkLength;
77 double myTrkTof;
78 HepPoint3D myLPosition;
79 // double myTrackLength[5];//Track length from Kalman fit.
80 // string myParticleName;//Particle name used by GetTOF().
81};
82
83#endif
HepGeom::Vector3D< double > HepVector3D
HepGeom::Point3D< double > HepPoint3D
bool GetOneGoodTrk()
ExtMdcTrack(void)
double GetParticleCharge() const
double GetTrackLength() const
~ExtMdcTrack(void)
double GetPt() const
double GetTrkTof() const
Definition ExtMdcTrack.h:56
int GetTrackID()
Definition ExtMdcTrack.h:50
bool SetParId(int pid)
Definition ExtMdcTrack.h:44
bool SetMdcKalTrkCol(RecMdcKalTrackCol *aPointer)
RecMdcTrack * GetMdcRecTrkPtr() const
bool SetMdcRecTrkCol(RecMdcTrackCol *aPointer)
const Hep3Vector GetPosition() const
bool ReadTrk(int pid)
const HepSymMatrix GetErrorMatrix() const
const Hep3Vector GetMomentum() const
void SetMsgFlag(bool aFlag)
Definition ExtMdcTrack.h:41