/afs/hep.man.ac.uk/u/markowen/ATLAS/SFrameProof/2011EPS/manTree/manTree/MTrack.h

00001 #ifndef _MANTREE_MTRACK_H__
00002 #define _MANTREE_MTRACK_H__
00003 
00004 #include <iosfwd>
00005 #include <string>
00006 
00007 #include "manTree/MParticle.h"
00008 
00009 #ifdef _ATHENA_CLASSES__
00010 //Forward declare the athena classes
00011 class P4IPtCotThPhiMBase;
00012 namespace Rec {
00013 class TrackParticle;
00014 }
00015 namespace Trk {
00016 class Track;
00017 }
00018 #endif
00019 
00020 namespace manchester {
00021 
00027 class MTrack : public MParticle {
00028 public:
00030     MTrack();
00031 
00033     MTrack(Double_t px, Double_t py, Double_t pz, Double_t e);
00034 
00036     MTrack(const MTrack& trk);
00037 
00038 #ifdef _ATHENA_CLASSES__
00040     MTrack(const Rec::TrackParticle& trk);
00041 
00043     MTrack(const P4IPtCotThPhiMBase& vec);
00044 
00046     void SetPerigeeParams(const Rec::TrackParticle& trk);
00047 #endif
00048 
00050     virtual ~MTrack();
00051 
00052     Bool_t HasMeasuredPerigee() const;
00053 
00054     
00055     Float_t D0() const;
00056     Float_t Theta() const;
00057     Float_t Z0() const;
00058 
00059     Float_t D0AtVertex() const;
00060     Float_t D0CovAtVertex() const;
00061     Float_t D0SigAtVertex() const;
00062     Float_t ThetaAtVertex() const;
00063     Float_t Z0AtVertex() const;
00064 
00065     Float_t D0AtBeamSpot() const;
00066     Float_t ThetaAtBeamSpot() const;
00067     Float_t Z0AtBeamSpot() const;
00068 
00069     void SetD0(Double_t d0);
00070     void SetTheta(Double_t theta);
00071     void SetZ0(Double_t z0);
00072 
00073     void SetD0CovAtVertex(const float d0cov);
00074     void SetParamsAtVertex(const float d0, const float theta, const float phi, const float z0);
00075 
00076     void SetParamsAtBeamSpot(const float d0, const float theta, const float phi, const float z0);
00077 
00078     virtual std::string Type() const;
00079 
00080     virtual std::ostream& PrintContent(std::ostream& os) const;
00081 
00082     MTrack& operator=(const MTrack& p);
00083 
00084 protected:
00086     virtual void Reset();
00087 
00088 private:
00089     Bool_t m_hasMeasuredPerigee;
00090     Float_t m_d0;
00091     Float_t m_theta;
00092     Float_t m_z0;
00093 
00094     Float_t m_d0_atprimvertex;
00095     Float_t m_d0cov_atprimvertex;
00096     Float_t m_theta_atprimvertex;
00097     Float_t m_phi_atprimvertex;
00098     Float_t m_z0_atprimvertex;
00099 
00100     Float_t m_d0_atbeamspot;
00101     Float_t m_theta_atbeamspot;
00102     Float_t m_phi_atbeamspot;
00103     Float_t m_z0_atbeamspot;
00104 
00105     ClassDef(MTrack, 5)
00106 
00107 };//class MTrack
00108 
00109 }//namespace manchester
00110 
00111 #endif

Generated on Thu Jun 30 11:40:04 2011 for manTreeSFrame by  doxygen 1.4.7