00001
00002
00003
00004
00005
00006
00007
00009
00010 #ifndef GEOSWIMPARTICLE_H
00011 #define GEOSWIMPARTICLE_H
00012
00013 #include "TVector3.h"
00014 #include "TParticle.h"
00015 #include "Conventions/Munits.h"
00016
00017 class GeoSwimParticle {
00018
00019 public:
00020 GeoSwimParticle(Int_t pdg, TParticle* particle);
00021 GeoSwimParticle(const TVector3 position,
00022 const TVector3 momentum,
00023 Double_t charge = -1.0,
00024 Int_t pdg = 13,
00025 Double_t mass = 0.105658357*Munits::GeV);
00026 GeoSwimParticle();
00027 virtual ~GeoSwimParticle();
00028
00029
00030 const TVector3 GetInitPosition() const;
00031 const TVector3 GetPosition() const;
00032 const TVector3 GetMomentum() const;
00033 TVector3 GetDirection() const;
00034 Double_t GetMomentumModulus() const;
00035 Double_t GetEnergy() const;
00036 Double_t GetMass() const;
00037 Double_t GetCharge() const;
00038 Int_t GetID() const;
00039 Double_t GetS() const;
00040 Double_t GetRange() const;
00041 TParticle* GetParticle() const;
00042
00043 void SetPosition(const TVector3 position);
00044 void SetMomentum(const TVector3 momentum);
00045 void SetMass(Double_t mass);
00046 void SetCharge(Double_t charge);
00047 void SetID(Int_t pdg);
00048
00049 void SetS(double s);
00050 void SetRange(double range);
00051
00052 private:
00053
00054 TVector3 fInitPosition;
00055 TVector3 fPosition;
00056 TVector3 fMomentum;
00057 Double_t fMass;
00058 Double_t fCharge;
00059 Int_t fPDG;
00060 Double_t fS;
00061 Double_t fRange;
00062 TParticle* fParticle;
00063 ClassDef(GeoSwimParticle,0)
00064 };
00065 #endif //GEOSWIMPARTICLE_H