00001 #ifndef VertexFit_TrackPool_H
00002 #define VertexFit_TrackPool_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include <vector>
00014 #include "VertexFit/WTrackParameter.h"
00015 #include "VertexFit/GammaShape.h"
00016
00017 #ifndef BEAN
00018
00019
00020
00021 #include "MdcRecEvent/RecMdcTrack.h"
00022 #include "MdcRecEvent/RecMdcKalTrack.h"
00023 #include "EmcRecEventModel/RecEmcShower.h"
00024 #else
00025 #include "DstEvtRecTracks.h"
00026 #endif
00027
00028 class TrackPool {
00029
00030 public:
00031
00032
00033 TrackPool();
00034 ~TrackPool(){;}
00035
00036
00037
00038
00039
00040 void AddTrack(const int number, const double mass, const RecMdcTrack *trk);
00041 void AddTrack(const int number, const double mass, const RecMdcKalTrack *trk);
00042 void AddTrack(const int number, const double mass, const RecEmcShower *trk);
00043
00044 void AddTrack(const int number, const WTrackParameter wtrk);
00045
00046 void AddMissTrack(const int number, const double mass);
00047 void AddMissTrack(const int number, const double mass, const HepLorentzVector p4);
00048 void AddMissTrack(const int number, const double mass, const RecEmcShower *trk);
00049 void AddMissTrack(const int number, const RecEmcShower *trk);
00050 void AddMissTrack(const int number, const HepLorentzVector p4);
00051 void AddTrackVertex(const int number, const double mass, const RecEmcShower *trk);
00052
00053 std::vector<int> AddList(int n1);
00054 std::vector<int> AddList(int n1, int n2);
00055 std::vector<int> AddList(int n1, int n2, int n3);
00056 std::vector<int> AddList(int n1, int n2, int n3, int n4);
00057 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5);
00058 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5, int n6);
00059 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5, int n6, int n7);
00060 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8);
00061 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8,
00062 int n9);
00063 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8,
00064 int n9, int n10);
00065 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8,
00066 int n9, int n10, int n11);
00067 std::vector<int> AddList(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8,
00068 int n9, int n10, int n11, int n12);
00069
00070
00071
00072 std::vector<WTrackParameter> wTrackOrigin() const {return m_wtrk_origin;}
00073 std::vector<WTrackParameter> wTrackInfit() const {return m_wtrk_infit;}
00074 std::vector<int> wTrackList() const {return m_lwtrk;}
00075 WTrackParameter wTrackOrigin(int n) const {return m_wtrk_origin[n];}
00076 WTrackParameter wTrackInfit(int n) const {return m_wtrk_infit[n];}
00077 int wTrackList(int n) const {return m_lwtrk[n];}
00078
00079 int numberWTrack() const { return ((int)(m_lwtrk.size()));}
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 std::vector<GammaShape> GammaShapeValue() const {return m_gammashape;}
00096 std::vector<int> GammaShapeList() const {return m_lgammashape;}
00097 GammaShape GammaShapeValue(int n) const {return m_gammashape[n];}
00098 int GammaShapeList(int n) const {return m_lgammashape[n];}
00099 int numberGammaShape() const { return ((int)(m_lgammashape.size()) );}
00100
00101
00102
00103
00104
00105 void setWTrackOrigin(const int n, const WTrackParameter wtrk) {m_wtrk_origin[n] = wtrk;}
00106 void setWTrackInfit(const int n, const WTrackParameter wtrk) {m_wtrk_infit[n] = wtrk;}
00107 void setWTrackOrigin(const WTrackParameter wtrk) {m_wtrk_origin.push_back(wtrk);}
00108 void setWTrackInfit(const WTrackParameter wtrk) {m_wtrk_infit.push_back(wtrk);}
00109 void setWTrackList(const int n) {m_lwtrk.push_back(n);}
00110
00111 void clearWTrackOrigin() {m_wtrk_origin.clear();}
00112 void clearWTrackInfit() {m_wtrk_infit.clear();}
00113 void clearWTrackList() {m_lwtrk.clear();}
00114
00115 void clearone() {m_numberone = 0;}
00116 void cleartwo() {m_numbertwo = 0;}
00117 int numberone() const {return m_numberone;}
00118 int numbertwo() const {return m_numbertwo;}
00119
00120 vector<int> mappositionA() const {return m_mappositionA;}
00121 vector<int> mappositionB() const {return m_mappositionB;}
00122 vector<int> mapkinematic() const {return m_mapkinematic;}
00123
00124 void clearMapkinematic() {m_mapkinematic.clear();}
00125 void clearMappositionA() {m_mappositionA.clear();}
00126 void clearMappositionB() {m_mappositionB.clear();}
00127
00128 void setMapkinematic(const int n) {m_mapkinematic.push_back(n);}
00129 void setMappositionA(const int n) {m_mappositionA.push_back(n);}
00130 void setMappositionB(const int n) {m_mappositionB.push_back(n);}
00131
00132
00133
00134
00135 void setGammaShape(const int n, const GammaShape gammashape) {m_gammashape[n] = gammashape;}
00136 void setGammaShape(const GammaShape gammashape) {m_gammashape.push_back(gammashape);}
00137 void setGammaShapeList(const int n) {m_lgammashape.push_back(n);}
00138
00139 void clearGammaShape() {m_gammashape.clear();}
00140 void clearGammaShapeList() {m_lgammashape.clear();}
00141
00142
00143 void setBeamPosition(const HepPoint3D BeamPosition) {m_BeamPosition = BeamPosition;}
00144 void setVBeamPosition(const HepSymMatrix VBeamPosition) {m_VBeamPosition = VBeamPosition;}
00145
00146
00147 HepPoint3D getBeamPosition() const{return m_BeamPosition;}
00148 HepSymMatrix getVBeamPosition() const {return m_VBeamPosition;}
00149
00150
00151 protected:
00152
00153
00154 private:
00155 std::vector<WTrackParameter> m_wtrk_origin;
00156 std::vector<WTrackParameter> m_wtrk_infit;
00157 std::vector<int> m_lwtrk;
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168 int m_numberone;
00169 int m_numbertwo;
00170
00171
00172 std::vector<GammaShape> m_gammashape;
00173 std::vector<int> m_lgammashape;
00174
00175 std::vector<int> m_mapkinematic;
00176 std::vector<int> m_mappositionA;
00177 std::vector<int> m_mappositionB;
00178
00179 private:
00180 HepPoint3D m_BeamPosition;
00181 HepSymMatrix m_VBeamPosition;
00182
00183 };
00184 #endif