PandaRoot
PndSdsCalcStripDif.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: PndSdsCalcStrip
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 PNDSDSCALCSTRIPDIF_H
25 #define PNDSDSCALCSTRIPDIF_H
26 
27 #include "PndSdsStrip.h"
28 //#include "FairGeoVector.h"
29 #include "PndSdsStripDigiPar.h"
30 
31 #include <TVector2.h>
32 #include <TRandom.h>
33 
34 #include <iostream>
35 #include <vector>
36 
37 #include "PndDetectorList.h"
38 
40 
45  public:
51 
64  PndSdsCalcStripDif(Double_t pitch, Double_t orient, Int_t nrStrips, Int_t nrFeChannels, const TVector2 &firstStripAnchor, Double_t threshold, Double_t noise, Double_t sigma);
65 
67 
79  std::vector<PndSdsStrip> GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss);
80 
86  Int_t CalcFEfromStrip(Int_t stripNr) const;
87 
93  Int_t CalcChannelfromStrip(Int_t stripNr) const;
94 
102  void CalcFeChToStrip(Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const;
103  void CalcStripPointOnLine(const Double_t strip, TVector2 &point) const;
104 
108  const TVector2 GetStripDirection() const { return fStripDir; }
109 
110  void SetVerboseLevel(Int_t level) { fVerboseLevel = level; }
111  std::ostream &operator<<(std::ostream &out);
112 
113  Double_t ChargeDiffusion(Double_t u, Double_t a, Double_t path, Double_t dir, Double_t Q);
114 
115  void Print() const;
116 
117  private:
118  Double_t fPitch;
119  Double_t fOrient;
120  Int_t fNrStrips;
121  Int_t fNrFeChannels;
122  TVector2 fAnchor;
123  Double_t fThreshold;
124  Double_t fNoise;
125  TVector2 fStripDir;
126  TVector2 fOrthoDir;
127  Int_t fVerboseLevel;
128  Double_t fSigma;
129 
136  Double_t CalcStripFromPoint(Double_t x, Double_t y);
137 
143  Double_t SmearCharge(Double_t charge);
144  const Double_t ChargeFromEloss(Double_t eloss) const { return eloss / (3.61e-9); }
145 };
146 
147 #endif /* SSDCALCSTRIPDIF_H */
void CalcFeChToStrip(Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const
Int_t CalcFEfromStrip(Int_t stripNr) const
Class for calculating strip indices from wafer hits.
void SetVerboseLevel(Int_t level)
const TVector2 GetStripDirection() const
Double_t ChargeDiffusion(Double_t u, Double_t a, Double_t path, Double_t dir, Double_t Q)
Int_t CalcChannelfromStrip(Int_t stripNr) const
std::ostream & operator<<(std::ostream &out)
void CalcStripPointOnLine(const Double_t strip, TVector2 &point) const
std::vector< PndSdsStrip > GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss)
Digitization Parameter Class for MVD-Strip part.
SensorSide
void Print() const