00001 #ifndef __StEEmcIUPair_h__
00002 #define __StEEmcIUPair_h__
00003
00004 #include "TObject.h"
00005 #include "StEEmcIUPoint.h"
00006 #include "TVector3.h"
00007 #include <vector>
00008
00009 class StEEmcIUPair : public TObject {
00010
00011 public:
00012
00014 StEEmcIUPair();
00017 StEEmcIUPair( StEEmcIUPoint p1, StEEmcIUPoint p2 );
00019 StEEmcIUPair( StEEmcIUPoint p1, StEEmcIUPoint p2, TVector3 vertex );
00021 StEEmcIUPair( StEEmcIUPoint p1, StEEmcIUPoint p2, TVector3 vertex1, TVector3 vertex2 );
00023 ~StEEmcIUPair(){ };
00024
00026 StEEmcIUPair( const StEEmcIUPair &old );
00027
00030 StEEmcIUPoint point(Int_t index){ return mPoint[index]; }
00031
00033 Float_t mass();
00035 Float_t energy();
00037 Float_t zgg();
00039 Float_t phigg();
00041 Float_t pt();
00042 Float_t pz();
00044 TVector3 momentum();
00046 TVector3 vertex();
00047
00049 void print();
00050
00051 private:
00052 protected:
00053
00055 void Kinematics();
00056
00057 Float_t mMass;
00058 Float_t mEnergy;
00059 Float_t mZgg;
00060 Float_t mPhigg;
00061 TVector3 mMomentum;
00063 TVector3 mVertex1;
00064 TVector3 mVertex2;
00065 TVector3 mVertex;
00067 StEEmcIUPoint mPoint[2];
00069
00070 ClassDef(StEEmcIUPair,1);
00071
00072 };
00073
00074 inline Float_t StEEmcIUPair::mass(){ return mMass; }
00075 inline Float_t StEEmcIUPair::energy(){ return mEnergy; }
00076 inline Float_t StEEmcIUPair::zgg(){ return mZgg; }
00077 inline Float_t StEEmcIUPair::phigg(){ return mPhigg; }
00078 inline Float_t StEEmcIUPair::pt(){ return mMomentum.Perp(); }
00079 inline Float_t StEEmcIUPair::pz(){ return mMomentum.Pz(); }
00080 inline TVector3 StEEmcIUPair::momentum(){ return mMomentum; }
00081 inline TVector3 StEEmcIUPair::vertex(){ return mVertex; }
00082
00083 typedef std::vector< StEEmcIUPair > StEEmcIUPairVec_t;
00084
00085 #endif