PandaRoot
PndMdtDigi.h
Go to the documentation of this file.
1 #ifndef PNDMDTDIGI_HH
2 #define PNDMDTDIGI_HH
3 
4 //#include "FairMultiLinkedData.h"
5 #include "FairTimeStamp.h"
6 #include "TVector3.h"
7 #include <vector>
8 #include "PndMdtID.h"
9 
10 class PndMdtDigi : public FairTimeStamp {
11 
12  public:
13  PndMdtDigi();
14 
15  PndMdtDigi(Int_t detID, TVector3 &pos, std::vector<Int_t> pointList);
16  PndMdtDigi(Int_t detID, TVector3 &pos, Int_t evtNo);
17 
18  virtual ~PndMdtDigi();
19 
21  virtual void Print(const Option_t *opt = nullptr) const
22  {
23  std::cout << " opt = " << opt << std::endl;
24  return;
25  }
26 
27  bool operator<(const PndMdtDigi &) const;
28 
32  // void Clear(); // not implemented
33 
35  void SetPosition(const TVector3 &pos) { fLabPos = pos; };
36 
37  Double_t X() const { return fLabPos.X(); }
38  Double_t Y() const { return fLabPos.Y(); }
39  Double_t Z() const { return fLabPos.Z(); }
40  Int_t GetEvtNumber() const { return fEvtNo; }
41  TVector3 GetLabPosition() const { return fLabPos; }
42  Int_t GetDetectorID() const { return fDetectorID; }
43  Short_t GetModule() const { return PndMdtID::Module(GetDetectorID()); }
44  Short_t GetSector() const { return PndMdtID::Sector(GetDetectorID()); }
45  Short_t GetLayer() const { return PndMdtID::Layer(GetDetectorID()); }
46  Short_t GetLayerID() const { return PndMdtID::Layer(GetDetectorID()); }
47  Short_t GetBox() const { return PndMdtID::Box(GetDetectorID()); }
48  Short_t GetWire() const { return PndMdtID::Wire(GetDetectorID()); }
49  Short_t GetStrip() const { return PndMdtID::Strip(GetDetectorID()); }
50  Bool_t isWire() const { return PndMdtID::isWire(GetDetectorID()); }
51 
52  Short_t GetNPoints() const { return fPointList.size(); }
53  const std::vector<Int_t> &GetPointList() { return fPointList; }
54 
55  // time-based simulation support
56  PndMdtDigi(const PndMdtDigi &);
57 
58  private:
59  Int_t fDetectorID; // Detectior ID
60  TVector3 fLabPos; // Position in the la frame
61  std::vector<Int_t> fPointList; // List of MdtPoint indices
62  Double_t fSignalWidth;
63  Int_t fEvtNo;
64 
65  ClassDef(PndMdtDigi, 2);
66 };
67 
68 #endif
static Short_t Box(Int_t detID)
Definition: PndMdtID.h:19
Short_t GetLayer() const
Definition: PndMdtDigi.h:45
static Bool_t isWire(Int_t detID)
Definition: PndMdtID.h:22
static Short_t Module(Int_t detID)
Definition: PndMdtID.h:16
virtual ~PndMdtDigi()
static Short_t Layer(Int_t detID)
Definition: PndMdtID.h:18
void SetPosition(const TVector3 &pos)
Definition: PndMdtDigi.h:35
Bool_t isWire() const
Definition: PndMdtDigi.h:50
Short_t GetWire() const
Definition: PndMdtDigi.h:48
Double_t X() const
Definition: PndMdtDigi.h:37
Short_t GetModule() const
Definition: PndMdtDigi.h:43
Int_t GetDetectorID() const
Definition: PndMdtDigi.h:42
Int_t GetEvtNumber() const
Definition: PndMdtDigi.h:40
static Short_t Sector(Int_t detID)
Definition: PndMdtID.h:17
Short_t GetLayerID() const
Definition: PndMdtDigi.h:46
TVector3 GetLabPosition() const
Definition: PndMdtDigi.h:41
Short_t GetNPoints() const
Definition: PndMdtDigi.h:52
Short_t GetBox() const
Definition: PndMdtDigi.h:47
static Short_t Strip(Int_t detID)
Definition: PndMdtID.h:21
Double_t Y() const
Definition: PndMdtDigi.h:38
static Short_t Wire(Int_t detID)
Definition: PndMdtID.h:20
const std::vector< Int_t > & GetPointList()
Definition: PndMdtDigi.h:53
virtual void Print(const Option_t *opt=nullptr) const
Definition: PndMdtDigi.h:21
bool operator<(const PndMdtDigi &) const
Double_t Z() const
Definition: PndMdtDigi.h:39
Short_t GetSector() const
Definition: PndMdtDigi.h:44
Short_t GetStrip() const
Definition: PndMdtDigi.h:49