//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Tpc Residual Object // Hit Index marks the position of the reference hit // (any 3D-point) in the appr. TClonesArray // // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Felix Boehmer (original author) // Physik Department E18, TUM // //----------------------------------------------------------- #ifndef TPCRESIDUAL_HH #define TPCRESIDUAL_HH #include "TVector3.h" #include "TVector2.h" #include "TObject.h" #include "TMatrixT.h" #include "AbsResidual.h" class TpcResidual : public AbsResidual { public: TpcResidual(); virtual ~TpcResidual(); void setResXYZ(const TVector3& res) {fRes=res;} void setResUV(const TVector2& res) {fRes2D=res;} void setRefPos(const TVector3& p) {fRefPos=p;} void setHitPos(const TVector3& p) {fHitPos=p;} void setHitCov(const TMatrixT& cov) {fHitCov=cov;} void setTrackCov(const TMatrixT& cov) {fTrackCov=cov;} void setHitIndex(int i) {fHitIndex=i;} void setTrackLength(double len){fTrackLength=len;} void setTrackDir(const TVector3& dir){fTrackDir=dir;} void setCharge(short charge){fCharge=charge;} void setTrackDirLocal(const TVector3& dir){fTrackDirLocal=dir;} void setRefCylPosMom(const TVector3 &pos, const TVector3 &mom){fRefCylPos=pos;fRefCylMom=mom;} void setRefCylPos(const TVector3 &pos); void setRefCylMom(const TVector3 &mom); //void setRefBranchName(const TString& n) {fRefBranchName=n;} TVector3 getRefCylMom() const; TVector3 getRefCylPos() const; TVector3 getRefPos() const {return fRefPos;} TVector3 getHitPos() const {return fHitPos;} TMatrixT getHitCov() const {return fHitCov;} TMatrixT getTrackCov() const {return fTrackCov;} //both will require transformations regarding alignment TVector3 getResXYZ() const {return fRes;} //residual in DETECTOR coordinates TVector2 getResUV() const {return fRes2D;} //residual in PLANE coordinates //TString getRefBranchName() const {return fRefBranchName;} double getTrackLength() const {return fTrackLength;} TVector3 getTrackDir() const {return fTrackDir;} TVector3 getLocalTrackDir() const {return fTrackDirLocal;} int getHitIndex() const {return fHitIndex;} short getCharge() const {return fCharge;} double getPhiDiff() const; private: TVector3 fRefPos; //position on track (reference, projection point) during calculation TVector3 fHitPos; //Refrence hit (for example TpcCluster) position TMatrixT fHitCov; TMatrixT fTrackCov; TVector3 fRes; //residual in detector coordinates TVector2 fRes2D; //residual in detplane coordinates (u,v) //dTString fRefBranchName; //tree name of TCA containing the reference hits TVector3 fTrackDir; TVector3 fTrackDirLocal; int fHitIndex; double fTrackLength; short fCharge; //reduntant if used with residual collections //Makes Alignment and Cdc calibration much easier TVector3 fRefCylPos; //Used to store cdc track point at a cylinder of r=20cm TVector3 fRefCylMom; //momentum at the same place public: ClassDef(TpcResidual,10) }; #endif