PandaRoot
PndHypStripHitProducer.h
Go to the documentation of this file.
1 #ifndef PNDHYPSTRIPHITPRODUCER_H
2 #define PNDHYPSTRIPHITPRODUCER_H
3 
4 #include "FairTask.h"
5 #include "PndGeoHypPar.h"
6 #include "PndHypStripDigiPar.h"
7 //#include "PndHypGeoMappingPar.h"
8 #include "PndHypHit.h"
9 #include "PndHypPoint.h"
10 #include "PndHypStrip.h"
11 //#include "PndHypDigiPixel.h"
12 #include "FairGeoVector.h"
13 #include "FairGeoTransform.h"
14 #include "TVector3.h"
15 #include "TRandom.h"
16 #include "TGeoMatrix.h"
17 #include "TGeoBBox.h"
18 #include <iostream>
19 #include "PndHypCalcStrip.h"
20 #include "PndHypGeoHandling.h"
21 
22 #include <string>
23 #include <vector>
24 
25 class TClonesArray;
26 
28 
69 class PndHypStripHitProducer : public FairTask {
70  public:
73 
74  PndHypStripHitProducer(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,
75  Double_t threshold, Double_t noise, TString sensorType = "Rect", TString feType = "APV25");
76 
78  virtual ~PndHypStripHitProducer();
79 
81  virtual void SetParContainers();
82  virtual InitStatus Init();
83  virtual InitStatus ReInit();
84 
86  virtual void Exec(Option_t *opt);
87 
88  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,
89  Double_t threshold, Double_t noise, TString sensorType, TString feType);
90 
91  private:
92  TString fBranchName;
94  TClonesArray *fPointArray;
95 
97  TClonesArray *fHitArray;
98  TClonesArray *fStripArray;
99  // TClonesArray* fFeStripArray;
100 
101  PndGeoHypPar *fGeoPar;
102  PndHypStripDigiPar *fCurrentDigiPar;
103  PndHypStripDigiPar *fDigiPar;
104  PndHypCalcStrip *fStripCalcTop;
105  PndHypCalcStrip *fStripCalcBot;
106  // PndHypGeoMappingPar* fGeoMappingPar;
107 
108  void Register();
109  void Reset();
110  void ProduceHits();
111 
112  // TGeoHMatrix GetTransformation (std::string detName) const;
113  // void GetLocalHitPoints(PndHypPoint* myPoint, FairGeoVector& myHitIn, FairGeoVector& myHitOut);
114  TVector3 GetSensorDimensions(std::string detName) const;
115  Bool_t SelectSensorParams(TString detname);
116  PndHypGeoHandling *fGeoH; // converter for detector names
118  TVector2 fTopAnchor;
120  TVector2 fBotAnchor;
121  /*
122  Double_t ftopPitch; //strip pitch on top side;
123  Double_t fbotPitch; //strip pitch on bottom side;
124  Double_t forient; //orientation of top strips;
125  Double_t fskew; //skew angle between upper and lower strips;
127  TVector2 fTopAnchor;
129  TVector2 fBotAnchor;
130  Int_t fnrTopFE;
131  Int_t fnrBotFE;
132  Int_t fnrFECh;
133  Double_t fthreshold; //strip threshold in electrons
134  Double_t fnoise; //strip noise in electrons
135  */
137  Bool_t fOverrideParams;
138 
139  // Int_t stripHits;
140  ClassDef(PndHypStripHitProducer, 5);
141 };
142 
143 #endif
virtual InitStatus Init()
Class to access the naming information of the MVD.
virtual ~PndHypStripHitProducer()
virtual InitStatus ReInit()
virtual void Exec(Option_t *opt)
virtual void SetParContainers()
Hit Producer Task for strip detectors.
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)