00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00019 #ifndef STMUEMCPOSITION_H
00020 #define STMUEMCPOSITION_H
00021
00022 #include "TObject.h"
00023
00024 #include "StarClassLibrary/StThreeVectorD.hh"
00025 #include "StarClassLibrary/StThreeVectorF.hh"
00026 #include "StEEmcUtil/EEmcGeom/EEmcGeomDefs.h"
00027
00028 class StMuTrack;
00029 class StMcTrack;
00030 class StEmcGeom;
00031 class StVertex;
00032 class StMcVertex;
00033
00034 class StMuEmcPosition : public TObject
00035 {
00036 public:
00037
00038 StMuEmcPosition();
00039 virtual ~StMuEmcPosition();
00040
00041 bool projTrack(StThreeVectorD*,StThreeVectorD*,const StMuTrack*,double,double=225.405,int=1);
00042 bool projTrack(StThreeVectorD*,StThreeVectorD*,StMcTrack*,double,double=225.405,int=1);
00043
00044 bool trackOnEmc(StThreeVectorD*,StThreeVectorD*,const StMuTrack*,double,double=225.405);
00045 bool trackOnEmc(StThreeVectorD*,StThreeVectorD*,StMcTrack*,double,double=225.405);
00046
00047 bool trackOnBEmc(StThreeVectorD*,StThreeVectorD*,const StMuTrack*,double,double=225.405);
00048 bool trackOnBEmc(StThreeVectorD*,StThreeVectorD*,StMcTrack*,double,double=225.405);
00049 bool trackOnEEmc(StThreeVectorD* position, StThreeVectorD* momentum, const StMuTrack* track, double magField = 0.5, double z = kEEmcZSMD) const;
00050
00051 int getTowerEtaPhi(double, double, float*, float*);
00052
00053 int getNextTowerId(float, float, int, int);
00054 int getNextTowerId(int,int,int);
00055 int getNextTowerId(int,int,int,int,int);
00056 int getNextId(int,int,int,int,int,int);
00057
00058 float getDistTowerToTrack(double, double, int, int);
00059
00060 StThreeVectorF getPosFromVertex(const StThreeVectorF&,int);
00061 StThreeVectorF getPosFromVertex(StMcVertex*,int);
00062 float getThetaFromVertex(const StThreeVectorF&,int);
00063 float getThetaFromVertex(StMcVertex*,int);
00064 float getEtaFromVertex(const StThreeVectorF&,int);
00065 float getEtaFromVertex(StMcVertex*,int);
00066 float getPhiFromVertex(const StThreeVectorF&,int);
00067 float getPhiFromVertex(StMcVertex*,int);
00068
00069 protected:
00070
00071 StEmcGeom* mGeom[4];
00072
00073 ClassDef(StMuEmcPosition,1)
00074
00075 };
00076 #endif // STMUEMCPOSITION_H