FairRoot/PandaRoot
PndSdsDigi.h
Go to the documentation of this file.
1 // --------------------------------------------------------
2 // ---- PndSdsDigi header file ---
3 // ---- Created 19.10.07 by T.Stockmanns ---
4 // --------------------------------------------------------
5 
14 #ifndef PNDSDSDIGI_H
15 #define PNDSDSDIGI_H
16 
17 #include "FairTimeStamp.h"
18 
19 #include "TObject.h"
20 #include "TString.h"
21 #include "PndDetectorList.h"
22 #include <iostream>
23 #include <vector>
24 
25 #ifndef __CINT__ // for BOOST serialization
26  #include <boost/serialization/void_cast.hpp>
27 #endif // for BOOST serialization
28 
29 class PndSdsDigi : public FairTimeStamp
30  {
32  out << "PndSds Digi in sensor: " << digi.GetSensorID() << " FE: "
33  << digi.GetFE() << " "
34  << " charge: " << digi.GetCharge() << " e"
35  << " timestamp: "<<digi.GetTimeStamp()
36  << ", from Point(s): ";
37  std::vector<Int_t> indices = digi.GetIndices();
38  for (unsigned int i = 0; i < indices.size(); i++){
39  std::cout << digi.GetIndex(i) << " " << std::endl;
40  }
41  return out;
42  }
43 
44  public:
45  PndSdsDigi();
46  PndSdsDigi(std::vector<Int_t> index, Int_t detID, Int_t sensorID, Int_t fe, Double_t charge, Double_t timestamp = -1);
47  PndSdsDigi(Int_t index, Int_t detID, Int_t fSensorID, Int_t fe, Double_t charge, Double_t timestamp = -1);
55  virtual ~PndSdsDigi(){};
56 
57  Int_t GetFE() const { return fFE;}
58  //TString GetDetName() const { return fDetName; }
59  Int_t GetSensorID() const { return fSensorID; }
60  Double_t GetCharge() const { return fCharge; }
61  Int_t GetDetID() const { return fDetID;}
62  std::vector<Int_t> GetIndices() const { return fIndex;}
63  Int_t GetIndex(int i = 0) const{ return fIndex[i];}
64  Int_t GetNIndices() const { return fIndex.size();}
65 
66  virtual void AddIndex(int index)
67  {
68  fIndex.push_back(index);
69  AddLink(FairLink(fDetID, index));
70  }
71 
72  virtual void AddIndex(std::vector<Int_t> index)
73  {
74  fIndex = index;
75  AddLinks(FairMultiLinkedData(fDetID, index));
76  }
77  void SetCharge(double charge){fCharge = charge;}
78  void AddCharge(double charge){fCharge += charge;}
79 
80  virtual bool operator<(const PndSdsDigi& myDigi) const{
81  if (fDetID < myDigi.GetDetID()) return true; else if(fDetID > myDigi.GetDetID()) return false;
82  if (fSensorID < myDigi.GetSensorID()) return true; else if (fSensorID > myDigi.GetSensorID()) return false;
83  if (fFE < myDigi.GetFE()) return true; else if (fFE > myDigi.GetFE()) return false;
84  return false;
85  }
86 
87  virtual void Print() {
88  std::cout << *this;
89  }
90 
91  #ifndef __CINT__ // for BOOST serialization
92  template<class Archive>
93  void serialize(Archive & ar, const unsigned int version)
94  {
95  boost::serialization::void_cast_register<PndSdsDigi, FairTimeStamp>();
96 
97  ar & boost::serialization::base_object<FairTimeStamp>(*this);
98  ar & fDetID;
99  ar & fSensorID;
100  ar & fFE;
101  ar & fCharge;
102  }
103  #endif // for BOOST serialization
104 
105  protected:
106  #ifndef __CINT__ // for BOOST serialization
108 
109  #endif // for BOOST serialization
110  std::vector<Int_t> fIndex; // indice of mc points contributing to this digi
111  Int_t fDetID; // branch ID of mc point array
112  Int_t fSensorID; // Geometry ID for sensor volume
113  Int_t fFE; // Frontend number
114  Double_t fCharge; // collected charge
115 
116  ClassDef(PndSdsDigi,4);
117  };
118 
119 #endif
friend std::ostream & operator<<(std::ostream &out, PndSdsDigi &digi)
Definition: PndSdsDigi.h:31
TClonesArray * digi
Int_t GetSensorID() const
Definition: PndSdsDigi.h:59
virtual void AddIndex(int index)
Definition: PndSdsDigi.h:66
Base class for Digi information.
Definition: PndSdsDigi.h:29
Int_t fSensorID
Definition: PndSdsDigi.h:112
Int_t i
Definition: run_full.C:25
friend class boost::serialization::access
Definition: PndSdsDigi.h:107
virtual void AddIndex(std::vector< Int_t > index)
Definition: PndSdsDigi.h:72
void AddCharge(double charge)
Definition: PndSdsDigi.h:78
Int_t GetIndex(int i=0) const
Definition: PndSdsDigi.h:63
Double_t GetCharge() const
Definition: PndSdsDigi.h:60
virtual bool operator<(const PndSdsDigi &myDigi) const
Definition: PndSdsDigi.h:80
Int_t GetFE() const
Definition: PndSdsDigi.h:57
virtual void Print()
Definition: PndSdsDigi.h:87
Int_t fDetID
Definition: PndSdsDigi.h:111
ClassDef(PndSdsDigi, 4)
Double_t
std::vector< Int_t > fIndex
Definition: PndSdsDigi.h:110
void SetCharge(double charge)
Definition: PndSdsDigi.h:77
TFile * out
Definition: reco_muo.C:20
Int_t fFE
Definition: PndSdsDigi.h:113
std::vector< Int_t > GetIndices() const
Definition: PndSdsDigi.h:62
Int_t GetDetID() const
Definition: PndSdsDigi.h:61
int fe
Definition: anaLmdDigi.C:67
Int_t GetNIndices() const
Definition: PndSdsDigi.h:64
Double_t fCharge
Definition: PndSdsDigi.h:114
void serialize(Archive &ar, const unsigned int version)
Definition: PndSdsDigi.h:93
virtual ~PndSdsDigi()
Definition: PndSdsDigi.h:55