FairRoot/PandaRoot
PndSdsStripHitProducer.h
Go to the documentation of this file.
1 #ifndef PNDSDSSTRIPHITPRODUCER_H
2 #define PNDSDSSTRIPHITPRODUCER_H
3 
4 #include "PndSdsTask.h"
5 #include "PndSdsStripDigiPar.h"
6 #include "PndSdsMCPoint.h"
7 #include "PndSdsStrip.h"
8 #include "PndSdsDigiStrip.h"
9 #include "PndDetectorList.h"
10 #include "FairGeoVector.h"
11 #include "FairGeoTransform.h"
12 #include "FairMCEventHeader.h"
13 #include "TVector3.h"
14 #include "TRandom.h"
15 #include "TGeoMatrix.h"
16 #include "TGeoBBox.h"
17 
18 #include "PndGeoHandling.h"
19 #include "PndSdsCalcStrip.h"
20 #include "PndSdsChargeConversion.h"
22 
23 
24 #include <string>
25 #include <vector>
26 #include <map>
27 
28 class TClonesArray;
29 
31 
72 {
73  public:
74 
79 
81  PndSdsTask(),
82  fPointArray(other.fPointArray),
83  fStripArray(other.fStripArray),
84  fDataBuffer(other.fDataBuffer),
95  fGeoH(other.fGeoH),
98  fEventNr(other.fEventNr)
99  {};
101  PndSdsStripHitProducer(const char* name);
102 
104  virtual ~PndSdsStripHitProducer();
105 
106 
107  virtual void SetParContainers();
109  virtual InitStatus Init();
110  virtual InitStatus ReInit();
111 
117  virtual void SetBranchNames()=0;
118  virtual void SetMCPointType(){};
119 
121  virtual void Exec(Option_t* opt);
122  virtual void FinishEvent();
123  virtual void FinishTask();
124  void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge);
125 
126 
128 
130  {
131  if(this != &other) // protect against invalid self-assignment
132  {
133  fPointArray=other.fPointArray;
134  fStripArray=other.fStripArray;
135  fDataBuffer=other.fDataBuffer;
146  fGeoH=other.fGeoH;
149  fEventNr=other.fEventNr;
150  }
151  return *this;
152  }
153 
154 
155  protected:
156 
157 
159  TClonesArray* fPointArray;
160 
162  TClonesArray* fStripArray;
163 
164  FairWriteoutBuffer *fDataBuffer;
165 
171 
173  std::map<const char*,PndSdsCalcStrip*> fStripCalcTop;
174  std::map<const char*,PndSdsCalcStrip*> fStripCalcBot;
175  std::map<const char*,PndSdsChargeConversion*> fChargeConverter;
178 
179  void Register();
180  void Reset();
181  void ProduceHits();
182  virtual void SetCalculators();
183  Bool_t SelectSensorParams(Int_t sensorID);
184 
185  Int_t DigitizeTime(Double_t time,Double_t charge);
186 
187  FairMCEventHeader* fMcEventHeader;
188 
192 
193  Int_t fEventNr;
194 
196 
197 };
198 
199 #endif
TList * fDigiParameterList
Digitization Parameters.
PndSdsStripHitProducer(PndSdsStripHitProducer &other)
Bool_t fTimeOrderedDigi
parameter to switch to time ordered simulation
Int_t DigitizeTime(Double_t time, Double_t charge)
FairWriteoutBuffer * fDataBuffer
Class for calculating strip indices from wafer hits.
Int_t fEventNr
EventCounter.
std::map< const char *, PndSdsCalcStrip * > fStripCalcBot
Class to access the naming information of the MVD.
std::map< const char *, PndSdsChargeConversion * > fChargeConverter
PndSdsStripDigiPar * fCurrentDigiPar
Double_t
ClassDef(PndSdsStripHitProducer, 5)
std::map< const char *, PndSdsCalcStrip * > fStripCalcTop
Calculator objects.
Digitization Parameter Class for MVD-Strip part.
void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
PndSdsChargeConversion * fCurrentChargeConverter
TClonesArray * fStripArray
Output array of PndSdsHits.
TString name
FairMCEventHeader * fMcEventHeader
virtual void Exec(Option_t *opt)
PndSdsStripHitProducer & operator=(PndSdsStripHitProducer &other)
Hit Producer Task for strip detectors.
Bool_t fOverrideParams
///&lt; converter for detector names
int fe
Definition: anaLmdDigi.C:67
Bool_t SelectSensorParams(Int_t sensorID)
PndSdsCalcStrip * fCurrentStripCalcBot
virtual void SetBranchNames()=0
PndSdsCalcStrip * fCurrentStripCalcTop