CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
RecMdcTrack.h
Go to the documentation of this file.
1/*
2 *
3 * this class models "Track" used in Mdc Reconstruction
4 *
5 * 1. add CgemCluster information:m_ncluster, m_vecclusters,m_matchChi2.2016-09-28
6 * ********************************************************/
7
8#ifndef RECMDCTRACK_H
9#define RECMDCTRACK_H
10#include "GaudiKernel/ContainedObject.h"
11#include "GaudiKernel/SmartRef.h"
12#include "GaudiKernel/SmartRefVector.h"
13#include "GaudiKernel/ObjectVector.h"
16#include "CLHEP/Matrix/Vector.h"
17#include "CLHEP/Matrix/SymMatrix.h"
18#include "CLHEP/Vector/ThreeVector.h"
19#include "CLHEP/Geometry/Point3D.h"
20#include "RecMdcHit.h"
21
23#include <map>
24
25 extern const CLID& CLID_RecMdcTrack;
26 typedef SmartRefVector<RecMdcHit> HitRefVec;
27
28 typedef SmartRefVector<RecCgemCluster> ClusterRefVec;
29
30class RecMdcTrack : public DstMdcTrack {
31 public:
32 virtual const CLID& clID() const;
33 static const CLID& classID();
34
35 //ctor and dector
42
43 //extractors
44 //const int getTrkId() const { return m_trackId; }
45 //const double getDr() const { return m_helix[0]; }
46 //const double getFi0() const { return m_helix[1]; }
47 //const double getCpa() const { return m_helix[2]; }
48 //const double getDz() const { return m_helix[3]; }
49 //const double getTanl() const { return m_helix[4]; }
50 const double getVX0() const { return m_pivot[0]; }
51 const double getVY0() const { return m_pivot[1]; }
52 const double getVZ0() const { return m_pivot[2]; }
53 //const double getX0() const { return m_poca[0]; }
54 //const double getY0() const { return m_poca[1]; }
55 //const double getZ0() const { return m_poca[2]; }
56 const int getNhits() const { return m_nhits; }
57 //const double getChisq() const { return m_chi2; }
58 //const int getNdf() const { return m_ndof; }
59 const double getFiTerm() const { return m_fiTerm; }
60 //const int getNster() const { return m_nster; }
61 //const int getStat() const { return m_stat; }
62 //const int getCharge() const { return m_charge; }
63 const HepPoint3D& getPivot() const { return m_pivot; }
64 //const HepPoint3D& getPoca() const { return m_poca3D; }
65 //const HepVector& getHelix() const { return m_a; }
66 //const HepSymMatrix& getError() const { return m_Ea; }
67 const HitRefVec getVecHits(void) const { return m_vechits; }
68
69 const int getNcluster() const { return m_ncluster; }
70 const ClusterRefVec getVecClusters() const { return m_vecclusters;}
71 const double getMatchChi2() const {return m_matchChi2; }
72 const map<int,int> getClusterFitStat() {return m_clusterFitStat;}
73 //modifiers
74 void setVX0(double x0) { m_pivot[0] = x0; }
75 void setVY0(double y0) { m_pivot[1] = y0; }
76 void setVZ0(double z0) { m_pivot[2] = z0; }
77 void setFiTerm(double fiterm) { m_fiTerm = fiterm; }
78 void setNhits(int nhits) { m_nhits = nhits; }
79 void setPivot(const HepPoint3D& pivot) { m_pivot = pivot; }
80 //void setVecHits(HitRefVec vechits) { m_vechits = vechits; }
81 void setVecHits(HitRefVec vechits);
82
83 void setNcluster(int ncluster) { m_ncluster = ncluster;}
84 //void setVecClusters(ClusterRefVec vecclusters) { m_vecclusters = vecclusters;}
85 void setVecClusters(ClusterRefVec vecclusters);
86 void setVecClusters(ClusterRefVec vecclusters,map<int,int> clusterFitStat);
87 void setMatchChi2( double MatchChi2) { m_matchChi2 = MatchChi2; }
88 void setClusterFitStat(map<int,int> clusterFitStat) {m_clusterFitStat = clusterFitStat;}
89 void updateStatistics();
90 private:
91 HepPoint3D m_pivot; // pivot of the track
92 double m_fiTerm; // phi angle value at track terminated point
93 int m_nhits; // number of total hits contained
94 HitRefVec m_vechits; // hit list of the track
95 //vector<int> m_vecHits; // hit list of the track wensp
96 int m_ncluster; //number of total clusters contained
97 ClusterRefVec m_vecclusters; //cluster list of the track
98 double m_matchChi2; // matching chisq between the ODC track and Cgem segment
99 map<int,int> m_clusterFitStat;
100};
101
102typedef ObjectVector<RecMdcTrack> RecMdcTrackCol;
103
104#endif
105
const CLID & CLID_RecMdcTrack
SmartRefVector< RecCgemCluster > ClusterRefVec
Definition RecMdcTrack.h:28
ObjectVector< RecMdcTrack > RecMdcTrackCol
SmartRefVector< RecMdcHit > HitRefVec
Definition RecMdcTrack.h:26
const double getVZ0() const
Definition RecMdcTrack.h:52
virtual const CLID & clID() const
const HitRefVec getVecHits(void) const
Definition RecMdcTrack.h:67
void setVecClusters(ClusterRefVec vecclusters)
void setPivot(const HepPoint3D &pivot)
Definition RecMdcTrack.h:79
const double getMatchChi2() const
Definition RecMdcTrack.h:71
void setVZ0(double z0)
Definition RecMdcTrack.h:76
const double getVY0() const
Definition RecMdcTrack.h:51
const HepPoint3D & getPivot() const
Definition RecMdcTrack.h:63
const int getNhits() const
Definition RecMdcTrack.h:56
void updateStatistics()
void setVY0(double y0)
Definition RecMdcTrack.h:75
void setVecHits(HitRefVec vechits)
void setNhits(int nhits)
Definition RecMdcTrack.h:78
const int getNcluster() const
Definition RecMdcTrack.h:69
void setFiTerm(double fiterm)
Definition RecMdcTrack.h:77
const ClusterRefVec getVecClusters() const
Definition RecMdcTrack.h:70
RecMdcTrack & operator=(const RecMdcTrack &)
const map< int, int > getClusterFitStat()
Definition RecMdcTrack.h:72
void setMatchChi2(double MatchChi2)
Definition RecMdcTrack.h:87
static const CLID & classID()
void setNcluster(int ncluster)
Definition RecMdcTrack.h:83
const double getFiTerm() const
Definition RecMdcTrack.h:59
const double getVX0() const
Definition RecMdcTrack.h:50
void setClusterFitStat(map< int, int > clusterFitStat)
Definition RecMdcTrack.h:88
void setVX0(double x0)
Definition RecMdcTrack.h:74