CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
BesGeoTrack.h
Go to the documentation of this file.
1
2#ifndef BESGEOTRACK_H
3#define BESGEOTRACK_H
4
5#include <vector>
6#include "TPaveText.h"
7#include "TGeoTrack.h"
8
9#include "BesMarker2D.h"
10#include "BesPaveText.h"
11
12class BesGeoTrack : public TGeoTrack {
13
14 public:
15
17 BesGeoTrack(Int_t id, Int_t pdgcode, TVirtualGeoTrack *parent=0, TObject *particle=0);
18 virtual ~BesGeoTrack();
19
20 virtual void Init();
21 virtual void AddInfo(TString info) { fInfoCon.push_back(info); }
22 virtual void CloseInfo();
23 virtual void SetCharge(Int_t charge);
24 virtual void SetTrackType(Int_t type) { fType = type; }
25
26 virtual void AddHit(TObject* obj) { fHits.Add(obj); }
27 virtual void Add3DHit(TObject* obj) { f3DHits.Add(obj); } //Long Peixun's update: for 3D track display
28 virtual void AddCluster(TObject* obj) { fClusters.Add(obj); } //Long Peixun's update: for CGEM clusters
29 virtual void SetTrackID(Int_t id) { fTrkID = id; } //Long Peixun's update: Set and Get TrackID
30 virtual Int_t GetTrackID() const { return fTrkID; } //...
31
32 virtual void AddPoint(Double_t x, Double_t y, Double_t z, Double_t t);
33 virtual void SetMarker(Double_t x, Double_t y, Double_t z);
34 virtual void Construct3DLine(); //Long Peixun's update: construct but not draw
35 //BesMarker2D *GetMarker() { return fMarker; }
36
37 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
38 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
39 virtual void Draw(Option_t *option = "");
40 virtual void Paint(Option_t *option = "");
41 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
42
43 protected:
44
45 TObjArray fHits;
46 TObjArray f3DHits; //Long Peixun's update: for 3D track display
47 TObjArray fClusters; //Long Peixun's update: for CGEM clusters
48 Int_t fTrkID; //Long Peixun's update: record track ID
49
50 std::vector<TString> fInfoCon;
51 Int_t fCharge;
52 Int_t fType; // 1: Mdc, 2: Tof, 3: Emc, 4: Muc, 5: Ext
53 //Long Peixun's update: 6: cluster in CGEM view, 7: cluster in CGEM UF view
54 // 8: MC truth track
55 // 9: ideal tracking by Wang Liangliang in Nov, 2021
56
58 TPolyLine3D *fPolyLine3D;
60
61 ClassDef(BesGeoTrack,1) // BesGeoTrack
62};
63
64#endif
65
66
Int_t fCharge
Definition: BesGeoTrack.h:51
TObjArray fHits
Definition: BesGeoTrack.h:45
virtual void CloseInfo()
Definition: BesGeoTrack.cxx:56
Int_t fType
Definition: BesGeoTrack.h:52
std::vector< TString > fInfoCon
Definition: BesGeoTrack.h:50
virtual void SetTrackType(Int_t type)
Definition: BesGeoTrack.h:24
virtual void AddPoint(Double_t x, Double_t y, Double_t z, Double_t t)
Definition: BesGeoTrack.cxx:65
virtual void AddCluster(TObject *obj)
Definition: BesGeoTrack.h:28
virtual char * GetObjectInfo(Int_t px, Int_t py) const
virtual Int_t GetTrackID() const
Definition: BesGeoTrack.h:30
TObjArray f3DHits
Definition: BesGeoTrack.h:46
virtual void SetTrackID(Int_t id)
Definition: BesGeoTrack.h:29
virtual void Construct3DLine()
virtual void SetMarker(Double_t x, Double_t y, Double_t z)
Definition: BesGeoTrack.cxx:70
TObjArray fClusters
Definition: BesGeoTrack.h:47
virtual void Paint(Option_t *option="")
BesMarker2D * fMarker
Definition: BesGeoTrack.h:59
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
TPolyLine3D * fPolyLine3D
Definition: BesGeoTrack.h:58
virtual void Init()
Definition: BesGeoTrack.cxx:45
virtual void AddInfo(TString info)
Definition: BesGeoTrack.h:21
BesPaveText * fTip
Definition: BesGeoTrack.h:57
virtual ~BesGeoTrack()
Definition: BesGeoTrack.cxx:36
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Definition: BesGeoTrack.cxx:98
Int_t fTrkID
Definition: BesGeoTrack.h:48
virtual void AddHit(TObject *obj)
Definition: BesGeoTrack.h:26
virtual void Add3DHit(TObject *obj)
Definition: BesGeoTrack.h:27
virtual void SetCharge(Int_t charge)
int t()
Definition: t.c:1
c1_1 Draw()