File indexing completed on 2025-01-18 10:11:55
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_TGeoTrack
0013 #define ROOT_TGeoTrack
0014
0015 #include "TVirtualGeoTrack.h"
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 class TGeoTrack : public TVirtualGeoTrack {
0027 public:
0028 enum EGeoParticleActions {
0029 kGeoPDefault = BIT(7),
0030 kGeoPOnelevel = BIT(8),
0031 kGeoPAllDaughters = BIT(9),
0032 kGeoPType = BIT(10),
0033 kGeoPDrawn = BIT(11)
0034 };
0035
0036 private:
0037 Int_t fPointsSize;
0038 Int_t fNpoints;
0039 Double_t *fPoints;
0040
0041 protected:
0042 TGeoTrack(const TGeoTrack &) = delete;
0043 TGeoTrack &operator=(const TGeoTrack &) = delete;
0044
0045 public:
0046 TGeoTrack();
0047 TGeoTrack(Int_t id, Int_t pdgcode, TVirtualGeoTrack *parent = nullptr, TObject *particle = nullptr);
0048 ~TGeoTrack() override;
0049
0050 TVirtualGeoTrack *AddDaughter(Int_t id, Int_t pdgcode, TObject *particle = nullptr) override;
0051 Int_t AddDaughter(TVirtualGeoTrack *other) override;
0052 void AddPoint(Double_t x, Double_t y, Double_t z, Double_t t) override;
0053 virtual void
0054 AnimateTrack(Double_t tmin = 0, Double_t tmax = 5E-8, Double_t nframes = 200, Option_t *option = "/*");
0055 void Browse(TBrowser *b) override;
0056 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
0057 void Draw(Option_t *option = "") override;
0058 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
0059 char *GetObjectInfo(Int_t px, Int_t py) const override;
0060 Int_t GetNpoints() const override { return (fNpoints >> 2); }
0061 Int_t GetPoint(Int_t i, Double_t &x, Double_t &y, Double_t &z, Double_t &t) const override;
0062 const Double_t *GetPoint(Int_t i) const override;
0063 Int_t GetPoint(Double_t tof, Double_t *point, Int_t istart = 0) const;
0064 Bool_t IsFolder() const override { return (GetNdaughters() > 0) ? kTRUE : kFALSE; }
0065 void Paint(Option_t *option = "") override;
0066 void PaintCollect(Double_t time, Double_t *box) override;
0067 void PaintCollectTrack(Double_t time, Double_t *box) override;
0068 void PaintMarker(Double_t *point, Option_t *option = "");
0069 void PaintTrack(Option_t *option = "") override;
0070 void Print(Option_t *option = "") const override;
0071 void ResetTrack() override;
0072 Int_t SearchPoint(Double_t time, Int_t istart = 0) const;
0073 void
0074 SetBits(Bool_t is_default = kTRUE, Bool_t is_onelevel = kFALSE, Bool_t is_all = kFALSE, Bool_t is_type = kFALSE);
0075 Int_t Size(Int_t &imin, Int_t &imax);
0076 virtual void Sizeof3D() const;
0077
0078 ClassDefOverride(TGeoTrack, 1)
0079 };
0080
0081 #endif