00001
00003
00004
00005
00007
00008 #include "tmb_tree/TMBVertex.hpp"
00009
00010
00011 ClassImp(TMBVertex);
00012
00013
00014
00015 TMBVertex::TMBVertex() :
00016 _ntrack(0),
00017 _VertexX(0.),
00018 _VertexY(0.),
00019 _VertexZ(0.),
00020 _CovXX(0.),
00021 _CovYY(0.),
00022 _CovZZ(0.),
00023 _CovXY(0.),
00024 _CovXZ(0.),
00025 _CovYZ(0.),
00026 _charge(0),
00027 _chisq(0.)
00028 {}
00029
00030
00031
00032 TMBVertex::TMBVertex(Float_t vertexx, Float_t vertexy, Float_t vertexz,
00033 Float_t covxx, Float_t covyy, Float_t covzz,
00034 Float_t covxy, Float_t covxz, Float_t covyz,
00035 Float_t chisq, const TRefArray* tracks) :
00036 _ntrack(0),
00037 _VertexX(vertexx),
00038 _VertexY(vertexy),
00039 _VertexZ(vertexz),
00040 _CovXX(covxx),
00041 _CovYY(covyy),
00042 _CovZZ(covzz),
00043 _CovXY(covxy),
00044 _CovXZ(covxz),
00045 _CovYZ(covyz),
00046 _charge(0),
00047 _chisq(chisq)
00048 {
00049 _tracks.Clear();
00050 if (tracks) {
00051 for (Int_t i=0; i<tracks->GetLast()+1; i++) {
00052 TObject* obj = tracks->At(i);
00053 if(obj) {
00054 ++_ntrack;
00055 _tracks.Add(obj);
00056 TMBTrack* track = dynamic_cast<TMBTrack*>(obj);
00057 assert(track != 0);
00058 *this += *track;
00059 _charge += track->charge();
00060 }
00061 }
00062 }
00063 }