PandaRoot
PndHypStripHitProducer.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PNDHYPSTRIPHITPRODUCER_H
14 #define PNDHYPSTRIPHITPRODUCER_H
15 
16 #include "FairTask.h"
17 #include "PndGeoHypPar.h"
18 #include "PndHypStripDigiPar.h"
19 //#include "PndHypGeoMappingPar.h"
20 #include "PndHypHit.h"
21 #include "PndHypPoint.h"
22 #include "PndHypStrip.h"
23 //#include "PndHypDigiPixel.h"
24 #include "FairGeoVector.h"
25 #include "FairGeoTransform.h"
26 #include "TVector3.h"
27 #include "TRandom.h"
28 #include "TGeoMatrix.h"
29 #include "TGeoBBox.h"
30 #include <iostream>
31 #include "PndHypCalcStrip.h"
32 #include "PndHypGeoHandling.h"
33 
34 #include <string>
35 #include <vector>
36 
37 class TClonesArray;
38 
40 
81 class PndHypStripHitProducer : public FairTask {
82  public:
85 
86  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,
87  Double_t threshold, Double_t noise, TString sensorType = "Rect", TString feType = "APV25");
88 
90  virtual ~PndHypStripHitProducer();
91 
93  virtual void SetParContainers();
94  virtual InitStatus Init();
95  virtual InitStatus ReInit();
96 
98  virtual void Exec(Option_t *opt);
99 
100  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,
101  Double_t threshold, Double_t noise, TString sensorType, TString feType);
102 
103  private:
104  TString fBranchName;
106  TClonesArray *fPointArray;
107 
109  TClonesArray *fHitArray;
110  TClonesArray *fStripArray;
111  // TClonesArray* fFeStripArray;
112 
113  PndGeoHypPar *fGeoPar;
114  PndHypStripDigiPar *fCurrentDigiPar;
115  PndHypStripDigiPar *fDigiPar;
116  PndHypCalcStrip *fStripCalcTop;
117  PndHypCalcStrip *fStripCalcBot;
118  // PndHypGeoMappingPar* fGeoMappingPar;
119 
120  void Register();
121  void Reset();
122  void ProduceHits();
123 
124  // TGeoHMatrix GetTransformation (std::string detName) const;
125  // void GetLocalHitPoints(PndHypPoint* myPoint, FairGeoVector& myHitIn, FairGeoVector& myHitOut);
126  TVector3 GetSensorDimensions(std::string detName) const;
127  Bool_t SelectSensorParams(TString detname);
128  PndHypGeoHandling *fGeoH; // converter for detector names
130  TVector2 fTopAnchor;
132  TVector2 fBotAnchor;
133  /*
134  Double_t ftopPitch; //strip pitch on top side;
135  Double_t fbotPitch; //strip pitch on bottom side;
136  Double_t forient; //orientation of top strips;
137  Double_t fskew; //skew angle between upper and lower strips;
139  TVector2 fTopAnchor;
141  TVector2 fBotAnchor;
142  Int_t fnrTopFE;
143  Int_t fnrBotFE;
144  Int_t fnrFECh;
145  Double_t fthreshold; //strip threshold in electrons
146  Double_t fnoise; //strip noise in electrons
147  */
149  Bool_t fOverrideParams;
150 
151  // Int_t stripHits;
152  ClassDef(PndHypStripHitProducer, 5);
153 };
154 
155 #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)