FairRoot/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 {
35  public:
36 
39 
41  PndSdsTask(),
43  fPointArray(other.fPointArray),
44  fPixelArray(other.fPixelArray),
46  fDigiPar(other.fDigiPar),
47  fTotDigiPar(other.fTotDigiPar),
50  fDataBuffer(other.fDataBuffer),
51  flx(other.flx),
52  fly(other.fly),
53  fthreshold(other.fthreshold),
54  fnoise(other.fnoise),
55  fqsigma(other.fqsigma),
56  fcols(other.fcols),
57  frows(other.frows),
58  fPixelHits(other.fPixelHits),
59  fGeoH(other.fGeoH),
60  fEventNr(other.fEventNr),
63  fPixelList(other.fPixelList)
64  {}
66  PndSdsHybridHitProducer(const char* name);
67 
69 
71  virtual ~PndSdsHybridHitProducer();
72 
73 
75  virtual void SetParContainers();
76  virtual InitStatus Init();
77  virtual InitStatus ReInit();
78 
80  virtual void Exec(Option_t* opt);
81 
82  virtual void FinishEvent();
83  virtual void FinishTask();
84 
85 
86  void RunTimeBased(){fTimeOrderedDigi = kTRUE;}
87 
89  {
90  if(this != &other) // protect against invalid self-assignment
91  {
96  fDigiPar=other.fDigiPar;
100  fDataBuffer=other.fDataBuffer;
101  flx=other.flx;
102  fly=other.fly;
103  fthreshold=other.fthreshold;
104  fnoise=other.fnoise;
105  fqsigma=other.fqsigma;
106  fcols=other.fcols;
107  frows=other.frows;
108  fPixelHits=other.fPixelHits;
109  fGeoH=other.fGeoH;
110  fEventNr=other.fEventNr;
113  fPixelList=other.fPixelList;
114  }
115  return *this;
116  };
117 
118 protected:
119 
120  Bool_t fPersistance; // switch to turn on/off storing the arrays to a file
121  Bool_t fDigiPixelMCInfo; // switch to turn on/off storing additional MC Info of Digis
122 
123 
125  TClonesArray* fPointArray;
126 
128  TClonesArray* fPixelArray;
129 
131  TClonesArray* fPixelMCArray;
132 
133 
137  FairMCEventHeader* fMCEventHeader;
138 
140  // fDetectorType fMCPointType;
141 
142  void Register();
143  void Reset();
144  void ProduceHits();
145 
146  TGeoHMatrix GetTransformation (Int_t sensorID);
147  void GetLocalHitPoints(PndSdsMCPoint* myPoint, FairGeoVector& myHitIn, FairGeoVector& myHitOut);
148 // PndSdsHit CalcGlobalPoint(std::vector<PndSdsPixel> pixels);
149  TVector3 GetSensorDimensions(Int_t sensorID);
150 
151  void AddHit(PndSdsPixel& hit, int mcIndex);
152  void AddHits(std::vector<PndSdsPixel>* hitList, int mcIndex);
153 
154  //PndSdsFE* fFEModel;
155 
156  Double_t flx; //pixel width in x;
157  Double_t fly; //pixel width in y;
158  Double_t fthreshold; //pixel threshold in electrons
159  Double_t fnoise; //pixel noise in electrons
160  Double_t fqsigma; //gaussian charge cloud spread
161  Int_t fcols; //pixel columns in one FE
162  Int_t frows; //pixel rows in one FE
163  Int_t fPixelHits;
164 // FairMCEventHeader* fMcEventHeader;
166  Int_t fEventNr;
169 
170  std::vector<PndSdsPixel> fPixelList;
171 
173 
174 };
175 
176 #endif
FairMCEventHeader * fMCEventHeader
PndSdsChargeConversion * fChargeConverter
Charge Digitization Parameter Class for SDS.
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
PndSdsHybridHitProducer & operator=(PndSdsHybridHitProducer &other)
TVector3 GetSensorDimensions(Int_t sensorID)
Class to access the naming information of the MVD.
Double_t lx
virtual void Exec(Option_t *opt)
PndSdsHybridHitProducer(PndSdsHybridHitProducer &other)
Double_t
void AddHits(std::vector< PndSdsPixel > *hitList, int mcIndex)
std::vector< CbmEmcHit * > hitList
Definition: digi_analys.C:26
void GetLocalHitPoints(PndSdsMCPoint *myPoint, FairGeoVector &myHitIn, FairGeoVector &myHitOut)
TString name
double threshold
std::vector< PndSdsPixel > fPixelList
Double_t ly
void AddHit(PndSdsPixel &hit, int mcIndex)
PndSdsDigiPixelWriteoutBuffer * fDataBuffer
PndSdsMCPoint * hit
Definition: anasim.C:70
ClassDef(PndSdsHybridHitProducer, 8)
double noise
TGeoHMatrix GetTransformation(Int_t sensorID)
Digitization Parameter Class for SDS-Pixel part.