PandaRoot
PndSdsDigiPixel.h
Go to the documentation of this file.
1 // --------------------------------------------------------
2 // ---- PndSdsDigiPixel header file ---
3 // ---- Created 19.6.06 by T.Stockmanns ---
4 // --------------------------------------------------------
5 
13 #ifndef PNDSDSDIGIPIXEL_H
14 #define PNDSDSDIGIPIXEL_H
15 
16 #include "PndSdsDigi.h"
17 #include "PndDetectorList.h"
18 
19 #include "TObject.h"
20 #include "TString.h"
21 #include <iostream>
22 #include <vector>
23 
24 class PndSdsDigiPixel : public PndSdsDigi {
25  friend std::ostream &operator<<(std::ostream &out, PndSdsDigiPixel &digi)
26  {
27  out << "PndSdsDigiPixel in: " << digi.GetSensorID() << " FE: " << digi.GetFE() << " Col/Row " << digi.GetPixelColumn() << "/" << digi.GetPixelRow() << " charge "
28  << digi.GetCharge() << " e"
29  << " timestamp " << digi.GetTimeStamp() << ", from Point(s) ";
30  std::vector<Int_t> indices = digi.GetIndices();
31  for (unsigned int i = 0; i < indices.size(); i++) {
32  out << indices[i] << " ";
33  }
34  out << std::endl;
35 
36  return out;
37  }
38 
39  public:
41  PndSdsDigiPixel(std::vector<Int_t> index, Int_t detID, Int_t sensorID, Int_t fe, Int_t col, Int_t row, Double_t charge, Double_t timeStamp);
42 
43  virtual ~PndSdsDigiPixel(){};
44 
45  void Print() { std::cout << *this; }
46 
47  Int_t GetPixelColumn() const { return fCol; }
48  Int_t GetPixelRow() const { return fRow; }
49 
50  void SetPixelColumn(Int_t col) { fCol = col; }
51  void SetPixelRow(Int_t row) { fRow = row; }
52 
54  {
55  if (fSensorID == myDigi.GetSensorID())
56  if (fFE == myDigi.GetFE())
57  if (fCol == myDigi.GetPixelColumn())
58  if (fRow == myDigi.GetPixelRow())
59  return true;
60  return false;
61  }
62 
63  virtual bool equal(FairTimeStamp *data)
64  {
65  PndSdsDigiPixel *myDigi = dynamic_cast<PndSdsDigiPixel *>(data);
66  if (myDigi != nullptr) {
67  if (fSensorID == myDigi->GetSensorID())
68  if (fFE == myDigi->GetFE())
69  if (fCol == myDigi->GetPixelColumn())
70  if (fRow == myDigi->GetPixelRow())
71  return true;
72  }
73  return false;
74  }
75 
76  virtual bool operator<(const PndSdsDigiPixel &myDigi) const
77  {
78  if (fDetID < myDigi.GetDetID())
79  return true;
80  else if (fDetID > myDigi.GetDetID())
81  return false;
82  if (fSensorID < myDigi.GetSensorID())
83  return true;
84  else if (fSensorID > myDigi.GetSensorID())
85  return false;
86  if (fFE < myDigi.GetFE())
87  return true;
88  else if (fFE > myDigi.GetFE())
89  return false;
90  if (fCol < myDigi.GetPixelColumn())
91  return true;
92  else if (fCol > myDigi.GetPixelColumn())
93  return false;
94  if (fRow < myDigi.GetPixelRow())
95  return true;
96  else if (fRow > myDigi.GetPixelRow())
97  return false;
98  return false;
99  }
100 
101  virtual bool operator>(const PndSdsDigiPixel &myDigi) const
102  {
103  if (fDetID > myDigi.GetDetID())
104  return true;
105  else if (fDetID < myDigi.GetDetID())
106  return false;
107  if (fSensorID > myDigi.GetSensorID())
108  return true;
109  else if (fSensorID < myDigi.GetSensorID())
110  return false;
111  if (fFE > myDigi.GetFE())
112  return true;
113  else if (fFE < myDigi.GetFE())
114  return false;
115  if (fCol > myDigi.GetPixelColumn())
116  return true;
117  else if (fCol < myDigi.GetPixelColumn())
118  return false;
119  if (fRow > myDigi.GetPixelRow())
120  return true;
121  else if (fRow < myDigi.GetPixelRow())
122  return false;
123  return false;
124  }
125 
127  {
128  if (this != &pix) {
129  this->PndSdsDigi::operator=(pix);
130  fCol = pix.GetPixelColumn();
131  fRow = pix.GetPixelRow();
132  }
133  return *this;
134  }
135 
136 #ifndef __CINT__ // for BOOST serialization
137  template <class Archive>
138  void serialize(Archive &ar, const unsigned int version)
139  {
140  boost::serialization::void_cast_register<PndSdsDigiPixel, PndSdsDigi>();
141  ar &boost::serialization::base_object<PndSdsDigi>(*this);
142  ar &fCol;
143  ar &fRow;
144  }
145 #endif // for BOOST serialization
146 
147  private:
148 #ifndef __CINT__ // for BOOST serialization
150 
151 #endif // for BOOST serialization
152  Int_t fCol, fRow;
153 
154  ClassDef(PndSdsDigiPixel, 8);
155 };
156 
157 #endif
Int_t GetPixelColumn() const
Base class for Digi information.
Definition: PndSdsDigi.h:31
Int_t fSensorID
Definition: PndSdsDigi.h:120
PndSdsDigiPixel & operator=(const PndSdsDigiPixel &pix)
void serialize(Archive &ar, const unsigned int version)
virtual bool equal(FairTimeStamp *data)
std::vector< Int_t > GetIndices() const
Definition: PndSdsDigi.h:62
Double_t GetCharge() const
Definition: PndSdsDigi.h:60
unsigned int i
Definition: P4_F32vec4.h:21
Int_t fDetID
Definition: PndSdsDigi.h:119
virtual bool operator>(const PndSdsDigiPixel &myDigi) const
virtual bool operator<(const PndSdsDigiPixel &myDigi) const
bool operator==(PndSdsDigiPixel &myDigi)
Int_t GetPixelRow() const
Int_t GetDetID() const
Definition: PndSdsDigi.h:61
friend std::ostream & operator<<(std::ostream &out, PndSdsDigiPixel &digi)
Int_t fFE
Definition: PndSdsDigi.h:121
void SetPixelRow(Int_t row)
void SetPixelColumn(Int_t col)
Data class to store the digi output of a pixel module.
Int_t GetSensorID() const
Definition: PndSdsDigi.h:59
friend class boost::serialization::access
virtual ~PndSdsDigiPixel()
Int_t GetFE() const
Definition: PndSdsDigi.h:57