//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Implementation of class TpcRiemannHit // see TpcRiemannHit.hh for details // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // // //----------------------------------------------------------- // Panda Headers ---------------------- // This Class' Header ------------------ #include "TpcRiemannHit.h" #include "TMath.h" // C/C++ Headers ---------------------- #include "TpcCluster.h" #include #include #include // Collaborating Class Headers -------- #include "TpcRiemannTrack.h" // Class Member definitions ----------- ClassImp(TpcRiemannHit) TpcRiemannHit::TpcRiemannHit(double r, double phi, double scale) : _cluster(NULL), _s(0.), _angleOnHelix(0.), fRiemannScale(scale) { double r2=r*r; double d=1+r2; _x.SetX(r*cos(phi)/d); _x.SetY(r*sin(phi)/d); _x.SetZ(r2/d); } TpcRiemannHit::TpcRiemannHit(TpcCluster* cl, double scale) : _cluster(cl), _s(0.), _angleOnHelix(0.), fRiemannScale(scale) { TVector2 a(cl->pos().X(),cl->pos().Y()); double r = a.Mod()/fRiemannScale; double phi=a.Phi(); double r2=r*r; double d=1+r2; _x.SetX(r*cos(phi)/d); _x.SetY(r*sin(phi)/d); _x.SetZ(r2/d); } TpcRiemannHit::~TpcRiemannHit(){} double TpcRiemannHit::z()const { if(_cluster==NULL){ std::cout<<"TpcRiemannHit::z() No cluster available!!!"<pos().Z(); }