PandaRoot
PndSdsStripHitProducerDif.h
Go to the documentation of this file.
1 #ifndef PNDSDSSTRIPHITPRODUCERDIF_H
2 #define PNDSDSSTRIPHITPRODUCERDIF_H
3 
4 #include "PndSdsTask.h"
5 #include "PndSdsStripDigiPar.h"
6 #include "PndSdsMCPoint.h"
7 #include "PndSdsStrip.h"
8 #include "PndSdsDigiPixel.h"
9 #include "PndDetectorList.h"
10 
11 #include "FairGeoVector.h"
12 #include "FairGeoTransform.h"
13 #include "TVector3.h"
14 #include "TRandom.h"
15 #include "TGeoMatrix.h"
16 #include "TGeoBBox.h"
17 
18 #include "PndGeoHandling.h"
19 #include "PndSdsCalcStripDif.h"
20 
21 #include <string>
22 #include <vector>
23 
24 class TClonesArray;
25 
27 
68  public:
73 
90  PndSdsStripHitProducerDif(Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh,
91  Double_t threshold, Double_t noise, TString sensorType = "Rect", TString feType = "APV25");
92 
95 
96  virtual void SetParContainers();
98  virtual InitStatus Init();
99  virtual InitStatus ReInit();
100 
106  virtual void SetBranchNames() = 0;
107  virtual void SetMCPointType() = 0;
108 
110  virtual void Exec(Option_t *opt);
111 
112  void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge);
113 
114  void SetParamSet(Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh,
115  Double_t threshold, Double_t noise, TString sensorType, TString feType);
117  // Double_t GetTopPitch() const {return fTopPitch;}
118  // Double_t GetBotPitch() const {return fBotPitch;}
119  // Double_t GetOrient() const {return fOrient;}
120  // Double_t GetSkew() const {return fSkew;}
121  // TVector2 GetTopAnchor() const {return fTopAnchor;}
122  // TVector2 GetBotAnchor() const {return fBotAnchor;}
123  // Int_t GetNrTopFE() const {return fNrTopFE;}
124  // Int_t GetNrBotFE() const {return fNrBotFE;}
125  // Int_t GetNrFECh() const {return fNrFECh;}
126  // Double_t GetThreshold() const {return fThreshold;}
127  // Double_t GetNoise() const {return fNoise;}
128 
129  protected:
130  TString fBranchName;
131 
134  TClonesArray *fPointArray;
136  // TClonesArray* fHitArray;
138  TClonesArray *fStripArray;
139  // TClonesArray* fFeStripArray;
140 
145 
146  fDetectorType fMCPointType;
147 
155 
156  void Register();
157  void Reset();
158  void ProduceHits();
159 
160  // TGeoHMatrix GetTransformation (std::string detName) const;
161  // void GetLocalHitPoints(PndSdsMCPoint* myPoint, FairGeoVector& myHitIn, FairGeoVector& myHitOut);
162  // TVector3 GetSensorDimensions(std::string detName) const;
163  Bool_t SelectSensorParams(Int_t sensorID);
164 
165  PndGeoHandling *fGeoH; // converter for detector names
166  /* Double_t fTopPitch; // strip pitch on top side
167  Double_t fBotPitch; // strip pitch on bottom side
168  Double_t fOrient; // orientation of top strips
169  Double_t fSkew; // skew angle between upper and lower strips
170  TVector2 fTopAnchor; // Anchor Point on top side
171  TVector2 fBotAnchor; // Anchor Point on bottom side
172  Int_t fNrTopFE; // Number of Frontends attached to the top side
173  Int_t fNrBotFE; // Number of Frontends attached to the bottom side
174  Int_t fNrFECh; // Number of channels per frontend-chip
175  Double_t fThreshold; // strip threshold in electrons
176  Double_t fNoise; // strip noise in electrons*/
177  Bool_t fOverrideParams; // internal Flag that controls use of Parameter Invocations
178  // TString fSensType; // Type of the Sensor
179  // TString fFeType; // Frontend type name (not used yet)
180 
181  // Int_t stripHits;
182 
184 };
185 
186 #endif
PndSdsCalcStripDif * fCurrentStripCalcTop
virtual void SetBranchNames()=0
void SetParamSet(Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType, TString feType)
Class for calculating strip indices from wafer hits.
void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
virtual InitStatus Init()
PndSdsCalcStripDif * fStripCalcBotRect
PndSdsCalcStripDif * fCurrentStripCalcBot
virtual ~PndSdsStripHitProducerDif()
Class to access the naming information of the MVD.
PndSdsCalcStripDif * fStripCalcBotTrap
virtual void SetMCPointType()=0
Digitization Parameter Class for MVD-Strip part.
PndSdsStripDigiPar * fDigiParRect
Digitization Parameters.
ClassDef(PndSdsStripHitProducerDif, 6)
TClonesArray * fStripArray
Output array of PndSdsHits.
Hit Producer Task for strip detectors with electron diffusion.
virtual void Exec(Option_t *opt)
virtual void SetParContainers()
Bool_t SelectSensorParams(Int_t sensorID)
PndSdsCalcStripDif * fStripCalcTopRect
Calculator objects.
virtual InitStatus ReInit()
PndSdsCalcStripDif * fStripCalcTopTrap