Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

XANATrack.h

Go to the documentation of this file.
00001 #ifndef XANATrack_h
00002 #define XANATrack_h
00003 
00012 class XANAVertex;
00013 #include <CLHEP/Geometry/Point3D.h>
00014 #include <TObject.h>
00015 #include <TRefArray.h>
00016 #include <TRef.h>
00017 #include <Rtypes.h>
00018 #include <stdio.h>
00019 #include <TClonesArray.h>
00020 #include <vector>
00021 #include <string>
00022 
00023 using namespace HepGeom;
00024 
00025 class XANATrackHit;
00026 class XANATrack : public TObject {
00027 
00028 public:
00029 
00030   XANATrack();
00032   XANATrack(Short_t charge, Float_t chi2OverDof, Short_t numberOfHits, 
00033    Short_t numberOfLostHits, Float_t impactParameter,
00034    Float_t longImpactParameter, Float_t transImpactParameter, HepVector3D
00035    momentumAtVertex, HepPoint3D positionAtFirstPoint, HepVector3D
00036    momentumAtFirstPoint, HepPoint3D positionAtLastPoint, 
00037    HepVector3D momentumAtLastPoint, std::string algoName);
00038   
00039   virtual ~XANATrack();
00040 
00041   // data access methods
00042   Short_t getCharge() const {return charge_;}
00043   Float_t getChi2OverDof() const {return chi2OverDof_;}
00044   Short_t getNumberOfHits() const {return numberOfHits_;}  
00045   Short_t getNumberOfLostHits() const {return numberOfLostHits_;}
00046   Float_t getLongImpactParameter() const {return longImpactParameter_;}
00047   Float_t getTransImpactParameter() const {return transImpactParameter_;}
00048   Float_t getImpactParameter() const {return impactParameter_;}
00049   HepVector3D getMomentumAtVertex() const {return momentumAtVertex_;}
00050   HepVector3D getMomentumAtFirstPoint() const {return momentumAtFirstPoint_;}
00051   HepPoint3D getPositionAtFirstPoint() const {return positionAtFirstPoint_;}
00052   HepVector3D getMomentumAtLastPoint() const {return momentumAtLastPoint_;}
00053   HepPoint3D getPositionAtLastPoint() const {return positionAtLastPoint_;}  
00054   std::string getAlgoName() const {return std::string(algoName_);}
00055   char *getCharAlgoName() const {return algoName_;}
00056   TRefArray *getTrackHits() const { return trackHits_; }  
00057 
00058   // set methods
00059   void setCharge(Short_t charge) {charge_=charge;}
00060   void setChi2OverDof(Float_t chi2OverDof) {chi2OverDof_=chi2OverDof;}
00061   void setNumberOfHits(Short_t numberOfHits) {numberOfHits_=numberOfHits;}  
00062   void setNumberOfLostHits(Short_t numberOfLostHits) {numberOfLostHits_=numberOfLostHits;}
00063   void setLongImpactParameter(Float_t longImpactParameter) {longImpactParameter_=longImpactParameter;}
00064   void setTransImpactParameter(Float_t transImpactParameter) {transImpactParameter_=transImpactParameter;}
00065   void setImpactParameter(Float_t impactParameter) {impactParameter_=impactParameter;}
00066   void setMomentumAtVertex(HepVector3D momentumAtVertex) {momentumAtVertex_=momentumAtVertex;}
00067   void setPositionAtFirstPoint(HepPoint3D positionAtFirstPoint) {positionAtFirstPoint_=positionAtFirstPoint;}
00068   void setMomentumAtFirstPoint(HepVector3D momentumAtFirstPoint) {momentumAtFirstPoint_=momentumAtFirstPoint;}
00069   void setPositionAtLastPoint(HepPoint3D positionAtLastPoint) {positionAtLastPoint_=positionAtLastPoint;}
00070   void setMomentumAtLastPoint(HepVector3D momentumAtLastPoint) {momentumAtLastPoint_=momentumAtLastPoint;}  
00071   void setAlgoName(std::string algoName) {sprintf(algoName_,algoName.c_str());}
00072   
00073   // relationships
00074   XANAVertex *getVertex() const {return (XANAVertex *)(vertex_.GetObject());}
00075   void setVertex(XANAVertex *vtx);
00076   void addHit(XANATrackHit *thit);
00077   void clear(); 
00078 
00080   Bool_t IsUsed() const {return locked_;}
00081 
00082   Bool_t operator==(const XANATrack&) const;
00083   Bool_t operator<(const XANATrack&) const;
00084   
00085   // copy constructor
00086   XANATrack(const XANATrack &right);
00087 
00088 protected:
00089 
00091   Short_t charge_;
00093   Float_t chi2OverDof_;
00098   Short_t numberOfHits_; 
00100   Short_t numberOfLostHits_;
00102   Float_t impactParameter_;
00104   Float_t longImpactParameter_;
00106   Float_t transImpactParameter_;
00108   HepVector3D momentumAtVertex_;
00110   HepPoint3D positionAtFirstPoint_;
00112   HepVector3D momentumAtFirstPoint_;
00114   HepPoint3D positionAtLastPoint_;
00116   HepVector3D momentumAtLastPoint_;
00118   TRef vertex_;
00120   Int_t algoLen_;
00121   char *algoName_; //[algoLen_]
00123   TRefArray *trackHits_; //
00124 
00125 private:
00126 
00127   static const Int_t strLen_;
00128   Bool_t locked_;
00129   void lock() {locked_ = true;}
00130   void unlock() { locked_ = false;}
00131       
00132   ClassDef(XANATrack,1) // track class 
00133 
00134 };
00135 
00136 #endif
00137 
00138 
00139 
00140 
00141 
00142 
00143 

Generated on Tue May 10 10:01:25 2005 for XANADOO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002