#ifndef BRAT_BrDetectorTrack #define BRAT_BrDetectorTrack // // $Id: BrDetectorTrack.h,v 1.1.1.1 2001/06/21 14:55:02 hagel Exp $ // // Revision 1.9 2000/03/24 14:19:12 pchristi // Added Quality to BrDetectorTrack // ////////////////////////////////////////////////////////////////////////// // // // BrDetectorTrack // // // // BRAHMS Detector Track class // // // // Author : Kris Hagel (hagel@comp.tamu.edu) // // Created : 9-Mar-1998 // // Version : 1.0 // // Changed : November 1998 // // // // // // // // Description: // // A self contained description of local tracks. It is presently // // not possible to see what tracking station the track belongs to. // // It is assumed that a container , or data table with a detector // // name is responsible for tracks. Also if the are copied to a final // // track it is clear where a given track belongs. // // The pointers to the local tracks and their ghost are not kept. It // // is the assumption that this will be done usding associate classes // // This has the advantage that sizes are kept down until // ////////////////////////////////////////////////////////////////////////// // Root Classes #ifndef ROOT_TObject #include "TObject.h" #endif // Brahms Classes // #ifndef BRAT_BrVector3D #include "BrVector3D.h" #endif #ifndef BRAT_BrMath #include "BrMath.h" #endif #ifndef BRAT_BrLine3D #include "BrLine3D.h" #endif #define BrDetectortrackObsolete class BrLocalTrack; class BrDetectorTrack: public TObject { public: BrDetectorTrack(); virtual ~BrDetectorTrack() { }; const BrVector3D GetPos() const {return fPos;} const BrVector3D GetAlpha() const {return fAlpha;} Int_t GetFlag() const {return fFlag;} Int_t GetID() const {return fId;} Int_t GetGroupID() const {return fGroupId;} Double_t GetQuality(void) const { return fQuality; } BrLine3D GetTrackLine(); BrLocalTrack* GetLocalTrack() const {return fLocalTrack;} void SetPos(const Float_t* pos); void SetAlpha(const Float_t* alpha); void SetPos(const BrVector3D& pos) { fPos = pos;}; void SetAlpha(const BrVector3D& alpha) { fAlpha = alpha;}; void SetFlag(Int_t i) {fFlag = i;} void SetID(Int_t i) {fId = i;} void SetGroupID(Int_t i) {fGroupId = i;} void SetQuality(Double_t quality) { fQuality = quality; } void SetLocalTrack(BrLocalTrack* p) {fLocalTrack = p;} Float_t RelativeOverlap(const BrDetectorTrack *dt_p, Float_t zl, Float_t r = 0.2); private: Int_t fId; // Unique Id (for a given Data Table) Int_t fGroupId; // Id for sets of detector tracks. BrVector3D fPos; // Position of track - in local detector coordinates BrVector3D fAlpha; // Direction vector of track - in local detector coordinates Int_t fFlag; // Status, quality flag. Double_t fQuality; // Quality indicator (could be chi**2 of track) Int_t fLocalTrackId; //! Id for local track origin of this tracks BrLocalTrack* fLocalTrack; //! pointer to localtrack public: friend ostream& operator<< (ostream& os, BrDetectorTrack* track_p); public: ClassDef(BrDetectorTrack,1) // BRAHMS Detector Track Class }; #endif // $Log: BrDetectorTrack.h,v $ // Revision 1.1.1.1 2001/06/21 14:55:02 hagel // Initial revision of brat2 // // Revision 1.13 2001/04/18 20:16:59 videbaek // moved cvs log // // Revision 1.12 2000/05/09 14:21:20 pchristi // Added GetQuality // // Revision 1.11 2000/05/05 09:50:29 bjornhs // Added RelativeOverlap in BrLocalTrack // // Revision 1.10 2000/04/28 21:18:24 videbaek // Updates to BrLocalTrack. Added fit method; Status is changed. Uses // MarkAsBad, IsBad instead of fixed 999. // Cleanup of BrModuleMatchtrack. Added histohgrams. // // Revision 1.8 1999/04/02 15:29:56 hagel // Zero elements in constructor BrDetectorTrack.h // // Revision 1.7 1999/03/07 00:00:46 hagel // // Revision 1.6 1999/01/21 23:23:27 hagel // 1. Changed convention for checking includes. Current convention is: // BRAT_Br...... eg BRAT_BrModule ala ROOT. // 2. Added CVS logs to .h files that didn't have them. // 3. Moved checking of include definition to first line for easier reading // 4. Put checks before all includes in the include files as per BRAT specifications // 5. Added BrGeantHeader to Geant Makefile // 6. All changes have been checked to compile on NT ala Cygnus // // Revision 1.5 1998/12/21 20:23:11 videbaek // Included MRS tracking, and track combine module as part of a more // generalized set of Methods and classes. // // Revision 1.4 1998/12/04 21:35:35 videbaek // Started updating structures for tracking. Using BrVector3D // in many places where double* or float* was used before. // Fix type SHLIB->$(SHLIB) .. // //