PandaRoot
PndHypCalcStrip.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 //
14 // C++ Interface: MvdCalcStrip
15 //
16 // Description:
17 //
18 //
19 // Author: HG Zaunick <hg.zaunick@physik.tu-dresden.de>, (C) 2007
20 //
21 // Copyright: See COPYING file that comes with this distribution
22 //
23 //
24 #ifndef PNDHYPCALCSTRIP_H
25 #define PNDHYPCALCSTRIP_H
26 
27 #include "PndHypHit.h"
28 #include "PndHypStrip.h"
29 //#include "FairGeoVector.h"
30 #include "PndHypStripDigiPar.h"
31 
32 #include <TVector2.h>
33 #include <TRandom.h>
34 
35 #include <iostream>
36 #include <vector>
37 
39  public:
41 
42  PndHypCalcStrip(Double_t pitch, Double_t orient, Int_t nrStrips, Int_t nrFeChannels, const TVector2 &firstStripAnchor, Double_t threshold, Double_t noise);
43 
45 
46  std::vector<PndHypStrip> GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss, int id);
52  Int_t CalcFEfromStrip(Int_t stripNr) const;
58  Int_t CalcChannelfromStrip(Int_t stripNr) const;
66  void CalcFeChToStrip(Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const;
67  void CalcStripPointOnLine(const Double_t strip, TVector2 &point) const;
71  const TVector2 GetStripDirection() const { return fStripDir; }
72  // const Int_t GetSizeStrip() const{return fsize;}
73  void SetVerboseLevel(Int_t level) { fVerboseLevel = level; }
74  // void SetnrFe(Int_t s) {fNrStrips = s;}
75  void SetreStrip(Int_t reStp) { fNrStrips = reStp; }
76  void SetAnchor(TVector2 edge) { fAnchor = edge; }
77 
78  // Int_t GetSize() const {return fsize;}
79  // std::ostream& operator<<(std::ostream& out); // not implemented
80 
81  void print() const;
82 
83  private:
84  Double_t fPitch;
85  Double_t fOrient;
86  Int_t fNrStrips;
87  Int_t fNrFeChannels;
88  Double_t fThreshold;
89  Double_t fNoise;
90  TVector2 fAnchor;
91  TVector2 fStripDir;
92  TVector2 fOrthoDir;
93  Int_t fVerboseLevel;
94  Int_t fsize;
95 
96  int _id;
97 
105  Double_t CalcStripFromPoint(Double_t x, Double_t y);
111  Double_t SmearCharge(Double_t charge);
112  inline Double_t ChargeFromEloss(Double_t eloss) const { return eloss / (3.61e-9); }
113 };
114 
115 #endif /* PNDHYPCALCSTRIP_H */
void CalcFeChToStrip(Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const
void SetreStrip(Int_t reStp)
Int_t CalcFEfromStrip(Int_t stripNr) const
std::vector< PndHypStrip > GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss, int id)
void SetAnchor(TVector2 edge)
SensorSide
void SetVerboseLevel(Int_t level)
Int_t CalcChannelfromStrip(Int_t stripNr) const
const TVector2 GetStripDirection() const
void CalcStripPointOnLine(const Double_t strip, TVector2 &point) const
void print() const