PandaRoot
PndSdsHybridHitProducer.h
Go to the documentation of this file.
1 
6 #ifndef PNDSDSHYBRIDHITPRODUCER_H
7 #define PNDSDSHYBRIDHITPRODUCER_H
8 
9 #include "PndSdsTask.h"
10 #include "PndSdsPixelDigiPar.h"
11 #include "PndSdsMCPoint.h"
12 #include "PndSdsPixel.h"
13 #include "PndSdsDigiPixel.h"
14 #include "FairGeoVector.h"
15 #include "FairGeoTransform.h"
16 #include "FairMCEventHeader.h"
17 #include "TVector3.h"
18 #include "TRandom.h"
19 #include "TGeoMatrix.h"
20 #include "TGeoBBox.h"
21 #include "PndGeoHandling.h"
22 #include "PndSdsChargeConversion.h"
23 #include "PndSdsTotDigiPar.h"
24 #include "PndSdsFE.h"
25 
27 
28 #include <string>
29 #include <vector>
30 
31 class TClonesArray;
32 
34  public:
37 
41  flx(other.flx), fly(other.fly), fthreshold(other.fthreshold), fnoise(other.fnoise), fqsigma(other.fqsigma), fcols(other.fcols), frows(other.frows),
43  fPixelList(other.fPixelList)
44  {
45  }
47  PndSdsHybridHitProducer(const char *name);
48 
49  PndSdsHybridHitProducer(Double_t lx, Double_t ly, Double_t threshold, Double_t noise);
50 
52  virtual ~PndSdsHybridHitProducer();
53 
55  virtual void SetParContainers();
56  virtual InitStatus Init();
57  virtual InitStatus ReInit();
58 
60  virtual void Exec(Option_t *opt);
61 
62  virtual void FinishEvent();
63  virtual void FinishTask();
64 
65  void RunTimeBased() { fTimeOrderedDigi = kTRUE; }
66 
68  {
69  if (this != &other) // protect against invalid self-assignment
70  {
72  fPointArray = other.fPointArray;
73  fPixelArray = other.fPixelArray;
75  fDigiPar = other.fDigiPar;
76  fTotDigiPar = other.fTotDigiPar;
79  fDataBuffer = other.fDataBuffer;
80  flx = other.flx;
81  fly = other.fly;
82  fthreshold = other.fthreshold;
83  fnoise = other.fnoise;
84  fqsigma = other.fqsigma;
85  fcols = other.fcols;
86  frows = other.frows;
87  fPixelHits = other.fPixelHits;
88  fGeoH = other.fGeoH;
89  fEventNr = other.fEventNr;
92  fPixelList = other.fPixelList;
93  }
94  return *this;
95  };
96 
97  protected:
98  Bool_t fPersistance; // switch to turn on/off storing the arrays to a file
99  Bool_t fDigiPixelMCInfo; // switch to turn on/off storing additional MC Info of Digis
100 
102  TClonesArray *fPointArray;
103 
105  TClonesArray *fPixelArray;
106 
108  TClonesArray *fPixelMCArray;
109 
113  FairMCEventHeader *fMCEventHeader;
114 
116  // fDetectorType fMCPointType;
117 
118  void Register();
119  void Reset();
120  void ProduceHits();
121 
122  TGeoHMatrix GetTransformation(Int_t sensorID);
123  void GetLocalHitPoints(PndSdsMCPoint *myPoint, FairGeoVector &myHitIn, FairGeoVector &myHitOut);
124  // PndSdsHit CalcGlobalPoint(std::vector<PndSdsPixel> pixels);
125  TVector3 GetSensorDimensions(Int_t sensorID);
126 
127  void AddHit(PndSdsPixel &hit, int mcIndex);
128  void AddHits(std::vector<PndSdsPixel> *hitList, int mcIndex);
129 
130  // PndSdsFE* fFEModel;
131 
132  Double_t flx; // pixel width in x;
133  Double_t fly; // pixel width in y;
134  Double_t fthreshold; // pixel threshold in electrons
135  Double_t fnoise; // pixel noise in electrons
136  Double_t fqsigma; // gaussian charge cloud spread
137  Int_t fcols; // pixel columns in one FE
138  Int_t frows; // pixel rows in one FE
139  Int_t fPixelHits;
140  // FairMCEventHeader* fMcEventHeader;
142  Int_t fEventNr;
145 
146  std::vector<PndSdsPixel> fPixelList;
147 
149 };
150 
151 #endif
FairMCEventHeader * fMCEventHeader
virtual void FinishTask()
PndSdsChargeConversion * fChargeConverter
virtual void SetParContainers()
Charge Digitization Parameter Class for SDS.
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
virtual ~PndSdsHybridHitProducer()
virtual void FinishEvent()
PndSdsHybridHitProducer & operator=(PndSdsHybridHitProducer &other)
TVector3 GetSensorDimensions(Int_t sensorID)
Class to access the naming information of the MVD.
PndSdsHybridHitProducer(PndSdsHybridHitProducer &other)
void AddHits(std::vector< PndSdsPixel > *hitList, int mcIndex)
virtual InitStatus Init()
void GetLocalHitPoints(PndSdsMCPoint *myPoint, FairGeoVector &myHitIn, FairGeoVector &myHitOut)
std::vector< PndSdsPixel > fPixelList
virtual void Exec(Option_t *opt)
void AddHit(PndSdsPixel &hit, int mcIndex)
PndSdsDigiPixelWriteoutBuffer * fDataBuffer
virtual InitStatus ReInit()
ClassDef(PndSdsHybridHitProducer, 8)
TGeoHMatrix GetTransformation(Int_t sensorID)
Digitization Parameter Class for SDS-Pixel part.