StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMuEmcPosition.h
1 //******************************************************************************
2  //
3  // StMuEmcPosition.h
4  //
5  // Authors: Marcia Maria de Moura
6  //
7  // Initial version: 2001/12/21
8  //
9  //******************************************************************************
10 
19 #ifndef STMUEMCPOSITION_H
20 #define STMUEMCPOSITION_H
21 
22 #include "TObject.h"
23 
24 #include "StarClassLibrary/StThreeVectorD.hh"
25 #include "StarClassLibrary/StThreeVectorF.hh"
26 #include "StEEmcUtil/EEmcGeom/EEmcGeomDefs.h"
27 
28 class StMuTrack;
29 class StMcTrack;
30 class StEmcGeom;
31 class StVertex;
32 class StMcVertex;
33 
34 class StMuEmcPosition : public TObject
35 {
36 public:
37 
39  virtual ~StMuEmcPosition();
40 
41  bool projTrack(StThreeVectorD*,StThreeVectorD*,const StMuTrack*,double,double=225.405,int=1);
42  bool projTrack(StThreeVectorD*,StThreeVectorD*,StMcTrack*,double,double=225.405,int=1);
43 
44  bool trackOnEmc(StThreeVectorD*,StThreeVectorD*,const StMuTrack*,double,double=225.405);
45  bool trackOnEmc(StThreeVectorD*,StThreeVectorD*,StMcTrack*,double,double=225.405);
46 
47  bool trackOnBEmc(StThreeVectorD*,StThreeVectorD*,const StMuTrack*,double,double=225.405);
48  bool trackOnBEmc(StThreeVectorD*,StThreeVectorD*,StMcTrack*,double,double=225.405);
49  bool trackOnEEmc(StThreeVectorD* position, StThreeVectorD* momentum, const StMuTrack* track, double magField = 0.5, double z = kEEmcZSMD) const;
50 
51  int getTowerEtaPhi(double, double, float*, float*);
52 
53  int getNextTowerId(float, float, int, int);
54  int getNextTowerId(int,int,int);
55  int getNextTowerId(int,int,int,int,int);
56  int getNextId(int,int,int,int,int,int);
57 
58  float getDistTowerToTrack(double, double, int, int);
59 
62  float getThetaFromVertex(const StThreeVectorF&,int);
63  float getThetaFromVertex(StMcVertex*,int);
64  float getEtaFromVertex(const StThreeVectorF&,int);
65  float getEtaFromVertex(StMcVertex*,int);
66  float getPhiFromVertex(const StThreeVectorF&,int);
67  float getPhiFromVertex(StMcVertex*,int);
68 
69 protected:
70 
71  StEmcGeom* mGeom[4];
72 
73  ClassDef(StMuEmcPosition,1)
74 
75  };
76 #endif // STMUEMCPOSITION_H
float getPhiFromVertex(const StThreeVectorF &, int)
Return phi of the tower considering the collision vertex.
float getDistTowerToTrack(double, double, int, int)
Return distance from track to center of one tower.
Monte Carlo Track class All information on a simulated track is stored in this class: kinematics...
Definition: StMcTrack.hh:144
float getEtaFromVertex(const StThreeVectorF &, int)
Return eta of the tower considering the collision vertex.
bool trackOnBEmc(StThreeVectorD *, StThreeVectorD *, const StMuTrack *, double, double=225.405)
StjTrack projection utility.
StThreeVectorF getPosFromVertex(const StThreeVectorF &, int)
Return Position from collision vertex.
int getTowerEtaPhi(double, double, float *, float *)
Return tower eta/phi.
float getThetaFromVertex(const StThreeVectorF &, int)
Return theta of the tower considering the collision vertex.
bool trackOnEEmc(StThreeVectorD *position, StThreeVectorD *momentum, const StMuTrack *track, double magField=0.5, double z=kEEmcZSMD) const
Project track into EEMC at SMD depth (magnetic field must be in Tesla)
int getNextId(int, int, int, int, int, int)
Return neighbor id (works for all detectors 1=bemc, 2=bprs, 3=bsmde, 4=bsmdp)
bool projTrack(StThreeVectorD *, StThreeVectorD *, const StMuTrack *, double, double=225.405, int=1)
StjTrack projection utility.
bool trackOnEmc(StThreeVectorD *, StThreeVectorD *, const StMuTrack *, double, double=225.405)
StjTrack projection utility.
int getNextTowerId(float, float, int, int)
Return neighbor tower id's.