FairRoot/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 {
69  public:
70 
75 
93  Double_t ori, Double_t skew,
94  TVector2 topAnchor, TVector2 botAnchor,
95  Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh,
97  TString sensorType="Rect", TString feType="APV25");
98 
100  virtual ~PndSdsStripHitProducerDif();
101 
102 
103  virtual void SetParContainers();
105  virtual InitStatus Init();
106  virtual InitStatus ReInit();
107 
113  virtual void SetBranchNames()=0;
114  virtual void SetMCPointType() = 0;
115 
117  virtual void Exec(Option_t* opt);
118 
119  void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge);
120 
121  void SetParamSet(Double_t topPitch, Double_t botPitch,
122  Double_t ori, Double_t skew,
123  TVector2 topAnchor, TVector2 botAnchor,
124  Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh,
125  Double_t threshold, Double_t noise,
126  TString sensorType, TString feType);
128 // Double_t GetTopPitch() const {return fTopPitch;}
129 // Double_t GetBotPitch() const {return fBotPitch;}
130 // Double_t GetOrient() const {return fOrient;}
131 // Double_t GetSkew() const {return fSkew;}
132 // TVector2 GetTopAnchor() const {return fTopAnchor;}
133 // TVector2 GetBotAnchor() const {return fBotAnchor;}
134 // Int_t GetNrTopFE() const {return fNrTopFE;}
135 // Int_t GetNrBotFE() const {return fNrBotFE;}
136 // Int_t GetNrFECh() const {return fNrFECh;}
137 // Double_t GetThreshold() const {return fThreshold;}
138 // Double_t GetNoise() const {return fNoise;}
139 
140 protected:
141 
143 
146  TClonesArray* fPointArray;
148 // TClonesArray* fHitArray;
150  TClonesArray* fStripArray;
151 // TClonesArray* fFeStripArray;
152 
157 
159 
167 
168  void Register();
169  void Reset();
170  void ProduceHits();
171 
172 // TGeoHMatrix GetTransformation (std::string detName) const;
173 // void GetLocalHitPoints(PndSdsMCPoint* myPoint, FairGeoVector& myHitIn, FairGeoVector& myHitOut);
174 // TVector3 GetSensorDimensions(std::string detName) const;
175  Bool_t SelectSensorParams(Int_t sensorID);
176 
177  PndGeoHandling* fGeoH; // converter for detector names
178 /* Double_t fTopPitch; // strip pitch on top side
179  Double_t fBotPitch; // strip pitch on bottom side
180  Double_t fOrient; // orientation of top strips
181  Double_t fSkew; // skew angle between upper and lower strips
182  TVector2 fTopAnchor; // Anchor Point on top side
183  TVector2 fBotAnchor; // Anchor Point on bottom side
184  Int_t fNrTopFE; // Number of Frontends attached to the top side
185  Int_t fNrBotFE; // Number of Frontends attached to the bottom side
186  Int_t fNrFECh; // Number of channels per frontend-chip
187  Double_t fThreshold; // strip threshold in electrons
188  Double_t fNoise; // strip noise in electrons*/
189  Bool_t fOverrideParams; // internal Flag that controls use of Parameter Invocations
190 // TString fSensType; // Type of the Sensor
191 // TString fFeType; // Frontend type name (not used yet)
192 
193 // Int_t stripHits;
194 
195 
197 
198 };
199 
200 #endif
virtual void Exec(Option_t *opt)
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)
PndSdsCalcStripDif * fStripCalcBotRect
PndSdsCalcStripDif * fCurrentStripCalcBot
TVector2 botAnchor(0., 0.)
double skew
Class to access the naming information of the MVD.
PndSdsCalcStripDif * fStripCalcBotTrap
Double_t
virtual void SetMCPointType()=0
fDetectorType
Digitization Parameter Class for MVD-Strip part.
PndSdsStripDigiPar * fDigiParRect
Digitization Parameters.
double botPitch
ClassDef(PndSdsStripHitProducerDif, 6)
TClonesArray * fStripArray
Output array of PndSdsHits.
Hit Producer Task for strip detectors with electron diffusion.
double threshold
Bool_t SelectSensorParams(Int_t sensorID)
int fe
Definition: anaLmdDigi.C:67
double topPitch
PndSdsCalcStripDif * fStripCalcTopRect
Calculator objects.
PndSdsCalcStripDif * fStripCalcTopTrap
double noise
TVector2 topAnchor(0., 0.)