FairRoot/PandaRoot
|
Class for calculating strip indices from wafer hits. More...
#include <PndSdsCalcStrip.h>
Public Member Functions | |
PndSdsCalcStrip () | |
PndSdsCalcStrip (Double_t pitch, Double_t orient, Int_t nrStrips, Int_t nrFeChannels, const TVector2 &firstStripAnchor, Double_t threshold, Double_t noise, Double_t csigma) | |
PndSdsCalcStrip (const PndSdsStripDigiPar *digipar, SensorSide side=kTOP) | |
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) |
std::vector< PndSdsStrip > | GetStripsNoDif (Double_t nuIn, Double_t nuOut, Double_t Q) |
std::vector< PndSdsStrip > | GetStripsDif (Double_t nuIn, Double_t nuOut, Double_t Q) |
Double_t | CalcFk (Double_t strip, Double_t x, Double_t sig) |
Int_t | GetStripsAlternative (Double_t nuIn, Double_t nuOut, Double_t Q, Int_t mode, std::vector< Int_t > &indice, std::vector< Double_t > &charges) |
Int_t | CalcFEfromStrip (Int_t stripNr) const |
Int_t | CalcChannelfromStrip (Int_t stripNr) const |
void | CalcFeChToStrip (Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const |
void | CalcStripPointOnLine (const Double_t strip, TVector2 &point) const |
const TVector2 | GetStripDirection () const |
void | SetVerboseLevel (Int_t level) |
Double_t | GetThreshold () const |
Double_t | GetNoise () const |
void | Print () const |
Private Member Functions | |
Double_t | CalcStripFromPoint (Double_t x, Double_t y) |
Double_t | ChargeFromEloss (Double_t eloss) const |
void | InjectStripCharge (std::vector< PndSdsStrip > &array, Int_t istrip, Double_t charge) |
Double_t | SmearCharge (Double_t charge) |
Private Attributes | |
Double_t | fPitch |
Double_t | fOrient |
strip pitch (cm) More... | |
Int_t | fNrStrips |
strip orientation angle to x axis More... | |
Int_t | fNrFeChannels |
Nr. of strips on active area. More... | |
TVector2 | fAnchor |
Nr of Channels per FE. More... | |
Double_t | fThreshold |
anchor point on first strip More... | |
Double_t | fNoise |
charge threshold More... | |
Double_t | fCSigma |
ENC. More... | |
TVector2 | fStripDir |
Charge diffusion. More... | |
TVector2 | fOrthoDir |
vector perpendicular to strip direction More... | |
Int_t | fVerboseLevel |
vector orthogonal to strip direction More... | |
Class for calculating strip indices from wafer hits.
Definition at line 33 of file PndSdsCalcStrip.h.
PndSdsCalcStrip::PndSdsCalcStrip | ( | ) |
Default constructor No reason to use it
Definition at line 20 of file PndSdsCalcStrip.cxx.
PndSdsCalcStrip::PndSdsCalcStrip | ( | Double_t | pitch, |
Double_t | orient, | ||
Int_t | nrStrips, | ||
Int_t | nrFeChannels, | ||
const TVector2 & | firstStripAnchor, | ||
Double_t | threshold, | ||
Double_t | noise, | ||
Double_t | csigma = 0 |
||
) |
Constructor Create Object with all necessary parameters
pitch | Pitch between Strips (=width of strips) |
orient | Orientation Angle of Strips in x-y-Plane from x-Axis |
nrStrips | Number of Strips in the active area |
nrFeChannels | Number of Channels per Frontend |
firstStripAnchor | Coordinate in x-y-Plane which belongs to the first Strip (Index 0). Usually this is the readout point of the strip |
threshold | Charge-Threshold applied to the signal (electrons) |
noise | Noise superimposed to the signal (electrons) |
Definition at line 35 of file PndSdsCalcStrip.cxx.
References cos(), fOrient, fOrthoDir, fStripDir, and sin().
PndSdsCalcStrip::PndSdsCalcStrip | ( | const PndSdsStripDigiPar * | digipar, |
SensorSide | side = kTOP |
||
) |
Definition at line 51 of file PndSdsCalcStrip.cxx.
References cos(), fAnchor, fCSigma, fNoise, fNrFeChannels, fNrStrips, fOrient, fOrthoDir, fPitch, fStripDir, fThreshold, fVerboseLevel, PndSdsStripDigiPar::GetBotAnchor(), PndSdsStripDigiPar::GetBotPitch(), PndSdsStripDigiPar::GetNoise(), PndSdsStripDigiPar::GetNrBotFE(), PndSdsStripDigiPar::GetNrFECh(), PndSdsStripDigiPar::GetNrTopFE(), PndSdsStripDigiPar::GetOrient(), PndSdsStripDigiPar::GetQCloudSigma(), PndSdsStripDigiPar::GetSkew(), PndSdsStripDigiPar::GetThreshold(), PndSdsStripDigiPar::GetTopAnchor(), PndSdsStripDigiPar::GetTopPitch(), kBOTTOM, kTOP, Print(), and sin().
Int_t PndSdsCalcStrip::CalcChannelfromStrip | ( | Int_t | stripNr | ) | const |
Calculate Channel index (on Frontend) from strip-index
stripNr | strip index |
Definition at line 306 of file PndSdsCalcStrip.cxx.
References fNrFeChannels.
Referenced by PndSdsStripHitProducer::Exec().
void PndSdsCalcStrip::CalcFeChToStrip | ( | Int_t | fe, |
Int_t | channel, | ||
Int_t & | strip, | ||
enum SensorSide & | side | ||
) | const |
Calculate global strip index from Frontend number and -channel
fe | frontend number |
channel | frontend channel |
strip | global strip index |
side |
Definition at line 309 of file PndSdsCalcStrip.cxx.
References fNrFeChannels, fNrStrips, kBOTTOM, and kTOP.
Referenced by PndSdsChargeWeightingAlgorithms::DigiStripno(), and PndSdsStripClusterTask::FillClusterFinders().
Int_t PndSdsCalcStrip::CalcFEfromStrip | ( | Int_t | stripNr | ) | const |
Calculate Frontend number from strip-index
stripNr | strip index |
Definition at line 303 of file PndSdsCalcStrip.cxx.
References fNrFeChannels.
Referenced by PndSdsStripHitProducer::Exec().
Definition at line 266 of file PndSdsCalcStrip.cxx.
References Double_t, exp(), Pi, sqrt(), t, and x.
Referenced by GetStripsDif().
Calculate continuous strip-number parameter from given Point in local system
x | x-coordinate |
y | y-coordinate |
Definition at line 290 of file PndSdsCalcStrip.cxx.
References fAnchor, fOrthoDir, and fPitch.
Referenced by GetStrips().
void PndSdsCalcStrip::CalcStripPointOnLine | ( | const Double_t | strip, |
TVector2 & | point | ||
) | const |
Definition at line 297 of file PndSdsCalcStrip.cxx.
References fAnchor, fOrthoDir, and fPitch.
Referenced by PndLmdStripClusterTask::Exec(), and PndSdsStripClusterTask::Exec().
|
inline |
Definition at line 118 of file PndSdsCalcStrip.h.
References fNoise.
Referenced by PndSdsChargeWeightingAlgorithms::CenterOfGravity(), PndSdsChargeWeightingAlgorithms::EtaValue(), and PndSdsChargeWeightingAlgorithms::HeadTail().
|
inline |
Get Strip Direction (strip orientation angle)
Definition at line 113 of file PndSdsCalcStrip.h.
References fStripDir.
Referenced by PndLmdStripClusterTask::Backmap(), and PndSdsStripClusterTask::Backmap().
std::vector< PndSdsStrip > PndSdsCalcStrip::GetStrips | ( | Double_t | inx, |
Double_t | iny, | ||
Double_t | inz, | ||
Double_t | outx, | ||
Double_t | outy, | ||
Double_t | outz, | ||
Double_t | eLoss | ||
) |
Get List of hit channels from given Wafer hit.
inx | x-coordinate of entry point |
iny | y-coordinate of entry point |
inz | z-coordinate of entry point |
outx | x-coordinate of exit point |
outy | y-coordinate of exit point |
outz | z-coordinate of exit point |
eLoss | Energy Loss inside the detector element (GeV) |
Definition at line 92 of file PndSdsCalcStrip.cxx.
References CalcStripFromPoint(), ChargeFromEloss(), Double_t, fCSigma, fVerboseLevel, GetStripsDif(), GetStripsNoDif(), and out.
Referenced by PndSdsStripHitProducer::Exec().
Int_t PndSdsCalcStrip::GetStripsAlternative | ( | Double_t | nuIn, |
Double_t | nuOut, | ||
Double_t | Q, | ||
Int_t | mode, | ||
std::vector< Int_t > & | indice, | ||
std::vector< Double_t > & | charges | ||
) |
Definition at line 273 of file PndSdsCalcStrip.cxx.
References fVerboseLevel, GetStripsDif(), GetStripsNoDif(), and i.
std::vector< PndSdsStrip > PndSdsCalcStrip::GetStripsDif | ( | Double_t | nuIn, |
Double_t | nuOut, | ||
Double_t | Q | ||
) |
Definition at line 228 of file PndSdsCalcStrip.cxx.
References CalcFk(), Double_t, fabs(), fCSigma, fPitch, i, InjectStripCharge(), and sqrt().
Referenced by GetStrips(), and GetStripsAlternative().
std::vector< PndSdsStrip > PndSdsCalcStrip::GetStripsNoDif | ( | Double_t | nuIn, |
Double_t | nuOut, | ||
Double_t | Q | ||
) |
Definition at line 132 of file PndSdsCalcStrip.cxx.
References Double_t, fabs(), fNrStrips, fVerboseLevel, InjectStripCharge(), and n.
Referenced by GetStrips(), and GetStripsAlternative().
|
inline |
Definition at line 117 of file PndSdsCalcStrip.h.
References fThreshold.
Referenced by PndSdsChargeWeightingAlgorithms::CenterOfGravity().
|
private |
Definition at line 323 of file PndSdsCalcStrip.cxx.
References Double_t, fNrStrips, fThreshold, fVerboseLevel, and SmearCharge().
Referenced by GetStripsDif(), and GetStripsNoDif().
void PndSdsCalcStrip::Print | ( | ) | const |
Definition at line 344 of file PndSdsCalcStrip.cxx.
References fAnchor, fNrFeChannels, fNrStrips, fOrient, fPitch, fStripDir, and Pi.
Referenced by PndSdsCalcStrip().
|
inline |
Definition at line 115 of file PndSdsCalcStrip.h.
References fVerboseLevel.
Definition at line 336 of file PndSdsCalcStrip.cxx.
References Double_t, fNoise, and fVerboseLevel.
Referenced by InjectStripCharge().
|
private |
Nr of Channels per FE.
Definition at line 127 of file PndSdsCalcStrip.h.
Referenced by CalcStripFromPoint(), CalcStripPointOnLine(), PndSdsCalcStrip(), and Print().
|
private |
ENC.
Definition at line 130 of file PndSdsCalcStrip.h.
Referenced by GetStrips(), GetStripsDif(), and PndSdsCalcStrip().
|
private |
charge threshold
Definition at line 129 of file PndSdsCalcStrip.h.
Referenced by GetNoise(), PndSdsCalcStrip(), and SmearCharge().
|
private |
Nr. of strips on active area.
Definition at line 126 of file PndSdsCalcStrip.h.
Referenced by CalcChannelfromStrip(), CalcFeChToStrip(), CalcFEfromStrip(), PndSdsCalcStrip(), and Print().
|
private |
strip orientation angle to x axis
Definition at line 125 of file PndSdsCalcStrip.h.
Referenced by CalcFeChToStrip(), GetStripsNoDif(), InjectStripCharge(), PndSdsCalcStrip(), and Print().
|
private |
strip pitch (cm)
Definition at line 124 of file PndSdsCalcStrip.h.
Referenced by PndSdsCalcStrip(), and Print().
|
private |
vector perpendicular to strip direction
Definition at line 132 of file PndSdsCalcStrip.h.
Referenced by CalcStripFromPoint(), CalcStripPointOnLine(), and PndSdsCalcStrip().
|
private |
Definition at line 123 of file PndSdsCalcStrip.h.
Referenced by CalcStripFromPoint(), CalcStripPointOnLine(), GetStripsDif(), PndSdsCalcStrip(), and Print().
|
private |
Charge diffusion.
Definition at line 131 of file PndSdsCalcStrip.h.
Referenced by GetStripDirection(), PndSdsCalcStrip(), and Print().
|
private |
anchor point on first strip
Definition at line 128 of file PndSdsCalcStrip.h.
Referenced by GetThreshold(), InjectStripCharge(), and PndSdsCalcStrip().
|
private |
vector orthogonal to strip direction
Definition at line 133 of file PndSdsCalcStrip.h.
Referenced by GetStrips(), GetStripsAlternative(), GetStripsNoDif(), InjectStripCharge(), PndSdsCalcStrip(), SetVerboseLevel(), and SmearCharge().