00001
00002
00003 #ifndef STMUTRACKFOURVEC_H
00004 #define STMUTRACKFOURVEC_H
00005
00006 #include "StJetFinder/AbstractFourVec.h"
00007
00008 #include "StMuTrackEmu.h"
00009 #include "StMuTowerEmu.h"
00010 #include "StMcTrackEmu.h"
00011
00012 #include "StDetectorId.h"
00013
00014 #include <TLorentzVector.h>
00015
00016 #include <iostream>
00017 #include <string>
00018
00019 class StMuTrackFourVec : public AbstractFourVec {
00020
00021 public:
00022
00023 StMuTrackFourVec() : _track(0), _tower(0), _mctrack(0), _index(0), _detId(kUnknownId), _charge(0) {}
00024
00025 StMuTrackFourVec(StMuTrackEmu* track, StMuTowerEmu* tower, StMcTrackEmu* mctrack, const TLorentzVector& p, double charge, int i, int detectorId)
00026 : _track(track)
00027 , _tower(tower)
00028 , _mctrack(mctrack)
00029 , _vec(p)
00030 , _index(i)
00031 , _detId(detectorId)
00032 , _charge(charge)
00033 {
00034 }
00035
00036 virtual ~StMuTrackFourVec()
00037 {
00038 if (_track) delete _track; _track = 0;
00039 if (_tower) delete _tower; _tower = 0;
00040 if (_mctrack) delete _mctrack; _mctrack = 0;
00041 }
00042
00044 double pt() const { return _vec.Pt(); }
00045 double px() const { return _vec.Px(); }
00046 double py() const { return _vec.Py(); }
00047 double pz() const { return _vec.Pz(); }
00048
00050 double phi() const { return _vec.Phi(); }
00051 double eta() const { return _vec.Eta(); }
00052
00053
00054 double eT() const { return _vec.Et(); }
00055 double e() const { return _vec.E (); }
00056 double mass() const { return _vec.M (); }
00057
00058
00059 double charge() const { return _charge; }
00060
00061
00062 StMuTrackEmu* track() const { return _track; }
00063
00064
00065 StMuTowerEmu* tower() const { return _tower; }
00066
00067
00068 StMcTrackEmu* mctrack() const { return _mctrack; }
00069
00070
00071 int getIndex() const { return _index; }
00072
00073
00074 int detectorId() const { return _detId; }
00075
00076 private:
00077
00078 StMuTrackEmu* _track;
00079 StMuTowerEmu* _tower;
00080 StMcTrackEmu* _mctrack;
00081 TLorentzVector _vec;
00082 int _index;
00083 int _detId;
00084 double _charge;
00085 };
00086
00087 #endif // STMUTRACKFOURVEC_H