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

XANAMuonCandidate.h

Go to the documentation of this file.
00001 #ifndef XANAMuonCandidate_h
00002 #define XANAMuonCandidate_h
00003 
00010 class XANAMuonTrack;
00011 #include <CLHEP/Vector/LorentzVector.h>
00012 #include <CLHEP/Geometry/Point3D.h>
00013 #include <CLHEP/Matrix/SymMatrix.h>
00014 #include <TRefArray.h>
00015 #include <TRef.h>
00016 #include <TObject.h>
00017 #include <Rtypes.h>
00018 
00019 using namespace CLHEP;
00020 
00021 class XANAMuonCandidate : public TObject {
00022 
00023 public:
00024 
00025   XANAMuonCandidate();
00026    
00028   XANAMuonCandidate(Short_t charge, HepLorentzVector momentum, Float_t pt, 
00029    std::string algoName);
00030   
00031   virtual ~XANAMuonCandidate();
00032 
00033   // data access methods
00034   
00035   // particle interface
00036   HepLorentzVector getMomentumAtVertex() const {return momentum_;}
00037   Float_t getPt() const {return momentum_.perp();}
00038   Float_t getEta() const {return momentum_.rapidity();}
00039   Float_t getPhi() const {return momentum_.phi();}
00040   Short_t getCharge() const {return charge_;}
00041   
00042   // recobj
00043   std::string getAlgoName() const {return algoName_;}
00044   char *getCharAlgoName() const {return algoName_;}
00045   
00046   // set methods
00047   void setMomentumAtVertex(HepLorentzVector momentum) {momentum_=momentum;}
00048   void setCharge(Short_t q) {charge_=q;}
00049   void setAlgoName(std::string algoName) {sprintf(algoName_,algoName.c_str());}
00050 
00051   // copy xonstructor
00052   XANAMuonCandidate(const XANAMuonCandidate &right);
00053   
00054   // operators
00055   const XANAMuonCandidate &operator=(const XANAMuonCandidate &right);
00056   
00057   // comparison methods
00058   bool operator==(const XANAMuonCandidate&) const;
00059   bool operator<(const XANAMuonCandidate&) const;
00060   
00061   // relationships
00062   void setMuonTrack(XANAMuonTrack *track);
00063   XANAMuonTrack *getMuonTrack() const {return (XANAMuonTrack *)(track_.GetObject());}
00064   
00066   Bool_t IsUsed() const {return locked_;}
00067 
00068 protected:
00069 
00071   Short_t charge_; 
00073   HepLorentzVector momentum_; 
00075   TRef track_; 
00077   Int_t algoLen_;
00078   char *algoName_; //[algoLen_]
00079 
00080 
00081 private:
00082 
00083   const static Int_t strLen_;
00084   Bool_t locked_;
00085   void lock() {locked_ = true;}
00086   void unlock() { locked_ = false;}
00087        
00088   ClassDef(XANAMuonCandidate,1)
00089 
00090 };
00091 
00092 #endif
00093 
00094 
00095 
00096 
00097 
00098 
00099 

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